EDA365电子论坛网

标题: 在arm8裸机开发中,为什么该程序会在watchdog_unit();函数中一直执行? [打印本页]

作者: adogpp    时间: 2020-1-17 13:38
标题: 在arm8裸机开发中,为什么该程序会在watchdog_unit();函数中一直执行?

程序代码如下
/ f+ ~2 A2 h9 d& G#include "s5pc100.h"

typedef struct {
+ [( c+ \$ Z, G+ ]+ hunsigned int WTCON;3 x- R- l1 S( y+ j: H: [* p1 m
unsigned int WTDAT;$ m4 z) ~% ]; H9 B3 m) d; Z
unsigned int WTCNT;
. A3 ]  N2 i. A6 k/ Zunsigned int WTCLRINT;# f% E- }; L% Q/ X5 Z

# i$ G+ ~- {4 l" v& M2 i}watchdog;9 h9 e2 y6 A0 ]2 H" r: f
#define WATCHDOG (*(volatile watchdog *)0XEA200000)

void watchdog_unit()& J  E9 [' a- {
{
5 |+ Y& F* Z6 d4 vprintf("flag1\n");
3 o7 Y& A/ J7 W* H' ~/ m, ~- MWATCHDOG.WTDAT = 0XFFFF;' _& L, ~! y$ G( c1 O
WATCHDOG.WTCON = (0XFF<<8 | 1<<5 | 1<<3 | 0<<2 | 1);5 S/ M: {: K; v9 o, z# d6 ~5 f0 B. k
printf("flag3\n");" _. ?5 \& L3 h* S
WATCHDOG.WTCNT = 0XFFFF;2 T) ]- O5 L5 j
printf("in watchdog\n");
, N6 F9 l, o: x9 o! ^}

int main(void)
' W# q, f3 [& Z3 j{
  A" L  M/ y# Swatchdog_unit();
" O7 }" ~( ^* B5 p}

3 X$ H8 a) k& O2 H0 _; t+ N' B! n" q- A

( Y9 ]6 y1 H( O% B/ g% _& X" d* f: F, o" P9 @

为什么该程序会在watchdog_unit();函数中一直执行。

5 F( i  G8 {5 t7 A- I
如果在watchdog_unit();语句后加上while死循环,看门狗正常工作
/ A; R6 k2 c" T( i3 ?int main(void)
% z( z$ f, D" B{0 V+ L4 R7 D+ `3 D4 |& {7 E% C4 |
watchdog_unit();
4 P5 ^5 j9 F- i  d( {, Iwhile(1);
3 b; d0 b/ E  d" Q}

$ k1 s2 V* C5 B/ O, u5 A" Q2 O  p

作者: CCxiaom    时间: 2020-1-17 18:08
这不就说主函数吗




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2