内存转储日志方案设计

来源 :科学与财富 | 被引量 : 0次 | 上传用户:rg198938
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:在嵌入式产品中,经常有一些现场频发但是又难以还原现场的异常问题,为了更好的处理这类问题,保持异常问题发生时的现场环境,本文提出了一种内存转储日志方案,可以很好的保存现场日志,为日后分析提供完善的日志资料。
  关键词:嵌入式系统; 内存转储; 日志系统;
  问题背景
  通常嵌入式产品一般都配有一个flash存储器,日志系统会实时的把系统的一些运行状况和关键事件写入到Flash文件系统中的日志文件。
  由于异常本身在实验环境下难以复现,而在现场问题复现时,日志线程或Flash文件系统已经被破坏,导致无法获得具有分析价值的现场日志。
  为了解决这个问题,同时为后续的产品提供一种更健壮的日志系统,我们设计了该内存转储日志系统。
  设计原理
  对于嵌入式设备来说,内存系统是最小系统的基础单元,比其它的外部设备要相对稳定,所以我们首先考虑的就是把日志信息写到内存中。再把存储在内存中的日志内容,完整的回写到Flash中。
  首先我们知道内存芯片不掉电,其存储的内容是不会丢失的。如果缓存日志的内存地址是一块固定且不会被Linux系统破坏的内存空间,那么在重启时,就可以安全的把其中的内存保存下来。
  预留内存
  在uboot启动时,可以通过mem参数可以给linux系统传递内存大小,通过设置mem参数,预留5M的内存空间。在驱动程序中,我们把这未分配给系统的内存进行映射:
  Request_mem_region(max_mapnr<  这样就可以通过/proc/iomem参数查看到我们为日志系统预留的内存了
  内存分布结构
  预留的内存被换简单的划分为三部分,分别是Header、console日志区、异常信号日志区。
  Head头
  Struct LOG_SYS_HEADER
  {
  unsigned int magic;
  unsigned int size;
  }
  magic魔术字,例如0x9B9B9B9B。该字段可以作为内存段数据是否有效的标识,如果魔术字不匹配,表示该段内存已经被破坏。
  结构体成员size表示保留内存区总大小。
  Console日志区
  Console日志区,由于现场的环境比较复杂,难以通过串口直接对设备进行调试,所以保存设备最后复位状态前的console输出信息就显得非常有必要。Console日志区是用来同步保存标准输出的活动记录信息。
  异常信号日志区
  在linux系统大部分的软件异常都表现为异常信号,所以我们专门开辟了一个异常信号日志区,用来存放捕获信号量时的堆栈信息,当系统发生段错误、指令错误、地址总线错误等系统异常时,会把发生异常时的现场信息保存到该区。
  日志存储
  异常信号处理函数挂载。
  为了保持异常发生时的现场信息到日志区,注册了LinuxSignalHandler()函数作为大部分异常信号的处理函数。当系统发生段错误、指令错误、地址总线错误等系统异常时,会触发信号处理函数,从而记录下现场信息以供事后分析。
  当异常信号触发时,LinuxSignalHandler()信号处理函数被调用,保存一些异常基本信息到异常信号日志区,包括:当前CPU所有通用寄存器和其他重要寄存器值、进程ID、线程ID、异常信号、Linux内核异常信号码、堆栈信息等。
  Cosole日志重定向。
  Console日志是由一个监护进程,实时的读取标准输出,并把输出写到console日志内存区。
  其原理图如下:
  日志回写
  当异常发生时,触发看门狗,引发复位。设备重新启动。
  在设备启动过程中,会首先检查预留内存区域中Header头部的魔术字,如果不相等,表明预留内存的数据结构已经被破坏,其中的内容无效。
  如果魔术字校验正确,待Flash等外设初始化完成后,则把其中的内容拷贝出来,保存到Flash存储器上。清空保留内存,以待下一次日志存储。
  结束语
  该方案在现实应用中,帮我们成功的捕获了前文提到的异常日志,从而成功的定位到了发生异常的原因。同时在后来的实际应用中,对一些现场频发的,难以现场还原的棘手问题都提供了非常好的辅助效果。
其他文献
上颌前牵引可以早期矫正部分上颌发育不足产生骨性Ⅲ类错He,改善上颌骨的发育不足。本文介绍了前牵引矫治后颌骨、牙槽骨、软组织的改变;扩弓、年龄、矫治器设计对治疗效果的影响
据2010年6月美国科学信息研究所最新公布的2009年SCI数据显示,由中科院长春应用化学研究所和中国化学会共同主办、汪尔康院士任主编的《分析化学》影响因子为0.790,较2008年度的
公路桥梁是公路建设中的重要组成部分,是交通的动脉。随着化发展步伐的加快,公路桥梁建设也随之得到提升,伴随的是很多质量问题,这些问题会对公路桥梁的外观和使用产生的影响。因
本文以“バカリニ”句式为研究对象,将其用法分为因果复句和表示限定、程度两类并借助《中日对译语料库》考察了其汉译倾向。经考察发现,“バカリニ”表示因果复句的数据很少,バ
基于生态位理论,界定了民族高等院校就业生态位的内涵,结合民族高等院校的班导师工作的实践,总结了民族高等院校人才培养过程中以"就业生态位"为核心的班导师工作实践的几点经
在小鼠诱导多能干细胞中,利用基因特异的打靶技术可以减少插入突变的风险以及内源调控元件丢失造成的损失,但是这项技术在很多遗传疾病造成的器官损伤上是不可行的,例如肝脏,
摘 要:随着时代的进步,公路隧道的实用性就显得格外重要了。如今的公路隧道不仅要求经济美观,而且在其复杂的建造设计过程中安全性能也得加强。所以当下就面临着公路隧道施工技术问题需要的我去解决,本文就对公路隧道施工技术的应用进行一些浅谈。  关键词:公路隧道;施工技术;应用  前言  社会在发展,时代在进步,我国的经济水平在稳步上升。俗话说:要想致富,必先修路。由此公路隧道的修建就提上了议程,但公路隧道
扁平化界面设计是一种新的设计风格,它去掉了透视、阴影、立体等界面设计元素,以平面化、简洁的方式呈现于人们眼前。由于生活的快节奏,人们对信息的传递要求更高。设计师有责任
microRNA(miR)是一类长度约18~22nt的进化保守的小RNA,可以通过结合到许多基因的3'UTR调控基因的转录后表达。研究表明,许多miR是骨骼肌发育的关键调节子。最近,中国农业科学院和华
理想的龋病活跃性试验结果能反映个体或群体的龋病现状并预测其发展趋势。在有的放矢地开展龋病防治工作中有积极意义,本文对近年来所开展的测试方法,应用状况及测试结果之分析