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

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

Info

Publication number
CN1427562A
CN1427562A CN01139174A CN01139174A CN1427562A CN 1427562 A CN1427562 A CN 1427562A CN 01139174 A CN01139174 A CN 01139174A CN 01139174 A CN01139174 A CN 01139174A CN 1427562 A CN1427562 A CN 1427562A
Authority
CN
China
Prior art keywords
task
run
write
catching
time
Prior art date
Application number
CN01139174A
Other languages
English (en)
Other versions
CN1298119C (zh
Inventor
王旭辉
Original Assignee
深圳市中兴通讯股份有限公司上海第二研究所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳市中兴通讯股份有限公司上海第二研究所 filed Critical 深圳市中兴通讯股份有限公司上海第二研究所
Priority to CNB01139174XA priority Critical patent/CN1298119C/zh
Publication of CN1427562A publication Critical patent/CN1427562A/zh
Application granted granted Critical
Publication of CN1298119C publication Critical patent/CN1298119C/zh

Links

Abstract

一种嵌入式实时操作系统运行错误捕获和记录的方法,它至少包括如下步骤:步骤1:开辟记录空间;步骤2:在记录空间中,对每一个任务分配相应的区域,用于记录任务运行状态;步骤3:将当前任务运行状态记录到该空间中。为保证系统最后的信息不被丢失,读写命令不缓存到该记录空间中。本发明能够解决现有技术中存在的对系统崩溃问题难以查找和解决的问题,在系统崩溃以后存留部分信息,可供开发人员查找错误原因,快速定位故障位置,从而极大的提高了查找的效率和准确性。

Description

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

所属技术领域本发明涉及一种监控嵌入式实时操作系统运转状况的方法,尤其是一种能够捕获并记录在系统崩溃时设备运行异常情况信息的方法。

目前在嵌入式系统领域,异常情况的捕获大多采用底层操作系统(如: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所示,任务的开始是在等待的信号返回时认定的,而处理完当前信号后再次进入等待信号时则认为任务当前一次运行的结束。这样通过等待信号就可以判断任务是否在运行中。

在标志任务运行开始操作时还应当同时记录任务当前收到的信号的信息以及启动时刻信息等等会对问题分析有重要意义的许多信息。

三、运行信息存储系统再出现故障上电之后,首先对上次运行的记录信息进行提取并存储到永久性存储器中(例如:硬盘、闪存等)。在信息提取结束后,对信息记录区域进行初始化并重新开始记录新一次运行的信息。

对于运行信息的分析,在故障产生之后,到达现场的人员可以从永久存储器中提取各次上电的记录进行分析。对于故障的位置可以作如下确认,首先,在没有运行结束的任务中,优先级最高的一个就是故障产生的任务(这是根据抢占式多任务系统的特点得出的结论),然后再根据对此任务的信号消息的分析等等就可以迅速缩小排查的范围,定位问题的区域从而解决问题。

Claims (10)

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中在记录前还对系统任务信号等待部分进行监控,通过等待信号判断任务的运行状态。
CNB01139174XA 2001-12-19 2001-12-19 嵌入式实时操作系统运行错误捕获和记录的方法 CN1298119C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB01139174XA CN1298119C (zh) 2001-12-19 2001-12-19 嵌入式实时操作系统运行错误捕获和记录的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB01139174XA CN1298119C (zh) 2001-12-19 2001-12-19 嵌入式实时操作系统运行错误捕获和记录的方法

Publications (2)

Publication Number Publication Date
CN1427562A true CN1427562A (zh) 2003-07-02
CN1298119C CN1298119C (zh) 2007-01-31

Family

ID=4675099

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB01139174XA CN1298119C (zh) 2001-12-19 2001-12-19 嵌入式实时操作系统运行错误捕获和记录的方法

Country Status (1)

Country Link
CN (1) CN1298119C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100357933C (zh) * 2003-12-30 2007-12-26 中国科学院空间科学与应用研究中心 一种基于386ex cpu的嵌入式计算机系统
CN100461924C (zh) * 2005-11-01 2009-02-11 华为技术有限公司 一种NodeB小区级故障的定位分析方法
CN102622322A (zh) * 2012-02-24 2012-08-01 华为技术有限公司 一种利用黑匣子获取崩溃信息的方法、黑匣子及服务器
CN104572417A (zh) * 2015-01-20 2015-04-29 天津市英贝特航天科技有限公司 基于cmos存储器的操作系统故障跟踪分析方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1141644C (zh) * 1999-11-20 2004-03-10 深圳市中兴通讯股份有限公司 一种嵌入处理机内存的检测和监控方法
AU2001100013A4 (en) * 2001-05-24 2001-08-02 Ryall, John Victor Embedded maintenance umbrella

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100357933C (zh) * 2003-12-30 2007-12-26 中国科学院空间科学与应用研究中心 一种基于386ex cpu的嵌入式计算机系统
CN100461924C (zh) * 2005-11-01 2009-02-11 华为技术有限公司 一种NodeB小区级故障的定位分析方法
CN102622322A (zh) * 2012-02-24 2012-08-01 华为技术有限公司 一种利用黑匣子获取崩溃信息的方法、黑匣子及服务器
CN102622322B (zh) * 2012-02-24 2015-09-09 华为技术有限公司 一种利用黑匣子获取崩溃信息的方法、黑匣子及服务器
CN104572417A (zh) * 2015-01-20 2015-04-29 天津市英贝特航天科技有限公司 基于cmos存储器的操作系统故障跟踪分析方法
CN104572417B (zh) * 2015-01-20 2018-02-23 天津市英贝特航天科技有限公司 基于cmos存储器的操作系统故障跟踪分析方法

Also Published As

Publication number Publication date
CN1298119C (zh) 2007-01-31

Similar Documents

Publication Publication Date Title
US10810306B2 (en) Cognizant engines: systems and methods for enabling program observability and controlability at instruction level granularity
US10621052B1 (en) System and method for hybrid kernel and user-space checkpointing using a character device
US9122601B2 (en) Advancing and rewinding a replayed program execution
US20190018755A1 (en) Program tracing for time travel debugging and analysis
TWI553558B (zh) 虛擬機快照與分析
US10031833B2 (en) Cache-based tracing for time travel debugging and analysis
US9104427B2 (en) Computing system with transactional memory using millicode assists
EP2659371B1 (en) Predicting, diagnosing, and recovering from application failures based on resource access patterns
US10474471B2 (en) Methods and systems for performing a replay execution
EP2628072B1 (en) An instruction sequence buffer to enhance branch prediction efficiency
US20180314623A1 (en) Cache-based tracing for time travel debugging and analysis
US5682328A (en) Centralized computer event data logging system
JP5615384B2 (ja) Automatic suspend and resume in hardware transactional memory
Bobba et al. Tokentm: Efficient execution of large transactions with hardware transactional memory
KR100777938B1 (ko) 부정 코드 실행의 방지 방법, 및 부정 코드 실행의 방지용 프로그램의 기록매체
CN101308462B (zh) 管理对共享存储器单元的存储器访问的方法和计算系统
KR101279696B1 (ko) 컴퓨팅 장치 상의 가상 머신들의 라이브러리와 관련된 방법
US8533706B2 (en) User process object code installer
US6681384B1 (en) Multi-threaded break-point
US8095741B2 (en) Transactional memory computing system with support for chained transactions
EP2628076B1 (en) An instruction sequence buffer to store branches having reliably predictable instruction sequences
US9354878B2 (en) Last branch record register for storing taken branch information and transactional memory transaction indicator to be used in transaction execution analysis
US6633968B2 (en) Pre-fetching of pages prior to a hard page fault sequence
JP4528307B2 (ja) メモリ管理に対する動的なパフォーマンスモニタリングベースのアプローチ
US8402318B2 (en) Systems and methods for recording and replaying application execution

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
GR01 Patent grant
C14 Grant of patent or utility model
ASS Succession or assignment of patent right

Owner name: BEIJING HUASHANG ELECTRIC POWER TECHNOLOGY CENTER

Effective date: 20131225

Owner name: STATE GRID BEIJING ELECTRIC POWER COMPANY

Free format text: FORMER OWNER: ZTE CORPORATION

Effective date: 20131225

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20131225

Address after: 100031 Beijing Qianmen West Street, Xicheng District, No. 41

Patentee after: State Grid Beijing Electric Power Company

Patentee after: Beijing Huashang Electric Power Technology Center

Patentee after: CHINA TECHNOLOGY EXCHANGE CO., LTD.

Address before: 518057 Department of law, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen

Patentee before: ZTE Corporation

COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518057 SHENZHEN, GUANGDONG PROVINCE TO: 100031 XICHENG, BEIJING

EXPY Termination of patent right or utility model
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070131

Termination date: 20141219