请教:单片机跑飞后,怎样能从开始跑飞前的指令位置执...

2020-02-06 10:03发布

和别人讨论时,遇到一个问题:
看门狗可以解决单片机跑飞的问题,它是让单片机复位来解决的。但有些特殊的场合,操作过程是不允许重新再来一遍的,只能接着原来的操作往下进行,例如,假设一个机床正在切削加工一个东西,此时单片机跑飞了,如果通过看门狗使其复位,程序又会从开始运行,已经加工过的部分可能会被重复加工,所以单片机应该是能记下程序开始跑飞的位置,接着原来的操作进行。但这怎么实现呢,请高手指点。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
28条回答
hnzbding
1楼-- · 2020-02-09 07:57
.titrwh 发表于 2016-4-1 16:16
每完成一个步骤把指令更新到flash里面,重启后先看flash里面的状态

但是要是在某个步骤开始过程中间跑飞,即使从FLASH中可以判断出该步骤未完成,但也很难接着继续完成,还有,RAM中有些数据可能已经发生变化了
benson0
2楼-- · 2020-02-09 11:58
 精彩回答 2  元偷偷看……
mon51
3楼-- · 2020-02-09 16:28
这个问题。95年我们针对80C31+32kEPROM+32kRAM做过设计,每一个功能(入口设置一个ID号,然后保存MCU当前的寄存器值),上电后根据ID号跳转。。。。。。异常复杂。但最终无法做到完美接力运行。
hnzbding
4楼-- · 2020-02-09 17:57
mon51 发表于 2016-4-21 11:16
这个问题。95年我们针对80C31+32kEPROM+32kRAM做过设计,每一个功能(入口设置一个ID号,然后保存MCU当前的 ...

是个解决方案,离目标更近了
mon51
5楼-- · 2020-02-09 18:39
hnzbding 发表于 2016-6-7 21:08
是个解决方案,离目标更近了

你无法保证MCU死机时RAM里的数据未被干扰破坏。
yoursnemo
6楼-- · 2020-02-10 00:34
RAM的数据不好控制的,如果MCU跑飞的话。

一周热门 更多>