一种程序调试方法及微控制器技术

技术编号:35457194 阅读:26 留言:0更新日期:2022-11-03 12:17
本申请公开了一种程序调试的方法及微控制器。该方法包括以下步骤:获取待设置断点的第一目标操作指令的第一访存地址;通过第一访存地址访问指令存储模块,以将指令存储模块中的第一目标操作指令替换为断点指令;根据程序计数器的自增或跳转,执行指令存储模块中对应的操作指令,并在执行到断点指令时,暂停程序计数器的自增或跳转。本申请通过在指令存储模块中设置断点指令的方式,实现硬件断点,具有实现结构简单、效率高等优点。效率高等优点。效率高等优点。

【技术实现步骤摘要】
一种程序调试方法及微控制器


[0001]本申请属于软件测试
,尤其涉及一种程序调试方法及微控制器。

技术介绍

[0002]断点技术是微控制器的程序调试中不可或缺并有决定性作用的技术。当前的断点技术主要分为两种,软件断点和硬件断点,相比于软件断点,硬件断点具有精确度高、稳定性好(即只要时钟稳定就能确保断点指令不出错)等优点,在一些场合得到更广泛的应用。然而,现有的硬件断点的实现方案,主要通过微控制器执行指令过程中,根据配置不断将所执行指令的指针与断点寄存器中的断点指针进行对比,以在发生匹配时,产生中断并冻结微控制器的流水线跳入特定程序段进行处理,来实现相应的程序断点调试功能,整个实现过程复杂繁琐,且效率不高。

技术实现思路

[0003]本申请实施例提供一种程序调试方法及微控制器,旨在解决现有技术中硬件断点实现方案的实现过程复杂繁琐、且效率不高的技术问题。
[0004]第一方面,本申请实施例提供一种程序调试方法,包括以下步骤:
[0005]获取待设置断点的第一目标操作指令的第一访存地址;
[0006]通过所述第一访存地址访问指令存储模块,以将所述指令存储模块中的所述第一目标操作指令替换为断点指令;
[0007]根据程序计数器的自增或跳转,执行所述指令存储模块中对应的操作指令,并在执行到所述断点指令时,暂停所述程序计数器的自增或跳转。
[0008]可选的,在本申请的一些实施例中,所述获取待设置断点的第一目标操作指令的第一访存地址,包括:
[0009]接收上位机下发的所述第一目标操作指令的第一程序计数器地址;
[0010]对所述第一程序计数器地址进行译码,得到所述第一目标操作指令的第一访存地址。
[0011]可选的,在本申请的一些实施例中,所述通过所述第一访存地址访问指令存储模块,以将所述指令存储模块中的所述第一目标操作指令替换为断点指令,包括:
[0012]通过所述第一访存地址访问指令存储模块中的第一目标存储单元,并将所述第一目标存储单元中的第一目标操作指令备份到目标寄存器中;
[0013]将所述第一目标存储单元中的所述第一目标操作指令进行擦除,并写入所述断点指令。
[0014]可选的,在本申请的一些实施例中,所述根据程序计数器的自增或跳转,执行所述指令存储模块中对应的指令的步骤具体包括:
[0015]根据所述程序计数器的自增或跳转,对自增或跳转后的第二程序计数器地址进行译码,得到第二访存地址;
[0016]通过所述第二访存地址访问所述指令存储模块中的第二目标存储单元,对所述第二目标存储单元中的第二目标操作指令进行译码;
[0017]当所述第二目标操作指令不是所述断点指令时,执行所述第二目标操作指令,并继续执行所述程序计数器的自增或跳转。
[0018]可选的,在本申请的一些实施例中,在所述根据程序计数器的自增或跳转,执行所述指令存储模块中对应的操作指令,并在执行到所述断点指令时,暂停所述程序计数器的自增或跳转之后,所述程序调试方法还包括:
[0019]将所述指令存储模块中的所述断点指令重新替换为所述第一目标操作指令。
[0020]可选的,在本申请的一些实施例中,所述将指令存储模块中的所述断点指令重新替换为所述第一目标操作指令的步骤具体包括:
[0021]对所述断点指令对应的第一程序计数器地址进行译码,得到所述第一访存地址;
[0022]通过所述第一访存地址访问指令存储模块中的第一目标存储单元,将所述第一目标存储单元中的所述断点指令进行擦除,并写入备份在目标寄存器中的所述第一目标操作指令。
[0023]可选的,在本申请的一些实施例中,在所述根据程序计数器的自增或跳转,执行所述指令存储模块中对应的操作指令,并在执行到所述断点指令时,暂停所述程序计数器的自增或跳转之后,所述程序调试方法还包括:
[0024]将所述指令存储模块中的所述断点指令重新替换为所述第一目标操作指令,并获取待设置断点的第三目标操作指令的第三访存地址;
[0025]通过所述第三访存地址访问所述指令存储模块,以将所述指令存储模块中的所述第三目标操作指令替换为所述断点指令。
[0026]可选的,在本申请的一些实施例中,所述获取待设置断点的第三目标操作指令的第三访存地址的步骤具体包括:
[0027]接收上位机下发的所述第三目标操作指令的第三程序计数器地址;
[0028]对所述第三程序计数器地址进行译码,得到所述第三目标操作指令的第三访存地址;
[0029]所述通过所述第三访存地址访问所述指令存储模块,以将所述指令存储模块中的所述第三目标操作指令替换为所述断点指令的步骤具体包括:
[0030]通过所述第三访存地址访问所述指令存储模块的第三目标存储单元,并将所述第三目标存储单元中的所述第三目标操作指令备份到目标寄存器中;
[0031]将所述第三目标存储单元中的所述第三目标操作指令进行擦除,并写入所述断点指令。
[0032]可选的,在本申请的一些实施例中,所述根据程序计数器的自增或跳转,执行所述指令存储模块中对应的操作指令,并在执行到所述断点指令时,暂停所述程序计数器的自增或跳转之后,所述程序调试方法还包括:
[0033]在所述指令存储模块中保留所述断点指令,并继续执行所述程序计数器的自增或跳转。
[0034]第二方面,本申请实施例提供一种微控制器,包括:指令存储模块,配置为按不同的访存地址存储有待调试程序的所有操作指令;程序计数器,配置为存储有当前待执行的
操作指令的程序计数器地址;指令译码模块,配置为对当前待执行的操作指令进行译码;地址译码模块,配置为对所述程序计数器地址进行译码,得到相应的访存地址;指令自增模块,配置为控制所述程序计数器的自增或跳转;指令暂停模块,配置为暂停所述程序计数器的自增或跳转;调试控制模块,配置为执行上述的程序调试方法的步骤。
[0035]在本申请中,其进行程序调试时,会先获取待设置断点的第一目标操作指令的第一访存地址。接着,会通过该第一访存地址访问指令存储模块,以将该指令存储模块中的第一目标操作指令替换为断点指令。最后,根据程序计数器的自增或跳转,执行该指令存储模块中对应的操作指令,并在执行到该断点指令时,暂停该程序计数器的自增或跳转,进而实现程序调试中的断点调试功能。这样一来,本申请通过在指令存储模块中设置断点指令的方式,使得微控制器在程序调试执行指令过程中,只需按正常的工作模式工作即可,无需频繁的指针比对过程便可实现相应的断点调试功能。可见,本申请技术方案具有实现结构简单、效率高等优点。
附图说明
[0036]下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其有益效果显而易见。
[0037]图1是本申请实施例提供的程序调试方法的第一种流程示意图。
[0038]图2是图1所示程序调试方法的步骤S110的流程示意图。
[0039本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种程序调试方法,其特征在于,包括以下步骤:获取待设置断点的第一目标操作指令的第一访存地址;通过所述第一访存地址访问指令存储模块,以将所述指令存储模块中的所述第一目标操作指令替换为断点指令;根据程序计数器的自增或跳转,执行所述指令存储模块中对应的操作指令,并在执行到所述断点指令时,暂停所述程序计数器的自增或跳转。2.根据权利要求1所述的程序调试方法,其特征在于,所述获取待设置断点的第一目标操作指令的第一访存地址,包括:接收上位机下发的所述第一目标操作指令的第一程序计数器地址;对所述第一程序计数器地址进行译码,得到所述第一目标操作指令的第一访存地址。3.根据权利要求1所述的程序调试方法,其特征在于,所述通过所述第一访存地址访问指令存储模块,以将所述指令存储模块中的所述第一目标操作指令替换为断点指令,包括:通过所述第一访存地址访问指令存储模块中的第一目标存储单元,并将所述第一目标存储单元中的第一目标操作指令备份到目标寄存器中;将所述第一目标存储单元中的所述第一目标操作指令进行擦除,并写入所述断点指令。4.根据权利要求1所述的程序调试方法,其特征在于,所述根据程序计数器的自增或跳转,执行所述指令存储模块中对应的操作指令,包括:根据所述程序计数器的自增或跳转,对自增或跳转后的第二程序计数器地址进行译码,得到第二访存地址;通过所述第二访存地址访问所述指令存储模块中的第二目标存储单元,对所述第二目标存储单元中的第二目标操作指令进行译码;当所述第二目标操作指令不是所述断点指令时,执行所述第二目标操作指令,并继续执行所述程序计数器的自增或跳转。5.根据权利要求1所述的程序调试方法,其特征在于,在所述根据程序计数器的自增或跳转,执行所述指令存储模块中对应的操作指令,并在执行到所述断点指令时,暂停所述程序计数器的自增或跳转之后,所述程序调试方法还包括:将所述指令存储模块中的所述断点指令重新替换为所述第一目标操作指令。6.根据权利要求5所述的程序调试方法,其特征在于,所述将所述指令存储模块中的所述断点指令重新替换为所述第一目标操作指令,包括:对所述断点指令对应的第一程序计数器地址进行译码,得到所述第一访存地址;通过所述第一访存地址访问指令存储模块中的第一目标存储单元,将所述...

【专利技术属性】
技术研发人员:焦继业徐华昊
申请(专利权)人:西安恩狄集成电路有限公司
类型:发明
国别省市:

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

1