设为首页收藏本站
查看: 19144|回复: 0

[应用笔记] MYD-AM335X 内部看门狗使用教程

[复制链接]

21

主题

21

回帖

575

积分

管理员

积分
575
oneal.tang 发表于 2015-5-21 11:09:06 | 显示全部楼层 |阅读模式
介绍

软件稳定性对于产品来说非常总要,任何系统都有可能由于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

saWatchdog.7z

1.7 KB, 下载次数: 14093

回复

使用道具 举报

您需要登录后才可以回帖 登录

本版积分规则

Archiver|手机版|小黑屋|米尔科技论坛   

GMT+8, 2024-5-5 19:12 , Processed in 0.047353 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表