一种微程序的调试方法及其调试装置制造方法及图纸

技术编号:28131784 阅读:13 留言:0更新日期:2021-04-19 11:55
本发明专利技术提供了一种微程序的调试方法及其调试装置,该微程序的调试方法通过确定处于闲置状态的存储空间,作为存储程序检测点信息的载体;之后能够通过直接读取存储空间内的程序检测点信息,获取程序检测点的运行情况信息,了解处理器的待调试子模块中的待调试微程序的运行情况。与现有技术中通过JTAG或串口读取微程序的运行情况信息的方式相比,本申请的方案,不仅能够对那些能够通过JTAG或串口进行访问的待调试子模块内的待调试微程序的运行情况进行读取,还能够对那些不能通过JTAG或串口进行访问的待调试子模块内待调试微程序的运行情况进行读取,获取那些不能通过JTAG或串口进行访问的待调试子模块内的待调试微程序的运行情况信息。运行情况信息。运行情况信息。

【技术实现步骤摘要】
一种微程序的调试方法及其调试装置


[0001]本专利技术涉及计算机领域,尤其涉及一种微程序的调试方法及其调试装置。

技术介绍

[0002]常规的嵌入式程序开发与调试,芯片硬件一般会提供JTAG(Joint Test Action Group,联合测试工作组,一种国际标准测试协议,主要用于芯片内部测试)接口或其他接口,配合IDE(Integrated Development Environment,集成开发环境,用于提供程序开发环境的应用程序),便于程序下载到芯片执行时,通过IDE实时控制和仿真程序运行。或者通过串口,在程序中嵌入串口打印信息,以跟踪和反应程序运行情况。
[0003]大型复杂芯片外部硬件接口上有JTAG或串口,但一般设计是作为整体芯片生产测试使用。微程序是大型复杂芯片的某些子模块的管理代码,这些子模块处于复杂芯片的内部深处,作为复杂芯片的某些部分,没有独立的外接调试接口。因此子模块的微程序,没有办法将开发调试过程中的运行情况信息,通过这种接口反应到外部显示器上,即无法采用这种常规的调试机制。同时,JTAG或串口作为复杂芯片的公共接口,可以控制到相应的子模块。但即便开发出针对某个子模块的微程序调试手段,由于复杂芯片存在若干子模块的微程序调试需求,会涉及到共享该调试接口的情况。在共享调试接口时,会产生资源强占的问题,对各子模块的微程序开发并不方便友好。

技术实现思路

[0004]本专利技术提供了一种微程序的调试方法及其调试装置,以便于对处理器待调试子模块中的微程序的运行情况进行读取。
[0005]本专利技术提供了一种微程序的调试方法,该微程序的调试方法包括:确定存储模块中处于闲置状态的存储空间;初始化处于闲置状态的存储空间;在待调试微程序中确定程序检测点;在待调试微程序的程序检测点处植入检测程序;依据植入检测程序后的待调试微程序,运行处理器的待调试子模块,将程序检测点信息存储到存储空间内;读取存储空间内的程序检测点信息。
[0006]在上述的方案中,通过确定一处于闲置状态的存储空间,作为存储程序检测点信息的载体;之后能够通过直接读取存储空间内所存储的程序检测点信息,获取程序检测点的运行情况信息,以了解处理器的待调试子模块中的待调试微程序的运行情况。与现有技术中通过JTAG或串口读取微程序的运行情况信息的方式相比,本申请的方案,不仅能够对那些能够通过JTAG或串口进行访问的待调试子模块内的待调试微程序的运行情况进行读取,还能够对那些不能通过JTAG或串口进行访问的待调试子模块内的待调试微程序的运行情况进行读取,获取那些不能通过JTAG或串口进行访问的待调试子模块内的待调试微程序的运行情况信息。
[0007]在一个具体的实施方式中,该调试方法还包括:依据所读取的程序检测点信息,获取程序检测点的运行情况信息;根据所获取的运行情况信息,对微程序及待调试子模块进
行分析。根据所获得的运行情况信息,对待调试微程序及待调试子模块进行分析,以分析完善待调试微程序。
[0008]在一个具体的实施方式中,处理器为中央处理器或图形处理器,以便于对中央处理器或图形处理器的待调试子模块中的待调试微程序的运行情况进行读取及分析。
[0009]在一个具体的实施方式中,存储模块为中央处理器能够访问的寄存器,以提高获取程序检测点的运行情况信息的速度,提高调试效率。
[0010]在一个具体的实施方式中,每个程序检测点为事件检测点或程序位置检测点,以便于了解和掌握事件检测点及程序位置检测点的运行情况。
[0011]在一个具体的实施方式中,在待调试微程序中确定程序检测点包括:在待调试微程序中确定N个程序检测点。获取程序检测点的运行情况信息包括:获取N个程序检测点中的每个程序检测点是否发生或被运行的信息。将程序检测点信息存储到存储空间内包括:将N个程序检测点是否发生或被运行的信息与寄存器中的N个比特位建立映射关系;将所获取的N个程序检测点中的每个程序检测点是否发生或被运行的信息存储在寄存器中对应的比特位中。现有技术中采用一个寄存器直接赋值记录某个程序检测点的状态的方式,未能充分利用寄存器的资源,且还需要多次修改程序记录多个程序检测点,从而影响调试跟踪效率。本申请的方案与现有技术相比,采用寄存器分位记录的方式,能够充分利用寄存器的资源,且通过一个寄存器能够记录多个程序检测点的运行情况,从而减少修改程序记录的次数,提高调试跟踪效率。
[0012]在一个具体的实施方式中,程序检测点的个数N不大于待调试子模块中所有处于闲置状态的寄存器的总比特位数,以便于使用待调试子模块中的寄存器作为存储模块,以提高调试速度。
[0013]在一个具体的实施方式中,将获取的每个程序检测点是否发生或被运行的信息存储在寄存器中对应的比特位中包括:将寄存器中的N个比特位初始化为“0”;判断每个程序检测点是否发生或被运行的信息为未发生或未被运行,则保持该程序检测点对应的比特位继续为“0”;判断每个程序检测点是否发生或被运行的信息为已发生或已被运行,则在寄存器内该程序检测点对应的比特位写入“1”。以便于记录事件检测点是否发生,或程序位置检测点是否被运行到。
[0014]在一个具体的实施方式中,读取存储空间内的程序检测点信息包括:读取寄存器内的N个比特位的数据。根据所获取的运行情况信息,对待调试微程序及待调试子模块进行分析包括:根据N个比特位的数据,分析应该执行的待调试微程序是否被执行,不应该被执行的待调试微程序是否被执行;根据分析结果,判断待调试微程序执行情况是否符合微程序设计思想,修改待调试微程序。以便于根据寄存器记录的多个程序检测点的运行情况信息,对待调试微程序进行分析和完善。
[0015]在一个具体的实施方式中,在待调试微程序中确定程序检测点包括:在待调试微程序中确定M个程序检测点。获取程序检测点的运行情况信息包括:获取M个程序检测点中的每个程序检测点发生或被运行的频次信息。将程序检测点信息存储到存储空间内包括:将寄存器中的H个比特位划分为M个比特位段,每个比特位段包含至少两个相邻的比特位;将M个程序检测点发生或被运行的频次信息与M个比特位段建立映射关系;将所获取的M个程序检测点中的每个程序检测点发生后被运行的频次信息存储在寄存器中对应的比特位
段中。现有技术中采用一个寄存器记录一个程序检测点发生或被运行的频次,未能充分利用寄存器的资源,造成硬件资源浪费;且还需要多次修改程序多次运行,才能抓取到比较全面的数据,从而影响调试跟踪效率。本申请的方案采用一个寄存器分多个比特位段,从而记录多个程序检测点的频次的方式,能够充分利用寄存器的资源,提高对硬件资源的利用效率。且一次运行能够检测出多个程序检测点的运行情况,从而能够提高调试跟踪效率。
[0016]在一个具体的实施方式中,程序检测点的个数M不大于待调试子模块中所有处于闲置状态的寄存器的总比特位数的二分之一,且H≥2M。以便于使用待调试子模块中的寄存器作为存储模块,以提高调试速度。
[0017]在一个具体的实施方式中,读取存储空间内的程序本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微程序的调试方法,其特征在于,包括:确定存储模块中处于闲置状态的存储空间;初始化所述处于闲置状态的存储空间;在待调试微程序中确定程序检测点;在所述待调试微程序的程序检测点处植入检测程序;依据植入所述检测程序后的待调试微程序,运行处理器的待调试子模块,将程序检测点信息存储到所述存储空间内;读取所述存储空间内的程序检测点信息。2.如权利要求1所述的调试方法,其特征在于,还包括:依据所读取的程序检测点信息,获取所述程序检测点的运行情况信息;根据所获取的运行情况信息,对所述待调试微程序及所述待调试子模块进行分析。3.如权利要求2所述的调试方法,其特征在于,所述处理器为中央处理器或图形处理器。4.如权利要求3所述的调试方法,其特征在于,所述存储模块为所述中央处理器能够访问的寄存器。5.如权利要求4所述的调试方法,其特征在于,每个程序检测点为事件检测点或程序位置检测点。6.如权利要求5所述的调试方法,其特征在于,所述在待调试微程序中确定程序检测点包括:在所述待调试微程序中确定N个程序检测点;所述获取程序检测点的运行情况信息包括:获取所述N个程序检测点中的每个程序检测点是否发生或被运行的信息;所述将程序检测点信息存储到所述存储空间内包括:将所述N个程序检测点是否发生或被运行的信息与所述寄存器中的N个比特位建立映射关系;将所获取的所述N个程序检测点中的每个程序检测点是否发生或被运行的信息存储在所述寄存器中对应的比特位中。7.如权利要求6所述的调试方法,其特征在于,所述程序检测点的个数N不大于所述待调试子模块中所有处于闲置状态的寄存器的总比特位数。8.如权利要求6所述的调试方法,其特征在于,所述将所获取的每个程序检测点是否发生或被运行的信息存储在所述寄存器中对应的比特位中包括:将所述寄存器中的N个比特位初始化为“0”;判断每个程序检测点是否发生或被运行的信息为未发生或未被运行,则保持该程序检测点对应的比特位继续为“0”;判断每个程序检测点是否发生或被运行的信息为已发生或已被运行,则在所述寄存器内该程序检测点对应的比特位写入“1”。9.如权利要求8所述的调试方法,其特征在于,所述读取所述存储空间内的程序检测点信息包括:读取所述寄存器内的N个比特位的数据;所述根据所获取的运行情况信息,对所述待调试微程序及所述待调试子模块进行分析包括:
根据所述N个比特位的数据,分析应该执行的待调试微程序是否被执行,不应该被执行的待调试微程序是否被执行;根据分析结果,判断待调试微程序执行情况是否符合微程序设计思想,修改所述待调试微程序。10.如权利要求5所述的调试方法,其特征在于,所述在待调试微程序中确定程序检测点包括:在所述待调试微程序中确定M个程序检测点;所述获取程序检测点的运行情况信息包括:获取所述M个程序检测点中的每个程序检测点发生或被运行的频次信息;所述将程序检测点信息存储到所述存储空间内包括:将所述寄存器中的H个比特位划分为M个比特位段,每个比特位段包含至少两个相邻的比特位;将所述M个程序检测点发生或被运行的频次信息与所述M个比特位段建立映射关系;将所获取的M个程序检测点中的每个程序检测点发生或被运行的频次信息存储在所述寄存器中对应的比特位段中。11.如权利要求10所述的调试方法,其特征在于,所述程序检测点的个数M不大于所述待调试子模块中所有处于闲置状态的寄存器的总比特位数的二分之一,且H≥2M。12.如权利要求10所述的调试方法,其特征在于,所述读取所述存储空间内的程序检测点信息包括:读取所述寄存器内的M个比特位段的数据;所述根据所获取的运行情况信息,对所述待调试微程序及所述待调试子模块进行分析包括:根据所述M个比特位段的数据,分析应该执行的待调试微程序的频次是否正确;根据分析结果,判断待调试微程序运行情况是否符合微程序设计思想,修改所述待调试微程序。13.如权利要求5所述的调试方法,其特征在于,所述在待调试微程序中确定程序检测点包括:在所述待调试微程序中确定P个程序检测点;所述获取程序检测点的运行情况信息包括:获取所述P个程序检测点的逻辑相关性信息;所述将程序检测点信息存储到所述存储空间内包括:将所获取的P个程序检测点的逻辑相关性信息与P个寄存器建立映射关系;判断所述P个程序检测点中的每个程序检测点发生或被运行时,所述P个程序检测点中的其他的各个程序检测点是否已发生或已被运行;根据判断结果,生成一判断值;将所述判断值存储到该程序检测点对应的寄存器中;所述读取所述存储空间内的运行情况信息包括:读取所述P个寄存器内的数据;所述根据所获取的运行情况信息,对所述待调试微程序及所述待调试子模块进行分析包括:根据所述P个寄存器内的数据,确定所述P个程序检测点之间的逻辑相关性信息;根据所确定的所述P个程序检测点之间的逻辑相关性信息,判断待调试微程序运行情况是否符合微程序设计思想,修改所述待调试微程序。
14.如权利要求13所述的调试方法,其特征在于,所述程序检测点的个数P不大于所述待调试子模块中所有处于闲置状态的寄存器的总个数。15.如权利要求5所述的调试方法,其特征在于,所述在待调试微程序中确定程序检测点包括:在所述待调试微程序中确定Q个程序检测点;所述获取程序检测点的运行情况信息包括:获取所述Q个程序检测点的所述待调试子模块内部的硬件寄存器或微程序软件运行变量信息;所述将程序检测点信息存储到所述存储空间内包括:将所获取的所...

【专利技术属性】
技术研发人员:魏优兵
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

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

1