• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦 > 論文大全 > 職稱論文 > 關于仿真器的嵌入式測試平臺相關軟件比較論文

    關于仿真器的嵌入式測試平臺相關軟件比較論文

    時間: 謝樺657 分享

    關于仿真器的嵌入式測試平臺相關軟件比較論文

      仿真器是指以某一系統復現另一系統的功能。與計算機模擬系統(Computer Simulation)的區別在于,仿真器致力于模仿系統的外在表現、行為,而不是模擬系統的抽象模型。以下是學習啦小編今天為大家精心準備的:關于仿真器的嵌入式測試平臺相關軟件比較相關論文。內容僅供閱讀與參考!

      關于仿真器的嵌入式測試平臺相關軟件比較全文如下:

      1 純硬件形式

      常見的有在線仿真器和邏輯分析儀。在線仿真器可以完全仿真目標芯片的行為,準確度高,運行速度快,但工藝設計復雜,價格昂貴。邏輯分析儀通過監控和采樣總線數據執行測試,完備性受限于采樣頻率,而提高采樣頻率則會大幅提高成本。基于硬件的測試工具通常用于計算機硬件的設計和測試,很少用于嵌入式軟件的測試。

      2 純軟件形式

      包括插樁和軟件仿真兩種典型方法。插樁向被測程序的特定位置插入探針,據此獲得程序的運行信息。優點是實現簡單,缺點是改變了被測程序,無法得到被測程序的精確執行軌跡和執行時間。軟件仿真通過構建目標機的虛擬仿真環境,在宿主機上加載待測程序執行測試(目標機指嵌入式軟件的運行環境,宿主機指嵌入式軟件的開發環境,下同)。優點是可獲得待測程序的精確執行軌跡,缺點是速度較慢。

      3 軟硬結合形式

      綜合了純硬件和純軟件形式的特點,代表工具是 CodeTEST。測試環境接近于真實環境,準確性較高。缺點是硬件依賴性強,靈活性及可移植性差,成本昂貴。

      理論上講,嵌入式軟件測試應在目標機進行,畢竟軟件最終運行在目標機上。但嵌入式系統多采用軟硬件協同開發,在軟件開發過程中,目標機環境很有限,甚至不可用,無法滿足軟件測試的需要。此外,由于目標機的專用性,目標機下的測試工具比宿主機下的同類工具往往昂貴得多。考慮到上述因素,應將盡可能多的測試工作放在宿主機進行。但由于體系結構的差異,目標機軟件一般不能在宿主機直接運行,這就需要建立目標機的仿真環境,即通過軟件仿真進行測試。

      軟件仿真是一種經濟靈活的測試策略,可在沒有目標機硬件的情況下測試,準確性高,可以獲取精確的運行時間,能靈活控制程序的運行狀態。采用軟件仿真測試也可以避免將程序燒錄到目標機 ROM 造成的測試困難,降低開發成本。

      3.1 當前嵌入式測試工具的不足

      不少嵌入式測試工具采用軟件仿真測試。傳統仿真工具的測試流程是:編譯獲得被測程序的可執行程序,加載到仿真器運行,獲得測試結果。這些工具對集成測試和系統測試支持較好,對單元測試的支持不佳,看一個具體例子。

      通過例 1 可得到以下結論:單元測試時很多模塊尚未編寫完畢,若采用傳統的嵌入式軟件測試方法,需要編寫大量的樁函數,工作量大。

      測試者需熟悉嵌入式軟件的開發語言,這樣才能編寫樁函數。軟件開發者通常會參與單元測試,這類人員可滿足要求。但為提高軟件質量,一般需安排專門的測試人員測試。嵌入式開發通常采用匯編等底層語言,種類繁多且較難學習,對測試者要求較高。修改樁函數和外部變量后,需重新編譯生成可執行程序,重新加載到仿真器測試。每做一點修改,均需重復上述步驟,測試過程繁瑣。測試的針對性不強,只能加載整個可執行程序測試,無法針對特定的關注單元測試。

      以航天某院為例,盡管購置了CodeTEST、Logiscope等昂貴的測試工具,但上述測試問題仍非常突出,其它工具也普遍存在類似的局限性。

      本文介紹了一種新的嵌入式軟件測試方法,可以彌補上述不足。其特色和創新體現在三方面:

      1) 通過自行構建鏈接器,而不采用缺省的鏈接器完成鏈接,生成“內存映像”(此處的“內存映像”與可執行程序類似,但并不完全一致,本文采用該術語以區分二者),可在程序代碼不完備的情況下執行測試,能更好地支持單元測試。

      2) 構建軟件仿真器,加載內存映像測試。除具備傳統仿真測試的優點外,還增加了交互式腳

      本處理能力,運行過程中可直接修改樁函數和變量,無需頻繁地編譯、加載,測試更加便捷。普通測試人員可以通過高級腳本語言編寫測試用例,無需精通嵌入式平臺的專用開發語言。

      3) 能對指定的關注單元進行測試,支持設定源代碼斷點,支持設定仿真的起止范圍,測試更有針對性,測試效率較高。

      2 基于仿真器的嵌入式測試平臺

      1) 編譯被測程序生成目標文件(x86 平臺的.obj 文件就屬于典型的目標文件)和鏈接描述文件(link description file,后文簡稱 LDF 文件)。

      2)利用自行構建的鏈接器分析目標文件和庫文件,提取符號表、數據段、代碼段、可重定位段、行號信息等,按照 LDF 文件的說明進行鏈接,生成內存映像、總符號表和行號信息表。

      3) 將內存映像加載到仿真器測試。測試過程中,可以修改內存變量、寄存器值、樁函數等。結合測試用例注入,可實現單元測試和動態測試。

      3.2 鏈接器構造

      鏈接器根據 LDF 文件的說明,提取并拼裝目標文件中的各個段,得到內存映像、符號表和行號信息表(圖 3)。其中,內存映像和可執行程序功能類似;符號表定義了各個符號(包括函數、變量、標號等)的名稱、地址、文件、作用域等信息;行號信息定義了源文件中行號與內存映像中地址的映射關系。關于行號信息的更多介紹,請參考2.3節。

      目標文件中的未定義符號在鏈接時會以UNDEF 標記,只分析本文件無法解析,需要進一步分析其它文件。如果在所有文件中都沒有找到該符號,該符號就無法解析,使用標準的鏈接器無法鏈接,不能生成可執行程序進行仿真測試。

      SimAD 自行設計了鏈接器,可以有效控制鏈接過程。對于未定義符號,自動分配特殊的內存地址,使得這些符號可以通過“解析”,進而構造可被仿真器執行的內存映像。這是實現本文測試方法的關鍵所在。這樣的設計思路有以下優點:1) 單元測試時很多模塊不完備,可避免使用嵌入式開發語言編寫大量樁函數。即使存在未定義符號,也可以正常鏈接,提升了測試效率。

      仿真器執行時可以檢測到未定義符號,并檢查是否定義了樁函數或者進行了變量賦值。這樣,就把樁函數和外部變量的綁定由編譯期調整到了運行期。這帶來了兩個好處:可通過腳本語言設計樁函數,進行變量賦值,避免了學習嵌入式開發語言的代價。 可實現交互式的樁函數聲明和變量賦值,避免了傳統的“修改樁函數和外部變量→編譯→加載運行”的繁瑣測試流程。

      3.3 仿真器實現

      仿真器完成對目標機的模擬,其基本特征是行為等價,注重對目標機行為功能的仿真,對內部結構的仿真要求不高。重點關注:真實性、全面性、運行速度、通用性和可擴展性等指標。

      SimAD 仿真器實現了以下模擬:①譯碼:包括運算指令譯碼,移位指令譯碼,地址寄存器譯碼,通用寄存器譯碼等;②運算模擬:包括加法器模擬、乘法器模擬及移位器模擬;③控制流處理:包括中斷、循環、跳轉、調用等;④ 地址產生模擬; 內存訪問模擬; ⑤ 模擬:包括外部內存方式和串口 DMA 方式;定時器模擬。

      在實現功能模擬的同時,仿真器還提供了測試接口和外部交互接口,包括內存映像的加載接口、內存和寄存器的查看/修改接口、樁函數的設定/修改接口、數據的輸入/

      輸出接口等。

      對單元測試的良好支持是 SimAD 仿真器的特色之一。單元測試中不可避免地會用到樁函數,仿真器提供了 setstub 樁函數設置接口。設置樁函數后,仿真器查詢其內存地址,連同函數名一并保存到樁函數表中。在運行過程中,仿真器檢查調用的函數名是否存在于樁函數表中,若存在則不執行內存映像中的函數代碼,而轉去執行測試腳本中設定的樁函數。為便于理解上述過程,看一下例2。.......

      4 SimAD 測試工具介紹

      本文方法已在 SimAD 測試工具中實現。該工具目前支持 AD21060 和 AD21020兩類芯片,可實現靜態分析和動態測試。已實現的功能包括:集成測試環境(圖 6)、鏈接器、仿真器、測試腳本解釋執行、測試報表生成等。

      圖6 SimAD 集成測試環境對測試腳本的良好支持是 SimAD 的特色。

      支持新建和保存測試腳本,雙擊運行測試腳本(圖5 中的右側窗口),批量執行測試腳本,從而提高了回歸測試[10]的執行效率。SimAD 還提供了控制臺交互窗口,支持在仿真過程中輸入交互式的測試命令,即時控制測試過程。

      圖7 交互式執行測試命令SimAD 還支持其它測試功能,如語句覆蓋率報表、控制流著色、函數調用圖生成等,這些措施對提高測試效果也有裨益。

      5 相關系統比較

      在嵌入式軟件測試領域,國內外使用較多的測試工具是 CodeTEST和 Logiscope。它們與SimAD 的比較見表。

      3 種工具中 CodeTEST 功能最強。動態內存分析和性能分析是其主要特點,采用軟硬件結合形式實現,準確度較高,缺點是價格昂貴。使用CodeTEST 必須具備目標機硬件,必須生成執行程序,對單元測試的支持不佳。

      Logiscope 主要用于軟件的質量分析和測試,其突出特點是對軟件全生命周期的支持。采用插裝方式測試,對執行速度和運行結果會造成一定影響,無法獲得精確的執行時間和運行軌跡。

      SimAD 通過軟件仿真測試,不依賴目標機硬件,自行構造的鏈接器可處理未定義符號,可通過高級語言腳本編寫測試用例和樁函數,對單元測試的支持較好。.....

      6 結 論

      目前的嵌入式軟件測試工具對單元測試的支持不佳,本文對此進行了研究和探索,提出了相應的解決思路,相關方法已在 SimAD 測試工具中實現,并在航天某院的項目測試中得到實際應用,得到了該院的高度評價。與成熟的嵌入式軟件測試工具相比,SimAD仍有很多地方需要完善。

      未來的主要工作包括:完善仿真器和測試框架的接口,方便第三方仿真器接入,以支持更多的嵌入式平臺軟件測試;針對 COFF、PE 等常用目標文件開發鏈接器,使之能分析鏈接多種平臺的目標文件;增加自動生成測試腳本功能,目前純手工編寫腳本,使用不太方便;增強覆蓋率分析。目前只支持語句覆蓋,需進一步支持判定覆蓋、條件覆蓋等。

      參考文獻(References):

      [1] 國家安全生產監督管理總局.“7 23”甬溫線特別重大鐵路交通事故調查報告[EB/OL]. 北京: 國家安全生產監督管理總局網站, 2011 .

      [2] 薛偉. 利用在線仿真器(ICE)設計微機故障自動診斷系統[J]. 小型微型計算機系統, 1988, 9(6): 40-44

      [3] 師奕兵, 王厚軍. 高速邏輯分析儀產品化設計的關鍵技術[J].儀器儀表學報, 2002, 23(5): 38-40

      [4] 李躍飛, 郭君紅, 白成剛, 等. 飛行控制軟件測試中的插樁技術[J]. 北京航空航天大學學報, 2009, 35(5): 580-583

      [5] 周慶, 劉斌, 余正偉, 等. 綜合模塊化航電軟件仿真測試環境

      研究[J]. 航空學報, 2012, 33(4): 722-733

      [6] Rihar Marjan. www.51lunwen.com/software/ Software Simulator as an Effective Tool for TestingControl Algorithms [J]. Simulation, 1994, 63(1): 6-14

    358994 主站蜘蛛池模板: 国内精品国产三级国产AV| 国产精品莉莉欧美自在线线| 亚洲AV色香蕉一区二区三区蜜桃| 美女扒开尿口让男人桶进| 国产精品9999久久久久| www亚洲欲色成人久久精品| 日韩在线视频二区| 人妻aⅴ无码一区二区三区| 里番本子库全彩acg亚洲| 国产精品综合视频| xxxx中文字幕| 无码中文字幕av免费放| 亚洲中文字幕无码久久2020| 男人的好在线观看免费视频| 国产人成视频在线观看| **一级毛片在线直播| 女人是男人的未来的人| 久久久久99精品成人片直播| 欧美另类xxxx图片| 免费a级毛片在线播放| 色一情一乱一伦一视频免费看| 国产热の有码热の无码视频| h视频在线观看免费观看| 成年视频在线播放| 久久精品成人无码观看56| 欧美日韩在线不卡| 免费又黄又硬又爽大片| 色综合久久加勒比高清88| 国产激情精品一区二区三区| 97人洗澡人人澡人人爽人人模| 性生活视频网址| 久久a级毛片免费观看| 最美情侣中文字幕电影| 亚洲欧洲日韩在线电影| 男人的天堂毛片| 午夜精品久久久久久毛片| 野花社区视频在线观看| 国产手机在线精品| 18未年禁止免费观看| 国模无码一区二区三区不卡| www.99色|