复件 (2) watchdog_func.c

来自「在ALTERA的软核NIOS下watchdog组件的控制函数」· C语言 代码 · 共 29 行

C
29
字号

void start_watchdog(alt_u32 period)  //启动watchdog,period是监控时间,具体跟硬件模块有关
{
        //IOWR_ALTERA_AVALON_TIMER_CONTROL (WATCHDOG_CUSTOM_B);
        IOWR_ALTERA_AVALON_TIMER_CONTROL (WATCHDOG_CUSTOM_BASE,ALTERA_AVALON_TIMER_CONTROL_STOP_MSK);
        IOWR_ALTERA_AVALON_TIMER_PERIODL (WATCHDOG_CUSTOM_BASE, period&0x0000FFFF);
        IOWR_ALTERA_AVALON_TIMER_PERIODH (WATCHDOG_CUSTOM_BASE, period>>16);
        IOWR_ALTERA_AVALON_TIMER_CONTROL (WATCHDOG_CUSTOM_BASE, 0x07); 
}

void stop_watchdog()  //停止watchdog
{
        IOWR_ALTERA_AVALON_TIMER_CONTROL (WATCHDOG_CUSTOM_BASE,ALTERA_AVALON_TIMER_CONTROL_STOP_MSK);
}

void set_watchdog_period(alt_u32 period)  //更改watchdog监控时间
{
        IOWR_ALTERA_AVALON_TIMER_CONTROL (WATCHDOG_CUSTOM_BASE,ALTERA_AVALON_TIMER_CONTROL_STOP_MSK);
        IOWR_ALTERA_AVALON_TIMER_PERIODL (WATCHDOG_CUSTOM_BASE, period&0x0000FFFF);
        IOWR_ALTERA_AVALON_TIMER_PERIODH (WATCHDOG_CUSTOM_BASE, period>>16);
}

void feed_watchdog(alt_u32 period)   //在程序的恰当地方调用此函数喂狗,是系统不reset.
{
        IOWR_ALTERA_AVALON_TIMER_PERIODL (WATCHDOG_CUSTOM_BASE, period&0x0000FFFF);
        IOWR_ALTERA_AVALON_TIMER_PERIODH (WATCHDOG_CUSTOM_BASE, period>>16);

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?