应用程序编程(IAP)中的STM32,自定义引导加载程序

时间:2016-11-01 14:47:33

标签: microcontroller stm32 bootloader

我已将所有代码附在以下链接中;请查看。

有两个程序 A B ; Prog A是应用程序映像 Prog B支持 bootload program

Prog A的内存地址分配给 0x08004000

重置后,当按钮按下时,MCU进入Prog B( 0x08000 000 )并切换LED 1s

然而,当按钮未按下时,MCU似乎没有运行程序 请检查附件中的调试日志。 我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

Bootloader需要精确设置时钟和中断。如果Bootloader启用时钟,那么Application不应再做同样的事情。  在Bootloader中最好的做法是重置SYS TICK Timer,在跳转到应用程序之前禁用所有外设中断。

您可能想要考虑的另一件事是引导程序的大小。如果它超过4000(H)字节,那么您的应用程序将无法启动。