本节主要记录配置watchdog产生复位信号的过程,以及一点点的中断控制知识
上一节主要记录了ARM汇编的一些基础知识,本节内容将阅读S3C6410的数据手册,访问WatchDog的一些必须的寄存器,并进行相应的配置。
代码如下:
//watch dog
#define WTCON (*(volatile unsigned long *)0x7E004000 )
#define WTDAT (*(volatile unsigned long *)0x7E004004 )
#define WTCNT (*(volatile unsigned long *)0x7E004008 )
#define WTCLRINT (*(volatile unsigned long *)0x7E00400C )
int main(void)
{
WTDAT = 0x8000;
WTCON = 1 | (1 << 5) | (0x80 << 8) ;
return 0;
}
main函数中第一行的代码WTDAT配置数据寄存器(这个寄存器的值在上电后会导入到WTCNT中,然后开始递减,第二行配置WATCHDOG产生RESET信号,并设置允许watchdog的计时器,装入初始的prescaler值,就可以了。
运行图: