基于Linux的嵌入式系统全程喂狗策略

上传人:gg****m 文档编号:233971930 上传时间:2022-01-03 格式:DOCX 页数:7 大小:266.72KB
返回 下载 相关 举报
基于Linux的嵌入式系统全程喂狗策略_第1页
第1页 / 共7页
基于Linux的嵌入式系统全程喂狗策略_第2页
第2页 / 共7页
基于Linux的嵌入式系统全程喂狗策略_第3页
第3页 / 共7页
基于Linux的嵌入式系统全程喂狗策略_第4页
第4页 / 共7页
基于Linux的嵌入式系统全程喂狗策略_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《基于Linux的嵌入式系统全程喂狗策略》由会员分享,可在线阅读,更多相关《基于Linux的嵌入式系统全程喂狗策略(7页珍藏版)》请在金锄头文库上搜索。

1、基于Linux的嵌入式系统全程喂狗策略基于Linux的嵌入式系统全程喂狗策略发布:2011-5-31 |作者:来源:liuruidongl査看:446次丨用户关注:摘要:实现了一种全集成可变带宽中频宽带低通滤波器,讨论分析了跨导放人器-电容 (0TA-C)连续时间型滤波器的结构、设计和具体实现,使用外部可编程电路对所设计滤波 器带宽进行控制,并利用ADS软件进行电路设计和仿真验证。仿真结果表明,该滤波器带 宽的可调范围为126 MHz,阻带抑制率人于35 dB,带内波纹小于0. 5 dB,釆用1. 8 V电源,TSMC 0. 18 nm CMOS T艺库仿真,功耗小于21 mW,频响曲线接近理

2、想状态。关 键词:Butte在嵌入式系统中,为了使系统在异常情况下能自动恢复,一般都会引入看门狗电路。看 门狗电路其实就是一个计数器。当看门狗启动后,计数器开始自动计数,经过一定时间计 数器溢出就会对CPU产生一个复位信号使系统重启。系统正常运行时,需要在看门狗允许 的时间间隔内对看门狗计数器清零也即喂狗,不让复位信号产生。当前在带Linux操作系统的嵌入式系统小,由于Linux操作系统加载时间较长(如10 30 s), 般都超过看门狗的时间间隔(典型值为1.6 s);而如果不采取特殊措施,则系统 在Linux操作系统加载过程中复位,Linux操作系统永远无法加载成功。为了解决这个问 题,通常

3、有两种方案1-2:做一个看门狗的时间间隔史长的駛件电路;修改内核,在内核 启动过程中将看门狗设成无效。以上方案无法解决嵌入式系统在操作系统启动阶段的失效 问题,降低了系统可靠性。本文提出了一种嵌入式系统全程喂狗策略及实现方法,从系统上电、引导程序 (Bootloader).操作系统内核直至应用阶段都启用看门狗。实验表明,该方法简单可行, 成木较低,在嵌入式系统的全过程中都可以实现喂狗策略,提高了系统可靠性。1系统总体设计采用IMP706芯片组成硬件看门狗电路(看门狗的时间间隔为1. 6 s),在操作系统程序 (Bootloader)和应用程序中插人喂狗程序,这些喂狗程序运行时问间隔小于看门狗的

4、 时间间隔(本设计选为1 s)o这样做可以保证:如果系统正常工作,系统可以在小于看门 狗的时间间隔内不断进行喂狗动作,駛件看门狗的计数器不断清零,不产生复位信号;如 果系统非正常工作,喂狗动作失效,駛件看门狗的计数器在VCC_L8VTdHi*CPU6IJV GPIO44Bl GND1Al DIRRESET74AVCIT45VCC3-3VPRST WDSvccRSTGNDSTINNM17 RESET_OUT6 WDI 3S 1看门狗电路原理1. 6 s后溢岀,对CPU产生复位信号使系统重启。1. 1看门狗电路设计图1为看门狗电路原理,采用IMP706芯片组成硬件看门狗电路,通过电平转换器件74A

5、VC1T45,硬件看门狗器件的ST脚与中央处理器(CPU)的GPI03脚相连。看门狗器件 的PRST脚与IN脚接到复位开关,RST脚接到CPU的RESET脚,当复位开关被触动或看门 狗器件的计数器溢出时,看门狗器件的RST脚输出复位信号给CPU的RESET脚,CPU复位 重启。1. 2喂狗策略及实现1. 2. 1 Bootloader 阶段在Boot loader阶段(木设计采用Uboot,但不限于此),喂狗策略是在Boot loader的程 序小不同位置插入喂狗程序。具体做法是:由于Bootoader第一阶段的启动不会超过1. 6 s,因此只需在Bootoader的第二阶段,如Flash读写

6、、CRC校验、循环等待等处,插入喂 狗代码。喂狗代码采用直接置位中央处理器的GP1O3状态寄存器的方式进行。首先在特定平台的定义头文件include / condffigs / xxx. h中加入看门狗的宏定义:1. 2. 2 Linux内核阶段在Linux内核加载阶段(采ffl MontaVista Linux操作系统,但不限于此),喂狗策略是 在Linux内核程序的不同位置插入喂狗稈序。具体做法是:首先在Linux内核阶段1的内 核解压缩程序、RTCI.4 1人i L1K1 . HV 1 * aJr f-2-)1 -SV74 AW 1 NSirs驶动加载程序、GPIO驱动加载程序适半代码处

7、插入喂狗代码,喂狗代码以百接取反中央 处理器的GP103状态寄存器的方式进行;在Linux内核阶段2的Watchdog驱动加载程序 适当代码处插入喂狗代码,喂狗代码调用GPI0驱动,GPI0驱动内含取反中央处理器的 GP103状态寄存器的操作;在Linux内核阶段3的内核加载根文件系统程序、init程序的 适当代码处调用Linux的Watchdog驱动,Watchdog驱动内含取反中央处理器的GP103状 态寄存器的操作。以上内核阶段的划分是以GPI0及Watchdog驱动的加载为标志的。GPI0驱动加载Z前为 内核阶段1, GPI0驱动加载之后至Watchdog驱动加载之前为内核阶段2, W

8、atchdog驱动 加载之后为内核阶段3。下面示例说明内核解压缩asm / arch / boot / compressedC小喂狗的实现代码:从以上代码可以看出,它是内核阶段1喂狗的典型方法,是直接取反GP103状态寄存器 的。下面示例说明内核阶段2的喂狗方法(仅以加载RTC驱动为例):首先让RTC驱动中包含 GPI0的头文件,然后在读取RTC当前值的函数中调用GPI0驱动进行喂狗。为了能够在内核阶段3调用Watchdog驱动进行喂狗,需耍在Watchdog驱动中导岀喂狗 函数以供内核阶段3使用。呛tchdog骡动喂狗也是调用GPI0驱动实现的,但Watchdog 动一旦加载完成,以后的喂狗

9、都通过调用WatchdogCPUVCC 1.8Y1.AV GFIO4RKSETffi 1 门猖电路加(埋驱动完成。1. 2. 3程序运行阶段图2为多线程应用程序运行阶段喂狗方法。在主程序中首先创建一个监控线程,它的优 先级高于其他线程。监控线程在其他被监控的线程正常工作的情况下,一定时间内对看门 狗进行喂狗操作,喂狗操作通过调用Watch-dog驱动來完成。如果某个线程出现故障, 监控线程就不执行喂狗操作,也就达到这个线程出现故障时系统自动重启的日的。如果监 控线程口身岀现故障,不能及时执行喂狗操作,看门狗也口动复位重启。具体做法是,主 程序肖先启动监控线程,然后依次启动N个被监控的线程,每一

10、线程内都设置一计数器。 被监控的线程中首先对线程内的计数器初始化为0,在各个线程主循坏中,对相应的计数 器执行加1操作。监控任务首先启动看门狗,进入循环。每隔M秒对各线程内的计数器进 行检验,在M秒内每隔1 s要对看门狗喂狗,否则系统就会复位重启。杳询N个计数器值 是否为0,如果全都人于0,则说明对应接受监控的线程正常运行,然后对看门狗喂狗, 并将N个计数器值清零。如果有任意一个计数器值为0,检测到对应接受监视的线程岀现故障需要重 启,这时不对看门狗喂狗,使得系统复位重启。以下示例说明在应用中如何调用CPUVCC_! vTHl|b( IpF1.8ViPlO4RESET74AVCIT45VCCB

11、 VGCA BlAlGND1 DIR87 RE5srrrm jtWDJ2OkroiriR3ITprST WT5SA vex:3 .av Irj 7CU ItST f44GND STKHiN NM1ffi 1 *ri9QtU M/JSl E2Watchdogffi 1 门猶电玮廉理驱动实现喂狗:总之,在系统不同阶段,山于系统调用和封装程度不同,看门狗的喂狗实现方法也不 同:在Boot loader阶段,直接取反中央处理器的GPI03的状态寄存器;在Linux内核阶 段,采取取反中央处理器的GP1O3的状态寄存器的方法进行;在Linux内核阶段2,采 取调用GPI0的驱动的方法进行;在Linux内

12、核阶段3,采取调用Watchdog驱动的方法进 行;在应用程序运行阶段,应用程序中的喂狗程序采取调用Watchdog驱动的方法进行, 如图3所示。2实验结果我们在公司研发的智能视频分析器项日中应川了木方法。该分析器采RITI DaVinci系 列DSP芯片(TMS320DM6446)为CPU,用Monta Vista Linux作为操作系统。操作系统启动 吋间约为2030 so采用木方法是为了保证系统在全过程中都能得到有效的失效恢复。在振荡波抗扰度、电压波动与闪烁、静电放电、电快速瞬变脉冲群等EMC兼容性测试 中,当各强度指标超过设备EMC兼容性设计强度时,系统失效,利用这种方式可以测试本 方

13、法在硬件失效时的效果。以静电放电为例,设计放电等级为6 kV俄们取7 kV的强 度等级),设备上电后,分别在130 s内每隔5 s及在120 s处进行静电放电测试,经 观察设备都可以即时恢复。对软件失效时木方法效果的测试,采用故障植入脚木的主动方式及系统长时间运行的被 动方式进行测试。最终结果表明,设备在失效后可即时恢复。综上所述,木全稈喂狗的方法能确保系统在任-阶段出现软件或駛件故障吋都能复位重 启。结语本文提出了一种嵌入式系统全程喂狗策略,包括硬件电路设计和软件实现方法。该方法 有如下特点:看门狗电路简单,硬件只需一块看门狗芯片,不需复杂的外围逻辑电路,成 本较低;系统全过程启用看门狗,确保系统在任一阶段出现软件或硬件故障都能复位重 启,系统可靠性得到提高。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号