总结
为了扩展微控制器可用的 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"//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文章
7471浏览量
150970 -
FlaSh
+关注
关注
10文章
1619浏览量
147707 -
接口
+关注
关注
33文章
8475浏览量
150781 -
开发板
+关注
关注
25文章
4927浏览量
97140 -
QSPI
+关注
关注
0文章
41浏览量
12170
原文标题:灵动微课堂 (第250讲)|mm32-2nd-bootloader技术白皮书(6)——总结及注意事项
文章出处:【微信号:MindMotion-MMCU,微信公众号:灵动MM32MCU】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论