最近想测试看门狗的效果,想问问,怎么样子可以让程序跑飞?

http://bbs.eeworld.com.cn/thread-365328-1-1.html


先要注意,喂狗动作一定不能在中断或异常服务程序中进行,最好在是main主线程中一处(无操作系统),或一个低优先级的任务中(带操作系统)。

否者看门狗效果基本无效。

方法如下:
1. 代码模拟方式 :在某个函数内部执行while(1);不喂狗,可以认为程序跑飞,看是否一会就硬复位了。
2. 野指针方式 :初始化指针变量,给一个不能访问的地址,如存储器空间中没有实际外设或存储器的地址,需要查找手册,比较容易找到。然后读写这个地址。一般会出现数据总线错误而进入异常,程序
跑飞。
3. 指针越界方式 :野指针的变化版,但更容易理解和出现。 在编写代码时,采用数组。读写数组数据时,有意让数组越界,也会导致同样的错误。这个很多童鞋都遇到过的,强力推荐

另外,不保证法2和法3的实际效果和理论效果一致。就看导致相应的异常服务程序是否会导致复位,一般不随便改写异常服务代码,它们都是默认做死循环的。跑到这里,程序就可以说是跑飞了。

程序跑飞,还有很多其他的原因和现象,无法全部列举和测试。但导致的结果都是一样的,所以解决的方法也基本都一样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值