總結
為了擴展微控制器可用的 Flash 空間,用戶可以使用 QSPI 接口連接 QSPI Flash;為了讓用戶能盡量像使用片內 Flash 那樣下載和運行程序,減少額外操作,需要有對應的下載算法與相應的 2nd Bootloader。
本文以 PLUS-F5270 開發板為例(該開發板搭載的 MM32F5277E9PV 微控制器具備 QSPI 接口,且板載 W25Q64JVISQ QSPI Flash 芯片),介紹了 MM32F5 系列芯片的 QSPI 引腳,以及與 QSPI Flash 通信的過程,在 MDK 平臺上實現客制化的下載算法,簡單的 2nd Bootloader,并以 MindSDK 的 hello_world 樣例工程為例,進行少量的修改,使其能夠存儲在 QSPI Flash 上,最終驗證了微控制器能夠運行存儲在QSPI Flash 上的應用程序。
注意事項
外置 QSPI Flash選型
在進行 QSPI Flash 的選型過程中,尤其要關注其工作電壓的范圍,部分 QSPI Flash 的額定工作電壓為 1.8V ,若在3.3V 電壓下,是無法正常工作的,反之亦然。
除了電壓范圍外,部分 QSPI Flash 芯片在默認情況下,處于非四線模式,原本 QSPI 的 D2 & D3 引腳會被用于寫保護使能和 HOLD 使能,使能四線模式的方法,需參照使用的 QSPI Flash 芯片手冊進行操作。
QSPI Flash 與微控制器連接時,為了滿足阻抗匹配的要求,其信號線上需要串聯22Ω或33Ω的電阻,否則,在與 QSPI Flash 通信時,會發現讀到的數據與期望的數據可能不一致。
生成 FlashLoader 時出現顯示路徑不同的warning
在配置 FlashLoader 的 MDK 工程文件時,在Options for Target->C/C++(AC6)-> warnings選項下,若選擇All warnings選項,在build時會出現 warning:
FlashDev.c(25):warning:non-portablepathtofile'"..FlashOS.h"';specifiedpathdiffersincasefromfilenameondisk[-Wnonportable-include-path] #include"..FlashOS.H"http://FlashOSStructures ^~~~~~~~~~~~~~ "..FlashOS.h"
將該配置選項修改為AC5-like Warnings后,樣例build無問題。
ProgramSize:Code=4088RO-data=4256RW-data=4ZI-data=0 AfterBuild-Usercommand#1:cmd.exe/Ccopy"ObjectsMM32F5270_QSPI_FlashLoader.axf""..MM32F5270_QSPI_FlashLoader.FLM" 已復制1個文件。 ".ObjectsMM32F5270_QSPI_FlashLoader.axf"-0Error(s),0Warning(s).
生成下載算法時出現 L6305 warning
查看整個下載算法工程文件,會發現當前工程中沒有啟動文件與主函數,默認只有幾個功能函數,在這種情況下,編譯會爆出下面的警告:
L6305W:Imagedoesnothaveanentrypoint.(Notspecifiedornotsetduetomultiplechoices.)
但下載算法本身是不需要啟動文件和主函數的,只在下載代碼時由調試器調用下載算法中的功能,因此,需忽略該 warning。選擇Options for Target->Linker` -> Misc controls選項,修改該選項內容為--diag_suppress L6305。
修改源文件后下載該文件出現無法加載閃存編程算法的問題
對比所生成的下載算法大小與工程文件的`Options for Target-> Debug -> settings -> Flash Download -> RAM for Algorithm -> Size 選項下配置的算法大小,發現當前下載算法大于 Size 所配置的大小,因此,需適當調大 Size 的大小,例如由0x1000增加到0x2000。
在實現下載算法時,為了保證下載算法足夠小,其代碼量不要過多,需刪除未使用的函數。
應用程序不能出現影響 QSPI 使用的代碼
需要檢查應用程序的代碼,對可能影響到 QSPI 的代碼進行調整,例如 GPIO 的配置,GPIO 時鐘的復位,以及直接對 QSPI 的操作。
-
微控制器
+關注
關注
48文章
7966瀏覽量
155956 -
FlaSh
+關注
關注
10文章
1683瀏覽量
152143 -
接口
+關注
關注
33文章
9032瀏覽量
153949 -
開發板
+關注
關注
25文章
5725瀏覽量
105570 -
QSPI
+關注
關注
0文章
46瀏覽量
12774
原文標題:靈動微課堂 (第250講)|mm32-2nd-bootloader技術白皮書(6)——總結及注意事項
文章出處:【微信號:MindMotion-MMCU,微信公眾號:靈動MM32MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
評論