一种检测嵌入式设备程序错误并复位的方法、设备及介质技术

技术编号:38373173 阅读:13 留言:0更新日期:2023-08-05 17:35
本发明专利技术涉及嵌入式纠错领域,具体公开了一种检测嵌入式设备程序错误并复位的方法、设备及介质,包括在嵌入式设备中,设置用于存放错误报告的数据结构,作为错误报告缓冲区;通过数据接口与嵌入式设备通信相连,检测嵌入式设备是否进入硬故障状态;如是,则将外设及外设数据、变量及其变量数据,函数及其返回地址、函数位于嵌入式设备程序的位置存入错误报告缓冲区存入错误报告缓冲区,储存为错误报告并发送;侦听是否有更正程序被反馈;如是,将更正程序覆盖嵌入式设备的原程序,并复位嵌入式设备。本发明专利技术在嵌入式设备发生故障后,获取完整的错误信息保存并发送给处理终端,能够更方便的定位故障代码位置,极大的提升了故障定位的效率及准确性。效率及准确性。效率及准确性。

【技术实现步骤摘要】
一种检测嵌入式设备程序错误并复位的方法、设备及介质


[0001]本专利技术涉及嵌入式纠错领域,尤其涉及一种检测嵌入式设备程序错误并复位的方法、设备及介质。

技术介绍

[0002]随着现代信息技术的发展,单片机以及嵌入式技术正在飞速的改变人们的生产与生活方式。特别是在工业控制领域,通过单片机执行工控程序实现设备的自动化生产,为企业的生产效率提高与人力资源的节约提供了最重要的支持。
[0003]对于嵌入式设备来说,当出现硬故障(hard fault)导致死机情况,传统的解决方法是将嵌入式设备连接上仿真器,一步步单步调试,定位到具体的错误代码,再去猜测、排除、推敲错误原因,并且可以通过故障寄存器信息来定位故障原因及故障代码地址,虽然这样能解决一部分问题,但是重复的、繁琐的检查操作与分析过程会耽误大量时间。而且对于一些复杂问题,只依靠代码地址仍然难以判断错误原因或源头,导致问题无法解决,只能依靠更费时费力的还原错误现场的函数调用逻辑关系。
[0004]另外,在某些情况下,很多嵌入式产品的真机调试时必须断开仿真器,导致无法直接排查故障。有时,嵌入式设备的问题确实存在,但是极难被重现,或者重现概率低,或重现耗时过长,导致排查故障的周期过长。当嵌入式设备的程序代码量成千上万,但日志确没检测到错误代码,导致难以查找故障原因。而当嵌入式设备的故障问题一直存在,而无法得到快速解决,会对企业造成重大的损失。

技术实现思路

[0005]为了克服上述问题,本专利技术提供一种检测嵌入式设备程序错误并复位的方法、设备及介质。
[0006]本专利技术提供了一种检测嵌入式设备程序错误并复位的方法,包括步骤如下:
[0007]在嵌入式设备中,设置用于存放错误报告的数据结构,作为错误报告缓冲区,并建立外设列表和变量列表;其中,所述外设列表是记录要监测的外设的第一寄存器,变量列表是记录要监测的变量名的第二寄存器;
[0008]通过数据接口与所述嵌入式设备通信相连;
[0009]检测所述嵌入式设备是否进入硬故障状态;
[0010]如否,持续检测所述嵌入式设备;
[0011]如是,依据外设列表获取外设在所述嵌入式设备的寄存器中保存的外设数据,依据变量列表获取各变量名对应的变量数据,解析堆栈数据获取嵌入式设备程序在运行的函数以及函数的返回地址;
[0012]将全部外设及其对应的外设数据、全部变量名及其对应的变量数据,以及函数及其对应的返回地址存入错误报告缓冲区,储存为错误报告;
[0013]发送所述错误报告以及所述函数位于嵌入式设备程序的位置至处理终端;其中,
所述处理终端用于依据所述错误报告以及所述函数位于嵌入式设备程序的位置生成处理终端用于依据所述错误报告以及所述函数位于嵌入式设备程序的位置生成并反馈更正程序;
[0014]侦听是否有更正程序被反馈;
[0015]如是,将更正程序覆盖嵌入式设备的原程序,并复位嵌入式设备;
[0016]否则,持续侦听。
[0017]作为优选地,所述错误报告缓冲区是FIFO数据结构。
[0018]优选地,所述通过数据接口与所述嵌入式设备通信相连,具体为:通过转接装置与所述嵌入式设备的数据接口通信相连,所述转接装置与处理终端数据互联。
[0019]优选地,所述发送所述错误报告以及所述函数位于嵌入式设备程序的位置至处理终端,具体为:所述转接装置读取所述嵌入式设备的错误报告,同时将错误报告发送至处理终端,处理终端将错误报告存档。
[0020]优选地,所述侦听是否有更正程序被反馈;如是,将更正程序覆盖嵌入式设备的原程序,并复位嵌入式设备;否则,持续侦听;具体为:
[0021]所述转接装置侦听是否有更正程序从所述处理终端送达;
[0022]如是,所述转接装置接收所述处理终端发出的更正程序,并将更正程序发送至所述嵌入式设备;复位嵌入式设备;
[0023]否则,持续侦听。
[0024]优选地,所述设备代码反汇编程序储存并运行在所述嵌入式设备、所述转接装置或所述处理终端其中的任意一个之上。
[0025]优选地,所述转接装置设有一个MCU、至少一个网络接口和至少一个串口;所述处理终端是服务器,所述转接装置通过通信网络与所述处理终端数据互联。
[0026]优选地,所述将更正程序覆盖嵌入式设备的原程序,并复位嵌入式设备,具体为:
[0027]读取更正程序对应的指定代码段起始地址;
[0028]将更正程序覆盖到起始地址对应的flash中;
[0029]检测是否覆盖成功;
[0030]如是,发送更正成功信号,并复位嵌入式设备;
[0031]否则,返回“检测所述嵌入式设备是否进入硬故障状态”步骤。
[0032]本专利技术还提供了一种检测嵌入式设备程序错误并复位的设备,包括:架构模块、通信模块、检测模块、第一循环模块、数据采集模块、错误报告模块、寻址模块、读取模块、侦听模块、更正模块和第二循环模块;
[0033]所述架构模块用于在嵌入式设备中,设置用于存放错误报告的数据结构,作为错误报告缓冲区,并建立外设列表和变量列表;其中,所述外设列表是记录要监测的外设的第一寄存器,变量列表是记录要监测的变量名的第二寄存器;
[0034]所述通信模块用于通过数据接口与所述嵌入式设备通信相连;
[0035]所述检测模块用于检测所述嵌入式设备是否进入硬故障状态;
[0036]所述第一循环模块用于如检测模块结果为否,持续检测所述嵌入式设备;
[0037]所述数据采集模块用于如检测模块结果为是,则依据外设列表获取外设在所述嵌入式设备的寄存器中保存的外设数据,依据变量列表获取各变量名对应的变量数据,解析
堆栈数据获取嵌入式设备程序在运行的函数以及函数的返回地址;
[0038]所述错误报告模块用于将全部外设及其对应的外设数据、全部变量名及其对应的变量数据,以及函数及其对应的返回地址存入错误报告缓冲区,储存为错误报告;
[0039]所述寻址模块依据所述函数以及所述返回地址,通过设备代码反汇编程序,对返回地址配对获得所述函数位于嵌入式设备程序的位置;其中,所述设备代码反汇编程序是在嵌入式设备程序编译时候生成的程序,其中包含有各个函数的返回地址及其在嵌入式设备程序的位置;
[0040]所述读取模块用于发送所述错误报告以及所述函数位于嵌入式设备程序的位置至处理终端;其中,所述处理终端用于依据所述错误报告以及所述函数位于嵌入式设备程序的位置生成并反馈更正程序;
[0041]所述侦听模块用于侦听是否有更正程序被反馈;
[0042]所述更正模块用于如侦听模块结果为是,将更正程序覆盖嵌入式设备的原程序,并复位嵌入式设备;
[0043]所述第二循环模块用于如侦听模块结果为是否,持续侦听。
[0044]本专利技术提供了一种终端设备,包括处理器和存储装置,所述存储装置用于存储一个或多个程序;当所述一个或本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种检测嵌入式设备程序错误并复位的方法,其特征在于,包括:在嵌入式设备中,设置用于存放错误报告的数据结构,作为错误报告缓冲区,并建立外设列表和变量列表;其中,所述外设列表是记录要监测的外设的第一寄存器,变量列表是记录要监测的变量名的第二寄存器;通过数据接口与所述嵌入式设备通信相连;检测所述嵌入式设备是否进入硬故障状态;如否,持续检测所述嵌入式设备;如是,依据外设列表获取外设在所述嵌入式设备的寄存器中保存的外设数据,依据变量列表获取各变量名对应的变量数据,解析堆栈数据获取嵌入式设备程序在运行的函数以及函数的返回地址;将全部外设及其对应的外设数据、全部变量名及其对应的变量数据,以及函数及其对应的返回地址存入错误报告缓冲区,储存为错误报告;依据所述函数以及所述返回地址,通过设备代码反汇编程序,对返回地址配对获得所述函数位于嵌入式设备程序的位置;其中,所述设备代码反汇编程序是在嵌入式设备程序编译时候生成的程序,其中包含有各个函数的返回地址及其在嵌入式设备程序的位置;发送所述错误报告以及所述函数位于嵌入式设备程序的位置至处理终端;其中,所述处理终端用于依据所述错误报告以及所述函数位于嵌入式设备程序的位置生成并反馈更正程序;侦听是否有更正程序被反馈;如是,将更正程序覆盖嵌入式设备的原程序,并复位嵌入式设备;否则,持续侦听。2.根据权利要求1所述的一种检测嵌入式设备程序错误并复位的方法,其特征在于,所述错误报告缓冲区是FIFO数据结构。3.根据权利要求1所述的一种检测嵌入式设备程序错误并复位的方法,其特征在于,所述通过数据接口与所述嵌入式设备通信相连,具体为:通过转接装置与所述嵌入式设备的数据接口通信相连,所述转接装置与处理终端数据互联。4.根据权利要求3所述的一种检测嵌入式设备程序错误并复位的方法,其特征在于,所述发送所述错误报告以及所述函数位于嵌入式设备程序的位置至处理终端,具体为:所述转接装置读取所述嵌入式设备的错误报告,同时将错误报告发送至处理终端,处理终端将错误报告存档。5.根据权利要求3所述的一种检测嵌入式设备程序错误并复位的方法,其特征在于,所述侦听是否有更正程序被反馈;如是,将更正程序覆盖嵌入式设备的原程序,并复位嵌入式设备;否则,持续侦听;具体为:所述转接装置侦听是否有更正程序从所述处理终端送达;如是,所述转接装置接收所述处理终端发出的更正程序,并将更正程序发送至所述嵌入式设备;复位嵌入式设备;否则,持续侦听。6.根据权利要求3所述的一种检测嵌入式设备程序错误并复位的方法,其特征在于,所
述转接装置设有一个MCU、至少一个网络接口和至少一个串口;所述处理终端是服务器,所述转接装置通过通信网络与所述处理终端数据互联。7.根据权利要求3所述的一种...

【专利技术属性】
技术研发人员:梁嘉浩赵定金朱正辉张常华明德
申请(专利权)人:广东保伦电子股份有限公司
类型:发明
国别省市:

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

1