集成 发表于 2022-8-25 10:53

如何有效的让单片机死机

单片机死机或程序跑飞是不定时的出现,在检测时需要单片机程序跑飞来检测后果,有什么办法让单片机有效的死机或程序跑飞???

ayb_ice 发表于 2022-8-25 13:33

按键后将PC设置为随机数

yjmwxwx 发表于 2022-8-25 21:09

本帖最后由 yjmwxwx 于 2022-8-25 21:13 编辑

多出或者多入一次栈就行了,只多一个寄存器,单片机运行一段时间就自己挂了

dwdsp 发表于 2022-8-26 08:38

禁用中断,超界向数组写数据,就挂了

zhxzhxzzhhxx 发表于 2022-8-26 22:57

这种测试,一点意义都没用

William1994 发表于 2022-8-28 11:21

你测试过了,实际挂的方式和你测试的不一样。
比如PC改成一个随机数,结果是伪随机的。翻来覆去就是那几个数。RAM短期掉电会残留大部分内容都是不变的。
多入一次栈或者多出一次栈,因为调用树的上下文寄存器刚好是0,每次都跳转到了0x0000~0x00FF的随机一处,而你擦flash的代码在0x2132地址,一直不会跳过去。
数组越界也是同样的道理。

要测试后果,
对于IO,直接所有的IO都设置成push-pull输出,都输出高,都输出低。
对于SPI下的设备,... ...

xxdcq 发表于 2022-8-28 12:50

死机是没得规则的,你这样人为让它死机还是给了它规则,没实际意义

zwsam 发表于 2022-8-29 05:20

chineseboyzxy 发表于 2022-8-29 08:09

打高压静电打死它
页: [1]
查看完整版本: 如何有效的让单片机死机