我想在linux中使用定时器中断来做软件wathdog定时器。我怎样才能在linux中产生定时器中断?Linux中的看门狗定时器
3
A
回答
8
如果你想使用定时器中断,使用信号,特别是SIGALRM
。 您可以使用功能alarm()来要求超时。如果你想要使用粒度,你可以使用ualarm()。 达到超时后,它将调用您之前定义的回调函数。
下面是一个例子代码:
#include <signal.h>
void watchdog(int sig)
{
printf("Pet the dog\r\n");
/* reset the timer so we get called again in 5 seconds */
alarm(5);
}
/* start the timer - we want to wake up in 5 seconds */
int main()
{
/* set up our signal handler to catch SIGALRM */
signal(SIGALRM, watchdog);
alarm(5);
while (true)
;
}
你必须执行一个看门狗其他几个选项:
- 写/使用内核驱动程序,它实际上可以作为一个看门狗,应用硬复位如果狗不是宠物(或踢)
- 使用watchdog,一个有趣的软件看门狗守护进程的实现。
1
中断在应用程序级别不存在(只有内核管理它们,事实上它已经获得了大量的定时器中断)。你可以有信号,定时器和延迟系统调用(特别是poll
或nanosleep
)。阅读Advanced Linux Programming。
首先阅读time(7)手册页。然后timer_create(2),poll(2),timerfd_create(2),setitimer(2),sigaction(2),nanosleep(2),clock_gettime(2)等....
一些内核也可以被配置为具有看门狗定时器......
相关问题
- 1. 看门狗定时器dll
- 2. 谁在Linux中默默地踢了看门狗定时器?
- 3. Linux软件看门狗
- 4. 窗口看门狗定时器STM32F4
- 5. 关于看门狗定时器
- 6. 单一进程的看门狗[Linux]
- 7. 的Linux:看门狗总是很忙
- 8. 定制看门狗记录
- 9. OpenCL的看门狗
- 10. Linux nmi看门狗如何工作?
- 11. IPhone看门狗&malloc
- 12. 在C++中实现看门狗定时器11
- 13. 用于服务器的Linux C++看门狗
- 14. 调用file.format时看门狗超时?
- 15. 看门狗没有停止?
- 16. GPRS连接看门狗
- 17. 服务看门狗设计
- 18. Crashlytics使用ANR看门狗
- 19. 看门狗在vC++中的应用
- 20. Windows XP中的看门狗测试
- 21. 谁在Linux中刷新硬件看门狗?
- 22. STM32上的看门狗定时器的中断服务程序发现
- 23. win ce中关于看门狗定时器的某些代码的解释?
- 24. 在msm800中启用硬件看门狗
- 25. 看门狗类型的节目需要
- 26. 作为看门狗的Shell脚本
- 27. 具有“看门狗”的Ruby线程
- 28. 如何在C上编写一个简单的看门狗定时器?
- 29. 控制器中软件看门狗的用途是什么?
- 30. 硬件看门狗GPIO ...自动运行
感谢您的宝贵答案。我想实现准确的毫秒延迟。这怎么可能? – VigneshK 2013-03-25 07:23:49
没问题,我会编辑我的答案。 – stdcall 2013-03-25 07:31:26