嵌入式系统故障诊断方法和设有故障诊断的嵌入式系统转让专利

申请号 : CN201210192869.1

文献号 : CN102750212B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗侍田陈远生郑玉成黄长伟孔德深

申请人 : 长园深瑞继保自动化有限公司

摘要 :

一种嵌入式系统故障诊断方法和设有故障诊断的嵌入式系统,涉及嵌入式系统及其故障诊断方法。嵌入式系统故障诊断方法,包括以下步骤:A、在嵌入式系统中设置一故障诊断系统,故障诊断系统的存储区域与主系统的存储区域分离;B、在主系统运行过程中,主系统不能正确地响应用户操作,启动诊断系统读取主系统故障现场数据和分析故障数据。设有故障诊断的嵌入式系统,包括系统至少设置处理器、主系统模块、存储器、引导加载模块、通讯端口、复位按钮、故障诊断模块、故障诊断按钮,存储器分为两部分,一部分用于运行主系统,另一部分用于运行故障诊断系统,两部分相互不重叠。本发明使得用户在嵌入式系统运行过程中如果发生主系统崩溃故障,能够读取和分析故障现场数据,提高系统的可维护性和可诊断性。

权利要求 :

1.一种嵌入式系统的故障诊断方法,其特征在于包括以下步骤:A、在嵌入式系统中设置一故障诊断系统,故障诊断系统的存储区域与主系统的存储区域分离;设置一故障诊断按钮,故障诊断按钮连接至处理器;

B、在主系统运行过程中发生错误导致系统崩溃,主系统不再响应或者不能正确地响应用户操作时,按下故障诊断按钮启动故障诊断系统,故障诊断系统运行后,初始化通讯端口,故障诊断系统读取主系统的符号表和运行区的故障现场数据,加以分析并能通过系统的通信端口输出。

2.一种设有故障诊断的嵌入式系统,包括

至少一个处理器(11);

主系统模块(18),包括应用该嵌入式系统所需的业务功能模块,用于实现包含嵌入式系统的产品所需要的业务功能;

存储器,用于存储运行数据;

引导加载模块(16),用于引导加载启动主系统;

通讯端口(17),用于系统通过通讯端口输入输出数据,与处理器(11)连接;

复位按钮(12),用于系统重新运行的启动,与处理器(11)连接;

其特征在于,还包括:

故障诊断模块(19),用于故障诊断;故障诊断模块(19)包括数据读取子模块(191)、数据分析子模块(192),数据读取子模块(191)用于主系统现场数据的读取,数据分析子模块(192)用于对读取的主系统现场数据进行分析;

故障诊断按钮(13),用于启动故障诊断模块(19),故障诊断按钮(13)连接至处理器(11);

存储器分为两部分,一部分(14)用于运行主系统,另一部分(15)用于运行故障诊断系统,两部分相互不重叠。

说明书 :

嵌入式系统故障诊断方法和设有故障诊断的嵌入式系统

技术领域

[0001] 本发明涉及嵌入式系统及其故障诊断方法。

背景技术

[0002] 目前公知的技术中,嵌入式系统由CPU系统以及运行在其上的软件构成,软件可能存在bug,在运行过程中有崩溃的可能。现有技术中,软件崩溃后必须重新启动,重新启动前可能不能输出调试信息,也就无法获取系统运行状态和数据;而重新启动后,须重新加载程序和数据,这个过程又会破坏系统崩溃前的现场,因此无法有效地分析和诊断系统故障。

发明内容

[0003] 本发明的目的之一在于提供一种在嵌入式系统的软件崩溃后诊断和分析故障发生原因的嵌入式系统的故障诊断方法。
[0004] 本发明的目的之二在于提供一种在嵌入式系统的软件崩溃后诊断和分析故障发生原因的设有故障诊断的嵌入式系统。
[0005] 本发明的目的之一可以这样实现,设计一种嵌入式系统的故障诊断方法,包括以下步骤:
[0006] A、在嵌入式系统中设置一故障诊断系统,故障诊断系统的存储区域与主系统的存储区域分离;
[0007] B、在主系统运行过程中发生错误导致系统崩溃,主系统不再响应或者不能正确地响应用户操作时,启动诊断系统,由诊断系统读取主系统故障现场数据和分析故障数据。
[0008] 本发明的目的之二可以这样实现,设计一种设有故障诊断的嵌入式系统,包括至少一个处理器;
[0009] 主系统模块,包括应用该嵌入式系统所需的业务功能模块,用于实现包含嵌入式系统的产品所需要的业务功能;
[0010] 存储器,用于存储运行数据;
[0011] 引导加载模块,用于引导加载启动主系统;
[0012] 通讯端口,用于系统通过通讯端口输入输出数据;
[0013] 复位按钮,用于系统重新运行的启动;
[0014] 故障诊断模块,用于故障诊断;
[0015] 故障诊断按钮,用于启动故障诊断模块,故障诊断按钮连接至处理器;
[0016] 存储器分为两部分,一部分用于运行主系统,另一部分用于运行故障诊断系统,两部分相互不重叠。
[0017] 本发明使得用户在嵌入式系统运行过程中如果发生主系统崩溃故障,能够读取和分析故障现场数据,提高整个系统的可维护性和可诊断性。

附图说明

[0018] 图1是本发明较佳实施例的构成示意图;
[0019] 图2是本发明较佳实施例的启动流程图;
[0020] 图3是本发明较佳实施例的诊断运行流程图。

具体实施方式

[0021] 以下结合实施例对本发明作进一步的描述。
[0022] 如图2所示,一种嵌入式系统的故障诊断方法,其特征在于包括以下步骤:
[0023] A、在嵌入式系统中设置一故障诊断系统,故障诊断系统的存储区域与主系统的存储区域分离;
[0024] B、在主系统运行过程中发生错误导致系统崩溃,主系统不再响应或者不能正确地响应用户操作时,启动诊断系统,由诊断系统读取主系统故障现场数据和分析故障数据。
[0025] 如图2、图3所示,设置一故障诊断按钮,按下故障诊断按钮启动故障诊断系统,故障诊断系统运行后,初始化通讯端口,读取主系统符号表,读取主系统运行区的故障现场数据,加以分析并能通过系统的通信端口输出。如果在没有按下故障诊断按钮的情况下按复位按钮,引导加载模块(bootloader)将加载主系统并执行,故障诊断系统不加载到内存,因此故障诊断程序完全不干扰主系统运行。如果按下故障诊断按钮后按复位键,系统将只加载故障诊断系统运行,由于设计时确保故障诊断系统和主系统使用不同的存储区,故加载故障诊断系统不会破坏主系统发生故障后的现场数据。
[0026] 如图1所示,一种设有故障诊断系统的嵌入式系统,包括系统至少设置一个处理器11;
[0027] 主系统模块18,包括应用该嵌入式系统所需的业务功能模块,用于实现包含嵌入式系统的产品所需要的业务功能;
[0028] 存储器,用于存储运行数据;
[0029] 引导加载模块16,用于引导加载启动主系统;
[0030] 通讯端口17,用于系统通过通讯端口输入输出数据;
[0031] 复位按钮12,用于系统重新运行的启动;
[0032] 故障诊断模块19,用于故障诊断,包括数据读取子模块191、数据分析子模块192,数据读取子模块191用于主系统现场数据的读取,数据分析子模块192用于对读取的主系统现场数据进行分析;
[0033] 故障诊断按钮13,用于启动故障诊断模块,故障诊断按钮连接至处理器;系统运行过程中按下故障诊断按钮,系统将不做反应,如果在复位过程中按住此按钮,系统将进入故障诊断状态,否则运行主系统;
[0034] 存储器分为两部分,一部分14用于运行主系统,另一部分15用于运行故障诊断系统,两部分相互不重叠。这两部分内存地址互不重叠。
[0035] 一个设有故障诊断系统的嵌入式系统,由主系统实现包含嵌入式系统的产品所需要的业务功能,故障诊断系统与主系统使用不同的存储区域。如果在主系统运行过程中,因故发生致命错误导致系统崩溃,系统不再响应或者不能正确地响应用户操作,用户将无法正确地获取故障现场数据,无法分析故障发生的原因。此时,可以立即启动诊断系统,由诊断系统读取和分析故障数据。由于故障诊断系统和主系统所使用的存储区域不同,所以启动故障诊断系统不会破坏主系统的运行现场数据。
[0036] 在嵌入式系统中增加一个故障诊断按钮13,系统复位后,首先运行引导加载模块(bootloader)16,bootloader16运行后,首先判断故障诊断按钮13是否按下,如果按下,则启动故障诊断系统,否则启动主系统。系统的内存划分为两部分,一部分15用于故障诊断,另一部分14用于运行主系统,两者互相不重叠。主系统运行过程中,故障诊断系统不加载到内存,杜绝故障诊断系统意外运行导致干扰主系统运行的问题。故障诊断系统运行后,将读取主系统运行区的数据,加以分析并能通过系统的通信端口17输出。分析结束后,复位系统,主系统即可恢复运行。
[0037] 故障诊断系统加载后,可以通过文件系统或者其他方式获取主系统的符号表,符号表和现场数据相结合,实现进一步的诊断功能,能够解析故障发生各个变量的值,反映代码区是否被改写,有没有发生栈和缓冲区溢出等信息。这些信息,可以协助工程师诊断和定位故障,为进一步解决问题提供非常关键的帮助。