CN115061842A - 一种数据处理方法、装置、设备和存储介质 - Google Patents

一种数据处理方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN115061842A
CN115061842A CN202210637472.2A CN202210637472A CN115061842A CN 115061842 A CN115061842 A CN 115061842A CN 202210637472 A CN202210637472 A CN 202210637472A CN 115061842 A CN115061842 A CN 115061842A
Authority
CN
China
Prior art keywords
abnormal
exception
stack
phenomenon
code
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202210637472.2A
Other languages
English (en)
Inventor
姜珊
孙忠刚
许凯程
王兆麒
张晓谦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FAW Group Corp
Original Assignee
FAW Group Corp
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 FAW Group Corp filed Critical FAW Group Corp
Priority to CN202210637472.2A priority Critical patent/CN115061842A/zh
Publication of CN115061842A publication Critical patent/CN115061842A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种数据处理方法、装置、设备和存储介质,其中,该方法包括:在系统存在异常现象的情况下,获取所述异常现象对应的异常编码;根据所述异常编码的类型,确定异常处理方式;采用所述异常处理方式,获取所述异常现象对应的系统异常信息;根据所述系统异常信息对所述异常现象进行定位,获得系统异常定位结果。通过上述方案,可以提高系统异常的分析效率和精确性,提升车用嵌入式控制器系统的可靠性。

Description

一种数据处理方法、装置、设备和存储介质
技术领域
本发明实施例涉及计算机领域,尤其涉及一种数据处理方法、装置、设备和存储介质。
背景技术
现阶段,随着汽车智能化发展和汽车电子功能需求的不断增加,对车用嵌入式控制器系统的设计要求越来越高。在车用嵌入式控制器系统的开发过程中,及时发现并定位系统异常,以使开发人员可以尽快锁定系统异常,保证车用嵌入式控制器系统的开发质量,是当前需要解决的问题。
发明内容
本发明提供了一种数据处理方法、装置、设备和存储介质,可以提高系统异常的分析效率和精确性,提升车用嵌入式控制器系统的可靠性。
根据本发明的一方面,提供了一种数据处理方法,包括:
在系统存在异常现象的情况下,获取所述异常现象对应的异常编码;
根据所述异常编码的类型,确定异常处理方式;
采用所述异常处理方式,获取所述异常现象对应的系统异常信息;
根据所述系统异常信息对所述异常现象进行定位,获得系统异常定位结果。
根据本发明的另一方面,提供了一种数据处理装置,该装置包括:
异常编码获取模块,用于在系统存在异常现象的情况下,获取所述异常现象对应的异常编码;
异常处理方式确定模块,用于根据所述异常编码的类型,确定异常处理方式;
系统异常信息获取模块,用于采用所述异常处理方式,获取所述异常现象对应的系统异常信息;
异常现象定位模块,用于根据所述系统异常信息对所述异常现象进行定位,获得系统异常定位结果。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的数据处理方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的数据处理方法。
本发明实施例的技术方案,在系统存在异常现象的情况下,获取异常现象对应的异常编码;根据异常编码的类型,确定异常处理方式;采用异常处理方式,获取异常现象对应的系统异常信息;根据系统异常信息对异常现象进行定位,获得系统异常定位结果。上述方案解决了现有的车辆控制器系统不具备调试环境,无法及时且精准的对系统异常进行定位的问题。实现了车用嵌入式控制器系统的开发过程中,及时发现并定位系统异常,并对异常现象进行精细化的分析和处理的效果。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种数据处理方法的流程图;
图2为本发明实施例二提供的一种数据处理方法的流程图;
图3为本发明实施例三提供的一种数据处理方法的流程图;
图4为本发明实施例四提供的一种数据处理方法的流程图;
图5为本发明实施例五提供的一种数据处理方法的流程图;
图6为本发明实施例六提供的一种数据处理装置的结构示意图;
图7为本发明实施例七提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“目标”、“当前”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“等”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供了一种数据处理方法的流程图,本实施例可适用于对数据进行处理的情况,尤其适用于根据系统异常现象对应的异常编码,获取系统异常信息,根据系统异常信息获得系统异常定位结果的情况。该方法可以由数据处理装置来执行,该数据处理装置可以采用硬件和/或软件的形式实现,该数据处理装置可应用于嵌入式系统中,该嵌入式系统可配置于电子设备中。如图1所示,该方法包括:
S110、在系统存在异常现象的情况下,获取异常现象对应的异常编码。
其中,系统为车用嵌入式控制器系统,在本实施例中,系统可以是AUTOSAR(AUTOSAR:AUTomotive Open System Architecture,汽车开放系统架构)系统。异常现象是指系统中的程序在运行过程中发生的异常现象。可选的,在车用嵌入式控制系统的场景下,异常现象具有多种类别,具体可以包括由AUTOSAR系统规定的三大类异常现象和三大类异常现象中包含的27小类异常现象。三大类异常现象为Application Error(应用异常现象)、Protection Error(保护驱动异常现象)和Kernel Error(实时操作系统异常现象)。
不同类别的异常现象对应不同的异常编码。异常编码为ErrorHook函数的参数。
需要说明的是,AUTOSAR系统规定控制器可以使用ErrorHook技术来捕捉系统异常,在ErrorHook函数中使用一个字节来记录Error(异常编码),并定义了ApplicationError、Protection Error和Kernel Error的异常编码,AUTOSAR系统供应商还会扩展异常编码以记录更多异常现象种类。AUTOSAR系统中,控制器可以使用DetErrorHook函数使能Det(Development Error Tracer,开发错误追踪器)模块,一般Det错误只在代码编写过程中出现,但当系统存在异常现象时,可能会引起连锁反应导致Det错误。DET模块调用的钩函数一般命名为Det_ErrorHook。
具体的,AUTOSAR系统通过调用DetErrorHook函数记录系统的通用信息,避免在异常分析处理过程中系统产生连锁异常,无法记录最根本问题。其中,系统的通用信息包括:ErrorID、coreID和HookID。ErrorID是指可以用于表征异常编码的标识信息;coreID是指系统中出现异常现象的内核的标识信息;HookID是指可以用于表征钩函数的标识信息。
AUTOSAR系统在检测到系统中的运行程序出现异常现象时,调用钩函数,获取并记录异常现象对应的异常编码。其中,钩函数即Hook函数,Hook是一种截获计算机软件组件之间交互或者信息交互来增强和改善系统的技术。Hook函数的参数即为异常编码,在ErrorHook中AUTOSAR规定了三大类27小类异常,异常编码可以在异常分析时将异常锁定到具体小类。异常编码可以包括E_OS_LIMIT、E_OS_STACKFAULT、E_OS_PROTECTION_MEMORY和E_OS_PROTECTION_EXCEPTION中的至少一个。
S120、根据异常编码的类型,确定异常处理方式。
其中,不同异常编码的类型不同。例如,异常编码的的类型包括系统激活异常、系统堆栈异常、系统内存保护异常和系统分类异常。若异常编码为E_OS_LIMIT,则确定异常编码的类型为系统激活异常;若异常编码为E_OS_STACKFAULT,则确定异常编码的类型为系统堆栈异常;若异常编码为E_OS_PROTECTION_MEMORY,则确定异常编码类型为系统内存保护异常;若异常编码为E_OS_PROTECTION_EXCEPTION,则确定异常编码的类型为系统分类异常。系统激活异常可以是当前任务出现多次激活,或当前任务需要激活但未被激活的现象。系统堆栈异常可以是系统中出现堆栈溢出现象。访问数据时芯片内存保护单元具有相应地址判断机制,访问没有权限的地址会产生系统内存保护异常的现象。系统分类异常是指系统未能正确为系统异常行为进行分类的现象。
具体的,获取异常现象对应的异常编码后,根据异常编码调用异常现象对应的异常分析函数。不同类型的异常现象涉及的信息有所不同,需要根据异常编码的类型,寻找预先在AUTOSAR系统中存储的,和异常编码的类型对应的ErrorID。根据ErrorID调用异常处理函数。异常处理方式即为采用异常处理函数对系统中的异常现象进行处理的逻辑。
可选的,还可以根据coreID确定芯片内核级别,系统对芯片内核级别的异常处理采用类似中断响应的方式,当系统发生异常现象时,系统可以通过异常向量表跳转到对应的异常处理函数中。
S130、采用异常处理方式,获取异常现象对应的系统异常信息。
具体的,由于不同异常类型涉及的信息有所不同,因此再确定异常编码的类型后,还需要记录异常编码对应的系统异常的异常值。在确定异常处理方式后,采用异常处理函数对系统中的异常现象进行处理,以获得系统中异常现象对应的异常值,将获得的所有异常值作为系统异常信息。
S140、根据系统异常信息对异常现象进行定位,获得系统异常定位结果。
具体的,在获得系统异常信息后,根据系统异常信息,确定系统中出现异常现象的任务、异常现象的类型和出现异常现象的地址,将出现异常现象的任务、异常现象的类型和出现异常现象的地址作为异常定位结果。
优选的,在获得系统异常定位结果后,还可以采用非易失性存储设备存储系统异常信息和系统异常定位结果。
其中,非易失性存储设备,是在关闭计算机或者突然性、意外性关闭计算机的时候,保证数据不会丢失的存储设备。
具体的,在获得系统异常定位结果后,判断系统中的异常现象是否涉及FLASH(存储芯片)或SPI(Serial Peripheral Interface,串行外设接口),若异常现象涉及FLASH,则采用SPI存储器作为非易失性存储设备存储系统异常信息和系统异常定位结果;若异常现象涉及SPI,则采用FLASH存储器作为非易失性存储设备存储系统异常信息和系统异常定位结果。当系统异常不涉及FLASH时,需要分别单独查询FLASH、FEE(Flash EEPROMEmulation,Flash模拟EEPROM)和NvM(Non-volatile Memory,固定存储器)的相关模块状态,循环调度相关模块的mainfunction函数,以保证选择合适的非易失性存储设备进行异常信息和系统异常定位结果的存储。当系统错误不涉及SPI时,则采用同步存储的形式,轮询等待外部EEPROM状态满足持续存储所有数据。其中,轮询是一种CPU决策如何提供周边设备服务的方式。轮询的方法是,由CPU定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。
将系统异常信息和系统异常定位结果存储到控制器非易失性存储设备中,可以使开发人员根据存储的信息快速锁定常见异常现象的发生原因和地址,从而迅速优化代码。
本实施例提供的技术方案,在系统存在异常现象的情况下,获取异常现象对应的异常编码;根据异常编码的类型,确定异常处理方式;采用异常处理方式,获取异常现象对应的系统异常信息;根据系统异常信息对异常现象进行定位,获得系统异常定位结果。上述方案解决了现有的车辆控制器系统不具备调试环境,无法及时且精准的对系统异常进行定位的问题。实现了车用嵌入式控制器系统的开发过程中,及时发现并定位系统异常,并对异常现象进行精细化的分析和处理的效果。
在上述实施例的基础上,根据系统异常信息对异常现象进行定位,获得系统异常定位结果的过程中,还包括:从候选异常处理逻辑中选择目标异常处理逻辑;其中,候选异常处理逻辑包括:忽略异常、强行终止或中断出错的任务、强行终止出错的应用、强行终止出错的应用并重新初始化应用、复位系统和关闭系统中的至少一种;采用目标异常处理逻辑对异常现象进行处理。
具体的,在检测到系统存在异常现象后,根据Hook中的异常处理代码,从候选异常处理逻辑中确定目标异常处理逻辑。
若根据Hook中的异常处理代码确定目标异常处理逻辑为忽略异常,则系统继续执行后续任务操作。
若根据Hook中的异常处理代码确定目标异常处理逻辑为强行终止或中断发生异常现象的任务,由于AUTOSAR系统中的任务或中断是静态配置的,强行终止发生异常现象的任务后,依然继续原有的系统调度。
若根据Hook中的异常处理代码确定目标异常处理逻辑为强行终止出错的应用,则该应用下的任务或中断将被停止调度。
若根据Hook中的异常处理代码确定目标异常处理逻辑为强行终止出错的应用并重新初始化应用,则该应用下的任务或中断在重新初始化之后继续调度。
若根据Hook中的异常处理代码确定目标异常处理逻辑为复位系统,则通过软复位或看门狗等硬复位的形式复位系统。
若根据Hook中的异常处理代码确定目标异常处理逻辑为关闭系统,则通过关闭系统,控制器进入下电流程,在控制器下电后视外部条件重新唤醒系统或保持系统关闭。
从候选异常处理逻辑中确定目标异常处理逻辑,再采用目标异常处理逻辑对异常现象进行处理,可以在系统出现异常现象时,选择合适的异常处理逻辑,保证系统的稳定性。
实施例二
图2为本发明实施例二提供的一种数据处理方法的流程图,本实施例在上述实施例的基础上进行了优化,给出了若异常编码为E_OS_LIMIT,则确定异常编码的类型为系统激活异常;通过操作系统状态机获取当前任务标识和当前任务优先级;根据当前任务标识、当前任务优先级、激活异常任务标识和激活异常任务优先级,确定系统异常信息的优选实施例。具体的,如图2所示,该方法包括:
S210、在系统存在异常现象的情况下,获取异常现象对应的异常编码。
S220、若异常编码的类型为系统激活异常,则通过操作系统接口获取当前任务标识和当前任务优先级。
其中,系统激活异常可以是系统中存在需要激活但未激活的任务,还可以是系统中存在多次激活同一任务的情况。系统激活异常的主要产生原因有:当前某一任务(或中断)执行时间过长,使得其他任务(或中断)多次激活。操作系统接口为操作系统的系统接口,该系统接口为标准API(Application Programming Interface,应用程序编程接口),可以用于传输系统中的任务相关数据。当前任务是指系统中当前正在执行的任务;当前任务标识是指可以表征当前任务的标识信息。
具体的,若获取的异常编码为E_OS_LIMIT,则异常编码的类型为系统激活异常,系统中存在激活异常的异常现象。在系统调度过程中,可以通过操作系统的系统接口实时获取当前任务标识和当前任务优先级。
S230、通过操作系统状态机获取激活异常任务标识和激活异常任务优先级。
其中,激活异常任务是指系统中出现激活异常现象的任务。操作系统状态机用于实时记录操作系统中各个任务的任务状态。任务状态包括任务标识和任务的激活情况和任务优先级。
具体的,通过操作系统状态机可以实时监测系统中各个任务的激活信息,并在系统中存在激活异常的任务时,抛出系统异常信息,系统异常信息包括激活异常任务标识和激活异常任务优先级。记录激活异常任务标识和激活异常任务优先级,可以精确排查出错误发生位置。激活异常任务标识是指出现激活异常的异常任务对应的标识信息;激活异常任务优先级是指出现激活异常的异常任务对应的优先级。
S240、根据当前任务标识、当前任务优先级、激活异常任务标识和激活异常任务优先级,确定系统异常信息。
具体的,首先比较当前任务标识和激活异常任务标识,若当前任务标识和激活异常任务标识一致,则比较当前任务优先级和激活异常任务优先级,若当前任务优先级和激活异常任务优先级一致,则确定当前任务为激活异常任务;若当前任务标识和激活异常任务标识不一致,或当前任务优先级和激活异常任务优先级不一致,则当前任务不是激活异常任务,此时需要进一步的通过操作系统状态机获取系统中除当前任务标和激活异常任务之外的其他任务的其他任务标识和其他任务优先级。
从其他任务中确定当前任务的下一任务,比较当前任务优先级和下一任务优先级,若当前任务优先级比下一任务优先级高,则下一任务出现激活异常的异常现象,且异常现象产生的原因是当前任务执行时间过长。如果当前任务优先级比下一任务优先级低,即比下一任务优先级高的其他任务出现了激活异常的异常现象,则可以根据系统状态机监测到的各个任务的激活次数确定出现异常现象的任务。若状态机监测到当前任务出现激活异常的异常现象,则将当前任务标识、当前任务优先级和异常原因作为系统异常信息抛出,以使系统检测到异常现象。
S250、根据系统异常信息对异常现象进行定位,获得系统异常定位结果。
本实施例的技术方案,在系统存在异常现象的情况下,获取异常现象对应的异常编码;若异常编码的类型为系统激活异常,则通过操作系统接口获取当前任务标识和当前任务优先级;通过操作系统状态机获取激活异常任务标识和激活异常任务优先级;根据当前任务标识、当前任务优先级、激活异常任务标识和激活异常任务优先级,确定系统异常信息;根据系统异常信息对异常现象进行定位,获得系统异常定位结果。上述技术方案,实现了在系统激活异常的情况下,通过操作系统状态机获取的系统中当前任务标识、当前任务优先级、其他任务标识和其他任务优先级,确定系统异常信息,可以获得更加精确的系统异常定位结果。
实施例三
图3为本发明实施例三提供的一种数据处理方法的流程图,本实施例在上述实施例的基础上进行了优化,给出了在异常编码的类型为系统堆栈异常的情况下,调用堆栈埋点函数,获取实际堆栈栈顶地址;通过比较实际堆栈栈顶地址和堆栈设计地址,确定堆栈实际使用数目;根据堆栈实际使用数目和堆栈设计数目,确定系统异常信息的优选实施例。具体的,如图3所示,该方法包括:
S310、在系统存在异常现象的情况下,获取异常现象对应的异常编码。
S320、若异常编码的类型为系统堆栈异常,则用堆栈埋点函数,读取堆栈埋点函数内的中央处理器CPU堆栈指针。
其中,系统堆栈异常是指在系统调度过程中,任务(或中断)中局部变量的定义占用该任务(或中断)的堆栈,导致堆栈溢出。例如,当栈顶下方的存储空间被修改时,AUTOSAR系统的堆栈保护功能可以检测到堆栈溢出。
需要说明的是,系统堆栈异常的主要产生原因有:对局部变量的定义超出系统对该局部变量的设计预期,或某一指针错误指向栈顶导致堆栈被错误的判断为堆栈溢出。因此记录堆栈溢出对应的任务(或中断)标识和堆栈设计数目,可以定位到溢出的堆栈,从而获得系统异常定位结果。但实际开发中,对系统堆栈异常进行分析时,往往还需调用埋点函数,以确定实际的堆栈使用数目。
示例性的,现阶段,对系统堆栈溢出的异常现象进行处理时,采用的异常处理机制为AUTOSAR系统规范规定的常规堆栈保护方法。常规堆栈保护方法具体为:AUTOSAR系统开启堆栈使用量检查功能时,可以将堆栈中所有字节填充为指定数值,通过检查栈顶向下有多少字节没有被修改来确定堆栈使用情况。但是系统堆栈检查有其局限性,例如在系统的任务中定义一个大于设计堆栈的局部变量,且每次运行修改局部变量中部分变量时,将造成实际使用的堆栈数目大于设计堆栈数目,造成堆栈溢出。但由于栈顶下面的部分字节没有被修改,系统不会报出堆栈溢出的信息。因此,在系统异常分析处理流程外,可以采用预先设置堆栈埋点函数的堆栈分析方法,确定任务实际使用的堆栈数目,以判断是否出现堆栈溢出。
具体的,若获取的异常编码为E_OS_STACKFAULT,则异常编码的类型为系统堆栈异常,系统中存在堆栈溢出的异常现象。根据系统设计,确定任务中存在大量局部变量的函数,在该函数中调用堆栈埋点函数,在定义局部变量后调用堆栈埋点函数,读取堆栈埋点函数内的CPU堆栈指针,确定系统中存在堆栈溢出的异常现象。
S330、根据CPU堆栈指针,获取实际堆栈栈顶地址。
其中,实际堆栈栈顶地址是指系统当前实际使用的堆栈栈顶地址。
具体的,CPU堆栈指针指向当前时刻实际堆栈栈顶地址。因此可以根据CPU堆栈指针的指向,获取实际堆栈栈顶地址。
S340、比较实际堆栈栈顶地址和堆栈设计地址,以获得堆栈比较结果。
其中,堆栈设计地址设计是指符合AUTOSAR系统的规范的堆栈地址。堆栈设计地址可以通过操作系统状态机获取。堆栈设计地址包括堆栈设计栈顶地址和堆栈设计栈底地址。
具体的,将实际堆栈栈顶地址和堆栈设计地址中的堆栈设计栈顶地址进行比较,获得栈顶比较结果;将实际堆栈栈底地址和堆栈设计地址中的堆栈设计栈底地址进行比较,获得栈底比较结果。其中,栈顶比较结果包括栈顶填充的指定数值未被修改的数目;栈底比较结果包括栈底填充的指定数值未被修改的数目。
S350、根据堆栈比较结果,确定堆栈实际使用数目。
具体的,系统可以根据栈顶比较结果和栈底比较结果,计算并确定堆栈实际使用数目。
S360、根据堆栈实际使用数目和堆栈设计数目,确定系统异常信息。
其中,堆栈设计数目是指指符合AUTOSAR系统的规范的堆栈数目。
具体的,若堆栈实际使用数目超出堆栈设计数目,则确定系统存在堆栈溢出。将当前任务标识、栈顶比较结果和栈底比较结果作为系统异常信息。
S370、根据系统异常信息对异常现象进行定位,获得系统异常定位结果。
本实施例的技术方案,在系统存在异常现象的情况下,获取异常现象对应的异常编码;若异常编码的类型为系统堆栈异常,则用堆栈埋点函数,读取堆栈埋点函数内的中央处理器CPU堆栈指针;根据CPU堆栈指针,获取实际堆栈栈顶地址;;比较实际堆栈栈顶地址和堆栈设计地址,以获得堆栈比较结果;根据堆栈比较结果,确定堆栈实际使用数目;根据堆栈实际使用数目和堆栈设计数目,确定系统异常信息;根据系统异常信息对异常现象进行定位,获得系统异常定位结果。根据CPU堆栈指针,获取实际堆栈栈顶地址;比较实际堆栈栈顶地址和堆栈设计地址,以获得堆栈比较结果;根据堆栈比较结果,确定堆栈实际使用数目;根据堆栈实际使用数目,确定系统异常信息;根据系统异常信息对异常现象进行定位,获得系统异常定位结果。通过上述方案,可以通过调用堆栈埋点函数的方式获得实际堆栈栈顶地址,并根据实际堆栈栈顶地址和堆栈设计地址,获得堆栈实际使用数目。提高了系统堆栈异常的分析精确性,在系统出现堆栈异常的异常现象时,可以获得更准确系统异常定位结果。
实施例四
图4为本发明实施例四提供的一种数据处理方法的流程图,本实施例在上述实施例的基础上进行了优化,给出了在异常编码类型为系统内存保护异常时,通过芯片内存保护单元确定内存保护异常类别,通过操作系统接口确定当前任务标识,通过CPU程序指针确定异常地址,并将这些信息作为系统异常信息的优选实施例。具体的,如图4所示,该方法包括:
S410、在系统存在异常现象的情况下,获取异常现象对应的异常编码。
S420、若异常编码类型为系统内存保护异常,则通过芯片内存保护单元通过芯片内存保护单元确定内存保护异常标识。
其中,内存保护异常是指系统访问数据时,若系统不具有数据所在地址的访问权限,系统产生的内存保护错误。芯片内存保护单元即MPU,MPU可以用于检测系统中的异常现象,是位于存储器内部的一个可编程的区域,定义了存储器的属性和存储器的访问权限。内存保护异常标识是指出现内存保护异常现象的任务对应的任务标识。
具体的,若获取的异常编码为E_OS_PROTECTION_MEMORY,则异常编码的类型为系统内存保护异常,系统中存在内存保护异常的异常现象。MPU具有地址判断机制,当系统中存在内存保护异常的异常现象时,所采用的异常处理方式为记录系统中出现内存保护异常现象的内存保护异常任务信息。内存保护异常任务信息可以包括:内存保护异常标识、CPU程序指针、堆栈指针和CPU内存保护TRAP编号。将当前任务信息作为系统异常信息。
S430、通过CPU程序指针确定内存保护异常地址。
其中,内存保护异常地址为系统中出现内存保护异常现象的地址。
S440、将内存保护异常标识和内存保护异常地址作为系统异常信息。
S450、根据系统异常信息对异常现象进行定位,获得系统异常定位结果。
本实施例的技术方案,在系统存在异常现象的情况下,获取异常现象对应的异常编码;若异常编码类型为系统内存保护异常,则通过芯片内存保护单元通过芯片内存保护单元确定内存保护异常标识;通过CPU程序指针确定内存保护异常地址;将内存保护异常标识和内存保护异常地址作为系统异常信息;根据系统异常信息对异常现象进行定位,获得系统异常定位结果。通过上述方案,可以通过芯片内存保护单元获取系统异常信息,并根据系统异常信息对异常现象进行定位,获得系统异常定位结果,提高了对系统异常现象的分析效率。
实施例五
图5为本发明实施例五提供的一种数据处理方法的流程图,本实施例在上述实施例的基础上进行了优化,给出了在异常编码类型为系统分类异常时,根据异常向量表确定异常现象对应的系统异常信息的优选实施例。具体的,如图5所示,该方法包括:
S510、在系统存在异常现象的情况下,获取异常现象对应的异常编码。
S520、若异常编码的类型为系统分类异常,则根据异常向量表确定异常现象对应的系统异常信息。
其中,系统分类异常是指系统出现分类错误的情况。
具体的,若获取的异常编码为E_OS_PROTECTION_EXCEPTION,则异常编码的类型为系统分类异常,系统中存在分类异常的异常现象。分类异常包括内存访问错误、指令错误、上下文错误、总线和外围设备错误等芯片级别的异常现象。当系统中存在分类异常的异常现象时,可以通过异常向量表获取异常现象对应的系统异常信息。系统异常信息包括系统当前任务(或中断)标识、芯片异常的TRAP编号和芯片异常的Class编号。
S530、根据系统异常信息对异常现象进行定位,获得系统异常定位结果。
示例性的,可以通过CPU通用寄存器值定位到系统中出现分类异常的参数和具体出现分类异常的地址。
本实施例的技术方案,在系统存在异常现象的情况下,获取异常现象对应的异常编码;若异常编码的类型为系统分类异常;根据异常向量表确定异常现象对应的系统异常信息;根据系统异常信息对异常现象进行定位,获得系统异常定位结果。通过上述方案,可以通过异常向量表获取系统异常信息,并根据系统异常信息对异常现象进行定位,获得系统异常定位结果,提高了对系统异常现象的分析效率。
实施例六
图6为本发明实施例六提供的一种数据处理装置的结构示意图。该数据处理装置应用于嵌入式系统中。本实施例可适用于对数据进行处理的情况。如图6所示,该数据处理装置包括:异常编码获取模块610、异常处理方式确定模块620、系统异常信息获取模块630和异常现象定位模块640。
其中,异常编码获取模块610,用于在系统存在异常现象的情况下,获取异常现象对应的异常编码;
异常处理方式确定模块620,用于根据异常编码的类型,确定异常处理方式;
系统异常信息获取模块630,用于采用异常处理方式,获取异常现象对应的系统异常信息;
异常现象定位模块640,用于根据系统异常信息对异常现象进行定位,获得系统异常定位结果。
本实施例提供的技术方案,在系统存在异常现象的情况下,获取异常现象对应的异常编码;根据异常编码的类型,确定异常处理方式;采用异常处理方式,获取异常现象对应的系统异常信息;根据系统异常信息对异常现象进行定位,获得系统异常定位结果。上述方案解决了现有的车辆控制器系统不具备调试环境,无法及时且精准的对系统异常进行定位的问题。实现了车用嵌入式控制器系统的开发过程中,及时发现并定位系统异常,并对异常现象进行精细化的分析和处理的效果。
示例性的,若异常编码的类型为系统激活异常,则系统异常信息获取模块630具体用于:
通过操作系统接口获取当前任务标识和当前任务优先级;
根据当前任务标识、当前任务优先级、激活异常任务标识和激活异常任务优先级确定系统异常信息。
示例性的,若异常编码的类型为系统堆栈异常,则系统异常信息获取模块630具体用于:
调用堆栈埋点函数,读取堆栈埋点函数内的中央处理器CPU堆栈指针;
根据CPU堆栈指针,获取实际堆栈栈顶地址;
比较实际堆栈栈顶地址和堆栈设计地址,以获得堆栈比较结果;
根据堆栈比较结果,确定堆栈实际使用数目;
根据堆栈实际使用数目和堆栈设计数目,确定系统异常信息。
示例性的,所异常编码类型为系统内存保护异常,则系统异常信息获取模块630具体用于:
通过芯片内存保护单元确定内存保护异常标识;
通过CPU程序指针确定内存保护异常地址;
将内存保护异常标识和内存保护异常地址作为系统异常信息。
示例性的,若异常编码的类型为系统分类异常,则系统异常信息获取模块630具体用于:
根据异常向量表确定异常现象对应的系统异常信息。
示例性的,上述数据处理装置还包括:
目标异常处理逻辑确定模块,用于从候选异常处理逻辑中选择目标异常处理逻辑;其中,候选异常处理逻辑包括:忽略异常、强行终止或中断出错的任务、强行终止出错的应用、强行终止出错的应用并重新初始化应用、复位系统和关闭系统中的至少一种;
异常现象处理模块,用于采用目标异常处理逻辑对异常现象进行处理。
进一步的,上述数据处理装置还包括:
存储模块,用于采用非易失性存储设备存储系统异常信息和系统异常定位结果。
本实施例提供的数据处理装置可适用于上述任意实施例提供的数据处理方法,具备相应的功能和有益效果。
实施例七
图7示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图7所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如数据处理方法。
在一些实施例中,数据处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的数据处理方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种数据处理方法,其特征在于,应用于嵌入式系统中,所述方法包括:
在系统存在异常现象的情况下,获取所述异常现象对应的异常编码;
根据所述异常编码的类型,确定异常处理方式;
采用所述异常处理方式,获取所述异常现象对应的系统异常信息;
根据所述系统异常信息对所述异常现象进行定位,获得系统异常定位结果。
2.根据权利要求1所述的方法,其特征在于,若所述异常编码的类型为系统激活异常,则所述采用所述异常处理方式,获取所述异常现象对应的系统异常信息,包括:
通过操作系统接口获取当前任务标识和当前任务优先级;
通过操作系统状态机获取激活异常任务标识和激活异常任务优先级;
根据所述当前任务标识、所述当前任务优先级、所述激活异常任务标识和所述激活异常任务优先级确定系统异常信息。
3.根据权利要求1所述的方法,其特征在于,若所述异常编码的类型为系统堆栈异常,则所述采用所述异常处理方式,获取所述异常现象对应的系统异常信息,包括:
调用堆栈埋点函数,读取所述堆栈埋点函数内的中央处理器CPU堆栈指针;
根据所述CPU堆栈指针,获取实际堆栈栈顶地址;
比较所述实际堆栈栈顶地址和堆栈设计地址,以获得堆栈比较结果;
根据所述堆栈比较结果,确定堆栈实际使用数目;
根据所述堆栈实际使用数目和堆栈设计数目,确定系统异常信息。
4.根据权利要求1所述的方法,其特征在于,若所述异常编码类型为系统内存保护异常,则所述采用所述异常处理方式,获取所述异常现象对应的系统异常信息,包括:
通过芯片内存保护单元确定内存保护异常标识;
通过CPU程序指针确定内存保护异常地址;
将所述内存保护异常标识和所述内存保护异常地址作为系统异常信息。
5.根据权利要求1所述的方法,其特征在于,若所述异常编码的类型为系统分类异常,则所述采用所述异常处理方式,获取所述异常现象对应的系统异常信息,包括:
根据异常向量表确定所述异常现象对应的系统异常信息。
6.根据权利要求1所述的方法,其特征在于,所述根据所述系统异常信息对所述异常现象进行定位,获得系统异常定位结果的过程中,还包括:
从候选异常处理逻辑中选择目标异常处理逻辑;其中,所述候选异常处理逻辑包括:忽略异常、强行终止或中断出错的任务、强行终止出错的应用、强行终止出错的应用并重新初始化所述应用、复位系统和关闭系统中的至少一种;
采用所述目标异常处理逻辑对所述异常现象进行处理。
7.根据权利要求1所述的方法,其特征在于,包括:
采用非易失性存储设备存储所述系统异常信息和所述系统异常定位结果。
8.一种数据处理装置,其特征在于,应用于嵌入式系统中,所述装置包括:
异常编码获取模块,用于在系统存在异常现象的情况下,获取所述异常现象对应的异常编码;
异常处理方式确定模块,用于根据所述异常编码的类型,确定异常处理方式;
系统异常信息获取模块,用于采用所述异常处理方式,获取所述异常现象对应的系统异常信息;
异常现象定位模块,用于根据所述系统异常信息对所述异常现象进行定位,获得系统异常定位结果。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的数据处理方法。
CN202210637472.2A 2022-06-07 2022-06-07 一种数据处理方法、装置、设备和存储介质 Pending CN115061842A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210637472.2A CN115061842A (zh) 2022-06-07 2022-06-07 一种数据处理方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210637472.2A CN115061842A (zh) 2022-06-07 2022-06-07 一种数据处理方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN115061842A true CN115061842A (zh) 2022-09-16

Family

ID=83200581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210637472.2A Pending CN115061842A (zh) 2022-06-07 2022-06-07 一种数据处理方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN115061842A (zh)

Similar Documents

Publication Publication Date Title
US8250543B2 (en) Software tracing
US9519495B2 (en) Timed API rules for runtime verification
US20130159977A1 (en) Open kernel trace aggregation
US8516499B2 (en) Assistance in performing action responsive to detected event
US20100017583A1 (en) Call Stack Sampling for a Multi-Processor System
EP2431876A1 (en) Method and device for exception handling in embedded system
EP2615552A1 (en) System testing method
JP6260130B2 (ja) ジョブ遅延検知方法、情報処理装置、およびプログラム
EP3591485B1 (en) Method and device for monitoring for equipment failure
JP5692414B2 (ja) 検知装置、検知プログラムおよび検知方法
CN114168222B (zh) 一种启动耗时的获取方法、装置、终端设备和存储介质
US8832839B2 (en) Assessing system performance impact of security attacks
CN110647472A (zh) 崩溃信息统计方法、装置、计算机设备及存储介质
CN103257922A (zh) 一种快速测试bios与os接口代码可靠性的方法
JP2008513899A (ja) コンピュータシステム上でコンピュータプログラムを処理する方法
US9645873B2 (en) Integrated configuration management and monitoring for computer systems
US20100023799A1 (en) Determining correctness of job plans in a stream processing application
CN110990179B (zh) 一种任务处理方法、装置及设备
CN115061842A (zh) 一种数据处理方法、装置、设备和存储介质
CN115756935A (zh) 嵌入式软件系统的异常故障定位方法、装置及设备
US20230088318A1 (en) Remotely healing crashed processes
CN113918382A (zh) 用于复位的方法、装置、设备和可读存储介质
CN110837399A (zh) 一种管理流式计算应用程序的方法、装置及计算设备
CN114443330A (zh) 看门狗重启故障确定方法、装置、电子设备及存储介质
US8732535B2 (en) Method of detection of erroneous memory usage

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination