先贴代码
//看门狗物理地址
#define WATCHDOG_BASE 0x01C20000 //基地址
#define BLOCK_SIZE 0X1000 //4K大小
#define rWDOG0_IRQ_EN 0xCA0
#define rWDOG0_IRQ_STA 0xCA4
#define rWDOG0_CTRL 0xCB0
#define rWDOG0_CFG 0xCB4
#define rWDOG0_MODE 0xCB8
/**
*@brief 看门狗和time定时
*/
void *wdog_timer(void *b)
{
int mem_fd = -1;
unsigned char *wdog_map = NULL;
volatile unsigned int *WDOG0_IRQ_EN = NULL;
volatile unsigned int *WDOG0_IRQ_STA = NULL;
volatile unsigned int *WDOG0_CTRL = NULL;
volatile unsigned int *WDOG0_CFG = NULL;
volatile unsigned int *WDOG0_MODE = NULL;
/* open /dev/mem */
if ((mem_fd = open("/dev/mem", O_RDWR | O_CREAT, 0666)) < 0)
{
printf("can't open /dev/mem \n");
exit(-1);
}
/* mmap WDOG0 */
wdog_map = (unsigned char *)mmap(NULL, BLOCK_SIZE, PROT_READ|PROT_WR