`
helloyesyes
  • 浏览: 1273750 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

ARM+LINUX移植攻略(十九)Linux驱动移植之看门狗

阅读更多

努力成为linux kernel hacker的人李万鹏原创作品,为梦而战。转载请标明出处

http://blog.csdn.net/woshixingaaa/archive/2011/06/06/6527969.aspx

默认看门狗是不开机启动的,我们可以向/dev/watchdog写入数据来启动关闭看门狗。使用echo命令,经过我的测试,这个命令启动的作用是先打开那个文件,再写入内容,然后关闭。也就是open->write->release。

此时打印出:

过了几秒后系统复位。

如果这样:

则系统不会复位。

为什么这样呢,下面看看源码是怎样实现的,open函数:

write函数:

release函数:

看门狗只能被一个进程打开,打开函数中先判断了一下,然后启动了看门狗;再看write函数,写入的如果是V则允许关闭看门狗,如果不是V仅仅喂狗一次;最后是release函数,如果允许关闭则关闭看门狗,如果不允许关闭,打印"Unexpected close, not stopping watchdog",喂狗一次。此时看门狗并没有关闭,所以系统会复位的,如果输入V则看门狗被关闭,这样系统就不复位了。

下面让看门狗开机启动:

查看启动信息:

首先make menuconfig进行配置:

在drivers/watchdog/s3c2410_wdt.c中进行修改:

设置成系统启动就启动看门狗,并且看门狗到期时间为20s。这样系统复位后每20s系统就会复位一次,所以我们在用户空间进行喂狗,驱动中的那个中断函数是当看门狗作为定时器时用的,所以没有实现喂狗,所以只能在用户程序中喂狗,下面是源码:

然后:

把wdt拷贝到root-2.6.30.4/sbin/下,并修改root-2.6.30.4/etc/init.d/rcS文件,添加wdt&这么一句,让系统启动后这个应用程序在后台运行:

然后重新制作文件系统:

此时由于用户程序在不断喂狗所以系统不复位了。再次查看启动信息:

分析看门狗源码s3c2410_wdt.c其中的中断处理函数是定时器中断处理函数。如果关闭复位功能,使能定时器功能,则中断处理函数中的喂狗也就是让定时器重新定时罢了。

分享到:
评论

相关推荐

    ARM-Linux系统移植

    2.1.2 Linux操作系统 .......................................................................................................8 2.1.3 目标板最后运行的环境..................................................

    嵌入式Linux之我行系列

    ·嵌入式Linux之我行——S3C2440上看门狗(Watchdog)驱动开发实例讲解 ·嵌入式Linux之我行——S3C2440上ADC驱动实例开发讲解 ·嵌入式Linux之我行——S3C2440上触摸屏驱动实例开发讲解 ·嵌入式Linux之我行——S3C...

    嵌入式Linux系统移植步步通

    2.1.2 Linux操作系统 .......................................................................................................8 2.1.3 目标板最后运行的环境....................................................

    广嵌2440开发板实验资料本实验指导手册针对目前国内非常流行的三星公司 ARM9 嵌入式微处理器――S3C2440A,通过具体的实例精讲,详细介绍了 ARM9 嵌入式常用模块的原理和驱动程序实现方法。

    本实验指导手册针对目前国内非常流行的三星公司 ARM9 嵌入式微处理器――S3C2440...第四篇为嵌入式linux开发实例篇,通过4个linux应用开发实例,使大家对嵌入式linux在ARM微处理器上的移植及驱动程序设计有很好的掌握。

    嵌入式ARM9-2440实战手册

    实验5 看门狗定时器应用实验 32 实验6 DMA 控制器实验38 实验7 PWM 控制蜂鸣器实验48 实验8 UART 通信实验57 实验9 红外模块控制实验 68 实验10 实时时钟设计实验79 实验11 IIC 总线应用实验90 实验12 Nor flash ...

    ARM Cortex-A8和Android 4.x联动报警系统

    第四部分,讲解了Linux设备驱动开发环境搭建、内核开发相关理论,然后将裸机下的接口驱动移植到Android环境下,并通过NDK和JAVA界面测试通过;第五部分,通过一个实战项目,综合应用各个模块的知识,为毕业设计 、...

    嵌入式ARM9-2440实战手册.pdf

    实验5 看门狗定时器应用实验 32 实验6 DMA 控制器实验38 实验7 PWM 控制蜂鸣器实验48 实验8 UART 通信实验57 实验9 红外模块控制实验 68 实验10 实时时钟设计实验79 实验11 IIC 总线应用实验90 实验12 Nor ...

    LINUX系统移植及UBOOT代码分析.zip

    Linux系统移植 目 录 第一部分 前言....................................................................................................................................8 1 硬件环境.........................

    ARM 实验指导书第一册UCOS-II.doc

    实验十六 WDT看门狗实验 135 实验十七 实时时钟实验 139 实验十八 RS485接口实验 144 实验十九 CAN及SPI接口实验 150 实验二十 利用SPI接口与FPGA通讯实验 157 实验二十一 利用串口与FPGA通讯实验 162 实验二十二 ...

    GEC2410B实验箱教学平台-基础实验教程

    57 3.1.5 看门狗定时器应用实验.................................................. 68 3.1.6 PWM控制蜂鸣器实验..................................................... 74 3.1.7 ARM启动及工作模式切换实验........

    c语言编写单片机技巧

    答:一般在8位单片机与ARM方面的嵌入式系统是有层次上的差别,ARM适用于系统复杂度较大的高级产品,如PDA、手机等应用。而8位单片机因架构简单,硬件资源相对较少,适用于一般的工业控制、消费性家电等等。对于一个...

Global site tag (gtag.js) - Google Analytics