两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種cpu檢測(cè)方法

文檔序號(hào):9326782閱讀:504來(lái)源:國(guó)知局
一種cpu檢測(cè)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種方法,尤其是一種CPU檢測(cè)方法,屬于嵌入式系統(tǒng)BIT (Build InTest)檢測(cè)的技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]在數(shù)字電子控制系統(tǒng)中,對(duì)每一個(gè)硬件都應(yīng)進(jìn)行檢測(cè),其中,包括對(duì)CPU的檢測(cè)。通常CPU檢測(cè)方法是進(jìn)行一系列數(shù)學(xué)運(yùn)算,檢查運(yùn)算結(jié)果是否符合期望。實(shí)際上CPU正常工作涉及到很多模塊,包括CPU通用數(shù)據(jù)寄存器、CPU通用地址寄存器、ALU單元、乘法器等,僅通過(guò)數(shù)學(xué)運(yùn)算的檢測(cè)方法無(wú)法充分地檢測(cè)CPU。

【發(fā)明內(nèi)容】

[0003]本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,提供一種CPU檢測(cè)方法,其操作方便,實(shí)現(xiàn)對(duì)CPU的有效檢測(cè),能使得CPU檢測(cè)更加充分完整,適應(yīng)性好,安全可靠。
[0004]按照本發(fā)明提供的技術(shù)方案,所述CPU檢測(cè)方法,在關(guān)閉CPU的中斷使能后,執(zhí)行對(duì)CPU指令的運(yùn)行檢測(cè);在執(zhí)行CPU指令運(yùn)行檢測(cè)時(shí),確定需要在CPU上運(yùn)行的檢測(cè)指令輸入以及與每個(gè)檢測(cè)指令輸入在運(yùn)行后對(duì)應(yīng)的檢測(cè)期望,若在CPU上運(yùn)行檢測(cè)指令輸入的檢測(cè)輸出與對(duì)應(yīng)的檢測(cè)期望不一致時(shí),則報(bào)告CPU故障且退出對(duì)CPU的檢測(cè),否則,確定CPU檢測(cè)正常。
[0005]若CPU內(nèi)包含CPU通用地址寄存器時(shí),則關(guān)閉CPU中斷使能后,在執(zhí)行CPU指令的運(yùn)行檢測(cè)前或執(zhí)行CPU指令的運(yùn)行檢測(cè)后,實(shí)施對(duì)CPU通用地址寄存器的檢測(cè);所述CPU通用地址寄存器的檢測(cè)包括如下步驟:
步驟S1、將CPU內(nèi)的一 CPU通用地址寄存器中的初始地址值保存到內(nèi)存中;
步驟S2、在上述CPU通用地址寄存器中寫入所需的地址檢測(cè)值,所述地址檢測(cè)值長(zhǎng)度為CPU通用地址寄存器的最大寄存空間;
步驟S3、讀取上述CPU通用地址寄存器中的值,以得到地址檢測(cè)結(jié)果,并將讀取的地址檢測(cè)結(jié)果存入內(nèi)存變量中;
步驟S4、將步驟S3中讀取的地址檢測(cè)結(jié)果與步驟S2中寫入的地址檢測(cè)值進(jìn)行比較,若讀取的地址檢測(cè)結(jié)果與寫入的地址檢測(cè)值不一致,則報(bào)告CPU故障,將初始地址值恢復(fù)到上述的CPU通用地址寄存器中并退出檢測(cè),否則,跳轉(zhuǎn)至步驟S5 ;
步驟S5、將上述步驟S2中的地址檢測(cè)值取反,以得到取反地址檢測(cè)值;將所述取反地址檢測(cè)值寫入上述的CPU通用地址寄存器中;
步驟S6、讀取上述的CPU通用地址寄存器中的值,以得到取反地址檢測(cè)結(jié)果,并將讀取的取反地址檢測(cè)結(jié)果存入內(nèi)存變量中;
步驟S7、將步驟S5中讀取的取反地址檢測(cè)結(jié)果與步驟S5中寫入的取反地址檢測(cè)值進(jìn)行比較,若讀取的取反地址檢測(cè)結(jié)果與寫入的取反地址檢測(cè)值不一致,則報(bào)告CPU故障,將初始地址值恢復(fù)到上述的CPU通用地址寄存器中并退出檢測(cè),否則,跳轉(zhuǎn)至步驟S8 ; 步驟S8、對(duì)CPU內(nèi)其余的CPU通用地址寄存器重復(fù)上述步驟S2~步驟S8的檢測(cè)操作,直至CPU內(nèi)所有的CPU通用地址寄存器均通過(guò)檢測(cè)。
[0006]若CPU內(nèi)包含CPU通用數(shù)據(jù)寄存器時(shí),則關(guān)閉CPU中斷使能后,在執(zhí)行CPU指令的運(yùn)行檢測(cè)前或執(zhí)行CPU指令的運(yùn)行檢測(cè)后,實(shí)施對(duì)CPU通用數(shù)據(jù)寄存器的檢測(cè);所述CPU通用數(shù)據(jù)寄存器的檢測(cè)包括如下步驟:
步驟Tl、將CPU內(nèi)的一 CPU通用數(shù)據(jù)寄存器中的初始數(shù)據(jù)值保存到內(nèi)存中;
步驟T2、在上述CPU通用數(shù)據(jù)寄存器中寫入所需的數(shù)據(jù)檢測(cè)值,所述數(shù)據(jù)檢測(cè)值長(zhǎng)度為CPU通用數(shù)據(jù)寄存器的最大寄存空間;
步驟T3、讀取上述CPU通用數(shù)據(jù)寄存器中的值,以得到數(shù)據(jù)檢測(cè)結(jié)果,并將讀取的數(shù)據(jù)檢測(cè)結(jié)果存入內(nèi)存變量中;
步驟T4、將步驟T3中讀取的數(shù)據(jù)檢測(cè)結(jié)果與步驟T2中寫入的數(shù)據(jù)檢測(cè)值進(jìn)行比較,若讀取的數(shù)據(jù)檢測(cè)結(jié)果與寫入的數(shù)據(jù)檢測(cè)值不一致,則報(bào)告CPU故障,將初始數(shù)據(jù)值恢復(fù)到上述的CPU通用數(shù)據(jù)寄存器中并退出檢測(cè),否則,跳轉(zhuǎn)至步驟T5 ;
步驟T5、將上述步驟T2中的數(shù)據(jù)檢測(cè)值取反,以得到取反數(shù)據(jù)檢測(cè)值;將所述取反數(shù)據(jù)檢測(cè)值寫入上述的CPU通用數(shù)據(jù)寄存器中;
步驟T6、讀取上述CPU通用數(shù)據(jù)寄存器中的值,以得到取反數(shù)據(jù)檢測(cè)結(jié)果,并將讀取的取反數(shù)據(jù)檢測(cè)結(jié)果存入內(nèi)存變量中;
步驟T7、將步驟T5中讀取的取反數(shù)據(jù)檢測(cè)結(jié)果與步驟T5中寫入的取反數(shù)據(jù)檢測(cè)值進(jìn)行比較,若讀取的取反數(shù)據(jù)檢測(cè)結(jié)果與寫入的取反數(shù)據(jù)檢測(cè)值不一致,則報(bào)告CPU故障,將初始數(shù)據(jù)值恢復(fù)到上述的CPU通用數(shù)據(jù)寄存器中并退出檢測(cè),否則,跳轉(zhuǎn)至步驟T8 ;
步驟T8、對(duì)CPU內(nèi)其余的CPU通用數(shù)據(jù)寄存器重復(fù)上述步驟T2~步驟Τ8的檢測(cè)操作,直至CPU內(nèi)所有的CPU通用數(shù)據(jù)寄存器均通過(guò)檢測(cè)。
[0007]執(zhí)行對(duì)CPU指令的運(yùn)行檢測(cè)包括算術(shù)指令、邏輯指令、移位指令、比較指令、跳轉(zhuǎn)指令或芯片專用指令。
[0008]使用匯編指令“MOV”實(shí)現(xiàn)將地址檢測(cè)值以及取反地址檢測(cè)值寫入CPU通用地址寄存器內(nèi),且使用匯編指令“MOV”讀取CPU通用地址寄存器內(nèi)的值,以分別得到地址檢測(cè)結(jié)果以及取反地址檢測(cè)結(jié)果。
[0009]使用匯編指令“MOV”實(shí)現(xiàn)將數(shù)據(jù)檢測(cè)值以及取反數(shù)據(jù)檢測(cè)值寫入CPU通用數(shù)據(jù)寄存器內(nèi),且使用匯編指令“MOV”讀取CPU通用數(shù)據(jù)寄存器內(nèi)的值,以分別得到數(shù)據(jù)檢測(cè)結(jié)果以及取反數(shù)據(jù)檢測(cè)結(jié)果。
[0010]本發(fā)明的優(yōu)點(diǎn):對(duì)CPU的檢測(cè)與CPU的實(shí)際工作情況相符合,使得對(duì)CPU的檢測(cè)更有效與充分,操作方便,適應(yīng)性好,安全可靠。
【具體實(shí)施方式】
[0011]下面結(jié)合具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
[0012]為了實(shí)現(xiàn)對(duì)CPU的有效檢測(cè),能使得CPU檢測(cè)更加充分完整,提高檢測(cè)的適應(yīng)性,本發(fā)明在關(guān)閉CPU的中斷使能后,執(zhí)行對(duì)CPU指令的運(yùn)行檢測(cè);在執(zhí)行CPU指令運(yùn)行檢測(cè)時(shí),確定需要在CPU上運(yùn)行的檢測(cè)指令輸入以及與每個(gè)檢測(cè)指令輸入在運(yùn)行后對(duì)應(yīng)的檢測(cè)期望,若在CPU上運(yùn)行檢測(cè)指令輸入的檢測(cè)輸出與對(duì)應(yīng)的檢測(cè)期望不一致時(shí),則報(bào)告CPU故障且退出對(duì)CPU的檢測(cè),否則,確定CPU檢測(cè)正常。
[0013]具體地,為了避免在實(shí)施CPU檢測(cè)過(guò)程中被中斷程序打斷,則需要在關(guān)閉CPU的中斷使能后,再實(shí)施對(duì)CPU的檢測(cè)操作。關(guān)閉CPU中斷使能的過(guò)程為本技術(shù)領(lǐng)域人員所熟知,具體不再贅述。在具體實(shí)施過(guò)程中,不同CPU的結(jié)構(gòu),但無(wú)論CPU是采用何種結(jié)構(gòu),CPU均有指令運(yùn)行能力,即均需要對(duì)CPU指令進(jìn)行運(yùn)行檢測(cè)。
[0014]在對(duì)CPU指令進(jìn)行運(yùn)行檢測(cè)時(shí),需要設(shè)計(jì)或確定檢測(cè)指令輸入以及每個(gè)檢測(cè)指令輸入對(duì)應(yīng)的檢測(cè)期望,檢測(cè)指令輸入與檢測(cè)期望呈一一對(duì)應(yīng)關(guān)系,設(shè)計(jì)或確定檢測(cè)指令輸入以及每個(gè)檢測(cè)指令輸入對(duì)應(yīng)的檢測(cè)期望的過(guò)程為本技術(shù)領(lǐng)域人員所熟知,具體不再贅述。若所有的檢測(cè)指令輸入與對(duì)應(yīng)的檢測(cè)期望均一致時(shí),則能確定CPU指令的運(yùn)行檢測(cè)正常,只要有一個(gè)檢測(cè)指令輸入與對(duì)應(yīng)的檢測(cè)期望不能對(duì)應(yīng)時(shí),則即報(bào)告CPU故障,然后退出CPU的檢測(cè)。
[0015]具體實(shí)施時(shí),對(duì)CPU指令進(jìn)行運(yùn)行檢測(cè)采用C語(yǔ)言和匯編語(yǔ)言混編方式實(shí)現(xiàn),對(duì)應(yīng)檢測(cè)指令輸入的設(shè)置和檢測(cè)輸出的檢測(cè)可以采用C語(yǔ)言編程,操作比較方面。對(duì)于指令運(yùn)行可以采用匯編語(yǔ)言,只運(yùn)行指令相關(guān)的匯編,減少干擾。若需要中斷保護(hù),則在檢測(cè)每條檢測(cè)指令輸入之前關(guān)中斷使能,檢測(cè)完成之后開中斷使能。
[0016]執(zhí)行對(duì)CPU指令的運(yùn)行檢測(cè)包括算術(shù)指令、邏輯指令、移位指令、比較指令、跳轉(zhuǎn)指令或芯片專用指令。其中,算術(shù)指令包括加法、減法、自增、自減、乘法等指令;邏輯指令包括與、或、非、異或等指令;移位指令包括算術(shù)右移、邏輯左移、邏輯右移、循環(huán)左移、循環(huán)右移等指令;檢測(cè)比較指令包括大于、等于、小于等指令;跳轉(zhuǎn)指令包括無(wú)條件跳轉(zhuǎn)、各有條件跳轉(zhuǎn)、調(diào)用等指令;芯片的專用指令檢測(cè),如讀取中斷標(biāo)志等指令。
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
石棉县| 长岭县| 靖西县| 千阳县| 武胜县| 潜江市| 彭阳县| 镇康县| 中阳县| 汾阳市| 星子县| 安仁县| 奉新县| 金塔县| 壤塘县| 财经| 叶城县| 芷江| 汾阳市| 鄄城县| 石楼县| 通辽市| 额尔古纳市| 宜宾市| 抚松县| 沈丘县| 金平| 宁国市| 紫阳县| 石景山区| 江华| 永顺县| 新和县| 霍林郭勒市| 孟村| 嘉祥县| 布拖县| 宁波市| 晋城| 邵阳市| 什邡市|