|
介绍
软件稳定性对于产品来说非常总要,任何系统都有可能由于BUG崩溃、宕掉,所以就需要看门狗在出现这种情况后及时重启系统,AM335x集成了一个片内看门狗模块WDT能够第一时间重启系统。
驱动说明
WDT有一个32位定时器用在软件引起的错误时复位硬件,当/dev/watchdog打开后,必须有应用程序在设置的时间间隔之内保持喂狗(即重置定时器),否则WDT将对整个系统进行复位操作。驱动默认的超时时间间隔为60秒。
内核配置
要使用WDT需要将驱动编译进内核,默认我们提供的内核代码已经打开了该驱动选项。
[mw_shl_code=bash,true]$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig[/mw_shl_code]
配置驱动选项
[mw_shl_code=applescript,true]Device Drivers --->
Watchdog Timer Support --->
<*> OMAP Watchdog[/mw_shl_code]
测试程序
下载附件提供的saWatchdog.c和Makefile两个文件,修改Makefile中的KERNEL_DIR修改为你内核所在目录。
然后直接编译
[mw_shl_code=bash,true]$ make[/mw_shl_code]
将编译好的可执行文件saWatchdog复制到开发板运行:
[mw_shl_code=bash,true]$ ./saWatchdog 5[/mw_shl_code]
后面跟的5为喂狗时间间隔参数,5秒时不会复位
[mw_shl_code=bash,true]$ ./saWatchdog 12[/mw_shl_code]
当喂狗间隔设置为12时则会发生复位。
定时器溢出时间间隔
当然我们也可以修改定时器的时间间隔,方法是使用IOCTLs的WDIO_SETTIMEOUT 命令。
其他的命令详情请参考:http://processors.wiki.ti.com/in ... dog.28WDT.29_Driver
|
|