SEGGER Flash Loader(SFL)是J-Link設(shè)備支持套件(DSK)的一部分,通過SFL,用戶可以為自己的新設(shè)備添加Flash編程支持。
支持的CPU架構(gòu)
SEGGER Flash Loader(SFL)可用于以下CPU架構(gòu):
? 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進(jìn)行編程,因此可以支持任何Flash(或其他非易失性存儲器),適用于經(jīng)由MCU存儲器映射訪問的Flash(內(nèi)部Flash,外部QSPI NOR Flash,…)以及非存儲器映射的Flash(外部I2C EEPROM,外部NAND Flash,…)。
對于非內(nèi)存映射的Flash,必須在SFL中額外實現(xiàn)以下接口函數(shù):
SEGGER_FL_CheckBlank ()
SEGGER_FL_Verify ()
SEGGER_FL_Read ()
SEGGER_FL_CalcCRC ()
接口函數(shù)概述
下表概述了SEGGER Flash Loader的必須的和可選的接口函數(shù):
詳細(xì)的API介紹可以參考:https://kb.segger.com/SEGGER_Flash_Loader?mtm_campaign=li&mtm_kwd=Flashloader#Entry_functions_overview
在J-Link軟件中集成SFL
將生成的SFL二進(jìn)制文件集成到J-Link軟件中,具體操作實現(xiàn)可以參考:https://kb.segger.com/J-Link_Device_Support_Kit
堆棧的使用
J-Link為SEGGER Flash Loader保留512字節(jié)的堆??臻g。對于小RAM內(nèi)存的設(shè)備,可以使用256字節(jié)。
段放置
對SFL代碼放置涉及的RO代碼段,RO數(shù)據(jù)段,RW數(shù)據(jù)段,J-Link軟件有固定的布局分配。
段放置:
J-Link DSK提供的參考算法和模板工程中已經(jīng)實現(xiàn)了相應(yīng)段的定位分配,用戶無需修改。
故障排除
通常使用最新版本的模板項目, FlashPrg.c->Functions函數(shù)不包含訪問SFR的代碼,使用release配置構(gòu)建flash loader,使用J-Link Commander執(zhí)行flash下載。Flash下載應(yīng)該在驗證過程中報告一個錯誤。執(zhí)行SEGGER_FL_Erase()并重試flash下載。J-Link Commander應(yīng)該仍然報告驗證失敗,但相應(yīng)的flash區(qū)域應(yīng)該是空的。否則需檢查SEGGER_FL_Erase()。
實現(xiàn)SEGGER_FL_Program()并重試flash下載測試。預(yù)期結(jié)果:測試報告正常->編程成功。如果沒有,需檢查SEGGER_FL_Program()代碼。
PC在flash下載后反饋異常值,此錯誤可能的原因:
? 看門狗已使能,但未在flash loader函數(shù)中喂狗。這可能導(dǎo)致在RAMCode執(zhí)行期間出現(xiàn)看門狗超時,從而觸發(fā)重置。
? 未啟用時鐘相關(guān)的特殊功能寄存器/外設(shè)訪問
? 訪問了無效的內(nèi)存區(qū)域
J-Link軟件默認(rèn)在開始flash編程之前先比較flash內(nèi)容,以防flash的大部分內(nèi)容已經(jīng)與編程數(shù)據(jù)相同。SEGGER_FL_Prepare()代碼必須實現(xiàn)(QSPI)引腳和(QSPI)控制器的配置,以便能夠通過內(nèi)存映射方式訪問flash??梢酝ㄟ^將J-Link Commander執(zhí)行命令(exec SetCompareMode 0)取消比較操作。開始flash下載后,J-Link Commander將報告一個驗證錯誤,但此時應(yīng)該可以通過內(nèi)存映射方式訪問flash,如果沒有,需檢查Init()代碼。
新設(shè)備通常需要一個flash加載程序,通過J-Link DSK,用戶可以方便的為自己的設(shè)備添加編程支持。
-
FlaSh
+關(guān)注
關(guān)注
10文章
1663瀏覽量
150979 -
cpu
+關(guān)注
關(guān)注
68文章
11033瀏覽量
215989 -
編程
+關(guān)注
關(guān)注
88文章
3679瀏覽量
94864 -
SEGGER
+關(guān)注
關(guān)注
0文章
49瀏覽量
14402
原文標(biāo)題:如何通過SFL為設(shè)備添加Flash編程支持
文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
為什么通過vivado進(jìn)行spi flash編程會失敗?
羅德施瓦茨-R&S SFL-T視頻信號發(fā)生器SFL-T價格
Zynq設(shè)備不支持使用SVF進(jìn)行Flash編程怎么辦
通過對stm32內(nèi)部的flash的讀寫可以實現(xiàn)對stm32的編程操作
對flash讀寫可實現(xiàn)對stm32的編程操作
HC32系列MCU的J-Flash編程支持包
請問spc5 flash編程器支持哪些設(shè)備列表?
賽威科技推出離線式LED照明驅(qū)動IC SFL678和SFL688
賽威科技發(fā)布小功率LED照明驅(qū)動方案SFL628和SFL629
AN-946: 通過LIN—協(xié)議6進(jìn)行Flash/EE存儲器編程

評論