一种CPU检测方法技术

技术编号:12294891 阅读:66 留言:0更新日期:2015-11-11 06:56
本发明专利技术涉及一种方法,尤其是一种CPU检测方法,属于嵌入式系统BIT检测的技术领域。按照本发明专利技术提供的技术方案,所述CPU检测方法,在关闭CPU的中断使能后,执行对CPU指令的运行检测;在执行CPU指令运行检测时,确定需要在CPU上运行的检测指令输入以及与每个检测指令输入在运行后对应的检测期望,若在CPU上运行检测指令输入的检测输出与对应的检测期望不一致时,则报告CPU故障且退出对CPU的检测,否则,确定CPU检测正常。本发明专利技术对CPU的检测与CPU的实际工作情况相符合,使得对CPU的检测更有效与充分,操作方便,适应性好,安全可靠。

【技术实现步骤摘要】

本专利技术涉及一种方法,尤其是一种CPU检测方法,属于嵌入式系统BIT (Build InTest)检测的

技术介绍
在数字电子控制系统中,对每一个硬件都应进行检测,其中,包括对CPU的检测。通常CPU检测方法是进行一系列数学运算,检查运算结果是否符合期望。实际上CPU正常工作涉及到很多模块,包括CPU通用数据寄存器、CPU通用地址寄存器、ALU单元、乘法器等,仅通过数学运算的检测方法无法充分地检测CPU。
技术实现思路
本专利技术的目的是克服现有技术中存在的不足,提供一种CPU检测方法,其操作方便,实现对CPU的有效检测,能使得CPU检测更加充分完整,适应性好,安全可靠。按照本专利技术提供的技术方案,所述CPU检测方法,在关闭CPU的中断使能后,执行对CPU指令的运行检测;在执行CPU指令运行检测时,确定需要在CPU上运行的检测指令输入以及与每个检测指令输入在运行后对应的检测期望,若在CPU上运行检测指令输入的检测输出与对应的检测期望不一致时,则报告CPU故障且退出对CPU的检测,否则,确定CPU检测正常。若CPU内包含CPU通用地址寄存器时,则关闭CPU中断使能后,在执行CPU指令的运行检测前或执行CPU指令的运行检测后,实施对CPU通用地址寄存器的检测;所述CPU通用地址寄存器的检测包括如下步骤: 步骤S1、将CPU内的一 CPU通用地址寄存器中的初始地址值保存到内存中; 步骤S2、在上述CPU通用地址寄存器中写入所需的地址检测值,所述地址检测值长度为CPU通用地址寄存器的最大寄存空间; 步骤S3、读取上述CPU通用地址寄存器中的值,以得到地址检测结果,并将读取的地址检测结果存入内存变量中; 步骤S4、将步骤S3中读取的地址检测结果与步骤S2中写入的地址检测值进行比较,若读取的地址检测结果与写入的地址检测值不一致,则报告CPU故障,将初始地址值恢复到上述的CPU通用地址寄存器中并退出检测,否则,跳转至步骤S5 ; 步骤S5、将上述步骤S2中的地址检测值取反,以得到取反地址检测值;将所述取反地址检测值写入上述的CPU通用地址寄存器中; 步骤S6、读取上述的CPU通用地址寄存器中的值,以得到取反地址检测结果,并将读取的取反地址检测结果存入内存变量中; 步骤S7、将步骤S5中读取的取反地址检测结果与步骤S5中写入的取反地址检测值进行比较,若读取的取反地址检测结果与写入的取反地址检测值不一致,则报告CPU故障,将初始地址值恢复到上述的CPU通用地址寄存器中并退出检测,否则,跳转至步骤S8 ; 步骤S8、对CPU内其余的CPU通用地址寄存器重复上述步骤S2~步骤S8的检测操作,直至CPU内所有的CPU通用地址寄存器均通过检测。若CPU内包含CPU通用数据寄存器时,则关闭CPU中断使能后,在执行CPU指令的运行检测前或执行CPU指令的运行检测后,实施对CPU通用数据寄存器的检测;所述CPU通用数据寄存器的检测包括如下步骤: 步骤Tl、将CPU内的一 CPU通用数据寄存器中的初始数据值保存到内存中; 步骤T2、在上述CPU通用数据寄存器中写入所需的数据检测值,所述数据检测值长度为CPU通用数据寄存器的最大寄存空间; 步骤T3、读取上述CPU通用数据寄存器中的值,以得到数据检测结果,并将读取的数据检测结果存入内存变量中; 步骤T4、将步骤T3中读取的数据检测结果与步骤T2中写入的数据检测值进行比较,若读取的数据检测结果与写入的数据检测值不一致,则报告CPU故障,将初始数据值恢复到上述的CPU通用数据寄存器中并退出检测,否则,跳转至步骤T5 ; 步骤T5、将上述步骤T2中的数据检测值取反,以得到取反数据检测值;将所述取反数据检测值写入上述的CPU通用数据寄存器中; 步骤T6、读取上述CPU通用数据寄存器中的值,以得到取反数据检测结果,并将读取的取反数据检测结果存入内存变量中; 步骤T7、将步骤T5中读取的取反数据检测结果与步骤T5中写入的取反数据检测值进行比较,若读取的取反数据检测结果与写入的取反数据检测值不一致,则报告CPU故障,将初始数据值恢复到上述的CPU通用数据寄存器中并退出检测,否则,跳转至步骤T8 ; 步骤T8、对CPU内其余的CPU通用数据寄存器重复上述步骤T2~步骤Τ8的检测操作,直至CPU内所有的CPU通用数据寄存器均通过检测。执行对CPU指令的运行检测包括算术指令、逻辑指令、移位指令、比较指令、跳转指令或芯片专用指令。使用汇编指令“MOV”实现将地址检测值以及取反地址检测值写入CPU通用地址寄存器内,且使用汇编指令“MOV”读取CPU通用地址寄存器内的值,以分别得到地址检测结果以及取反地址检测结果。使用汇编指令“MOV”实现将数据检测值以及取反数据检测值写入CPU通用数据寄存器内,且使用汇编指令“MOV”读取CPU通用数据寄存器内的值,以分别得到数据检测结果以及取反数据检测结果。本专利技术的优点:对CPU的检测与CPU的实际工作情况相符合,使得对CPU的检测更有效与充分,操作方便,适应性好,安全可靠。【具体实施方式】下面结合具体实施例对本专利技术作进一步说明。为了实现对CPU的有效检测,能使得CPU检测更加充分完整,提高检测的适应性,本专利技术在关闭CPU的中断使能后,执行对CPU指令的运行检测;在执行CPU指令运行检测时,确定需要在CPU上运行的检测指令输入以及与每个检测指令输入在运行后对应的检测期望,若在CPU上运行检测指令输入的检测输出与对应的检测期望不一致时,则报告CPU故障且退出对CPU的检测,否则,确定CPU检测正常。具体地,为了避免在实施CPU检测过程中被中断程序打断,则需要在关闭CPU的中断使能后,再实施对CPU的检测操作。关闭CPU中断使能的过程为本
人员所熟知,具体不再赘述。在具体实施过程中,不同CPU的结构,但无论CPU是采用何种结构,CPU均有指令运行能力,即均需要对CPU指令进行运行检测。在对CPU指令进行运行检测时,需要设计或确定检测指令输入以及每个检测指令输入对应的检测期望,检测指令输入与检测期望呈一一对应关系,设计或确定检测指令输入以及每个检测指令输入对应的检测期望的过程为本
人员所熟知,具体不再赘述。若所有的检测指令输入与对应的检测期望均一致时,则能确定CPU指令的运行检测正常,只要有一个检测指令输入与对应的检测期望不能对应时,则即报告CPU故障,然后退出CPU的检测。具体实施时,对CPU指令进行运行检测采用C语言和汇编语言混编方式实现,对应检测指令输入的设置和检测输出的检测可以采用C语言编程,操作比较方面。对于指令运行可以采用汇编语言,只运行指令相关的汇编,减少干扰。若需要中断保护,则在检测每条检测指令输入之前关中断使能,检测完成之后开中断使能。执行对CPU指令的运行检测包括算术指令、逻辑指令、移位指令、比较指令、跳转指令或芯片专用指令。其中,算术指令包括加法、减法、自增、自减、乘法等指令;逻辑指令包括与、或、非、异或等指令;移位指令包括算术右移、逻辑左移、逻辑右移、循环左移、循环右移等指令;检测比较指令包括大于、等于、小于等指令;跳转指令包括无条件跳转、各有条件跳转、调用等指令;芯片的专用指令检测,如读本文档来自技高网
...

【技术保护点】
一种CPU检测方法,其特征是:在关闭CPU的中断使能后,执行对CPU指令的运行检测;在执行CPU指令运行检测时,确定需要在CPU上运行的检测指令输入以及与每个检测指令输入在运行后对应的检测期望,若在CPU上运行检测指令输入的检测输出与对应的检测期望不一致时,则报告CPU故障且退出对CPU的检测,否则,确定CPU检测正常。

【技术特征摘要】

【专利技术属性】
技术研发人员:邵腾飞徐凯健黄浩周雄刘旭施彬彬张学军李军
申请(专利权)人:中国航空工业集团公司航空动力控制系统研究所
类型:发明
国别省市:江苏;32

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

1