|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
跑飞的程序在执行一些错误操作之后,经常会3 ]6 a3 @. W( a5 Y2 o5 b
进入“死循环”,也就是常说的“死机”。通常采用“看
! Q/ N6 f1 P' i, S门狗”技术使程序脱离“死循环”,“看门狗”技术可由
5 x! O0 Q* M x7 G0 E. |- \0 P硬件实现,也可由软件实现。硬件“看门狗”技术这里/ C* Q$ Q/ Q0 W
不再赘述,软件“看门狗”技术的原理是通过不断检
, j% [/ u- U1 d, R9 \测程序循环运行时间,若发现程序循环时间超过最
" U9 ~0 }& ^8 h大循环运行时间,则认为系统陷人“死循环”,需要进& O" f) u! V [- {7 p) z% s- C
行出错处理。, V- h4 G2 H% ^7 P
在实际应用中,通常用定时中断服务程序定时' @9 x6 B0 q; a( v1 S
地检查主程序的运行情况。例如,在RAM区选择- -
% V5 z) Z" \' h j个字节作为软件看门狗寄存器,主程序每循环一次
0 b, v/ U" D8 K) w+ O* I将该寄存器加1,定时器TO的中断服务程序每中断
" ]% B9 Q* q3 V: j; r一-次将该寄存器减1并检查一次,如果程序执行正, h+ ?) s" l% t( S( B8 f
常,看门狗寄存器不会改变或改变不大,如果看门狗! E3 c4 ^2 k0 h" J) x6 o
寄存器发生了改变或改变很大,则说明系统陷入“死
: I) I! k5 b6 G* P% g u/ Z- r循环”,需要进行出错处理。
; h1 ~* q T" t+ s2 M& F7 W* R2 N' w4 Z& _) Y M5 Z# J
2 f3 `3 S8 z. @8 T( U/ z5 w
|
|