|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
跑飞的程序在执行一些错误操作之后,经常会
! E5 q( ?& O- [; F' d4 p, \ o/ h6 A进入“死循环”,也就是常说的“死机”。通常采用“看0 J) W% o% d u/ K# s c
门狗”技术使程序脱离“死循环”,“看门狗”技术可由0 L8 m% g+ R8 L) z- R% a" A
硬件实现,也可由软件实现。硬件“看门狗”技术这里
7 x5 g# ]; o3 L9 E1 r2 b不再赘述,软件“看门狗”技术的原理是通过不断检2 v/ F: i! x5 f* N8 u
测程序循环运行时间,若发现程序循环时间超过最& Q4 Y7 j" M/ F" G" S
大循环运行时间,则认为系统陷人“死循环”,需要进! t8 q, B# h0 q
行出错处理。
. X }8 h; S& ? s9 T' z* W9 ^5 l在实际应用中,通常用定时中断服务程序定时/ F3 [$ e5 l1 }3 y( N' e+ Z
地检查主程序的运行情况。例如,在RAM区选择- -
' x0 t1 Z6 w+ [" T# J5 @1 f2 I- z/ j个字节作为软件看门狗寄存器,主程序每循环一次
6 |; x; e! N) H ^! V5 C将该寄存器加1,定时器TO的中断服务程序每中断+ \& m6 i% V2 C" b$ c1 ^( u+ N
一-次将该寄存器减1并检查一次,如果程序执行正
+ d4 {7 p3 ~2 a" A" A9 {& Y- v常,看门狗寄存器不会改变或改变不大,如果看门狗
+ d. }: a8 N, a/ T8 { [$ F寄存器发生了改变或改变很大,则说明系统陷入“死3 C' u# l3 V8 ?+ M, m
循环”,需要进行出错处理。
7 n% x7 B/ v5 _; t# P3 {7 `) a, O+ D/ O. y6 S3 O
4 A% j6 G: w$ l2 s( r
|
|