STM32 从APP跳入BootLoader问题

在这次项目中,程序从APP跳入BootLoader主要遇到两个问题,做个记录:

1、现象:跳入BootLoader后还没开始升级便重启

      原因:APP程序中开启了独立看门狗,当跳入BootLoader时看门狗也继续计时,但并没有重新喂狗,因此导致跳入BootLoader后软件Reset重新进入APP;同时,这个reset也会导致蓝牙BAT引脚和PWR引脚短暂掉电,与APP连接的BLE也断掉,导致升级数据传输失败的问题。

     解决办法:在BootLoader中添加喂狗程序或跳入BootLoader前把看门狗停掉(不过我开的独立看门狗暂时还没找到停掉的办法.......)

 

2、现象:从APP跳入BootLoader后,升级过程中程序死掉,打断点发现每次卡死在启动文件中的

                 B

                 ENDP

原因:跑到B ENDP一般是因为程序中发生了中断但却找不到中断入口函数,即没有写中断处理函数。排查本项目,发现APP中开启了一个IO口外部中断,但是跳入APP前没有DeInit回IO口的状态,当程序跳到BootLoader时IO口发生了外部中断但却找不到对应的处理函数因此出错。

解决办法:在APP跳入BootLoader前最好把中断都Disable掉,特别是配置了中断的IO口,记得DeInit以恢复默认状态

 

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值