我已将所有代码附在以下链接中;请查看。
有两个程序 A 和 B ; Prog A是应用程序映像 Prog B支持 bootload program
Prog A的内存地址分配给 0x08004000
重置后,当按钮按下时,MCU进入Prog B( 0x08000 000 )并切换LED 1s
然而,当按钮未按下时,MCU似乎没有运行程序 请检查附件中的调试日志。 我在这里缺少什么?
答案 0 :(得分:0)
Bootloader需要精确设置时钟和中断。如果Bootloader启用时钟,那么Application不应再做同样的事情。 在Bootloader中最好的做法是重置SYS TICK Timer,在跳转到应用程序之前禁用所有外设中断。
您可能想要考虑的另一件事是引导程序的大小。如果它超过4000(H)字节,那么您的应用程序将无法启动。