首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32的BootLoader 从SD卡更新固件

STM32的BootLoader 从SD卡更新固件



1. 前言
2. 初识BootLoader
2.1     百度百科的BootLoader
2.2     BootLoader的简单理解
2.3     BootLoader的作用
3. BootLoader预备知识
3.1     复位序列
3.1.1      栈指针
3.1.2      复位向量
3.2     重定位中断向量表
3.2.1      STM32的中断向量表
3.2.2      设置中断向量表偏移
3.3     分散加载文件相关
3.3.1      C语言的函数地址
3.3.2      BootLoader占用的ROM
3.3.3      修改ROM起始地址
3.4     hex文件和bin文件
3.4.1      hex文件
3.4.2      bin文件
3.5     Bin文件生成
4. 分几步实现BootLoader
4.1     FAT文件系统
4.2     读写Flash程序
4.2.1      Flash写入步骤
4.2.2      读写Flash调用的库函数
4.2.3      实现Flash读写
4.3     跳转到新程序运行
4.3.1      跳转到复位向量
4.3.2      App开始运行
5. Bootloader具体流程
5.1     主函数流程
5.2     BootLoader流程
5.3     跳转到新程序流程
附录A主函数
附录B更新说明
参考文献


1. 前言自从几个月前接触到有Bootloader这回事,就有一种强烈的冲动,想写一个BootLoader出来。很快在飞思卡尔的Cortex-M4单片机上实现,已经是好几个月前的事情了。然后关于BootLoader的事搁在一边好久了,这次弄个STM32BootLoader出来,Cortex-M3的,顺便发表下博客,跟大家分享一下。
。。。
又过了大半年了吧,慢慢对BootLoader的认识也有点长进啦。特别是跟网友讨论后发现BootLoader的实现还是需要靠BootLoader程序和App程序的配合才能正常使用。在这里特别感谢网友cary_yingj ,对本BootLoader的研究后发现App程序需要重定位中断向量表,才能正常工作。
在其他网友的反馈下,本人准备再将次文档完善,把不够详细的地方写得再详细,并且力求通俗易懂一点。希望对学习BootLoader的同学们有所帮助。
返回列表