本发明专利技术提供了一种防止CPU调试失控的方法,包括以下步骤:S1、CPU正常执行主程序,当CPU内部发生异常,内部甄别电路触发对应处理机制;S2、中断处理程序根据异常信息进行处理,CPU从断点处继续执行之前被打断的主程序;S3、当步骤S2出现调试失控状态,在CPU内添加防异常失控电路;S4、强制CPU进入暂停状态,等待调试加入。本发明专利技术所述的一种防止CPU调试失控的方法及电路通过防异常失控电路与之配套的调试方法,可以以极小的电路开销,不仅可以有效避免在调试CPU时发生由内部异常引起的调试失控现象,而且可以非常方便地定位调试失控的原因,提高软件人员的调试效率。提高软件人员的调试效率。提高软件人员的调试效率。
【技术实现步骤摘要】
一种防止CPU调试失控的方法及电路
[0001]本专利技术属于处理器
,尤其是涉及一种防止CPU调试失控的方法及电路。
技术介绍
[0002]CPU(中央处理器)作为芯片中接收和执行软件程序的中枢,在实际使用中会频繁地对新编写的软件程序进行调试。而在调试过程中,比较常见且不易解决的主要问题之一就是调试失控(也就是俗称的程序跑飞,跑死现象)。产生调试失控的原因很多,除了调试系统软硬件(软件平台,调试器等)问题等外部原因外,主要的内部原因就是CPU在调试过程中发生了非预期的内部异常,且该异常的发生进一步导致了CPU一系列非预期的不可控动作,使得暂停和状态读写等调试动作无法进行,既调试进入了失控状态。
[0003]CPU一般都有一套较为严谨成熟的内部异常甄别和处理机制。常见的内部异常包括读入非法指令,访问操作未授权,访问空间未定义,计算类异常,存储校验异常等,对于内部异常的处理一般都是通过中断响应程序来实现的,当某个异常发生后,会触发CPU内部的异常甄别电路,甄别出异常的种类后,CPU暂停执行当前的程序,直接跳转到事先编写好的对应的异常中断响应程序,来及时处理该异常(如向系统发出警报,暂停CPU并进入调试模式等),避免系统的进一步失控;在异常处理流程的某个环节出现问题时,会导致异常并不能被有效控制,由于现代处理器主频都很高,经过很短的一段时间(远远短于人的反应时间),异常就会使整个芯片和系统进入不可溯源,更不可恢复的失控状态。在宏观的表现上就是程序跑飞或系统死机,外部调试手段全部失效,只能通过断电或重启的方式加以人工干预;因此,本专利申请提出了一种防止CPU调试失控的方法及电路。
技术实现思路
[0004]有鉴于此,本专利技术旨在提出一种防止CPU调试失控的方法及电路,以解决CPU中的异常信息不能得到有效控制,导致CPU失控的问题。
[0005]为达到上述目的,本专利技术的技术方案是这样实现的:
[0006]第一方面,本专利技术提供了一种防止CPU调试失控的方法,包括以下步骤:
[0007]S1、CPU正常执行主程序,当CPU内部发生异常,内部甄别电路触发对应处理机制;
[0008]S2、中断处理程序根据异常信息进行处理,CPU从断点处继续执行之前被打断的主程序;
[0009]S3、当步骤S2出现调试失控状态,在CPU内添加防异常失控电路;
[0010]S4、强制CPU进入暂停状态,等待调试加入。
[0011]进一步的,步骤S3中利用的防异常失控电路包括控制寄存器、选通电路、状态寄存器和汇总电路,防异常失控电路强制CPU进入暂停状态,等待调试加入的具体方法包括如下步骤:
[0012]A1、控制寄存器接收软件配置控制信息;
[0013]A2、选通电路对异常信号进行截断,并将异常截断结果存储在状态寄存器内;
[0014]A3、汇总电路根据状态寄存器中的结果,将各类异常信息的状态进行汇总;
[0015]A4、CPU根据汇总结果,通过内部的调试控制电路发出暂停CPU的请求。
[0016]进一步的,控制寄存器负责接收软件配置信息,其至少应包含如下使能控制比特位:
[0017](1)非法指令异常控制位,负责选通非法指令异常是否能向后级传输;
[0018](2)非法权限异常控制位,负责选通非法权限异常是否能向后级传输;
[0019](3)访问空间未定义异常控制位,负责选通访问空间未定义异常是否能向后级传输;
[0020](4)校验错误异常控制位,负责选通校验错误异常是否能向后级传输;
[0021](5)外部总线异常控制位,负责选通外部总线异常是否能向后级传输;
[0022](6)计时异常控制位,负责选通计时异常是否能向后级传输。
[0023]进一步的,CPU对控制寄存器、状态寄存器进行读写操作,控制寄存器中配置的控制比特值为1时,代表发生该异常时,异常信号被截断,无法继续向后传输至CPU既有的中断处理电路;如果配置的控制比特值为0,代表发生该异常时,异常信号不会被截断,可以继续向后传输。
[0024]进一步的,状态寄存器中的状态比特位与控制器寄存器中的使能控制比特位一一对应,状态比特值为1,代表该类异常已发生并被截断;状态比特值为0,代表该类异常尚未发生或未被截断。
[0025]进一步的,汇总电路根据状态寄存器中的结果,将各类异常信息的状态进行汇总,当状态寄存器有任一状态比特位变为1时,则会向CPU内部既有的调试控制电路发出暂停CPU的请求。
[0026]第二方面,本专利技术还提供了应用于第一方面所述的一种防止CPU调试失控的方法的电路,包括添加至CPU内部的控制寄存器、选通电路、状态寄存器和汇总电路,控制寄存器连接CPU内部寄存器配置通路,控制寄存器依次连接选通电路、状态寄存器和汇总电路,汇总电路连接CPU内既有的调试控制电路。
[0027]相对于现有技术,本专利技术所述的一种防止CPU调试失控的方法及电路具有以下有益效果:
[0028]本专利技术所述的一种防止CPU调试失控的方法及电路通过在CPU内添加软件可访问防异常失控电路,以极小的电路开销,不仅可以有效避免在调试CPU时发生由内部异常引起的调试失控现象,而且可以非常方便地定位调试失控的原因,提高软件人员的调试效率。
附图说明
[0029]构成本专利技术的一部分的附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:
[0030]图1为本专利技术实施例所述的一种防止CPU调试失控的方法流程图;
[0031]图2为本专利技术实施例所述的防异常失控电路结构图;
[0032]图3为本专利技术实施例所述的利用防异常失控电路的软件调试控制流程图。
具体实施方式
[0033]需要说明的是,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。
[0034]在本专利技术的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本专利技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0035]在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种防止CPU调试失控的方法,其特征在于,包括以下步骤:S1、CPU正常执行主程序,当CPU内部发生异常,内部甄别电路触发对应处理机制;S2、中断处理程序根据异常信息进行处理,CPU从断点处继续执行之前被打断的主程序;S3、当步骤S2出现调试失控状态,在CPU内添加防异常失控电路;S4、强制CPU进入暂停状态,等待调试加入。2.根据权利要求1所述的一种防止CPU调试失控的方法,其特征在于:步骤S3中利用的防异常失控电路包括控制寄存器、选通电路、状态寄存器和汇总电路,防异常失控电路强制CPU进入暂停状态,等待调试加入的具体方法包括如下步骤:A1、控制寄存器接收软件配置控制信息;A2、选通电路对异常信号进行截断,并将异常截断结果存储在状态寄存器内;A3、汇总电路根据状态寄存器中的结果,将各类异常信息的状态进行汇总;A4、CPU根据汇总结果,通过内部的调试控制电路发出暂停CPU的请求。3.根据权利要求2所述的一种防止CPU调试失控的方法,其特征在于:控制寄存器负责接收软件配置信息,其至少应包含如下使能控制比特位:(1)非法指令异常控制位,负责选通非法指令异常是否能向后级传输;(2)非法权限异常控制位,负责选通非法权限异常是否能向后级传输;(3)访问空间未定义异常控制位,负责选通访问空间未定义异常是否能向后级传输;(4)校验错误异常控制位,负责选通校验错误异常是否能向后级传输;...
【专利技术属性】
技术研发人员:林海波,艾方,王粟,肖佐楠,郑茳,
申请(专利权)人:天津国芯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。