watchdog 移植
参考资料:tq移植手册
=1
1.修改 内核源码 “drivers/watchdog/s3c2410_wdt.c”
- //#define CONFIG_S3C2410_WATCHDOG_ATBOOT (0)
-
#define CONFIG_S3C2410_WATCHDOG_ATBOOT (1) // 开启 看门狗
-
#define CONFIG_S3C2410_WATCHDOG_DEFAULT_TIME (30) //设置时间 30 s
2.make menuconfig 设置
- Device Driver->
-
[*]Watch Timer Support ->
-
<*> S3C2410 Watchdog
3.配置完毕后,编译出镜像,烧写到开发板中,启动开发板,过30s 的时间,开发板版会自动重启
4,编写喂狗 程序
为了避免老是自动重启,我们需要编写一个看门狗的应用程序,并且在开机是自动启动该程序
ywx_wdg.c
- #include <unistd.h>
-
#include <sys/types.h>
-
#include <sys/stat.h>
-
#include <fcntl.h>
-
#include <stdio.h>
-
#include <stdlib.h>
-
#include <errno.h>
-
#include <linux/watchdog.h>
-
-
int main(int argc,char **argv)
-
{
-
int fd = 0;
-
int n =0;
-
fd = open("/dev/watchdog",O_RDONLY );
-
-
if(fd < 0) {
-
perror("/dev/watchdog");
-
return -1;
-
}
-
for(;;) {
-
ioctl(fd,WDIOC_KEEPALIVE); ####一直喂狗,不让看门狗重启 CPU
-
sleep(3);
-
}
-
close(fd);
-
return 0;
-
}
makefile 文件
- CROSS=arm-linux-
-
-
all: ywx_wdg
-
-
ywx_wdg:ywx_wdg.c
-
$(CROSS)gcc -o ywx_wdg ywx_wdg.c
-
$(CROSS)strip ywx_wdg
-
clean:
-
@rm -vf ywx_wdg *.o *~
5.文件系统里面实现喂狗操作
编译出 ywx_wtg 后,将他复制到 sbin/ 目录下面,注意 权限 chmod 777
vim /etc/init.d/rcS 添加
6.ok !
阅读(861) | 评论(0) | 转发(0) |