STM32_bootloader流程解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

STM32 bootloader 流程解析

stm32在内部有硬件bootloader,但那是在生产烧录时使用的。

stm32在flash开头的4K程序空间是可以设置成防擦除的,是天生的bootloader存放区。

我的思想是在开头的4K空间(0x8000000-0x8000FFF)放置一个独立程序,主程序编译地址

放在0x8001000后端。

上电时,bootloader程序先判断是否满足升级条件(IO电平判断),然后选择是循环等待

升级,或者直接跳转到主程序区。

现给出流程如下,大家可交流探讨。

BOOT流程.JPG (11.13 KB)

boot程序流程

程序流程详细.JPG (35.79 KB)

程序详细流程

说的太过简单笼统了,

经过一个来星期的调试,总算完成了这个东西..

调试中发现一个问题,在已经开始执行BOOT程序之后,再进行切换到应用程序时,有些中断会出问题.

而在BOOT启动时(所有软硬件操作都没开始)马上切换到应用程序就不会出问题.

一直没找到怎么解决.

最后只好把IAP程序和应用程序合在一起使用,在上电后的短时间内执行IAP,无响应就进入应用程序,没有所谓的BOOT区了.

stm32在flash开头的4K程序空间是可以设置成防擦除的,是天生的bootloader存放区。我的思想是在开头的4K空间(0x8000000-0x8000FFF)放置一个独立程序,主程序编译地址放在0x8001000后端。

楼主所说的stm32在flash开头的4K程序空间是可以设置成防擦除的,如何设置?而且主程序编译地址放在0x8001000后端,如何实现啊,望指教!!!

我最近也在做类似的事情,但是在跳转到功能程序出问题了。功能程序应该如何设置?

如果一个程序不从默认的Flash地址开始存储,需要设置哪些东西,在Keil 开发环境中。谢谢!

相关文档
最新文档