|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
跑飞的程序在执行一些错误操作之后,经常会+ Q; X+ B, J* ]3 Q
进入“死循环”,也就是常说的“死机”。通常采用“看/ ]& G; {. A$ P+ N
门狗”技术使程序脱离“死循环”,“看门狗”技术可由3 Z4 y5 q8 `( l/ Q
硬件实现,也可由软件实现。硬件“看门狗”技术这里5 k7 i) C& E F( I3 K7 G5 J! {
不再赘述,软件“看门狗”技术的原理是通过不断检+ k8 f! U5 m5 v' r' u: s: u
测程序循环运行时间,若发现程序循环时间超过最& y: H9 u% P" r1 s1 Z5 h
大循环运行时间,则认为系统陷人“死循环”,需要进
) T" m% Z" `7 j! _7 o行出错处理。# Y! Z4 F" b. M) S3 c
在实际应用中,通常用定时中断服务程序定时. H. t5 U+ N" l! l) Z5 |0 F
地检查主程序的运行情况。例如,在RAM区选择- -4 w: N8 U, I+ W5 A' l
个字节作为软件看门狗寄存器,主程序每循环一次
% `& S. x8 m; p6 W3 W. _# b. J将该寄存器加1,定时器TO的中断服务程序每中断
; q* V# A3 {: n% Z0 f& ~. ]: [一-次将该寄存器减1并检查一次,如果程序执行正! n5 Y* d# |% x5 K2 A
常,看门狗寄存器不会改变或改变不大,如果看门狗9 D5 ?& }8 g, }" I& Y: x' _# \
寄存器发生了改变或改变很大,则说明系统陷入“死$ j, `9 K, x1 h5 U3 q( A! s
循环”,需要进行出错处理。# K0 m( s* o$ Z! Z, V- b1 n3 Q
9 B! b8 O- S9 V: n
" x' K2 q; q8 K/ B |
|