每一次在使用没有内部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的兼容性,当然,太老的是肯定兼容不了的。 当boot rom做好相关外设初始化之后,它会将nor flash里面的FSBL部分的程序复制到sram里面,这时候我们可以在这里对xspi/xspim外设做二次初始化,这里就可以根据使用的nor flash配置不同模式,确保在app部分能跑到最佳性能。 扯远了,下面我们就将下载程序到外部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都拨到左边,点击复位即可看到小灯闪烁。 |
【STM32N6570-DK评测】1.你好N6
我是jundao721,我的2024年总结
【资料合集】STM32N6超全资料合集(定期更新)
【STM32N6570-DK评测】2.最简点灯
我是LTLT,我的2024年总结
【直播回放】STM32N6与ST边缘AI生态系统技术研讨会
【STM32N6真来了!还热乎】看直播、猜特性、领板卡!
【速来预约】STM32 全球线上峰会 | 探索嵌入式AI的缤纷万花筒
【新品发布】STM32N6,在工业和消费类应用中实现全新性能水平
有奖直播 | 解析STM32U0 新一代超低功耗入门级MCU