ARM嵌入式第12章系統集成測試_第1頁
ARM嵌入式第12章系統集成測試_第2頁
ARM嵌入式第12章系統集成測試_第3頁
ARM嵌入式第12章系統集成測試_第4頁
ARM嵌入式第12章系統集成測試_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第12章 系統集成測試,2,本章介紹了系統集成測試需要的各種工具,主要包括系統跟蹤、性能測試和內存測試3個方面。通過學習本章內容,可以了解一些基本的系統測試方法,用來解決系統性能方面的問題。,本章目標,系統跟蹤工具 系統性能測試 系統內存測試,12.1 系統集成測試,Linux系統的內核、應用程序和文件系統分別來源于不同的軟件工程,當把它們都集成到一個系統中時,可能會出現意想不到問題。解決這些問題需要一些測試過程。,12.1.1 系統集成測試概述,集成測試環境與交叉開發環境的建立步驟是基本相同的,不同的是已經包含了新開發的內核、應用程序以及文件系統配置。測試環境建立的前提是已經完成所有內核和應

2、用程序開發,仍然采用NFS文件系統方式,添加測試程序和配置文件。,12.1.2 系統集成測試要求,對于嵌入式系統,需要測試的指標可能很多。從Linux操作系統角度來說,主要包括下列3個方面的測試。 系統功能測試 系統性能測試 內存泄漏測試,12.2 系統跟蹤工具,Strace是單個Linux進程的跟蹤工具,它能夠跟蹤并且打印出程序調用的所有系統調用。它使用ptrace系統調用跟蹤調試運行中的進程。它不要求重新編譯要跟蹤的程序,即使沒有源代碼,同樣可以調試跟蹤。 Ltrace工具也是單個Linux進程的跟蹤工具。Ltrace與Strace跟蹤的對象不同,它跟蹤的是動態庫函數的調用;兩者使用的方法

3、基本相同,都不需要重新編譯程序。 LTT通過一個內核模塊來監測主要的內核子系統。內核的跟蹤模塊采集產生的數據,轉發給用戶空間的守候進程并且記錄到磁盤上。LTT還提供了事件觀測工具,用3種不同的格式來分析跟蹤的數據(事件圖、進程分析、原始事件)。LTT對于系統性能分析是很有用的;對于獲取實時或者非實時的任務在內核和用戶層面的交互信息也非常有用。,12.3 系統性能測量工具,對于Linux服務器來說,系統性能是衡量產品的一個重要標志。由于嵌入式Linux系統的處理器是千差萬別的,系統的性能也不可能有統一的指標。然而,Linux的各種性能測量工具可以用來優化調整嵌入式Linux系統的特定性能。,12

4、.3.1 代碼效率測量,1gprof gprof是代碼執行測試工具,它可以測量程序中函數執行所花的時間,還能計算代表其他進程運行的時間。 2gcov gcov是代碼覆蓋測試工具,它可以分析程序源代碼行的調用次數,看其中哪些頻繁調用,哪些沒有調用過。 3Oprofile Oprofile是一種代碼評測和性能監控工具。 Oprofile工具包含內核模塊和用戶空間守護進程兩部分。內核模塊可以訪問性能計數寄存器,用戶空間的守護進程負責從這些寄存器中收集數據。在啟動守護進程之前,Oprofile需要配置事件類型以及每種事件的樣本計數(sample count)。Oprofile被設計成可以在低開銷下運行

5、,從而使后臺運行的守護進程不會擾亂系統性能。 Oprofile評測的過程是在目標板本地運行過程中進行的。下面是基本測試流程。 (1)配置Oprofile (2)清除采集數據 (3)啟動評測 (4)停止評測 (5)獲取評測數據,12.3.2 LTP,LTP(Linux Test Project)是SGI、IBM、OSDL和Bull合作的項目,目的是為開源社區提供一個測試套件,用來驗證Linux系統可靠性、健壯性和穩定性。LTP是Linux內核和相關特點測試的一整套工具集,它力求通過自動化的測試方法改進Linux內核 LTP提供了大量的測試工具和腳本,基本的測試流程如下。 (1)以root用戶身份

6、登錄。 (2)解壓ltp軟件包。 (3)編譯安裝。 (4)運行runalltests.sh腳本,順序執行全部測試。 (5)按照項目分別測試。,12.3.3 LMbench,LMbench是一種benchmark(性能測試,后面將直接引用英文單詞)軟件,針對各種通用系統應用而設計。多數情況下,用來測試系統實際性能問題,并且常用于比較不同系統的實現。有些情況下,benchmark可以發現一些新的BUG和設計缺陷。LMbench包含一個可擴展的測試結果數據庫。,12.4 測量內存泄漏,對于嵌入式系統來說,內存是非常寶貴的資源。 12.4.1 mtrace mtrace是最簡單的一種內存泄漏跟蹤工具。

7、 mtrace可以探測由于不成對使用malloc/free函數調用引起的內存泄漏。使用mtrace有3個方面最關鍵。 (1)包含mcheck.h; (2)設置MALLOC_TRACE環境變量; (3)調用mtrace()函數。,12.4.2 dmalloc,dmalloc(Debug Malloc Library)是替代malloc、realloc、calloc、free和其他內存管理函數的庫。 dmalloc可以配置包含線程支持和C+支持。它能夠作為共享庫和靜態庫編譯。所有這些選項在編譯的時候選擇,在鏈接應用程序的時候用到的這些庫。,12.4.3 memwatch,memwatch是一種C語

8、言內存錯誤檢測工具。它是由Johan Lindh編寫的,開放源代碼memwatch不僅能夠探測malloc和free錯誤,而且能夠探測越界(fencepost)情況。 memwatch的核心是memwatch.c文件。它實現了封裝和地址檢查的代碼。使用memwatch前要做好以下準備。 必須在源碼中包含memwatch.h頭文件。 必須在編譯命令行定義變量MEMWATCH(-DMEMWATCH)和MW_STDIO(-DMW_STDIO)。 必須和應用程序同時使用memwatch.c文件,memwatch.c生成的目標模塊必須鏈接到應用程序中。,12.4.4 YAMD,YAMD(Yet Another Malloc Debugger)是輔助查找C和C+程序中動態內存分配問題的工具包。 YAMD具有以下特點。 使用處理器的頁面管理

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論