CN111274059B - 一种从设备的软件异常处理方法及装置 - Google Patents

一种从设备的软件异常处理方法及装置 Download PDF

Info

Publication number
CN111274059B
CN111274059B CN202010072027.7A CN202010072027A CN111274059B CN 111274059 B CN111274059 B CN 111274059B CN 202010072027 A CN202010072027 A CN 202010072027A CN 111274059 B CN111274059 B CN 111274059B
Authority
CN
China
Prior art keywords
slave
log
abnormal
abnormality
program
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.)
Active
Application number
CN202010072027.7A
Other languages
English (en)
Other versions
CN111274059A (zh
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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202010072027.7A priority Critical patent/CN111274059B/zh
Publication of CN111274059A publication Critical patent/CN111274059A/zh
Application granted granted Critical
Publication of CN111274059B publication Critical patent/CN111274059B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Abstract

本发明提供了一种从设备的软件异常处理方法及装置,其中,该方法包括:检测到从设备异常,将所述从设备异常前的日志内容存储到异常日志区;加载用于诊断所述从设备异常的专用程序;通过所述专用程序从所述异常日志区导出异常日志,可以解决针对相关技术中要求主设备具备多串口的资源或需要在硬件设计上扩展出多个串口,无论是硬件设计或者软件设计都会比较复杂的问题,不需要串口和flash,而是巧妙地借助从设备的基础外设(如网络),通过专用程序导出从设备的异常日常,支持从设备无FLASH存储介质的情况下保存从设备异常的关键日志,通用性强,易于实现,特别适用于安装在室外设备中的从设备系统的程序异常分析。

Description

一种从设备的软件异常处理方法及装置
技术领域
本发明涉及嵌入式系统技术领域,具体而言,涉及一种从设备的软件异常处理方法及装置。
背景技术
在嵌入式多核系统领域内特别是智能交通设备方案内现有技术大致如下:
外接一个串口服务器设备,将从芯片串口打印通过网络输出。从芯片再链接一个串口当本地串口使用,不能远距离输出打印。
在硬件设计上将从串口连接到主串口,主芯片CPU将从芯片串口的打印通过网络输出,相当于内置串口服务器。在硬件条件允许的条件下,还增加活着扩展一段存储介质FLASH,用于记录从CPU程序异常状态,并使用特殊方法将从核CPU的程序打印或者异常状态信息传输到主核,由主CPU系统负责显示出来。
该方案通过外接串口服务器转发从核串口的打印,解决了本地串口不能远距离传输串口打印的缺陷,但是要求在距离监控设备的安装点非常近的范围内单独安装一台串口服务器设备,技术要求和施工方案较复杂。
该方案比外接串口服务器硬件技术要求更低,但是也有一定的缺陷,即要求主CPU系统具备多串口的资源或需要在硬件设计上扩展出多个串口。记录异常状态使用的FLASH,需要特殊的设计方法才能获取到其存储内容,无论是硬件设计或者软件设计都会比较复杂。
针对相关技术中要求主设备具备多串口的资源或需要在硬件设计上扩展出多个串口,无论是硬件设计或者软件设计都会比较复杂的问题,尚未提出解决方案。
发明内容
本发明实施例提供了一种从设备的软件异常处理方法及装置,以至少解决针对相关技术中要求主设备具备多串口的资源或需要在硬件设计上扩展出多个串口,无论是硬件设计或者软件设计都会比较复杂的问题。
根据本发明的一个实施例,提供了一种从设备的软件异常处理方法,包括:
检测到从设备异常,将所述从设备异常前的日志内容存储到异常日志区;
加载用于诊断所述从设备异常的专用程序;
通过所述专用程序从所述异常日志区导出异常日志。
可选地,将所述从处理器异常前的日志内容存储到异常日志区包括:
在所述从设备为CPU异常的情况下,执行CPU异常回调函数,将堆栈信息写入所述从设备中DDR的CPU异常日志区;
在所述从设备为线程卡住异常的情况下,通过在程序的关键代码添加TP跟踪所述关键代码的运行情况,将所述TP记录到所述从设备中DDR的线程卡住日志区;
在所述从设备为其他情况异常的情况下,将所述其他情况异常归类为警示打印,并将所述警示打印输出到所述从设备中DDR的警示打印日志区,其中,所述异常日志区包括所述CPU异常日志区、所述线程卡住日志区、所述警示打印日志区。
可选地,通过所述专用程序从所述异常日志区导出异常日志包括:
在主设备处于挂起模式的情况下,通过所述专用程序确保异常日志区的内容不被破坏;
通过所述专用程序获取所述从设备异常前的日志内容。
可选地,通过所述专用程序从所述异常日志区导出异常日志包括:
在主设备处于重启模式的情况下,重新加载所述从设备正常运行时的业务程序,判断所述从设备异常前的日志内容是否被导出过;
在判断结果为否的情况下,通过所述专用程序获取所述从设备异常前的日志内容。
可选地,所述方法还包括:
在判断结果为是的情况下,重新初始化所述从设备异常前的所述异常日志区的日志内容;
继续加载所述业务程序,通过所述业务程序获取所述从设备异常前的日志内容。
可选地,加载用于诊断所述从设备异常的专用程序包括:
判断所述从设备是否重启;
在判断结果为是的情况下,自动加载所述专用程序;
在判断结果为否的情况下,接收在确定所述从设备重启之后加载所述专用程序的操作指令,根据所述操作指令加载所述专用程序。
根据本发明的另一个实施例,还提供了一种从设备的软件异常处理装置,包括:
存储模块,用于检测到从设备异常,将所述从设备异常前的日志内容存储到异常日志区;
加载模块,用于加载用于诊断所述从设备异常的专用程序;
导出模块,用于通过所述专用程序从所述异常日志区导出异常日志。
可选地,所述存储模块包括:
写入子模块,用于在所述从设备为CPU异常的情况下,执行CPU异常回调函数,将堆栈信息写入所述从设备中DDR的CPU异常日志区;
记录子模块,用于在所述从设备为线程卡住异常的情况下,通过在程序的关键代码添加TP跟踪所述关键代码的运行情况,将所述TP记录到所述从设备中DDR的线程卡住日志区;
输出子模块,用于在所述从设备为其他情况异常的情况下,将所述其他情况异常归类为警示打印,并将所述警示打印输出到所述从设备中DDR的警示打印日志区,其中,所述异常日志区包括所述CPU异常日志区、所述线程卡住日志区、所述警示打印日志区。
可选地,所述导出模块包括:
确保子模块,用于在主设备处于挂起模式的情况下,通过所述专用程序确保异常日志区的内容不被破坏;
第一获取子模块,用于通过所述专用程序获取所述从设备异常前的日志内容。
可选地,所述导出模块包括:
判断子模块,用于在主设备处于重启模式的情况下,重新加载所述从设备正常运行时的业务程序,判断所述从设备异常前的日志内容是否被导出过;
第二获取子模块,用于在判断结果为否的情况下,通过所述专用程序获取所述从设备异常前的日志内容。
可选地,所述装置还包括:
初始化模块,用于在判断结果为是的情况下,重新初始化所述从设备异常前的所述异常日志区的日志内容;
获取模块,用于继续加载所述业务程序,通过所述业务程序获取所述从设备异常前的日志内容。
可选地,所述加载模块包括:
判断子模块,用于判断所述从设备是否重启;
第一加载子模块,用于在判断结果为是的情况下,自动加载所述专用程序;
第二加载子模块,用于在判断结果为否的情况下,接收在确定所述从设备重启之后加载所述专用程序的操作指令,根据所述操作指令加载所述专用程序。
根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,检测到从设备异常,将所述从设备异常前的日志内容存储到异常日志区;加载用于诊断所述从设备异常的专用程序;通过所述专用程序从所述异常日志区导出异常日志,可以解决针对相关技术中要求主设备具备多串口的资源或需要在硬件设计上扩展出多个串口,无论是硬件设计或者软件设计都会比较复杂的问题,不需要串口和flash,而是巧妙地借助从设备的基础外设(如网络),通过专用程序导出从设备的异常日常,支持从设备无FLASH存储介质的情况下保存从设备异常的关键日志,通用性强,易于实现,特别适用于安装在室外设备中的从设备系统的程序异常分析。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种从设备的软件异常处理方法的移动终端的硬件结构框图;
图2是根据本发明实施例的一种从设备的软件异常处理方法的流程图;
图3是根据本发明实施例的嵌入式主从CPU系统最小硬件结构的示意图;
图4是根据本发明实施例的从核CPU程序诊断软件方案的示意图;
图5是根据本发明实施例的使用从核小固件的诊断结构的示意图;
图6是根据本发明实施例的使用从核小固件的诊断流程图;
图7是根据本发明实施例的从设备的软件异常处理装置的框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种从设备的软件异常处理方法的移动终端的硬件结构框图,如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的报文接收方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端或网络架构的从设备的软件异常处理方法,图2是根据本发明实施例的一种从设备的软件异常处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,检测到从设备异常,将所述从设备异常前的日志内容存储到异常日志区;
进一步的,上述步骤S202具体可以包括:
在所述从设备为CPU异常的情况下,执行CPU异常回调函数,将堆栈信息写入所述从设备中DDR的CPU异常日志区;
在所述从设备为线程卡住异常的情况下,通过在程序的关键代码添加TP跟踪所述关键代码的运行情况,将所述TP记录到所述从设备中DDR的线程卡住日志区;
在所述从设备为其他情况异常的情况下,将所述其他情况异常归类为警示打印,并将所述警示打印输出到所述从设备中DDR的警示打印日志区,其中,所述异常日志区包括所述CPU异常日志区、所述线程卡住日志区、所述警示打印日志区。
步骤S204,加载用于诊断所述从设备异常的专用程序;
进一步的,上述步骤S204具体可以包括:判断所述从设备是否重启;在判断结果为是的情况下,自动加载所述专用程序;在判断结果为否的情况下,接收在确定所述从设备重启之后加载所述专用程序的操作指令,根据所述操作指令加载所述专用程序。
步骤S206,通过所述专用程序从所述异常日志区导出异常日志。
通过上述步骤S202至S206,检测到从设备异常,将所述从设备异常前的日志内容存储到异常日志区;加载用于诊断所述从设备异常的专用程序;通过所述专用程序从所述异常日志区导出异常日志,可以解决针对相关技术中要求主设备具备多串口的资源或需要在硬件设计上扩展出多个串口,无论是硬件设计或者软件设计都会比较复杂的问题,不需要串口和flash,而是巧妙地借助从设备的基础外设(如网络),通过专用程序导出从设备的异常日常,实现了快捷地导出从设备异常日志,便于进行辅助分析。支持从设备无FLASH存储介质的情况下保存从设备异常的关键日志,通用性强,易于实现,特别适用于安装在室外设备中的从设备系统的程序异常分析。
在一可选的实施例中,上述步骤S206具体可以包括:在主设备处于挂起模式的情况下,通过所述专用程序确保异常日志区的内容不被破坏;通过所述专用程序获取所述从设备异常前的日志内容。
在另一可选的实施例中,上述步骤S206具体可以包括:在主设备处于重启模式的情况下,重新加载所述从设备正常运行时的业务程序,判断所述从设备异常前的日志内容是否被导出过;在判断结果为否的情况下,通过所述专用程序获取所述从设备异常前的日志内容。
进一步的,在所述从设备异常前的日志内容被导出过的情况下,重新初始化所述从设备异常前的所述异常日志区的日志内容;继续加载所述业务程序,通过所述业务程序获取所述从设备异常前的日志内容。
下面以上述专用程序为小固件,业务程序为大固件为例,对本发明实施例进行详细说明。
图3是根据本发明实施例的嵌入式主从CPU系统最小硬件结构的示意图,如图3所示,嵌入式系统多处理器系统架构包括主CPU系统和从CPU系统两个部分。主CPU系统一般包含都有内存DDR、存储介质FLASH、调试串口几个必要外设资源,从CPU系统设计方案和主CPU系统基本相似。为了降低硬件设计复杂度,本发明实施例的从CPU程序问题分析方法可以不依赖FLASH2和UART2硬件,也不需要通过主从串口连接起来的内置串口服务器的硬件设计,更不需要外接串口服务器设备这种复杂施工方案,本方法使用的硬件设计方案最简单。本发明实施例的硬件设计结构如图3所示,其中主从核的UART外设只作为本地调试使用,BUS是任何一种主流的双核通信总线例如PCIE、USB、网络、SPI总线、串口、并口等常用嵌入式芯片外设。
针对最小的(但不限于)双核嵌入式硬件方案,图4是根据本发明实施例的从核CPU程序诊断软件方案的示意图,如图4所示,从设备的大固件firmware表示设备正常运行的从设备的业务程序,即实现设备业务功能的程序,例如智能交通领域通常会在从机上运行一些车牌识别、人脸识别等业务程序。在发明实施例中,为了能够定位和分析除CPU异常之外的诸如线程(函数)卡住、其他功能异常等,大固件中可以保留一个诊断模块,即图4中的Dump服务模块,在CPU没有出现致命死机时,Dump模块仍可以和主机通信,导出线程卡住、函数卡住、业务运行错误等普通的程序异常。
图4中从机小固件firmware是为了诊断包含CPU死机异常在内的从机程序异常的专用程序。它由一个最简单的诊断模块(Dump服务)构成,Dump即负责和主机通信,把上次从机程序异常信息导出到主机显示,给用户分析异常的可能原因。因为它本身体量设计得较小、程序简单,所以小固件本身不会存在自身死机而无法和主机通信的问题,用它来导出异常信息十分可靠。从机小固件firmwate启动异常诊断时需要由主机自动加载或者用户手动加载起来运行,具体为:当从机CPU出现致命死机fetal时,必须加载小固件来诊断,因为此时业务大firmware已经无法和主机互联;当从机CPU没有出现fetal错误,只是出现函数卡住或者业务逻辑异常时,也可以手动加载小固件,由小固件导出相应的异常信息。
图4中从核DDR划分出一段专用于程序诊断的区域,主要分为双核命令交互区、CPU异常日志区、线程卡住日志区、警告打印日志区等几个区域。其中双核命令交互区是可选的,当主从CPU通过共享DDR的方式下可以允许使用,主从CPU通过BUS通信的方式,则命令交互区不是必需的。
本发明实施例中,将从核CPU的程序运行情况分为CPU异常I、线程卡住II、其他情况III三大类。对每一种程序异常情况,设计相应的分析方法。从诊断过程,可以分为异常日志生成方法和异常日志导出方法两个部分。
异常日志生成,将从核CPU的程序运行情况分为CPU异常I、线程卡住II、其他情况III三大类。
对于情况I,软件捕捉到CPU异常并执行CPU异常回调的函数(用fetal示例),在回调中将堆栈信息(包含线程ID和程序堆栈回溯信息)写入从核DDR的CPU异常日志区。
对于情况II,软件设计一种快速高效且函数行号均不重名的代码跟踪点(用tracepoint示例,简称TP)功能模块,可以记录函数名和行号。通过在程序的关键代码添加TP就可以跟踪到代码的运行情况。例如在线程体中添加多个TP可以跟踪线程的运行到哪两个TP之间、在函数执行前和后各添加一个TP点,查看TP的行号的执行次数,就跟踪函数是否执行和返回,例如line=100的函数,统计到它执行前的次数是90,执行后的次数是89,那么说明该函数没有返回,这个函数可能存在程序异常卡住问题。所有的TP被记录到从核DDR的函数跟踪日志区,供导出分析。
对于情况III,软件把其它异常归类为警示打印输出到从核DDR的警示打印区。警示打印根据指定的严重程度分为错误、警告、提示等几大类,然后按照等级控制标准输出printf的内容是否写入警告打印日志区,保证警示打印日志区尽量存放有效的可能造成程序异常的标志性内容。
异常日志导出,从核心CPU运行从核程序(图4中的大固件),包含了一个Dump模块,它一方面负责和主CPU通信交互,执行一些控制命令如设置记录打印的等级等,另一方面负责响应主CPU的查询命令,向主CPU反馈从核CPU最后的运行情况。
对于情况I即从CPU出现致命死机后,因其无法继续和主CPU通信交互,故无法导出从CPU的fetal异常日志。如果从机系统选择了带有从FLASH的方案,那么可以将fetal日志直接写入从FLASH,重启后仍可以通过主CPU导出上次的fetal死机日志。针对从片无flash的硬件系统,本文着重提出一种新的解决方法:在从核系统没断电的情况下,利用DDR在没断电的情况下其内容不丢失的特性,通过加载一个专用于诊断异常的小固件firmware,使从机复活,从分配好的异常信息存储DDR区导出相应的异常信息。需要注意的是,加载的小固件不能去擦除各个异常日志区,即对小固件而言,异常日志区块只能进行read-only操作。
针对异常日志导出的方案,当从CPU陷入异常死机后,主设备一般会进入两种模式:设备自动重启和设备不重启模式,即设备挂起模式。
挂起模式,在开发调试阶段用到机会较多,即设备处在手动调试模式。这时用户可以判断出从CPU是否出现了fetal死机(方法是主从交互命令失效或者心跳失败)。确认从核fetal死机后(也可以不管从CPU是否死机),先加载一个从核的小程序(用小固件firmware示例),小固件和正常大固件使用相同的DDR地址布局,集成相同的信息导出——Dump模块,唯一不同的是小固件程序运行时不重新擦写从核DDR的日志区,即保证日志区的内容不被破坏,在加载和运行小固件后仍保留了死机前的最后现场。加载小固件后的从CPU可以和主CPU运行的客户端client正常交互,将从核死前的fatal日志导出,同时将其它的日志区域的信息导出,辅助死机分析。
在重启的模式下,一般设备监控到从CPU死机会选择自动重启。重新加载并运行从CPU程序。即重新加载从核大固件,重新初始化从CPU死前的DDR日志区的内容,会破坏上一次的死机现场。针对这种情况,本文先判断从CPU死前的日志内容是否被用户导出过,如果导出过则继续加载并运行大固件,否则加载小固件并得到死前DDR区日志内容将其显示出来,最后写入主CPU系统的FLASH文件或者/tmp/临时日志文件,用户可以随时方便获取到从CPU的死机运行情况。
基于加载小固件的异常信息导出,图5是根据本发明实施例的使用从核小固件的诊断结构的示意图,如图5所示,基于加载从CPU小固件导出死机信息,当设备处于自动重启的模式下,则先加载小固件,将死机诊断日志区的内容导出。当设备处于不重启模式,即用户调试模式,用户先确认从核CPU是否已死机或者可能发生死机(可以通过client和server交互是否可以继续通信成功),然后手动加载小固件,将死机诊断日志区的内容导出显示或保存成系统文件,供随时查看。
图6是根据本发明实施例的使用从核小固件的诊断流程图,如图6所示,基于加载从CPU小固件导出死机日志的流程包括:
步骤S601,判断是否自动重启,在判断结果为是的情况下,执行步骤S603,在判断结果为否的情况下,执行步骤S602;
步骤S602,在确定为死机的情况下,手动加载小固件;
步骤S603,自动加载小固件;
步骤S604,读取状态;
步骤S605,读取从设备DDR日志区的异常日志内容;
步骤S606,显示异常日志内容,并写入异常文件。
本发明实施例提出的从核CPU程序死机的诊断方法,能够有效解决双核或多核嵌入式系统中从核CPU程序的远程开发调试和应用,且特别适合最简单的从片不需外接FLASH存储介质和串口服务器的嵌入式硬件系统。
实施例2
根据本发明的另一个实施例,还提供了一种从设备的软件异常处理装置,图7是根据本发明实施例的从设备的软件异常处理装置的框图,如图7所示,包括:
存储模块72,用于检测到从设备异常,将所述从设备异常前的日志内容存储到异常日志区;
加载模块74,用于加载用于诊断所述从设备异常的专用程序;
导出模块76,用于通过所述专用程序从所述异常日志区导出异常日志。
可选地,所述存储模块72包括:
写入子模块,用于在所述从设备为CPU异常的情况下,执行CPU异常回调函数,将堆栈信息写入所述从设备中DDR的CPU异常日志区;
记录子模块,用于在所述从设备为线程卡住异常的情况下,通过在程序的关键代码添加TP跟踪所述关键代码的运行情况,将所述TP记录到所述从设备中DDR的线程卡住日志区;
输出子模块,用于在所述从设备为其他情况异常的情况下,将所述其他情况异常归类为警示打印,并将所述警示打印输出到所述从设备中DDR的警示打印日志区,其中,所述异常日志区包括所述CPU异常日志区、所述线程卡住日志区、所述警示打印日志区。
可选地,所述导出模块76包括:
确保子模块,用于在主设备处于挂起模式的情况下,通过所述专用程序确保异常日志区的内容不被破坏;
第一获取子模块,用于通过所述专用程序获取所述从设备异常前的日志内容。
可选地,所述导出模块76包括:
判断子模块,用于在主设备处于重启模式的情况下,重新加载所述从设备正常运行时的业务程序,判断所述从设备异常前的日志内容是否被导出过;
第二获取子模块,用于在判断结果为否的情况下,通过所述专用程序获取所述从设备异常前的日志内容。
可选地,所述装置还包括:
初始化模块,用于在判断结果为是的情况下,重新初始化所述从设备异常前的所述异常日志区的日志内容;
获取模块,用于继续加载所述业务程序,通过所述业务程序获取所述从设备异常前的日志内容。
可选地,所述加载模块74包括:
判断子模块,用于判断所述从设备是否重启;
第一加载子模块,用于在判断结果为是的情况下,自动加载所述专用程序;
第二加载子模块,用于在判断结果为否的情况下,接收在确定所述从设备重启之后加载所述专用程序的操作指令,根据所述操作指令加载所述专用程序。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本发明的实施例还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,检测到从设备异常,将所述从设备异常前的日志内容存储到异常日志区;
S2,加载用于诊断所述从设备异常的专用程序;
S3,通过所述专用程序从所述异常日志区导出异常日志。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
实施例4
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,检测到从设备异常,将所述从设备异常前的日志内容存储到异常日志区;
S2,加载用于诊断所述从设备异常的专用程序;
S3,通过所述专用程序从所述异常日志区导出异常日志。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种从设备的软件异常处理方法,其特征在于,包括:
检测到从设备异常,将所述从设备异常前的日志内容存储到异常日志区,其中,所述从设备为嵌入式多核系统中的从芯片;
加载用于诊断所述从设备异常的专用程序;
通过所述专用程序从所述异常日志区导出异常日志。
2.根据权利要求1所述的方法,其特征在于,将所述从设备异常前的日志内容存储到异常日志区包括:
在所述从设备为CPU异常的情况下,执行CPU异常回调函数,将堆栈信息写入所述从设备中DDR的CPU异常日志区;
在所述从设备为线程卡住异常的情况下,通过在程序的关键代码添加TP跟踪所述关键代码的运行情况,将所述TP记录到所述从设备中DDR的线程卡住日志区;
在所述从设备为其他情况异常的情况下,将所述其他情况异常归类为警示打印,并将所述警示打印输出到所述从设备中DDR的警示打印日志区,其中,所述异常日志区包括所述CPU异常日志区、所述线程卡住日志区、所述警示打印日志区。
3.根据权利要求1所述的方法,其特征在于,通过所述专用程序从所述异常日志区导出异常日志包括:
在主设备处于挂起模式的情况下,通过所述专用程序确保异常日志区的内容不被破坏;
通过所述专用程序获取所述从设备异常前的日志内容。
4.根据权利要求1所述的方法,其特征在于,通过所述专用程序从所述异常日志区导出异常日志包括:
在主设备处于重启模式的情况下,重新加载所述从设备正常运行时的业务程序,判断所述从设备异常前的日志内容是否被导出过;
在判断结果为否的情况下,通过所述专用程序获取所述从设备异常前的日志内容。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在判断结果为是的情况下,重新初始化所述从设备异常前的所述异常日志区的日志内容;
继续加载所述业务程序,通过所述业务程序获取所述从设备异常前的日志内容。
6.根据权利要求1至5中任一项所述的方法,其特征在于,加载用于诊断所述从设备异常的专用程序包括:
判断所述从设备是否重启;
在判断结果为是的情况下,自动加载所述专用程序;
在判断结果为否的情况下,接收在确定所述从设备重启之后加载所述专用程序的操作指令,根据所述操作指令加载所述专用程序。
7.一种从设备的软件异常处理装置,其特征在于,包括:
存储模块,用于检测到从设备异常,将所述从设备异常前的日志内容存储到异常日志区,其中,所述从设备为嵌入式多核系统中的从芯片;
加载模块,用于加载用于诊断所述从设备异常的专用程序;
导出模块,用于通过所述专用程序从所述异常日志区导出异常日志。
8.根据权利要求7所述的装置,其特征在于,所述存储模块包括:
写入子模块,用于在所述从设备为CPU异常的情况下,执行CPU异常回调函数,将堆栈信息写入所述从设备中DDR的CPU异常日志区;
记录子模块,用于在所述从设备为线程卡住异常的情况下,通过在程序的关键代码添加TP跟踪所述关键代码的运行情况,将所述TP记录到所述从设备中DDR的线程卡住日志区;
输出子模块,用于在所述从设备为其他情况异常的情况下,将所述其他情况异常归类为警示打印,并将所述警示打印输出到所述从设备中DDR的警示打印日志区,其中,所述异常日志区包括所述CPU异常日志区、所述线程卡住日志区、所述警示打印日志区。
9.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器运行时执行所述权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至6任一项中所述的方法。
CN202010072027.7A 2020-01-21 2020-01-21 一种从设备的软件异常处理方法及装置 Active CN111274059B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010072027.7A CN111274059B (zh) 2020-01-21 2020-01-21 一种从设备的软件异常处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010072027.7A CN111274059B (zh) 2020-01-21 2020-01-21 一种从设备的软件异常处理方法及装置

Publications (2)

Publication Number Publication Date
CN111274059A CN111274059A (zh) 2020-06-12
CN111274059B true CN111274059B (zh) 2023-10-10

Family

ID=70996893

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010072027.7A Active CN111274059B (zh) 2020-01-21 2020-01-21 一种从设备的软件异常处理方法及装置

Country Status (1)

Country Link
CN (1) CN111274059B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858532B (zh) * 2020-07-17 2023-01-10 苏州浪潮智能科技有限公司 固态硬盘日志导出方法、系统、装置及可读存储介质
CN112463430B (zh) * 2020-12-03 2022-10-25 哲库科技(北京)有限公司 多核系统的死机信息存储方法以及介质和电子设备
CN113010387A (zh) * 2021-03-23 2021-06-22 联想(北京)有限公司 一种监控方法及装置
CN113419912A (zh) * 2021-06-28 2021-09-21 瑞芯微电子股份有限公司 一种基于主从设备的交互式日志系统和实现方法、及交互式日志系统
CN113434324A (zh) * 2021-06-29 2021-09-24 苏州科达科技股份有限公司 异常信息获取方法、系统、设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023507A (en) * 1997-03-17 2000-02-08 Sun Microsystems, Inc. Automatic remote computer monitoring system
CN1983199A (zh) * 2005-12-15 2007-06-20 联想(新加坡)私人有限公司 一种实现计算机死机智能分析的系统及方法
JP2012163997A (ja) * 2011-02-03 2012-08-30 Nec System Technologies Ltd 障害解析支援システム、障害解析支援方法、および障害解析支援プログラム
JP2012198796A (ja) * 2011-03-22 2012-10-18 Nec Corp ログ収集システム、装置、方法及びプログラム
CN105530658A (zh) * 2016-01-22 2016-04-27 深圳市中兴物联科技股份有限公司 一种无线通讯模块的远程诊断方法、装置和系统
CN105871587A (zh) * 2015-12-10 2016-08-17 乐视致新电子科技(天津)有限公司 日志上传方法及装置
CN105978979A (zh) * 2016-05-17 2016-09-28 扬州航盛科技有限公司 一种linux车载系统异常诊断系统及其诊断方法
CN108388496A (zh) * 2018-01-23 2018-08-10 晶晨半导体(上海)股份有限公司 一种系统日志的收集方法
CN110333964A (zh) * 2019-07-01 2019-10-15 Oppo广东移动通信有限公司 异常日志处理方法及装置、电子设备、存储介质
CN110401550A (zh) * 2018-04-24 2019-11-01 贵州白山云科技股份有限公司 客户异常的自动化诊断方法、装置、存储介质及计算设备
CN110620698A (zh) * 2018-06-19 2019-12-27 杭州海康威视数字技术股份有限公司 一种软件异常诊断方法、装置、设备及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100555240C (zh) * 2007-01-16 2009-10-28 国际商业机器公司 用于诊断应用程序的方法和系统
WO2017104119A1 (ja) * 2015-12-14 2017-06-22 日本電気株式会社 ログ分析システム、方法およびプログラム
JP6870466B2 (ja) * 2017-05-12 2021-05-12 富士通株式会社 制御プログラム、制御方法、制御装置、及びデータベースサーバ

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023507A (en) * 1997-03-17 2000-02-08 Sun Microsystems, Inc. Automatic remote computer monitoring system
CN1983199A (zh) * 2005-12-15 2007-06-20 联想(新加坡)私人有限公司 一种实现计算机死机智能分析的系统及方法
JP2012163997A (ja) * 2011-02-03 2012-08-30 Nec System Technologies Ltd 障害解析支援システム、障害解析支援方法、および障害解析支援プログラム
JP2012198796A (ja) * 2011-03-22 2012-10-18 Nec Corp ログ収集システム、装置、方法及びプログラム
CN105871587A (zh) * 2015-12-10 2016-08-17 乐视致新电子科技(天津)有限公司 日志上传方法及装置
CN105530658A (zh) * 2016-01-22 2016-04-27 深圳市中兴物联科技股份有限公司 一种无线通讯模块的远程诊断方法、装置和系统
CN105978979A (zh) * 2016-05-17 2016-09-28 扬州航盛科技有限公司 一种linux车载系统异常诊断系统及其诊断方法
CN108388496A (zh) * 2018-01-23 2018-08-10 晶晨半导体(上海)股份有限公司 一种系统日志的收集方法
CN110401550A (zh) * 2018-04-24 2019-11-01 贵州白山云科技股份有限公司 客户异常的自动化诊断方法、装置、存储介质及计算设备
CN110620698A (zh) * 2018-06-19 2019-12-27 杭州海康威视数字技术股份有限公司 一种软件异常诊断方法、装置、设备及系统
CN110333964A (zh) * 2019-07-01 2019-10-15 Oppo广东移动通信有限公司 异常日志处理方法及装置、电子设备、存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陆杰 ; 李丰 ; 李炼 ; .分布式系统中的日志分析及应用.高技术通讯.2019,(04),全文. *

Also Published As

Publication number Publication date
CN111274059A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
CN111274059B (zh) 一种从设备的软件异常处理方法及装置
US8468389B2 (en) Firmware recovery system and method of baseboard management controller of computing device
CN102760090B (zh) 除错方法及计算机系统
EP2175372B1 (en) Computer apparatus and processor diagnostic method
CN109143954B (zh) 一种实现控制器复位的系统及方法
EP3591485B1 (en) Method and device for monitoring for equipment failure
EP3167371B1 (en) A method for diagnosing power supply failure in a wireless communication device
CN113672306B (zh) 服务器组件自检异常恢复方法、装置、系统及介质
JP6880961B2 (ja) 情報処理装置、およびログ記録方法
CN110825547B (zh) 一种基于smbus的pcie卡异常恢复装置及方法
CN210721440U (zh) 一种pcie卡异常恢复装置及pcie卡、pcie扩展系统
CN110618909B (zh) 基于i2c通讯的故障定位方法、装置、设备及存储介质
CN111400085A (zh) 事务回滚异常的处理方法、装置、计算机设备及存储介质
US11726853B2 (en) Electronic control device
CN109003646A (zh) 一种数据处理方法及单片机
JP2005332030A (ja) コントローラ
CN107766251B (zh) 加载image的检测方法、系统、设备及可读存储介质
CN110909378A (zh) 自动化检测方法、装置、存储介质及电子设备
CN115454954B (zh) 数据处理方法、系统、装置及电子设备
CN114461142B (zh) 一种读写Flash数据的方法、系统、装置及介质
CN116560936A (zh) 异常监测方法、协处理器及计算设备
CN117873771A (zh) 一种系统宕机处理方法、装置、设备、存储介质及服务器
CN117827532A (zh) 故障处理方法和装置
CN117234771A (zh) 故障内存定位方法、系统、装置、计算机设备及存储介质
CN117806939A (zh) 测试方法、装置及存储介质

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
GR01 Patent grant
GR01 Patent grant