这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 基于STM32F407的STM32通用BootLoader使用经验

共13条 1/2 1 2 跳转至

基于STM32F407的STM32通用BootLoader使用经验

高工
2022-01-27 17:18:51     打赏

背景:

在使用RT-Thread RTOS的时候发现官方提出了一种通用的BootLoader方案,支持F1和F4系列的芯片

硬件资源:

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

image.png


BootLoader概念

BootLoader是硬件启动的引导程序,是运行操作系统的前提

在操作系统运行之前或者用户代码运行之前的一小段代码,作用是对软硬件初始化与配置,为后续运行做好准备

在嵌入式系统中,整个系统的加载任务是由BootLoader负责完成的

BootLoader配置

根据官方文档:https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/,BootLoader的基本配置如下,加密压缩的配置可以不选。


                                                    硬件配置


选择芯片系列:stm32f4 ROM大小:1024KB RAM大小:192KB

串口输出引脚:PA9

支持SPI Flash PB14 (CS)   PB3(CLK)  PB4(MISO)  PB5(MOSI)

恢复出厂按键      PA0(WK_KEY)

请选择按键有效电平:高电平有效,芯片内部设置为下拉输入模式

                                                     分区表配置

分区名 所处设备 偏移地址 大小(KB)

app 片内Flash 0x40000 128

download 片内Flash 0x20000 128

factory 片内Flash 0x60000 128

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

image.png



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


烧录Bootloader

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



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


image.png


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


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


image.png


烧录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秒,即可进入恢复状态。




关键词: STM32F407     BootLoader    

院士
2022-01-27 23:19:10     打赏
2楼

了解


专家
2022-01-28 00:02:37     打赏
3楼

感谢楼主的分享,很实用了。


专家
2022-01-28 01:03:46     打赏
4楼

看一下


专家
2022-01-28 01:25:20     打赏
5楼

收藏


专家
2022-01-28 07:56:25     打赏
6楼

通用的,能减少许多繁琐的工作,挺好


专家
2022-01-28 08:15:26     打赏
7楼

学习


院士
2022-01-28 08:17:33     打赏
8楼

谢谢分享


专家
2022-01-28 08:18:13     打赏
9楼

谢谢分享


专家
2022-01-28 08:27:59     打赏
10楼

感谢分享


共13条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]