一种嵌入式软件异常监控和处理装置及其方法制造方法及图纸

技术编号:2912970 阅读:239 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种嵌入式软件异常监控和处理装置及其方法,其中,该装置包括异常检测模块、异常抛出模块以及异常处理模块,其中异常检测模块用于检测不同级别的异常,触发异常抛出模块;异常抛出模块用于将异常检测模块检测的异常统一交给异常处理模块处理;异常处理模块用于处理各种被抛出的异常,同时记录有效的现场信息。借助此技术方案,有效检测和处理各种级别的异常。当监控模块和异常处理模块等关键模块出现问题时,系统也可以检测并安全地处理,并有针对性地记录这些模块的信息和现场信息。采用了此异常抛出和处理装置,可以简化系统的异常处理流程,提高软件的可重用性和可扩展性。

【技术实现步骤摘要】

本专利技术涉及异常监控和处理,特别地,涉及嵌入式软件的异常监控和处理。
技术介绍
随着信息时代的到来,嵌入式软件无处不在。从各种家用电器、网络设备,再到消费类电子产品如手机、甚至手表,到处可以看到嵌入式软件的身影。这些软件尤其是应用于航空、通信、医疗等关键领域设备的软件,其可靠性十分重要。这意味着,这些软件不仅要满足功能上的需求,也必须能够安全有效地监控和处理各种异常。典型地,嵌入式系统的异常可以分为以下几类:1)应用级异常,比如某任务检测到某设备功率值非法而可能使系统不能正常工作。2)操作系统级异常,比如任务挂起等。3)CPU级异常,比如访问非法内存地址、执行非法指令等。4)看门狗异常,即长时间没有喂看门狗,导致看门狗定时器超时。其中,CPU级异常一般由软件代码在执行过程中触发了CPU的同步异常所致,操作系统会通过异常向量来保存现场,并做进一步的处理(典型地,会打印少量异常信息,并使系统重启)。看门狗一种是-->监控CPU指令运行状况的芯片。为了防止程序跑飞或者系统运行异常,嵌入式软件一般都会通过任务定期地喂看门狗,即将其计数器赋一个较大的非0值。而看门狗芯片则每隔一小段时间会将计数器递减。如果由于系统异常,喂狗任务未能及时喂狗,看门狗芯片的计数器值最终会变成0,并让系统重启。对于应用级和操作系统级异常,操作系统往往不提供专门的监控手段。而对于CPU级异常和看门狗异常,虽然操作系统或硬件可以检测,但往往不能有效记录现场信息,不利于问题的定位。因此,在目前许多嵌入式软件中,都会或多或少地提供一些监控和异常处理机制。典型地,可能包括以下若干部分:1)应用级异常:由应用级任务自身记录现场,并重启系统。2)操作系统级异常:有一个监控任务负责定时监控,发现异常后记录现场,重启系统。3)CPU级异常:有一个异常守护任务负责等待处理这些异常。当异常发生后,操作系统会唤醒该任务,并由该任务记录现场,重启系统。4)看门狗异常:在喂狗超时复位前,记录现场信息,然后由看门狗硬件重启系统。虽然以上机制可以解决许多故障,但存在的问题是:1)监控者本身如果出了问题,可能使系统不能从异常中恢复。2)当应用级任务自身在处理异常过程中,如果被将长时间运行的高优先级任务抢占,则系统不能及时从异常中恢复。-->3)不同级别异常的处理逻辑可能存在许多冗余。4)不同级别异常的处理可能缺少统一的接口,从而会降低代码的可读性和可扩展性。需要说明的是,这里说的“任务”,是指一般嵌入式操作系统的调度单位,在有些操作系统中称之为“进程”或其他名称。
技术实现思路
本专利技术要解决的技术问题是提供一种嵌入式软件异常监控和处理装置及其方法,可以统一地检测和处理各种级别的异常,以及记录关键模块的出错信息和现场信息,保证异常得到处理。为了解决上述技术问题,本专利技术提供了一种嵌入式软件异常监控和处理装置,包括异常检测模块、异常抛出模块以及异常处理模块;其中,所述异常检测模块用于检测不同级别的异常;所述异常抛出模块用于将异常检测模块检测的异常统一交给异常处理模块处理;所述异常处理模块用于处理各种被抛出的异常,同时记录有效的现场信息。其中,所述异常检测模块包括应用模块、监控任务模块、看门狗模块以及系统异常模块;所述应用模块用于完成软件系统的业务功能,检测应用级异常;所述监控任务模块用于监控操作系统级别异常,对所述异常进行处理,以及定期喂看门狗;-->所述看门狗模块用于检测看门狗是否出现看门狗喂狗超时异常;所述系统异常模块用于检测CPU级别的异常。其中,所述异常处理模块中任务运行的优先级最高,初始化和系统正常时,处于睡眠状态。有异常抛出时,任务就会被唤醒。其中,所述异常抛出模块,在监控任务模块和异常处理模块均正常工作时,用于唤醒异常处理模块中的任务;当监控任务模块不正常工作时,记录监控任务模块中任务的相关信息;当异常处理模块不正常工作时,则记录异常处理模块相关信息,以及公用现场信息,重启系统。所述监控任务模块中任务运行的优先级高于所述应用模块中任务运行的优先级。本专利技术还提供了一种嵌入式软件异常监控和处理方法,包括:A、异常检测模块检测到异常,触发异常抛出模块中的异常抛出函数;B、所述异常抛出模块抛出异常,唤醒异常处理模块中的异常处理任务;C、所述异常处理模块处理各种被抛出的异常,同时记录有效的现场信息。其中,在所述步骤A中,所述异常包括:应用级异常、操用系统级异常、看门狗异常、CPU级异常,其中,应用级异常由应用模块检测;操作系统级异常由监控任务模块检测;看门狗喂狗超时异常由看门狗模块检测;CPU级异常由系统异常模块检测。-->其中,所述步骤A中包括:A1、判断所述异常是否由喂狗超时引起,若是,则进入步骤A2,若不是,则进入步骤B;A2、对所述监控模块中的监控任务进行异常检测并处理。其中,所述步骤A2包括:A21判断所述监控任务是否状态正常,若正常,则进入步骤B,若不正常,则进入步骤A22;A22异常抛出模块记录当前监控任务的任务信息。其中,所述步骤B包括:B1、判断所述异常处理模块中的异常处理任务是否正常,若正常,则进入步骤B2,若不正常,则进入步骤B3;B2、异常抛出模块唤醒异常处理任务并进行异常处理;B3、由异常抛出模块记录异常处理任务的任务信息,并记录公用现场信息,重启系统。其中,所述步骤B2包括:判断当前任务状态,若在任务上下文且当期任务不是异常处理任务,则由异常处理任务进行异常处理,若当前任务是异常处理任务,则进入步骤B3。其中,所述异常处理模块中的异常处理任务,在初始化和系统正常情况下,处于睡眠状态;若有异常抛出,则该任务被唤醒,进行异常处理。通过比较可以发现,本专利技术的技术方案与现有技术的区别在于,-->异常检测模块可用于检测不同级别的异常,然后通过异常抛出模块将异常抛出,交由异常处理模块进一步处理。该异常监控和处理装置及其方法可以有效检测和处理各种级别的异常。当监控模块和异常处理模块等关键模块出现问题时,系统也可以检测并安全地处理,并有针对性地记录这些模块的信息和现场信息。同时异常处理模块优先级高,保证了异常处理过程不会被其他调度实体打断,从而保证了异常处理的实时性和现场信息的有效性。采用了统一的异常抛出和处理装置,可以简化系统的异常处理流程,提高软件的可重用性和可扩展性。附图说明图1是根据本专利技术的一个实施例的嵌入式软件异常监控和处理装置示意图;图2是根据本专利技术的一个实施例的异常检测模块示意图。图3是根据本专利技术的一个实施例的嵌入式软件异常监控和处理装置的异常抛出流程图;图4是根据本专利技术的一个实施例的嵌入式软件异常监控和处理方法的异常处理过程。具体实施方式异常检测模块检测到异常,触发异常抛出模块中的异常抛出函数,异常抛出函数抛出异常,唤醒异常处理模块中的异常处理任务,异常处理任务处理各种被抛出的异常,同时记录有效的现场信息。下面将结合附图对本专利技术作进一步详细描述:-->详细描述本专利技术的一个较佳实施例,该实施例是针对VxWorks实时操作系统的,但同时,也适用于其他操作系统,如嵌入式Linux系统。通过异常抛出模块和异常处理模块以及异常检测模块的连接组成嵌入式软件异常监控和处理装置。图1示出了根据本专利技术的一个较佳实施例的嵌入式软件异常监控和处理装置。整本文档来自技高网
...

【技术保护点】
一种嵌入式软件异常监控和处理装置,其特征在于,所述装置包括异常检测模块、异常抛出模块以及异常处理模块;其中, 所述异常检测模块用于检测不同级别的异常,触发异常抛出模块; 所述异常抛出模块用于将异常检测模块检测的异常统一交给异常处 理模块处理; 所述异常处理模块用于处理各种被抛出的异常,同时记录有效的现场信息。

【技术特征摘要】
1、一种嵌入式软件异常监控和处理装置,其特征在于,所述装置包括异常检测模块、异常抛出模块以及异常处理模块;其中,所述异常检测模块用于检测不同级别的异常,触发异常抛出模块;所述异常抛出模块用于将异常检测模块检测的异常统一交给异常处理模块处理;所述异常处理模块用于处理各种被抛出的异常,同时记录有效的现场信息。2、根据权利要求1所述的嵌入式软件异常监控和处理装置,其特征在于,所述异常检测模块包括应用模块、监控任务模块、看门狗模块以及系统异常模块;其中,所述应用模块用于完成软件系统的业务功能,检测应用级异常;所述监控任务模块用于监控操作系统级别异常,对所述异常进行处理,以及定期喂看门狗;所述看门狗模块用于检测看门狗是否出现看门狗喂狗超时异常;所述系统异常模块用于检测CPU级别的异常。3、根据权利要求1所述的嵌入式软件异常监控和处理装置,其特征在于,所述异常处理模块中任务运行的优先级最高,初始化和系统正常时,处于睡眠状态,有异常抛出时,任务就会被唤醒。4、根据权利要求2所述的嵌入式软件异常监控和处理装置,其特征在于,所述异常抛出模块,在监控任务模块和异常处理模块均正常工作时,用于唤醒异常处理模块中的任务;当监控任务模块不正常工作时,记录监控任务模块中任务的相关信息;当异常处理模块不正常工作时,则记录异常处理模块相关信息,以及公用现场信息,重启系统。5、根据权利要求2所述的嵌入式软件异常监控和处理装置,其特征在于,所述监控任务模块中任务运行的优先级高于所述应用模块中任务运行的优先级。6、一种嵌入式软件异常监控和处理方法,其特征在于,包括:A、异常检测模块检测到异常,触发异常抛出模块中的异常抛出函数;B、所述异常抛出函数抛出异常,唤醒异常处理模块中的异常处理任务;C、所述异常处...

【专利技术属性】
技术研发人员:陈路远
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1