|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
跑飞的程序在执行一些错误操作之后,经常会
( t$ l2 v# A) Z, n u, l; A进入“死循环”,也就是常说的“死机”。通常采用“看7 G+ \5 [6 d. U
门狗”技术使程序脱离“死循环”,“看门狗”技术可由4 E0 t( X% C5 g- C4 [" z1 t
硬件实现,也可由软件实现。硬件“看门狗”技术这里
, l1 L( X6 ?8 w; X) x$ [不再赘述,软件“看门狗”技术的原理是通过不断检
$ z7 ]5 [( ^' p% t测程序循环运行时间,若发现程序循环时间超过最; _- }+ ^1 [) N+ p& J+ z
大循环运行时间,则认为系统陷人“死循环”,需要进3 V6 v7 A7 k! K1 a
行出错处理。
" @2 ~ O6 f7 J7 M9 O9 E& J, u在实际应用中,通常用定时中断服务程序定时( R- N3 e6 @9 o; r+ L
地检查主程序的运行情况。例如,在RAM区选择- -
8 \& L9 h, S1 `# W* x个字节作为软件看门狗寄存器,主程序每循环一次
+ L A9 ]0 _, X; M: }. N# t将该寄存器加1,定时器TO的中断服务程序每中断
3 x7 A7 M9 Q4 W0 q/ g& R, c一-次将该寄存器减1并检查一次,如果程序执行正' D3 T: V: h8 X4 X: n
常,看门狗寄存器不会改变或改变不大,如果看门狗$ Z H W& M6 d, t8 O
寄存器发生了改变或改变很大,则说明系统陷入“死
9 f* N2 F: \2 z5 P循环”,需要进行出错处理。
. ~. m) p8 J# F$ @! x
& T s$ O( R! q+ Z9 c6 Q* Q: k& k, i2 c
|
|