EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
程序代码如下
+ Y, W( \" D$ ]" \#include "s5pc100.h" typedef struct {% e4 C' H* ~: {5 o3 i
unsigned int WTCON;4 O" \+ X) y+ \$ A( t
unsigned int WTDAT;6 w' O( h) P) ?( M
unsigned int WTCNT;
& X' r- U9 U. M cunsigned int WTCLRINT;
* ~0 I. M6 c8 E8 E' Y9 b4 M% A: E% {- i& V" I1 U& ]- j
}watchdog;
6 m& c( Q2 n- k* |; N1 D#define WATCHDOG (*(volatile watchdog *)0XEA200000) void watchdog_unit()
- s' f( u, M8 b4 D1 H6 O{
" @" {0 e6 o. I4 G- u8 K0 xprintf("flag1\n");7 ]0 `: M7 m2 U; i% H
WATCHDOG.WTDAT = 0XFFFF;
# p5 e4 |' [2 ]- \% Q3 C* j# {& aWATCHDOG.WTCON = (0XFF<<8 | 1<<5 | 1<<3 | 0<<2 | 1);0 g/ p X k1 {! H" \
printf("flag3\n");8 b. t/ Y( G2 N) {
WATCHDOG.WTCNT = 0XFFFF;5 o; f9 o" A: {8 z& T( U9 P
printf("in watchdog\n");( W, D8 T( X1 M$ p* Z
} int main(void)
6 D& _! Y# F2 c; o" [% h# l{
5 {; D: E4 c6 y6 O7 h+ @watchdog_unit();
, W/ o4 e. q; Q; j% ?/ l/ P. _} , ^5 p1 t! R/ ]9 b
4 E$ a2 e6 L; a7 k, ?% l$ k; e# |" `6 b+ N
为什么该程序会在watchdog_unit();函数中一直执行。 % f: y% |1 |9 \- x2 R) H: g
如果在watchdog_unit();语句后加上while死循环,看门狗正常工作; M" | _/ ~. @( k
int main(void)
' m3 U) @* a+ z1 {{9 u: K, z- Y h Z$ f. C' W
watchdog_unit();6 m& a7 C6 R3 Q: X0 c# |
while(1);
b& Q4 a7 \$ L}
& p2 o8 E4 I i1 u2 B |