總結
為了擴展微控制器可用的 Flash 空間,用戶可以使用 QSPI 接口連接 QSPI Flash;為了讓用戶能盡量像使用片內 Flash 那樣下載和運行程序,減少額外操作,需要有對應的下載算法與相應的 2nd Bootloader。
本文以 PLUS-F5270 開發(fā)板為例(該開發(fā)板搭載的 MM32F5277E9PV 微控制器具備 QSPI 接口,且板載 W25Q64JVISQ QSPI Flash 芯片),介紹了 MM32F5 系列芯片的 QSPI 引腳,以及與 QSPI Flash 通信的過程,在 MDK 平臺上實現(xiàn)客制化的下載算法,簡單的 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 與微控制器連接時,為了滿足阻抗匹配的要求,其信號線上需要串聯(lián)22Ω或33Ω的電阻,否則,在與 QSPI Flash 通信時,會發(fā)現(xiàn)讀到的數(shù)據(jù)與期望的數(shù)據(jù)可能不一致。
生成 FlashLoader 時出現(xiàn)顯示路徑不同的warning
在配置 FlashLoader 的 MDK 工程文件時,在Options for Target->C/C++(AC6)-> warnings選項下,若選擇All warnings選項,在build時會出現(xiàn) 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).
生成下載算法時出現(xiàn) L6305 warning
查看整個下載算法工程文件,會發(fā)現(xiàn)當前工程中沒有啟動文件與主函數(shù),默認只有幾個功能函數(shù),在這種情況下,編譯會爆出下面的警告:
L6305W:Imagedoesnothaveanentrypoint.(Notspecifiedornotsetduetomultiplechoices.)
但下載算法本身是不需要啟動文件和主函數(shù)的,只在下載代碼時由調試器調用下載算法中的功能,因此,需忽略該 warning。選擇Options for Target->Linker` -> Misc controls選項,修改該選項內容為--diag_suppress L6305。
修改源文件后下載該文件出現(xiàn)無法加載閃存編程算法的問題
對比所生成的下載算法大小與工程文件的`Options for Target-> Debug -> settings -> Flash Download -> RAM for Algorithm -> Size 選項下配置的算法大小,發(fā)現(xiàn)當前下載算法大于 Size 所配置的大小,因此,需適當調大 Size 的大小,例如由0x1000增加到0x2000。
在實現(xiàn)下載算法時,為了保證下載算法足夠小,其代碼量不要過多,需刪除未使用的函數(shù)。
應用程序不能出現(xiàn)影響 QSPI 使用的代碼
需要檢查應用程序的代碼,對可能影響到 QSPI 的代碼進行調整,例如 GPIO 的配置,GPIO 時鐘的復位,以及直接對 QSPI 的操作。
-
微控制器
+關注
關注
48文章
7903瀏覽量
153683 -
FlaSh
+關注
關注
10文章
1662瀏覽量
150965 -
接口
+關注
關注
33文章
8932瀏覽量
153189 -
開發(fā)板
+關注
關注
25文章
5499瀏覽量
102165 -
QSPI
+關注
關注
0文章
44瀏覽量
12572
原文標題:靈動微課堂 (第250講)|mm32-2nd-bootloader技術白皮書(6)——總結及注意事項
文章出處:【微信號:MindMotion-MMCU,微信公眾號:靈動MM32MCU】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
評論