当前位置: 技术问答>linux和unix
LINUX内核里喂狗的代码在哪?
来源: 互联网 发布时间:2016-11-23
本文导语: RT,小弟最近在做watchdog代码,GM8180的平台,照DATASHEET写了个WATCHDOG的驱动,设好了超时时间为10秒、30秒、甚至是3分钟过后,LINUX都自己重新启动了,(WATCHDOG里我设了RESET CPU),问下大虾,LINUX里不是有自动的喂狗的吗...
RT,小弟最近在做watchdog代码,GM8180的平台,照DATASHEET写了个WATCHDOG的驱动,设好了超时时间为10秒、30秒、甚至是3分钟过后,LINUX都自己重新启动了,(WATCHDOG里我设了RESET CPU),问下大虾,LINUX里不是有自动的喂狗的吗?为什么还会重新启动呢? 难道要自己再写个喂狗程序? 谢谢
|
喂当然要自己喂了。 ---在应用程序调用watchdog的接口。
原来是这样的:
watchdog某个寄存器一直在倒数计数,如果倒数到0,就发reset信号,重启。
所以你需要在它到达0之前,喂它一下--就是计数恢复,重新倒计数。
简言之,就是每隔一段时间你都得喂,不然就重启。
Watchdog就是提供这样的功能。
之所以没找到drivers/char,原因是你的内核版本老了。
原来是这样的:
watchdog某个寄存器一直在倒数计数,如果倒数到0,就发reset信号,重启。
所以你需要在它到达0之前,喂它一下--就是计数恢复,重新倒计数。
简言之,就是每隔一段时间你都得喂,不然就重启。
Watchdog就是提供这样的功能。
之所以没找到drivers/char,原因是你的内核版本老了。
|
需要自己写的,也可能别人已经给你写好了 。
检查下面目录看看有没有别人替你做好了。
drivers/watchdog/
|
“原来是这样的:”
应该为
“原理是这样的:”
应该为
“原理是这样的:”