由在强干扰下,CPU复位引发的思考 .......
由在强干扰下,CPU复位引发的思考:
1、强干扰下,CPU为啥会复位?一般的原因是程序“飞”了,由WDT拉了回来!由此带来问题2;
2、程序为啥会“飞”了?是因为指向当前程序地址的指针在干扰下没按套路出牌,乱出牌了,于是程序就飞了!由此带来问题3!
3、所谓的指针,无非是CPU里的一个RAM而已,这个RAM被干扰搞乱了 ...... 既然这个RAM会被干扰搞乱,毫无疑问,其他的RAM也会被搞乱(如...... 配置寄存器),而且目前没有证据说程序地址指针会比别的RAM更脆弱,一旦干扰,它先乱,由此带来问题4;
4、如果.......程序指针没乱(或者说没乱出WDT的控制范围),但其他RAM(如那些配置外设的寄存器,ARM的这些寄存器简直如大海一样让人站在面前有种无比渺小的感觉!)乱了 ...... 我的天,这些寄存器我就初始化时配置了一下,那么它们一旦乱了,某些外设很可能就从此不能用了,这个岂不是麻烦大了?或者又如果某些外设,本来没用它,但一不小心被干扰给“激活”了,那.......????
5、......如果遇到问题4,我们怎么办?
提问者:lksas
地点:-
浏览次数:6751
提问时间:06-05 15:30
我有更好的答案
- 17条回答
-
影子王子
06-14 23:10
个人推测哈,不保证对:如果外部干扰强度已经到达可以导致RAM出错,那么MCU的Reset脚一定首先在强干扰面前起作用而使整个系统复位,从而使系统各设置数据重新执行写入。
-
60user190
06-15 02:36
寄存器(PC指针通常就是一寄存器)或RAM确实容易受干扰,但程序一般放置在ROM中(或从ROM中复制)而ROM一般不太容易被干扰。系统出错后必须及时恢复(也就是所谓的“由WDT拉了回来”),而通常此过程会重新初始化相关的寄存器和RAM中的内容。
-
nvywyerwer
06-11 13:41
这个,如果遇到确实难搞了,我觉得还是坐等老鸟来解答吧。
-
zsyat
06-14 15:02
如果遇到四,把外部干扰找到
-
改名字真烦
06-05 21:33
先谈3,乱一般是PC指针乱了开始的,这可不是普通的RAM,而是特殊寄存器
-
ccuu
06-13 04:47
楼主的这个问题不错,一般情况下,干扰引起单片机复位的原因大部分是电源和地中出现脉冲信号导致,所以要从根本上解决还是要找到源头,至于你所说的乱的情况,那就千奇百怪,很难分析的。
-
yahan52
06-08 11:51
即使PC没乱,但程序代码是要先调入寄存器/累加器或RAM后才能被执行,此时代码被干扰发生改变后执行结果将不可知,事实上,绝大多数的程序跑飞并非由于PC值本身被干扰出错,而是程序或数据在被调入处理器执行的过程中出错。
-
wlyc1
06-11 14:41
之所以提出该问题,是因为我在实际干扰测试中,偶尔发现有CPU没复位,程序绝大部分功能也还正运行,但某些外设(如AD、UART)出现了异常 ......
-
lizacc
06-06 04:04
外设出问题而处理器正常也是常见的,特别是IO的闩扣效应。
-
路交汇处
06-15 12:39
应该是配置寄存器出错了,因为在不断电复位CPU后恢复......
-
lsajdskalnjd
06-06 16:36
未必,实际情况是多样的,不能只说其中的一种。
-
上海鼎廷
06-15 05:15
偶尔发现有CPU没复位,程序绝大部分功能也还正运行,但某些外设(如AD、UART)出现了异常
某些外设(如AD、UART)是由对应的控制寄存器管理,估计当这些寄存器受干扰变味时就这样了。
-
胡政鹏测试9
06-12 13:08
在遇到如类似问题时,该如何处理?总不能头疼医头、脚疼医脚吧?
除了硬件上强化抗干扰,软件上只有当这些寄存器出问题时通过判断后重写入了。
-
viczeng
06-10 16:03
强干扰用抗干扰强的片子
-
1234kkk
06-14 06:55
不如平时CPU空闲的时候,定时把所有能检查的配置寄存器都检查一遍?
-
BEONEWENHUI
06-07 09:25
重点还是在电源,如果强干扰下还能保证电源的干净度和稳定度,死机会大大的减少。
-
深圳博英特科技有限公司
06-10 13:50
学习了! 加个金属罩? :shutup: