0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于STM32F407单片机上使用通用的BootLoader经验分析方案

基于STM32F407单片机上使用通用的BootLoader经验分析方案

来源: elecfans
2021-08-23
类别:工业控制
eye 8
文章创建人 拍明

原标题:基于STM32F407单片机上使用通用的BootLoader经验分析方案

  因为在使用RT-Thread RTOS的时候发现官方提出了一种通用的BootLoader方案,支持F1和F4系列的芯片,正好手头有板子便试着用了下,顺便给大家分享一下经验总结吧。

  硬件资源

  正点原子stm32f407zgt6探索者开发板,片上Flash(ROM)大小为1024KB,RAM大小为192KB,板载一个SPI Flash W25Q128。

  


  BootLoader配置

  根据官方文档:https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/,(因为微信无法插入外部链接,请复制至外部浏览器打开)BootLoader的基本配置如下,加密压缩的配置可以不选。

  


  上述的分区表以及bootloader所占空间可以用下面的图表示,偏移地址的概念为从0x08000000开始偏移。flash空间的前128KB用来存放Bootloader固件,因此排在BootLoader之下的download分区的起始地址为0x08020000。

  


  生成Bootloader固件,固件会自动发送到自己的邮箱。

  烧录Bootloader

  将得到的Bootloader固件通过STM32 ST-LINK Utility.exe 烧录到片上flash。要注意的是,烧录的起始地址为0x0800000。

  


  烧录完成后串口工具会输出一下信息:

  


  要注意的是,其中的NJUST字样是自定义的,可以在bootloader生成的页面自行定义。两个CRC32的error信息可以忽略,因为此时的flash中并没有包含分区表,分区表信息需要我们通过烧录app程序完成初始化配置。

  FAL分区表中的onchip_flash为片上flash空间,起始地址为0x08020000,扇区大小为128KB。

  


  烧录app程序和打包

  参考官方文档:https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/(因为微信无法插入外部链接,请复制至外部浏览器打开)

  烧录出厂固件

  出厂固件的keil编译相关设置同app程序一样,中断向量表偏移地址也是一样的。在制作出厂固件app_factory时,需要将keil生成的bin用ota打包器进行打包,打包器的固件分区名为app,固件版本为1.0.0,然后将打包生成的app_factory.rbl改后缀名为app_factory.bin,最后使用st-link-utility将修改后缀名的app_factory.bin烧录到Flash的0x08060000地址即可。要注意,不可以直接把keil编译的bin文件直接下载到factory分区,因为此时的bin并没有app的头信息,这个头信息需要由OTA打包器打包后才能添加。

  恢复出场固件的方法:按住WK_UP按键的同时按下复位按键,保持WK_UP按键处于按下状态10秒,即可进入恢复状态。

  


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: STM32F407 BootLoader

相关资讯

方案推荐
基于MC33771主控芯片的新能源锂电池管理系统解决方案

基于MC33771主控芯片的新能源锂电池管理系统解决方案

AMIC110 32位Sitara ARM MCU开发方案

AMIC110 32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于TI公司的AM437x双照相机参考设计

基于TI公司的AM437x双照相机参考设计

基于MTK6580芯片的W2智能手表解决方案

基于MTK6580芯片的W2智能手表解决方案