嵌入式实时操作系统运行错误捕获和记录的方法

文档序号:7961179阅读:315来源:国知局
专利名称:嵌入式实时操作系统运行错误捕获和记录的方法
技术领域
本发明涉及一种监控嵌入式实时操作系统运转状况的方法,尤其是一种能够捕获并记录在系统崩溃时设备运行异常情况信息的方法。
目前在嵌入式系统领域,异常情况的捕获大多采用底层操作系统(如PSOS,VXWORK等)提供的错误陷阱机制。设置错误陷阱可以在系统发生异常时陷入错误捕获中断,对错误情况进行分析记录等工作,甚至可以恢复正常运行。但是,对于某些严重的错误(例如程序指针错误等)可能导致系统立即瘫痪,错误陷阱根本无法工作,此时没有一种有力的工具或方法查错,将会使恢复后了解问题的症结所在,进行调试工作和问题的解决遇到巨大的困难。
本发明的目的是这样实现的一种嵌入式实时操作系统运行错误捕获和记录的方法,它至少包括如下步骤步骤1开辟记录空间;步骤2在记录空间中,对每一个任务分配相应的区域,用于记录相应任务的运行状态;步骤3将当前任务运行状态记录到与之相应的空间中。
为保证存留系统的最后一次记录信息,读写命令不缓存到该记录空间中。
针对系统初始化受程序控制的系统,所述的步骤1进一步为开辟内存的一部分为记录空间,当系统上电时,提取相应区域的遗留记录,写入非易失存储器中后,再进行内存初始化。
所述的非易失存储器为闪存。
针对系统初始化不受程序控制的系统,所述的步骤1进一步为在系统初始化不受程序控制的系统,内存和外部的高速存储装置之间设有高速传输通道,将该高速存储装置作为记录空间。
所述的高速存储装置为闪存或高速硬盘。
所述的步骤1中的任务运行状态至少包括任务运行标志、任务起始运行时刻、当前任务执行阶段、任务当前处理的信号。当前任务执行阶段为当前任务执行的功能模块,以便对任务运行阶段的记录可以更加精确的定位到更小的模块单位;所述的任务当前处理的信号为当前任务处理消息的部分消息,以便缩小判断故障的范围。
所述的步骤3中记录前包括对系统任务信号等待部分进行监控,通过等待信号判断任务的运行状态。
根据上述技术方案分析可知,本发明对于系统故障定位上起到了重要的作用,使系统的可维护性得以大幅度的提高。


图1为本发明的一种信息存储结构示意图。
图2为本发明的另一种信息存储结构示意图。
图3为本发明的任务运行流程图。
图4为图1所示系统启动流程图。
一、开辟记录空间对于不同的系统架构的特点大致有两种存储的方法如图1、4所示。对于内存(SDRAM)的初始化受自身程序控制的系统,可以通过采用一些初始化方面的技巧,在内存中直接开辟一段区域来记录运行信息。由于对内存的初始化可以很好的控制,在系统上电初始化,首先对相应的区域残留信息保存到永久存储器中,例如硬盘、非易失性闪存等,然后才能进行内存的初始化,可以使方案达到最好的效果。图1所示为内部开辟记录区域的形式,其中阴影部分为任务记录区域,此区域应当被初始化设置为CPU缓存不缓冲区域(嵌入式系统如PSOS、VxWorks都提供此设置功能);关闭缓存功能可以保证最后时刻的运行信息不会丢失。
具体地,在嵌入式单板刚刚启动的时候,执行初始化程序之前,先对RAM中的残留信息进行分析,如果发现是有用信息后,将信息组织存储到固化存储器中,待信息存储完毕再开始系统的初始化过程,按照正常的步骤启动应用程序。此时,系统中的记录跟踪机制开始了又一轮的监控工作。
存储在固化存储器中的信息通过接口提取后可以共开发人员进行故障分析。由于存储在永久存储器中,所以即使设备故障发生几天后,仍然可以提取到对后期分析非常有用的数据信息。
对于内存的初始化不受自己程序控制的系统,无法采用上述手段来进行信息的存储,必须在系统之外寻找高速的外存设备,而且必须保证此设备在系统复位后信息不会丢失。如图2所示,一工控机通过高速通道接外部高速存储器,这样就可以解决数据存储的难题,由于外部单板的信息不会随工控机复位消失,所以工控机可以在崩溃后再次取出数据进行分析。
对上述两种方法都需要注意的一个问题就是,在信息写入已开辟的内存区域时,必须保证读写命令不被缓存。由于CPU中有内存的部分缓存功能,如果不对此进行考虑,那么具有可能丢失系统最后时刻的一些信息。
二、记录运行信息在实时操作系统架构上的软件结构,一般都是由若干不同优先级的任务组成,这些任务会互相抢占运行,因此,获取系统崩溃时有哪些任务正在运行就对以后的分析起到很大的作用。在系统初始化的时候,对每一个任务分配相应的区域记录运行状态。记录的内容包括任务运行标志标识任务当前时在运行中还是在等待信号,通过这个标志可以很容易定位最后时刻可能出现问题的任务。
任务起始运行的时刻任务处理本次信号的开始时间,结合第一个标志可以详细定位错误过程。
任务运行的阶段当前任务执行的功能模块,对任务运行阶段的记录可以更加精确的定位到更小的模块单位。
任务当前处理的信号记录任务当前所处理消息的部分信息,可以对故障范围的缩小起到很重要的作用。
在实时系统中的任务和状态机都是基于信号事件触发的,所以只要对信号等待部分进行监控就可以对系统运行进行有效的记录。如图3所示,任务的开始是在等待的信号返回时认定的,而处理完当前信号后再次进入等待信号时则认为任务当前一次运行的结束。这样通过等待信号就可以判断任务是否在运行中。
在标志任务运行开始操作时还应当同时记录任务当前收到的信号的信息以及启动时刻信息等等会对问题分析有重要意义的许多信息。
三、运行信息存储系统再出现故障上电之后,首先对上次运行的记录信息进行提取并存储到永久性存储器中(例如硬盘、闪存等)。在信息提取结束后,对信息记录区域进行初始化并重新开始记录新一次运行的信息。
对于运行信息的分析,在故障产生之后,到达现场的人员可以从永久存储器中提取各次上电的记录进行分析。对于故障的位置可以作如下确认,首先,在没有运行结束的任务中,优先级最高的一个就是故障产生的任务(这是根据抢占式多任务系统的特点得出的结论),然后再根据对此任务的信号消息的分析等等就可以迅速缩小排查的范围,定位问题的区域从而解决问题。
权利要求
1.一种嵌入式实时操作系统运行错误捕获和记录的方法,其特征在于它至少包括如下步骤步骤1开辟记录空间;步骤2在记录空间中,对每一个任务分配相应的区域,用于记录相应任务的运行状态;步骤3将当前任务运行状态记录到与之相应的空间中。
2.如权利要求1所述的嵌入式实时操作系统运行错误捕获和记录的方法,其特征在于所述的步骤还进一步为读写命令不缓存到该记录空间中。
3.如权利要求1所述的嵌入式实时操作系统运行错误捕获和记录的方法,其特征在于所述的步骤1进一步为在系统初始化受自身程序控制的系统,开辟内存的一部分为记录空间,当系统上电时,提取相应区域的遗留记录,写入非易失存储器中后,再进行内存初始化。
4.如权利要求3所述的嵌入式实时操作系统运行错误捕获和记录的方法,其特征在于所述的非易失存储器为闪存。
5.如权利要求1所述的嵌入式实时操作系统运行错误捕获和记录的方法,其特征在于所述的步骤1进一步为在系统初始化不受自身程序控制的系统,内存和外部的高速存储装置之间设有高速传输通道,将该高速存储装置作为记录空间。
6.如权利要求5所述的嵌入式实时操作系统运行错误捕获和记录的方法,其特征在于所述的永久高速存储装置为闪存或高速硬盘。
7.如权利要求1所述的嵌入式实时操作系统运行错误捕获和记录的方法,其特征在于所述的步骤2中的任务运行状态至少包括任务运行标志、任务起始运行时刻、当前任务执行阶段、任务当前处理的信号。
8.如权利要求7所述的嵌入式实时操作系统运行错误捕获和记录的方法,其特征在于所述的当前任务执行阶段为当前任务执行的功能模块。
9.如权利要求7所述的嵌入式实时操作系统运行错误捕获和记录的方法,其特征在于所述的任务当前处理的信号为当前任务处理消息的部分消息。
10.如权利要求1所述的嵌入式实时操作系统运行错误捕获和记录的方法,其特征在于所述的步骤3中在记录前还对系统任务信号等待部分进行监控,通过等待信号判断任务的运行状态。
全文摘要
一种嵌入式实时操作系统运行错误捕获和记录的方法,它至少包括如下步骤步骤1开辟记录空间;步骤2在记录空间中,对每一个任务分配相应的区域,用于记录任务运行状态;步骤3将当前任务运行状态记录到该空间中。为保证系统最后的信息不被丢失,读写命令不缓存到该记录空间中。本发明能够解决现有技术中存在的对系统崩溃问题难以查找和解决的问题,在系统崩溃以后存留部分信息,可供开发人员查找错误原因,快速定位故障位置,从而极大的提高了查找的效率和准确性。
文档编号H04B17/00GK1427562SQ0113917
公开日2003年7月2日 申请日期2001年12月19日 优先权日2001年12月19日
发明者王旭辉 申请人:深圳市中兴通讯股份有限公司上海第二研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1