为了防止hardfault_handler影响工作,在里面添加复位代码可行吗?

2019-07-21 05:11发布

为了防止程序意外进入hardfault_handler 停止工作,在里面添加                __set_FAULTMASK(1);    NVIC_SystemReset();     使其直接复位,是否可行?

多谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
玻璃之城2046
1楼-- · 2019-07-21 10:40
 精彩回答 2  元偷偷看……
323232
2楼-- · 2019-07-21 16:30
找到进入hardfault_handler的原因,从代码源头上解决问题
你这样写肯定还是有问题的。自己百度一下吧,怎么查找错误代码
玻璃之城2046
3楼-- · 2019-07-21 21:37
323232 发表于 2019-2-21 08:32
找到进入hardfault_handler的原因,从代码源头上解决问题
你这样写肯定还是有问题的。自己百度一下吧,怎 ...

查找问题根源肯定要查,我说的是长期运行而且不能加看门狗,下下策。
323232
4楼-- · 2019-07-21 23:28
进入这个中断是因为代码里某部分写错了....比如某个数组的长度是20,你用了a[50],这样会进入这个中断。而受外界影响而跑飞才会被看门狗复位,如果不能加看门狗,那必然对外界环境的要求要高一点。一份好的代码基本上是不需要看门狗的
玻璃之城2046
5楼-- · 2019-07-22 01:28
323232 发表于 2019-2-21 08:41
进入这个中断是因为代码里某部分写错了....比如某个数组的长度是20,你用了a[50],这样会进入这个中断。而 ...

大哥咱别杠了行不
我刚已经说了肯定要尽量查找原因,这个方法只是为了以防万一万全之策。再说了除了软件,外部环境电磁干扰、电压不稳定等等都会引起这个错误,所以这个方法只是“下下策”,以防万一!
玻璃之城2046
6楼-- · 2019-07-22 05:37
 精彩回答 2  元偷偷看……

一周热门 更多>