复件 (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 + -
显示快捷键?