国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入式軟件中斷系統(tǒng)的測(cè)試研究

2015-12-21 10:49代曉倩尤志堅(jiān)
電腦知識(shí)與技術(shù) 2015年27期
關(guān)鍵詞:軟件測(cè)試中斷

代曉倩 尤志堅(jiān)

摘要:由中斷引發(fā)的軟件故障往往具有隱蔽性和隨機(jī)性,因此嵌入式軟件中斷系統(tǒng)測(cè)試是嵌入式軟件測(cè)試中的難點(diǎn)。該文對(duì)中斷測(cè)試技術(shù)進(jìn)行了研究,從靜態(tài)和動(dòng)態(tài)測(cè)試兩方面總結(jié)了測(cè)試需關(guān)注的重點(diǎn),通過(guò)使用文中的測(cè)試方法,發(fā)現(xiàn)中斷系統(tǒng)中一些常見(jiàn)的問(wèn)題。

關(guān)鍵詞:中斷;軟件測(cè)試;靜態(tài)測(cè)試;動(dòng)態(tài)測(cè)試

中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)28-0068-02

Research of Testing Technology for Embedded Software Interrupt System

DAI Xiao-qian, YOU Zhi-jian

(Shanghai Aerospace Electronic Technology Institute, Shanghai 201109, China)

Abstract:Because of the concealment and randomness of the problem caused by software interrupt, the thesting technology of embedded software interrupt system is difficult. This thesis study the testing technology of embedded system, it also summarizes the key point of testing technology from static and dynamic test. Common problems can be found through the test method used in this thesis.

Key words: interrupt; software test; static test; dynamic test

中斷機(jī)制是嵌入式系統(tǒng)的重要組成部分,中斷是指在程序執(zhí)行過(guò)程中,遇到急需處理的某個(gè)事件時(shí),暫時(shí)中止正在執(zhí)行的程序,轉(zhuǎn)而執(zhí)行相應(yīng)的事件處理程序,待事件處理完畢后,再返回?cái)帱c(diǎn)處繼續(xù)執(zhí)行,或調(diào)度其他程序執(zhí)行的過(guò)程。嵌入式軟件的中斷具有多種類(lèi)型,從執(zhí)行時(shí)間上劃分包括偶發(fā)的和周期性的;從觸發(fā)類(lèi)型上劃分包括內(nèi)部中斷和外部中斷;從中斷級(jí)別上劃分包括高優(yōu)先級(jí)中斷和低優(yōu)先級(jí)中斷等。隨著嵌入式系統(tǒng)在各領(lǐng)域的廣泛應(yīng)用,相應(yīng)的軟件也越來(lái)越復(fù)雜,隨之帶來(lái)中斷系統(tǒng)的設(shè)計(jì)和使用的也日益復(fù)雜。與一般程序不同,中斷處理程序的執(zhí)行具有隨機(jī)性和不確定性,因此相關(guān)軟件中斷部分的測(cè)試也比一般程序要復(fù)雜。中斷問(wèn)題比一般軟件問(wèn)題要更具有隱蔽性、偶發(fā)性。某些問(wèn)題測(cè)試人員很難復(fù)進(jìn)行復(fù)現(xiàn),這給軟件測(cè)試工作帶來(lái)了很大的難度。本文從靜態(tài)和動(dòng)態(tài)兩方面總結(jié)了嵌入式軟件中斷系統(tǒng)的測(cè)試技術(shù),從而對(duì)提高相關(guān)軟件的質(zhì)量有所幫助。

1 靜態(tài)測(cè)試技術(shù)

軟件靜態(tài)測(cè)試技術(shù)主要包括代碼審查和靜態(tài)分析。不同的芯片中斷代碼的設(shè)計(jì)也存在一定的差異,且中斷處理代碼存在的問(wèn)題可能根據(jù)具體應(yīng)用的不同而存在,因此靜態(tài)分析工具一般不具備對(duì)中斷代碼存在問(wèn)題的詳細(xì)分析。因此對(duì)中斷程序的靜態(tài)測(cè)試技術(shù)主要還是采用代碼審查方法進(jìn)行。代碼審查的要點(diǎn)主要包括以下幾類(lèi)。

1)中斷資源沖突檢查

中斷資源使用沖突是中斷使用中最有可能發(fā)生的問(wèn)題。中斷資源沖突檢測(cè)主要對(duì)中斷中使用的公共資源進(jìn)行分析,包括全局變量、寄存器、緩存區(qū)域、標(biāo)識(shí)等。檢查的第一步是篩選出中斷與主程序、中斷與中斷中均使用的公共資源。第二步是對(duì)這些資源的讀寫(xiě)情況進(jìn)行分析,每個(gè)資源在程序中的使用存在三種情況:只讀、只寫(xiě)和讀寫(xiě),這三種情況在主程序、中斷處理程序中都可能存在。通常,一個(gè)資源在中斷和主程序或不同中斷中均為只讀,或者主程序只在中斷未使能狀態(tài)下對(duì)資源進(jìn)行訪(fǎng)問(wèn)時(shí),一般不存在沖突。而在主循環(huán)和中斷中,或不同中斷中進(jìn)行了修改的資源則一般需要仔細(xì)分析沖突的可能。圖1則描述了一個(gè)中斷資源沖突案例。

圖1中中斷程序用于接收數(shù)據(jù),接收完成之后置接收標(biāo)志。主程序用于處理接收到的數(shù)據(jù),處理完畢后清接收標(biāo)志。接收第一幀數(shù)據(jù)接收完成后,主程序開(kāi)始處理數(shù)據(jù),如果在處理過(guò)程中又接收一幀新數(shù)據(jù),則該數(shù)據(jù)會(huì)丟失不被處理。對(duì)共用資源進(jìn)行沖突檢測(cè)通常還需結(jié)合軟件時(shí)序進(jìn)行分析。

2)中斷現(xiàn)場(chǎng)備份和恢復(fù)

中斷處理程序執(zhí)行會(huì)打斷主程序,且主程序中發(fā)生中斷的位置一般不固定,為了保護(hù)被打斷的主程序現(xiàn)場(chǎng),需要在中斷程序開(kāi)始處對(duì)主程序現(xiàn)場(chǎng)進(jìn)行備份,并在出口處進(jìn)行恢復(fù)。對(duì)中斷程序進(jìn)行代碼審查時(shí)需要檢查需要備份的資源是否都進(jìn)行了備份。這些資源通常包含程序狀態(tài)寄存器、與主程序共用的寄存器以及一些全局變量。中斷處理程序在入口處會(huì)對(duì)這些資源進(jìn)行壓棧操作,而在出口則進(jìn)行出棧操作。代碼審查需要檢查需要被保護(hù)的資源是否已經(jīng)全部被保護(hù),各資源入棧和出棧的順序是否匹配。

3)中斷優(yōu)先級(jí)

各種不同的芯片對(duì)中斷優(yōu)先級(jí)的處理是不一樣的,例如8051芯片只能設(shè)置高、低兩種級(jí)別的中斷;TI的F2812芯片則各中斷源的中斷優(yōu)先級(jí)固定的;而ARM芯片的中斷優(yōu)先級(jí)則是可編程的。且有些芯片的中斷是可嵌套的,有些芯片則不能嵌套。對(duì)中斷程序的代碼審查應(yīng)考慮到各芯片的具體特點(diǎn),例如對(duì)不可嵌套的中斷,則需考慮高優(yōu)先級(jí)中斷被延遲的問(wèn)題,即如果在低優(yōu)先級(jí)中斷執(zhí)行時(shí),高優(yōu)先級(jí)中斷到來(lái),則高優(yōu)先級(jí)中斷被延遲執(zhí)行,該延時(shí)是否滿(mǎn)足設(shè)計(jì)的要求。而對(duì)于可嵌套的中斷,則需要考慮低優(yōu)先級(jí)的中斷被高優(yōu)先級(jí)打斷后,共用的中斷資源是否存在沖突。對(duì)于中斷優(yōu)先級(jí)可編程的芯片,代碼審查時(shí)還需檢查中斷優(yōu)先級(jí)的設(shè)置是否正確,低優(yōu)先級(jí)的中斷被延遲或打斷后,是否滿(mǎn)足設(shè)計(jì)的要求。

以上是對(duì)中斷程序進(jìn)行代碼審查時(shí),需重點(diǎn)檢查的要點(diǎn)。當(dāng)然代碼審查還應(yīng)根據(jù)具體應(yīng)該包括其他一些方面,例如對(duì)有些安全性要求比較高的軟件則要求對(duì)未使用的中斷應(yīng)設(shè)置跳轉(zhuǎn)到陷進(jìn)程序,以防止軟件異常進(jìn)入未使用中斷時(shí),能夠進(jìn)行復(fù)位防止跑飛。還有一些芯片的編譯器會(huì)對(duì)內(nèi)存訪(fǎng)問(wèn)進(jìn)行優(yōu)化處理,則中斷和主程序的共用資源則需聲明為volatile類(lèi)型,使芯片每次從內(nèi)存取數(shù),防止內(nèi)存和寄存器數(shù)據(jù)不一致引發(fā)問(wèn)題。在對(duì)中斷程序進(jìn)行代碼審查時(shí),如果注意到以上幾點(diǎn),能夠有效地減少代碼中存在的問(wèn)題,提高軟件的質(zhì)量。

2 動(dòng)態(tài)測(cè)試技術(shù)

對(duì)中斷程序的動(dòng)態(tài)測(cè)試主要包括測(cè)試中斷程序的響應(yīng)時(shí)間和處理時(shí)間。中斷響應(yīng)時(shí)間是從觸發(fā)中斷到中斷程序開(kāi)始執(zhí)行之間的時(shí)間,中斷處理時(shí)間則是從中斷開(kāi)始處到結(jié)束處的執(zhí)行時(shí)間。對(duì)于響應(yīng)時(shí)間和處理時(shí)間的測(cè)試,主要是測(cè)試時(shí)間是否滿(mǎn)足軟件需求的要求。

軟件只存在一個(gè)中斷,或存在多個(gè)中斷,但不會(huì)同時(shí)發(fā)生時(shí),一般響應(yīng)時(shí)間和處理時(shí)間可直接測(cè)試;當(dāng)軟件存在多個(gè)可同時(shí)執(zhí)行的中斷時(shí),則很難直接得到中斷的響應(yīng)時(shí)間和處理時(shí)間。存在以下幾種情況:

1)兩個(gè)中斷同時(shí)到來(lái),則程序會(huì)先執(zhí)行高優(yōu)先級(jí),則低優(yōu)先級(jí)中斷被延遲執(zhí)行,因此其響應(yīng)時(shí)間則應(yīng)包括高優(yōu)先級(jí)中斷的處理時(shí)間;

2)程序執(zhí)行一個(gè)中斷時(shí),另一個(gè)中斷觸發(fā),但該芯片不支持嵌套執(zhí)行,則第二個(gè)中斷響應(yīng)時(shí)間包括第一個(gè)中斷的部分執(zhí)行時(shí)間;

3)程序執(zhí)行低優(yōu)先級(jí)中斷時(shí),發(fā)生高優(yōu)先級(jí)中斷,且該芯片支持中斷嵌套,則低優(yōu)先級(jí)的處理時(shí)間應(yīng)包括高優(yōu)先級(jí)中斷的執(zhí)行時(shí)間。

測(cè)試人員一般需要得到中斷最長(zhǎng)的響應(yīng)時(shí)間和處理時(shí)間,上述情況在動(dòng)態(tài)測(cè)試時(shí)不一定能夠測(cè)量到,因此測(cè)試人員可先測(cè)量每個(gè)中斷單獨(dú)發(fā)生時(shí)的響應(yīng)時(shí)間和處理時(shí)間,再根據(jù)芯片特點(diǎn)和程序中斷執(zhí)行時(shí)序計(jì)算理論上的最長(zhǎng)響應(yīng)時(shí)間和處理時(shí)間。

動(dòng)態(tài)測(cè)試時(shí),還需考慮中斷處理時(shí)間對(duì)主循環(huán)處理時(shí)間的影響。例如,一個(gè)程序,存在兩個(gè)中斷,每個(gè)中斷的處理時(shí)間均為200ms,程序主循環(huán)要求500毫秒內(nèi)執(zhí)行完畢,不發(fā)生中斷時(shí)主循環(huán)的處理時(shí)間為200ms。當(dāng)在一次主循環(huán)執(zhí)行過(guò)程中,只發(fā)生一個(gè)中斷時(shí),程序主循環(huán)執(zhí)行時(shí)間滿(mǎn)足要求,但如果兩個(gè)中斷均發(fā)生,則執(zhí)行時(shí)間為600ms,不滿(mǎn)足處理要求。盡管該事件可能很少發(fā)生,但程序仍存在潛在問(wèn)題。

3 結(jié)束語(yǔ)

本文從靜態(tài)和動(dòng)態(tài)兩方面總結(jié)了嵌入式軟件中斷測(cè)試技術(shù),這些技術(shù)在實(shí)際的嵌入式軟件測(cè)試工作中的應(yīng)用可有效減少中斷程序的錯(cuò)誤。嵌入式芯片類(lèi)型多種多樣,應(yīng)用場(chǎng)景也各不相同,因此這些技術(shù)在實(shí)際測(cè)試工作中也需要靈活使用。

參考文獻(xiàn):

[1] 孫麗明. TMS320F2812原理及其C語(yǔ)言程序開(kāi)發(fā)[M].北京: 清華大學(xué)出版社,2008.

[2] LPC2106、2105/2104 USER MANUAL[Z]. 2003.

猜你喜歡
軟件測(cè)試中斷
基于OBE的軟件測(cè)試課程教學(xué)改革探索
航天軟件測(cè)試模型構(gòu)建與應(yīng)用
基于FPGA的中斷控制器設(shè)計(jì)*
EXCEL和VBA實(shí)現(xiàn)軟件測(cè)試記錄管理
關(guān)于軟件測(cè)試技術(shù)應(yīng)用與發(fā)展趨勢(shì)研究
跟蹤導(dǎo)練(二)(5)
千里移防,衛(wèi)勤保障不中斷
智能電能表軟件測(cè)試技術(shù)概述
《軟件測(cè)試》課程教學(xué)策略研究
AT89C51與中斷有關(guān)的寄存器功能表解