EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
程序代码如下
4 V. q1 S# @7 i& M# i, M#include "s5pc100.h" typedef struct {9 r% r% k! Z4 K% z5 m0 f) u( N. P F* J3 Q
unsigned int WTCON;+ V6 v7 b+ r. [5 B7 {/ D
unsigned int WTDAT;
4 N/ Y' U! I% F) Sunsigned int WTCNT;
: [; m7 `' u, T0 ~* xunsigned int WTCLRINT;$ g4 E+ t' t' Y1 g6 d: t
+ E/ ?0 H& U# n
}watchdog;* |' T3 e% y w- ]: I
#define WATCHDOG (*(volatile watchdog *)0XEA200000) void watchdog_unit()
8 \5 O8 a( k) e2 I8 |( z{
/ Z' G! u* J1 M# k- x" cprintf("flag1\n");8 Q9 L5 P# e* h
WATCHDOG.WTDAT = 0XFFFF;
% W4 _# ]3 i4 X4 B% H+ u8 B+ yWATCHDOG.WTCON = (0XFF<<8 | 1<<5 | 1<<3 | 0<<2 | 1);- u$ p7 O9 q7 p; I
printf("flag3\n");
% W) H9 i- {- i- UWATCHDOG.WTCNT = 0XFFFF;
$ x) S1 Q( a- D5 |2 u2 b9 o3 hprintf("in watchdog\n");2 ~" S4 t6 Y* i) C! Y
} int main(void)
) o3 `* C8 _# m{
9 x! d9 ]- l) D' K: Zwatchdog_unit();
- A7 D6 Q: w* }- e: g! T' K# N} 0 v1 a# ?, X$ t* k4 y) Q" |# h
8 R& X5 N" O' v9 r6 u$ d7 h
: {2 N. Z% U* y% _ v8 m8 N+ A
为什么该程序会在watchdog_unit();函数中一直执行。
# E1 _8 `) h {如果在watchdog_unit();语句后加上while死循环,看门狗正常工作- Q/ a* g; N: v" ?5 m W: U' O
int main(void)
8 ^1 N' E: @# H% {. x* ?) P" Q1 [{! ?" O& g% F# v5 t+ ^
watchdog_unit();% [- H5 f& e. t! ~
while(1);$ H& B8 d" [9 @9 _& Z9 r
} : d6 ^$ r: ~) i6 d& W }8 |; d! V2 i
|