Linux看门狗管理及在DM8168芯片上的应用研究_第1页
Linux看门狗管理及在DM8168芯片上的应用研究_第2页
Linux看门狗管理及在DM8168芯片上的应用研究_第3页
Linux看门狗管理及在DM8168芯片上的应用研究_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Linux看门狗管理及在DM8168芯片上的应用研究引 言随着智能终端及挪动互联网的开展,Linux系统被应用到越来越多的嵌入式设备中,如挪动通信基站、Android(基于Linux内核)智能、智能手环等。不同领域的应用都对Android/Linux系统的可靠性及可用性有严格的要求。在嵌入式系统中,CPU必须可靠工作,即使因为某种错误或异常进入错误状态,系统应该可以自动复位,看门狗也可以在系统进入错误状态后的一段时间内重启复位,以实现系统自动从故障恢复。1 看门狗的概念看门狗是一个进展累加计数的定时器,在其启动后,假设在设定的时间间隔内对定时器清零(俗称喂狗操作),定时器就不会溢出,也不会产生

2、复位信号;假设在设定的时间间隔内,没有对定时器清零,定时器就会溢出产生复位信号,从而实现系统重启。根据实现方式的不同,可以分为硬件看门狗和软件看门狗。硬件看门狗是利用定时器电路实现,其输出连接到电路的复位端,程序在设定间隔内对定时器清零。因此程序正常工作时,定时器不会溢出;假设程序出现故障,未能在设定间隔周期内执行清零操作,就使得看门狗定时器溢出,产生复位信号并重启系统。软件看门狗原理上同硬件看门狗一样,只是将硬件电路上的定时器用操作系统内部的软件定时器代替,这样可以简化硬件电路设计。但软件定时器在可靠性方面不如硬件定时器,在一些异常的情形下,比方处理器或操作系统内部发生故障时,会导致软件定时

3、器不可用,也就无法检测到这些故障。2 Linux系统对看门狗的支持Linux内核从1.3.51版本开始提供硬件、软件看门狗的驱动支持。随着内核版本不断更新与开展,Linux内核对各种不同类型的硬件看门狗提供了广泛的支持。根据访问方式的不同,Linux系统下的设备驱动程序分为字符设备及块设备。看门狗在Linux系统下作为字符设备来处理,/dev/watchdog是一个主设备号为10、从设备号为130的字符设备节点。Linux系统下的硬件看门狗,必须有硬件电路支持,设备节点/dev/watchdog对应着真实的物理设备,不同类型的硬件看门狗设备由相应的硬件驱动管理。3 Linux系统下看门狗的访问

4、前文提到,Linux系统将看门狗作为一个字符设备来管理。本节将以TI公司推出的高清视频处理芯片TMS320DM8168(以下简称DM8168)芯片为例,介绍Linux下访问及操作看门狗的逻辑层次。DM8168芯片将高清多通道系统的所有捕获、压缩、显示以及控制功能整合于同一芯片,芯片内部集成了硬件看门狗,外围连接电路如图1所示。硬件看门狗溢出同时产生复位(Reset)及中断信号(Interrupt),复位信号会复位整个芯片,中断信号可以在捕获到中断事件后,在中断处理函数中增加一些额外的操作(比方将收到的看门狗溢出中断的时间写进日志,然后再复位等)。4 Linux系统下看门狗的管理Linux启动过

5、程依次为U-Boot、内核及文件系统,最后是应用程序启动。在Linux系统启动过程中,启用看门狗可以有效监测系统状态,假设异常导致看门狗溢出,系统会自动复位以试修复问题,从而进步系统的可靠性及强健性。本节以DM8168开发板为例,介绍Linux各个启动阶段看门狗的管理。4.1 U-Boot启动阶段开发板上电后,执行U-Boot的第一条指令,然后顺序执行U-Boot启动函数。U-Boot启动内核的过程如下: 硬件设备初始化。 加载U-Boot第二阶段代码到RAM 空间。 设置好堆栈,跳转到start_armboot函数入口。 start armboot是U-Boot执行的第一个C语言函数。 初始

6、化本阶段使用的硬件设备。 检测系统内存映射。 将内核从Flash读取到RAM 中。 设置内核启动参数,然后启动硬件看门狗,通过访问控制存放器来实现。该阶段可以设置看门狗超时溢出时间为120s。以门狗,以方便用户调试U-Boot、设置内核相关参数等信息。 假设没有收到用户中断命令,U-Boot会拷贝内核镜像并解压内核,开始启动内核调用。4.2 内核启动阶段在U-Boot加载了内核之后,系统就进入内核启动阶段,此时,看门狗的管理控制也要由内核来接收。内核启动主要包括内核自解压、注册及加载硬件驱动程序、Flash分区等。在内核启动时,内核程序会注册硬件看门狗的驱动程序,并执行probe探针函数,此时

7、,内核接收U-Boot阶段的看门狗,即先关闭看门狗,然后再重新翻开看门狗,并加载新的超时时长;4.3 应用程序启动阶段文件系统启动后,用户的应用进程也会开始启动。在这个阶段,通常会创立一个独立的守护进程,来接收看门狗。守护进程启动时,首先关闭内核阶段启动的看门狗,并重新启动看门狗设置超时时长,实现接收内核阶段看门狗的功能。在看门狗启动后,守护进程可以周期性地进展喂狗操作,并通过心跳的方式同用户进程通信,在收不到用户进程的心跳包消息时,即停顿喂狗操作,这样看门狗会超时溢出导致系统重启,以进展故障修复。5 DM8168看门狗的管理除了前文提到的Linux系统下看门狗的根底管理,DM8168芯片的硬件看门狗外围输出引脚,可以同时支持Reset和Interrupt信号,功能更加强大。假设只是期望看门狗超时后能重启复位板卡,参考前节提到的方法,依次在Linux启动的各个阶段启用及管理看门狗即可,因为看门狗的溢出引脚直接连接电源及复位管理模块。结 语本文以TI公司的TMS320DM8168芯片为例,详细介绍了Linux系统从U-Boot启动、内核启动到文件系统加载及用户程序启动过程中看门狗的启用及管理,通过不同阶段管理看门狗,可以保证系统在任何一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论