0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于STM32F4和RT-Thread通用BootLoader使用经验

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 作者:黄工的嵌入式技术 2020-02-27 17:23 次阅读

硬件资源

正点原子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。

关于ST-Link知识,推荐阅读我的文章:【专栏】ST-Link资料

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

要注意的是,其中的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秒,即可进入恢复状态。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DRAM
    +关注

    关注

    40

    文章

    2310

    浏览量

    183433
  • 开发板
    +关注

    关注

    25

    文章

    5032

    浏览量

    97369
  • RT-Thread
    +关注

    关注

    31

    文章

    1285

    浏览量

    40074
  • 正点原子
    +关注

    关注

    9

    文章

    27

    浏览量

    9906
收藏 人收藏

    评论

    相关推荐

    意法半导体STM32支持RT-Thread开源4+服务,助力企业用户加速嵌入式开发

    嵌入式系统和物联网技术的快速发展使得企业对高效、稳定的嵌入式解决方案需求愈加迫切。STM32加入RT-Thread开源4+服务生态,这一合作将帮助STM32的客户加速项目实施,推动嵌入
    的头像 发表于 11-26 01:04 303次阅读
    意法半导体<b class='flag-5'>STM32</b>支持<b class='flag-5'>RT-Thread</b>开源<b class='flag-5'>4</b>+服务,助力企业用户加速嵌入式开发

    RT-Thread上CAN实践

    开箱测试RT-Thread官方已完成了对英飞凌XMC7200EVK的移植,通过shell可以看到做好了uart3的console。本文将介绍如何进行RT-ThreadCan移植。接下来我们要完成CAN_FD的驱动移植,并正常启动RT-T
    的头像 发表于 11-13 01:03 1136次阅读
    <b class='flag-5'>RT-Thread</b>上CAN实践

    开源共生 商业共赢 | RT-Thread 2024开发者大会报名启动!

    亲爱的RT-Thread开发者我们很高兴地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread开发者大会)正式启动报名!2024RT-Threa
    的头像 发表于 10-29 08:06 350次阅读
    开源共生 商业共赢 | <b class='flag-5'>RT-Thread</b> 2024开发者大会报名启动!

    2024 RT-Thread全球巡回 线下培训火热来袭!

    亲爱的RT-Thread社区成员们:我们非常高兴地宣布,2024年RT-Thread全球开发者线下培训即将拉开帷幕!24年全球巡回培训将覆盖超10座城市及国家,为开发者提供一个深入学习RT-Thread嵌入式开发的绝佳机会。
    的头像 发表于 08-07 08:35 1150次阅读
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 线下培训火热来袭!

    GD32F427 bootloader添加rt-thread系统后,跳转到app没有执行main()函数是怎么回事?

    MCU:GD32F427 bootloader是自己写的 裸机使用没问题,可以正常转跳到APP上,执行main() 在APP上移植了rt-thread操作系统 启动的时候可以打印出logo,但是
    发表于 07-11 06:31

    RT-Thread 新里程碑达成——GitHub Star 破万!

    RT-Thread实时操作系统开源项目在GitHub上的star数量突破一万!截止发文,RT-Thread作为实时操作系统在业界Star数量排名第一!仓库地址:https://github.com
    的头像 发表于 07-04 08:35 465次阅读
    <b class='flag-5'>RT-Thread</b> 新里程碑达成——GitHub Star 破万!

    6月6日杭州站RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    嵌入式软件工程师郭占鑫老师为您讲解有关技术知识和实践经验。通过本次workshop能深入理解RT-Thread专业版与混合部署的潜力,在RK3568平台上提升系统实时
    的头像 发表于 05-28 08:35 437次阅读
    6月6日杭州站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    5月16日南京站RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    嵌入式软件工程师郭占鑫老师为您讲解有关技术知识和实践经验。通过本次workshop能深入理解RT-Thread专业版与混合部署的潜力,在RK3568平台上提升系统实
    的头像 发表于 05-01 08:35 357次阅读
    5月16日南京站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread混合部署Workshop北京站来啦!

    4月25日,下午我们将在北京举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Threa
    的头像 发表于 04-19 08:34 435次阅读
    <b class='flag-5'>RT-Thread</b>混合部署Workshop北京站来啦!

    4月25日北京站RT-Thread线下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我们将在北京举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Threa
    的头像 发表于 04-16 08:35 415次阅读
    <b class='flag-5'>4</b>月25日北京站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    4月10日-深圳-workshop】RT-Thread带你探索混合部署新模式

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread
    的头像 发表于 04-04 08:34 335次阅读
    【<b class='flag-5'>4</b>月10日-深圳-workshop】<b class='flag-5'>RT-Thread</b>带你探索混合部署新模式

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread
    的头像 发表于 03-27 11:36 813次阅读
    <b class='flag-5'>4</b>月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread
    的头像 发表于 03-27 08:34 525次阅读
    <b class='flag-5'>4</b>月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    就在本周四!探索RT-Thread混合部署新模式!

    嵌入式软件工程师郭老师为您讲解有关技术知识和实践经验。通过本次workshop能深入理解RT-Thread专业版与混合部署的潜力,在RK3568平台上提升系统实时性
    的头像 发表于 03-20 08:34 541次阅读
    就在本周四!探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    恩智浦半导体正式加入RT-Thread全球合作伙伴计划!

    前不久,恩智浦半导体正式加入RT-Thread全球合作伙伴计划,成为RT-Thread高级会员合作伙伴。同时,RT-Thread现已成为恩智浦注册合作伙伴(RT-Thread| 简介合
    的头像 发表于 03-14 10:40 613次阅读
    恩智浦半导体正式加入<b class='flag-5'>RT-Thread</b>全球合作伙伴计划!