首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于Linux的嵌入式系统全程嘿狗策略
来源:本站整理  作者:佚名  2009-05-08 10:54:43




    首先在特定平台的定义头文件include/conffigs/xxx.h中加入看门狗的宏定义:

   
    在lib_generic下的CRC校验阶段代码crc32.c中加入如下代码,实现CRC校验阶段喂狗:

   
1.2.2 Linux内核阶段
    在Linux内核加载阶段(采用MontaVista Linux操作系统,但不限于此),喂狗策略是在Linux内核程序的不同位置插入喂狗程序。具体做法是:首先在Linux内核阶段1的内核解压缩程序、RTC驱动加载程序、GPIO驱动加载程序适当代码处插入喂狗代码,喂狗代码以直接取反中央处理器的GPIO3状态寄存器的方式进行;在Linux内核阶段2的Watchdog驱动加载程序适当代码处插入喂狗代码,喂狗代码调用GPIO驱动,GPIO驱动内含取反中央处理器的GPIO3状态寄存器的操作;在Linux内核阶段3的内核加载根文件系统程序、init程序的适当代码处调用Linux的Watchdog驱动,Watchdog驱动内含取反中央处理器的GPIO3状态寄存器的操作。
    以上内核阶段的划分是以GPIO及Watchdog驱动的加载为标志的。GPIO驱动加载之前为内核阶段1,GPIO驱动加载之后至Watchdog驱动加载之前为内核阶段2,Watchdog驱动加载之后为内核阶段3。
    下面示例说明内核解压缩asm/arch/boot/compressed.c中喂狗的实现代码:

    
    从以上代码可以看出,它是内核阶段l喂狗的典型方法,是直接取反GPIO3状态寄存器的。
    下面示例说明内核阶段2的喂狗方法(仅以加载RTC驱动为例):首先让RTC驱动中包含GPIO的头文件,然后在读取RTC当前值的函数中调用GPIO驱动进行喂狗。

   
    为了能够在内核阶段3调用Watchdog驱动进行喂狗,需要在Watchdog驱动中导出喂狗函数以供内核阶段3使用。Watchdog驱动喂狗也是调用GPIO驱动实现的,但Watchdog驱动一旦加载完成,以后的喂狗都通过调用Watchdog驱动完成。

   

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:162,089.80000 毫秒