OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4937|回复: 7

看门狗和booloader同时加入,不能跳转bootloader的情况

[复制链接]

17

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2020-7-16
在线时间
34 小时
发表于 2020-11-25 14:48:15 | 显示全部楼层 |阅读模式
2金钱
当前运行思路: 看门狗2s,经过测试具体为1883ms,这种情况不能进入bootolader当中。(进入bootloader是在while中检查标志位),如果将看门狗的时间调到2232ms时就能够跳转bootloader,初步结论是:在跳转bootloader时,看门狗在计时,没有喂狗导致单片机复位(已经验证过)void SoftReset(void)
{
  NVIC_SystemReset();
  __DSB();  
        while (1);
}  

为什么跳转bootolader需要这么长时间,就剩下这段代码他的代码执行时间很长吗?有大佬指点一下为什么或者检查思路吗?

经过测试红框当中的代码执行时间很短

经过测试红框当中的代码执行时间很短

最佳答案

查看完整内容[请看2#楼]

经过测试该代码执行时间如图所示,PSIZE = 8. 典型值为2S,与测试结果基本吻合。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2020-7-16
在线时间
34 小时
 楼主| 发表于 2020-11-25 14:48:16 | 显示全部楼层
经过测试该代码执行时间如图所示,PSIZE = 8. 典型值为2S,与测试结果基本吻合。
12321321321321312.png
tek00071.png
回复

使用道具 举报

34

主题

252

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
473
金钱
473
注册时间
2020-5-11
在线时间
217 小时
发表于 2020-11-25 15:26:32 | 显示全部楼层
跳转bootloader时间很短的,我前段时间搞的iap远程升级中也有看门狗,一秒一次,但是没有出现这种问题,我用按键测试过跳转,按下直接 就跳转了。
我在application程序中是这样写的
__set_FAULTMASK(1);                //关闭所有中断
NVIC_SystemReset();

先关中断,再复位,可以试试
回复

使用道具 举报

17

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2020-7-16
在线时间
34 小时
 楼主| 发表于 2020-11-25 15:57:08 | 显示全部楼层
本帖最后由 wangzhijiang 于 2020-11-25 16:15 编辑
asshole 发表于 2020-11-25 15:26
跳转bootloader时间很短的,我前段时间搞的iap远程升级中也有看门狗,一秒一次,但是没有出现这种问题,我 ...

已经试过了还是不行,我试试关狗子的方法,硬件看门狗关不了除非下载别的没有看门狗的代码!!!
回复

使用道具 举报

17

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2020-7-16
在线时间
34 小时
 楼主| 发表于 2020-11-25 15:57:59 | 显示全部楼层
本帖最后由 wangzhijiang 于 2020-11-25 16:15 编辑
wangzhijiang 发表于 2020-11-25 15:57
已经试过了还是不行

我试试关狗子的方法,硬件看门狗关不了除非下载别的没有看门狗的代码!!!
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-11-25 16:49:55 | 显示全部楼层
跳转肯定不止你那些代码的执行时间,肯定要长于你列出的那些代码。
回复

使用道具 举报

17

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2020-7-16
在线时间
34 小时
 楼主| 发表于 2020-11-25 17:10:57 | 显示全部楼层
三叶草 发表于 2020-11-25 16:49
跳转肯定不止你那些代码的执行时间,肯定要长于你列出的那些代码。

找到原因了:贴出来注意避免踩坑,图中第一个Reset是上电复位,然后发送开始跳转指令,其中代码段打印“开始”没有运行到“结束”看门狗复位,导致无法正常跳转
123219.png
1234.png
回复

使用道具 举报

17

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2020-7-16
在线时间
34 小时
 楼主| 发表于 2020-11-25 17:12:07 | 显示全部楼层
wangzhijiang 发表于 2020-11-25 15:57
我试试关狗子的方法,硬件看门狗关不了除非下载别的没有看门狗的代码!!!

找到原因了,请查看!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-14 13:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表