一种故障代码定位方法及相关装置与流程

文档序号:37552733发布日期:2024-04-08 14:03阅读:10来源:国知局
一种故障代码定位方法及相关装置与流程

本申请涉及故障代码定位,具体而言,涉及一种故障代码定位方法及相关装置。


背景技术:

1、单片机(single-chip microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器cpu、随机存储器ram、只读存储器rom、多种i/o口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、a/d转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

2、在单片机中烧录代码后,单片机在运行过程中,可能出现代码故障的情况,具体体现为单片机系统的异常或者死机问题。在目前的故障代码定位中,一般通过人工的方式,对源代码进行深入分析,尽可能地分析出有可能出现故障的源代码位置,然后使用jlink在线调试或者串口、can等工具打印调试信息,逐步锁定出现故障的源代码位置,然后对源代码进行优化,解决代码故障的问题。

3、然而,通过人工分析源代码找出可能出现故障的源代码位置的方式,其成功率受工程师经验和阅历的影响;普通工程师面对该类问题大多无法定位故障源代码的位置,需要对程序进行逐步排除与测试,需要花费大量的调试优化时间。

4、综上,现有技术中在定位源代码时,存在工程师对故障代码的定位难度较大的问题。


技术实现思路

1、本申请的目的在于提供一种故障代码定位方法及相关装置,以解决现有技术中存在的工程师对故障代码的定位难度较大的问题。

2、为了实现上述目的,本申请实施例采用的技术方案如下:

3、第一方面,本申请实施例提供了一种故障代码定位方法,用于实现程序的故障定位,所述程序烧录于开发系统的单片机,所述单片机包括多个寄存器,所述开发系统还包括外设,所述单片机与所述外设通信连接,所述方法包括:

4、在检测到所述单片机触发中断情况下,从所述多个寄存器中确定出中断对应的目标寄存器;并从所述目标寄存器中输出中断对应的地址至所述外设中;

5、判断所述目标寄存器的类型是否为设定类型;

6、如果是,则依据所述外设中获取的地址与源代码的map文件进行匹配,以定位对应的故障代码函数,并将所述目标寄存器中的地址重置;

7、如果否,则生成故障信号,并将所述故障信号输出至所述外设中。

8、可选地,在从目标寄存器中输出中断对应的地址至外设中的步骤之前,所述方法还包括:

9、获取目标寄存器的首地址,并判断所述首地址是否位于预设的地址范围内;其中,每个型号的单片机对应一个特定的地址范围;

10、如果是,则执行从目标寄存器中输出中断对应的地址至外设中的步骤;

11、如果否,则将输出变量置零。

12、可选地,从目标寄存器中输出中断对应的地址至外设中的步骤包括:

13、将所述目标寄存器中地址上的数据写入输出变量中,并通过输出变量向所述外设输出变量信息。

14、可选地,在将输出变量置零的步骤之后,所述方法还包括:

15、确定所述目标寄存器的首地址所处的目标地址范围;

16、依据所述目标地址范围确定程序对应的单片机型号。

17、可选地,从所述多个寄存器中确定出中断对应的目标寄存器的步骤包括:

18、获取所述单片机的型号;

19、依据所述单片机的型号从多个寄存器中确定目标寄存器。

20、可选地,所述单片机中还包括故障类型寄存器,在当检测到单片机触发中断时,所述方法还包括:

21、将故障类型寄存器中的数据输出至外设中。

22、可选地,依据外设中获取的地址与源代码的map文件进行匹配的步骤包括:

23、确定所述地址在所述map文件中所处的目标地址区间;

24、依据所述目标地址区间确定故障代码函数。

25、第二方面,本申请提供了一种故障代码定位装置,用于实现程序的故障定位,所述程序烧录于开发系统的单片机,所述单片机包括多个寄存器,所述开发系统还包括外设,所述单片机与所述外设通信连接,所述装置包括:

26、数据处理单元,用于在检测到所述单片机触发中断情况下,从所述多个寄存器中确定出中断对应的目标寄存器;并从所述目标寄存器中输出中断对应的地址至所述外设中;

27、判断单元,用于判断所述目标寄存器的类型是否为设定类型;

28、数据处理单元,还用于在标寄存器的类型为设定类型时,依据所述外设中获取的地址与源代码的map文件进行匹配,以定位对应的故障代码函数,并将所述目标寄存器中的地址重置;

29、数据处理单元,还用于在标寄存器的类型为非设定类型时,生成故障信号,并将所述故障信号输出至所述中断中。

30、第三方面,本申请实施例还提供了一种单片机,包括:

31、存储器,用于存储一个或多个程序;处理器;当所述一个或多个程序被所述处理器执行时,实现上述的方法。

32、第四方面,本申请实施例还提供了一种可读存储介质,其上存储有单片机程序,该单片机程序被处理器执行时实现上述的方法。

33、相对于现有技术,本申请具有以下有益效果:

34、本申请提供了一种故障代码定位方法及相关装置,该方法用于实现程序的故障定位,程序烧录于开发系统的单片机,该单片机包括多个寄存器,开发系统还包括外设,单片机与外设通信连接,在检测到单片机触发中断情况下,从多个寄存器中确定出中断对应的目标寄存器;并从目标寄存器中输出中断对应的地址至外设中;判断目标寄存器的类型是否为设定类型;如果是,则依据外设中获取的地址与源代码的map文件进行匹配,以定位对应的故障代码函数,并将目标寄存器中的地址重置;如果否,则生成故障信号,并将故障信号输出至中断中。由于本申请中,在检测到单片机触发中断时,会直接将目标寄存器中的地址输出至外设中,并且可以依据地址从map文件中确定出故障代码函数,实现了自动化确定出故障代码的位置,降低了工程师的工作量的效果。并且,还可以依据中断对应的不同寄存器的类型,控制故障代码是否继续运行,进而在出现简易故障时,能够使烧录的程序继续跑完,进而提升了程序验证的快捷性。

35、为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。



技术特征:

1.一种故障代码定位方法,其特征在于,用于实现程序的故障定位,所述程序烧录于开发系统的单片机,所述单片机包括多个寄存器,所述开发系统还包括外设,所述单片机与所述外设通信连接,所述方法包括:

2.如权利要求1所述的故障代码定位方法,其特征在于,在从目标寄存器中输出中断对应的地址至所述外设中的步骤之前,所述方法还包括:

3.如权利要求2所述的故障代码定位方法,其特征在于,从所述目标寄存器中输出中断对应的地址至所述外设中的步骤包括:

4.如权利要求3所述的故障代码定位方法,其特征在于,在将输出变量置零的步骤之后,所述方法还包括:

5.如权利要求1所述的故障代码定位方法,其特征在于,从所述多个寄存器中确定出中断对应的目标寄存器的步骤包括:

6.如权利要求1所述的故障代码定位方法,其特征在于,所述单片机中还包括故障类型寄存器,在检测到单片机触发中断时,所述方法还包括:

7.如权利要求1所述的故障代码定位方法,其特征在于,依据所述外设中获取的地址与源代码的map文件进行匹配的步骤包括:

8.一种故障代码定位装置,其特征在于,用于实现程序的故障定位,所述程序烧录于开发系统的单片机,所述单片机包括多个寄存器,所述开发系统还包括外设,所述单片机与所述外设通信连接,所述装置包括:

9.一种单片机,其特征在于,包括:

10.一种可读存储介质,其上存储有单片机程序,其特征在于,该单片机程序被处理器执行时实现如权利要求1-7中任一项所述方法。


技术总结
本申请提供了一种故障代码定位方法及相关装置,涉及故障代码定位技术领域。该方法用于实现程序的故障定位,程序烧录于开发系统的单片机,该单片机包括多个寄存器,开发系统还包括外设,单片机与外设通信连接,在检测到单片机触发中断情况下,从多个寄存器中确定出中断对应的目标寄存器;并从目标寄存器中输出中断对应的地址至外设中;判断目标寄存器的类型是否为设定类型;如果是,则依据外设中获取的地址与源代码的map文件进行匹配,以定位对应的故障代码函数,并将目标寄存器中的地址重置;如果否,则生成故障信号,并将故障信号输出至中断中。本申请具有实现了自动化确定出故障代码的位置,降低了工程师的工作量的优点。

技术研发人员:吴贵足,仇成丰,李进,褚俊涛
受保护的技术使用者:双一力(宁波)电池有限公司
技术研发日:
技术公布日:2024/4/7
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1