SEGGER Flash Loader(SFL)是J-Link设备支持套件(DSK)的一部分,通过SFL,用户可以为自己的新设备添加Flash编程支持。
支持的CPU架构
SEGGER Flash Loader(SFL)可用于以下CPU架构:
• ARMv4/v5
ARM720T, ARM7TDMI, ARM7TDMI-S
ARM920T, ARM922T, ARM926EJ-S, ARM946E-S, ARM966E-S
• ARMv6-M
Cortex-M0, Cortex-M0+, Cortex-M1
• ARMv7-M
Cortex-M3, Cortex-M4, Cortex-M7
• ARMv8-M
Cortex-M23, Cortex-M33, Cortex-M55, Cortex-M85
• ARMv7-A
Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A12, Cortex-A15, Cortex-A17
• ARMv7-R
Cortex-R4, Cortex-R5, Cortex-R7, Cortex-R8
• ARMv8-R
Cortex-R52
• RISC-V RV32
支持的Flash类型
SEGGER Flash Loader通过MCU对Flash进行编程,因此可以支持任何Flash(或其他非易失性存储器),适用于经由MCU存储器映射访问的Flash(内部Flash,外部QSPI NOR Flash,…)以及非存储器映射的Flash(外部I2C EEPROM,外部NAND Flash,…)。
对于非内存映射的Flash,必须在SFL中额外实现以下接口函数:
SEGGER_FL_CheckBlank ()
SEGGER_FL_Verify ()
SEGGER_FL_Read ()
SEGGER_FL_CalcCRC ()
接口函数概述
下表概述了SEGGER Flash Loader的必须的和可选的接口函数:
详细的API介绍可以参考:https://kb.segger.com/SEGGER_Flash_Loader?mtm_campaign=li&mtm_kwd=Flashloader#Entry_functions_overview
在J-Link软件中集成SFL
将生成的SFL二进制文件集成到J-Link软件中,具体操作实现可以参考:https://kb.segger.com/J-Link_Device_Support_Kit
堆栈的使用
J-Link为SEGGER Flash Loader保留512字节的堆栈空间。对于小RAM内存的设备,可以使用256字节。
段放置
对SFL代码放置涉及的RO代码段,RO数据段,RW数据段,J-Link软件有固定的布局分配。
段放置:
J-Link DSK提供的参考算法和模板工程中已经实现了相应段的定位分配,用户无需修改。
故障排除
通常使用最新版本的模板项目, FlashPrg.c->Functions函数不包含访问SFR的代码,使用release配置构建flash loader,使用J-Link Commander执行flash下载。Flash下载应该在验证过程中报告一个错误。执行SEGGER_FL_Erase()并重试flash下载。J-Link Commander应该仍然报告验证失败,但相应的flash区域应该是空的。否则需检查SEGGER_FL_Erase()。
实现SEGGER_FL_Program()并重试flash下载测试。预期结果:测试报告正常->编程成功。如果没有,需检查SEGGER_FL_Program()代码。
PC在flash下载后反馈异常值,此错误可能的原因:
• 看门狗已使能,但未在flash loader函数中喂狗。这可能导致在RAMCode执行期间出现看门狗超时,从而触发重置。
• 访问了无效的内存区域
J-Link软件默认在开始flash编程之前先比较flash内容,以防flash的大部分内容已经与编程数据相同。SEGGER_FL_Prepare()代码必须实现(QSPI)引脚和(QSPI)控制器的配置,以便能够通过内存映射方式访问flash。可以通过将J-Link Commander执行命令(exec SetCompareMode 0)取消比较操作。开始flash下载后,J-Link Commander将报告一个验证错误,但此时应该可以通过内存映射方式访问flash,如果没有,需检查Init()代码。
新设备通常需要一个flash加载程序,通过J-Link DSK,用户可以方便的为自己的设备添加编程支持。
-
FlaSh
+关注
关注
10文章
1691浏览量
152716 -
cpu
+关注
关注
68文章
11127浏览量
218589 -
编程
+关注
关注
88文章
3696浏览量
95617 -
SEGGER
+关注
关注
0文章
56浏览量
14546
原文标题:如何通过SFL为设备添加Flash编程支持
文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
评论