你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
查看全部评分
奏奏奏 发表于 2020-8-19 19:10 我刚好项目中也有bootloader 测试发现: 如果bootloader先初始化独立看门狗IWDG后,再跳转APP,而且APP里面 ...
butterflyspring 发表于 2020-8-19 17:06 测试一下主循环执行的时间,是不是最长的时间接近或者超过了看门狗的时间 ...
评分
查看全部评分
评分
查看全部评分
测试发现:
如果bootloader先初始化独立看门狗IWDG后,再跳转APP,而且APP里面没有初始化看门狗,就会像LZ这样不断重启
我给出的建议(解决方案)是:bootloader里面可以初始化独立看门狗,但要在跳转APP后面的顺序(就是说如果无法跳转到APP被迫留在bootloader中运行才开启独立看门狗),如果目的是APP运行阶段防止死机,对策是到了APP才初始化独立看门狗
原因是我在bootloader中 开启独立看门狗的用途是串口OTA(在线升级)过程中如果出现死机能够恢复到APP中运行,而不是说是APP运行阶段防止死机
谢谢回复!
我之前的做法就是在bootloader的最开始就做了跳转app的操作,如果没能跳转app,后面才会做各种初始化操作。但是app用到iwdg,还是会异常重启。
后来我想着死马当活马医,在跳转app之前,调用了HAL_DeInit(),发现居然好了,而我在跳转app前都没有做init操作。。
没有超过看门狗时间的,我看门狗时间设置的1.5秒,bootloader进入main后直接跳转app,app的main循环中也打印了一些后才重启,时间看起来确实和iwdg设置的时间匹配。