|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
跑飞的程序在执行一些错误操作之后,经常会
4 B% c+ _0 _( M" [: `0 @进入“死循环”,也就是常说的“死机”。通常采用“看
. r) @% _+ K6 A- g' f7 F门狗”技术使程序脱离“死循环”,“看门狗”技术可由1 ~3 ~! Q0 h3 J
硬件实现,也可由软件实现。硬件“看门狗”技术这里7 W" C# f1 U. R1 J' n. \
不再赘述,软件“看门狗”技术的原理是通过不断检
4 F4 p: O2 f1 R+ r1 Z C, C测程序循环运行时间,若发现程序循环时间超过最
: @9 j+ Q- \( ~* @7 D大循环运行时间,则认为系统陷人“死循环”,需要进 P* K. D8 N, g Q4 I% J* N
行出错处理。
" q# T N0 w: x' t$ R$ n& g在实际应用中,通常用定时中断服务程序定时
& C; X% V9 {. e/ J+ F$ G地检查主程序的运行情况。例如,在RAM区选择- -
/ W* n( U# ?" N0 U个字节作为软件看门狗寄存器,主程序每循环一次
[+ F! B: h9 X将该寄存器加1,定时器TO的中断服务程序每中断
; ~3 A/ u9 e6 S6 t2 E一-次将该寄存器减1并检查一次,如果程序执行正
( y' v( p/ ?1 j3 G常,看门狗寄存器不会改变或改变不大,如果看门狗$ ~# H, \* @+ N/ d( l$ Y- J4 }
寄存器发生了改变或改变很大,则说明系统陷入“死
/ s4 W' }8 n% S9 l X7 ^循环”,需要进行出错处理。( h# O3 `# A3 d' m, d
2 M8 B, o2 K2 E+ ?% H) Z
$ H* o9 b, p1 e& d T) V |
|