奇迹
发布时间:2024-12-26 20:33
|
每一次在使用没有内部Flash的芯片时,如何将程序从外部介质启动是个大麻烦,由于N6支持很多种启动介质,怎么把他们全部兼容上,是一件很麻烦的事情,STM32N6选择了OTP配置加boot引脚选择的模式解决这个问题。 首先先看一下如何配置从哪个介质启动。 从ST手册中我们可以看到,N6支持SD、emmc、nor flash、hyper flash等启动方式,一共分了7个模式
这里启动模式的选择是通过BOOT0和BOOT1两个引脚的电平,以及BOOTORM_CONFIG_2[8:5]位的状态选择
连接开发板,我们可以看到BOOTORM_CONFIG_2[8:5]默认为0,也就是从nor flash启动(所以说,切换启动介质一定要三思而后行,这是不可逆的操作!!!)。
第二个问题,就是N6是如何从nor flash启动的 其实说N6没有内部Flash,这句话也不完全正确,一方面N6有OTP的熔丝,另一方面则是有用于启动的boot rom,当确定了启动介质为nor flash之后,内部的boot rom就会对xspi/xspim外设做基本的配置,配置有下面的内容,可以看到都是一些比较保守参数。而且相对比较新的nor flash都是支持SFDP标准的,这也进一步保证了N6选择Flash的兼容性,当然,太老的是肯定兼容不了的。
扯远了,下面我们就将下载程序到外部nor flash并从nor flash启动。 首先安装STM32CubeProgrammer。 然后准备好一个可以使用的bin文件,这里我选择上一次实验编译出来的bin文件。
首先需要给固件添加标头。 打开终端,输入STM32_SigningTool_CLI.exe -bin LED_FSBL.bin -nk -of 0x80000000 -t fsbl -o Project-trusted.bin -hv 2.3 -dump Project-trusted.bin 注意根据自己的路径进行修改。 出现下面的打印就代表成功了。
在文件夹里面可以找到Project-trusted.bin这个文件
启动STM32CubeProgrammer,在这里选择对应的外部Flash下载算法
连接板卡
选择输出的Project-trusted.bin文件,下载地址填写0x70000000,点击Start Programming,等待下载完成
将BOOT0和BOOT1都拨到左边,点击复位即可看到小灯闪烁。
|
【评分有奖】STM32 AI Sidekick聊天工具上线,快来体验一下吧!
F429I-DISC1体验报告(3) 画板线条绘制和调色功能的实现丨国庆开发板测评活动
F429I-DISC1体验报告(2) 按钮和弹窗GUI的简单交互设计丨国庆开发板测评活动
F429I-DISC1体验报告(1)久经沙场,锋芒依旧丨TouchGFX开发F429丨国庆开发板测评活动
有奖直播 | STM32U3新系列超低功耗MCU — 近阈值设计开启最佳能耗新纪元
有奖直播 | 基于STM32微处理器高实时高性能工业PLC控制器研发实战
《STM32U3线上课程》第三课
《STM32U3线上课程》学习笔记 低功耗芯片也大不同
《STM32U3线上课程》学习笔记第一课
有奖报名 | STM32全球线上峰会,全球STM32旗舰盛会即将启幕
微信公众号
手机版
很详细