• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

    2015-12-21 10:49:44代曉倩尤志堅
    電腦知識與技術 2015年27期
    關鍵詞:軟件測試中斷

    代曉倩 尤志堅

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

    關鍵詞:中斷;軟件測試;靜態(tài)測試;動態(tài)測試

    中圖分類號:TP311 文獻標識碼:A 文章編號: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

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

    1 靜態(tài)測試技術

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

    1)中斷資源沖突檢查

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

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

    2)中斷現(xiàn)場備份和恢復

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

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

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

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

    2 動態(tài)測試技術

    對中斷程序的動態(tài)測試主要包括測試中斷程序的響應時間和處理時間。中斷響應時間是從觸發(fā)中斷到中斷程序開始執(zhí)行之間的時間,中斷處理時間則是從中斷開始處到結(jié)束處的執(zhí)行時間。對于響應時間和處理時間的測試,主要是測試時間是否滿足軟件需求的要求。

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

    1)兩個中斷同時到來,則程序會先執(zhí)行高優(yōu)先級,則低優(yōu)先級中斷被延遲執(zhí)行,因此其響應時間則應包括高優(yōu)先級中斷的處理時間;

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

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

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

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

    3 結(jié)束語

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

    參考文獻:

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

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

    猜你喜歡
    軟件測試中斷
    基于OBE的軟件測試課程教學改革探索
    計算機教育(2020年5期)2020-07-24 08:53:20
    航天軟件測試模型構(gòu)建與應用
    軟件(2020年3期)2020-04-20 01:45:34
    基于FPGA的中斷控制器設計*
    通信技術(2018年11期)2018-11-07 02:22:16
    EXCEL和VBA實現(xiàn)軟件測試記錄管理
    電子制作(2018年16期)2018-09-26 03:27:18
    關于軟件測試技術應用與發(fā)展趨勢研究
    電子測試(2017年15期)2017-12-18 07:19:20
    跟蹤導練(二)(5)
    千里移防,衛(wèi)勤保障不中斷
    解放軍健康(2017年5期)2017-08-01 06:27:44
    智能電能表軟件測試技術概述
    《軟件測試》課程教學策略研究
    河南科技(2014年10期)2014-02-27 14:09:37
    AT89C51與中斷有關的寄存器功能表解
    宝坻区| 阜城县| 建阳市| 梧州市| 兖州市| 莒南县| 德化县| 仙居县| 建瓯市| 甘洛县| 泸州市| 瑞丽市| 石嘴山市| 永丰县| 白玉县| 高阳县| 深水埗区| 永顺县| 阿城市| 西和县| 汶上县| 海伦市| 赤壁市| 四会市| 昭觉县| 电白县| 夹江县| 红安县| 徐闻县| 集安市| 南通市| 太保市| 弥勒县| 图片| 桑日县| 玉屏| 建瓯市| 迁安市| 孟津县| 新民市| 广水市|