|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
跑飞的程序在执行一些错误操作之后,经常会& H0 o" v" C/ C2 c% M
进入“死循环”,也就是常说的“死机”。通常采用“看6 P5 X7 h ]& K3 ^" y C1 ^) y
门狗”技术使程序脱离“死循环”,“看门狗”技术可由
! \6 {$ e9 w8 ?' r硬件实现,也可由软件实现。硬件“看门狗”技术这里
' r5 [( J+ O7 p) s6 s不再赘述,软件“看门狗”技术的原理是通过不断检/ G- w' |6 n) ]
测程序循环运行时间,若发现程序循环时间超过最
! S+ ]' U% S3 H& ^- V4 W3 k大循环运行时间,则认为系统陷人“死循环”,需要进9 f( n) C. i4 X: [, ~; n5 S
行出错处理。% I# M% T6 t; }) |' u( b
在实际应用中,通常用定时中断服务程序定时
. ]3 k+ A2 b F; T地检查主程序的运行情况。例如,在RAM区选择- - J0 i! N. N5 q+ @; d
个字节作为软件看门狗寄存器,主程序每循环一次1 n0 P, G9 _6 D2 F, C7 R
将该寄存器加1,定时器TO的中断服务程序每中断- z) g- f2 f& @
一-次将该寄存器减1并检查一次,如果程序执行正" S+ I$ w( T; L. l: Y3 Z, C3 j+ Q
常,看门狗寄存器不会改变或改变不大,如果看门狗' H5 U* k5 \! N+ {& ^
寄存器发生了改变或改变很大,则说明系统陷入“死
4 M+ _- o3 z5 A( F _3 {- C/ j循环”,需要进行出错处理。: ^8 Q8 ~" I! r
) H* ^2 G- {/ D& b1 }" x
S3 H: W" {" ]* R |
|