CodeTEST嵌入式軟件在線測試與分析報告材料工具在嵌入式系統(tǒng)開發(fā)中地地的應(yīng)用_第1頁
CodeTEST嵌入式軟件在線測試與分析報告材料工具在嵌入式系統(tǒng)開發(fā)中地地的應(yīng)用_第2頁
CodeTEST嵌入式軟件在線測試與分析報告材料工具在嵌入式系統(tǒng)開發(fā)中地地的應(yīng)用_第3頁
CodeTEST嵌入式軟件在線測試與分析報告材料工具在嵌入式系統(tǒng)開發(fā)中地地的應(yīng)用_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、實用標準文案CodeTEST嵌入式軟件在線測試與分析工具在嵌入式系統(tǒng)開發(fā)中的應(yīng)用CodeTEST,嵌入式,軟件,系統(tǒng),工具CodeTEST,嵌入式,軟件,系統(tǒng),工具隨著嵌入式技術(shù)的發(fā)展,嵌入式應(yīng)用的不斷增長以及嵌入式系統(tǒng)復(fù)雜性不斷提高,要求嵌入式軟件的規(guī)模和復(fù)雜性也不斷提高,嵌入式軟件的質(zhì)量和開發(fā)周期對產(chǎn)品的最終質(zhì)量和上市時間起到?jīng)Q定性的 影響,嵌入式軟件的開發(fā)、分析與測試成為了研究的熱點。針對這一變化,本文提出了一種為嵌入式 軟件的開發(fā)、分析與測試特別設(shè)計的一種測試方法。嵌入式軟件分析與測試的重要性隨著計算機硬件技術(shù)的進步和元件質(zhì)量逐步提高,元件的集成量也大大增加,從而使嵌入式設(shè)備 的硬件性

2、能得到了極大的提高;與此同時,通過采用成熟的商用操作系統(tǒng),使系統(tǒng)運行在一個高性能 的、可靠的軟件平臺上,為實現(xiàn)各種大型的復(fù)雜的應(yīng)用打下了良好的基礎(chǔ)。面對系統(tǒng)復(fù)雜性的增加, 自然需要功能強大、性能穩(wěn)定的應(yīng)用軟件與之相適應(yīng)。所以,在嵌入系統(tǒng)開發(fā)中軟件的代碼量也越來 越大,電子類產(chǎn)品的代碼量以每兩年就翻一翻的速度增長。同時,系統(tǒng)又要求應(yīng)用也要精簡高效、穩(wěn) 定可靠,使軟件的開發(fā)在整個系統(tǒng)開發(fā)中所占的時間也越來越長,軟件的質(zhì)量對產(chǎn)品的最終質(zhì)量起到了決定性的作用。但是事實上由于軟件的開發(fā)缺乏科學的管理手段,開發(fā)的軟件得不到很好的測試與分析,所編寫的程序沒有得到有效的測試就交付給用戶使用。那些沒有運行過的代

3、碼帶著潛在的危險交付到客戶手中,經(jīng)常會給用戶帶來巨大的經(jīng)濟損失、為產(chǎn)品供應(yīng)商帶來信譽上的損失,在一些特殊 的領(lǐng)域甚至會危及人的生命安全。綜上所述,隨著嵌入式系統(tǒng)的發(fā)展,我們迫切需要一種工具能夠在軟件開發(fā)的單板階段、集成階段、系統(tǒng)階段等各階段對嵌入式系統(tǒng)的軟件進行實時在線的測試與分析,以保證系統(tǒng)的性能和可靠性。市面上流行的測試工具大致分為純軟件的測試工具和純硬件的測試工具(如邏輯分析儀和仿真器等),下面我們從原理上分析使用傳統(tǒng)的測試工具對嵌入式軟件進行分析和測試的優(yōu)缺點。純軟件的測試工具純軟件的測試工具采用的是軟件打點技術(shù),在被測代碼中插入一些函數(shù),用這些函數(shù)來完成數(shù)據(jù)的生成,并上送數(shù)據(jù)到目標系

4、統(tǒng)的共享內(nèi)存中。同時在目標系統(tǒng)中運行一個預(yù)處理任務(wù),完成這些數(shù)據(jù)的預(yù)處理,將處理后的數(shù)據(jù)通過目標機的網(wǎng)口或串口上送到主機平臺。這一切都需借助于用戶的目標處理器完成。 通過以上過程,測試者得以知道程序當前的運行狀態(tài)。從上述分析可知,純軟件的測試工具的測試原理有兩個必然存在的特點一一插樁函數(shù)和預(yù)處理任務(wù)。由于插入插樁函數(shù)和預(yù)處理任務(wù)的存在,使系統(tǒng)的代碼增大,更嚴重的是這些代碼會對系統(tǒng)的運行效率有很大的影響(超過 50%)。函數(shù)本身要有它的實現(xiàn)過程,它要完成數(shù)據(jù)的生成和暫存,而 且這些函數(shù)在它的實現(xiàn)過程中還可能被其他優(yōu)先級更高的中斷程序所中斷,預(yù)處理任務(wù)需要占用目標系統(tǒng)CPU處理時間、共享內(nèi)存和通信

5、通道完成數(shù)據(jù)的處理、數(shù)據(jù)的上送。由于這些弊端的存在,當 采用純軟件測試工具對目標系統(tǒng)進行測試時,用戶目標系統(tǒng)是在一種不真實的環(huán)境下運行的,我們所捕獲的數(shù)據(jù)也是不夠精確。所以采用純軟件的測試工具缺乏性能分析,它不能對用戶目標系統(tǒng)中的函數(shù)和任務(wù)運行的時間指標進行精確的分析。當做覆蓋率分析的時候,因為要大量打點,而打點多于200時就會影響系統(tǒng)的運行,所以只能做單元覆蓋率分析且單元的程序量不能太大。它不能對內(nèi)存的動態(tài)分配進行動態(tài)的觀察。純硬件的測試工具純硬件工具通常用于系統(tǒng)的硬件設(shè)計與測試工作。當它用于軟件的分析測試時,卻無法滿足用戶的基本要求。以邏輯分析儀為例,邏輯分析儀是通過監(jiān)控系統(tǒng)在運行時總線上

6、的指令周期,并以一定的頻率捕獲這些信號,通過對捕獲的信號進行分析來判斷程序當前運行的狀況。由于它使用的是采樣的方式,難免會遺失一些重要的信號;同時,分析的范圍也及其有限。以性能分析為例,當使用某種邏輯分析 儀進行性能分析時,我們只能以抽樣的方式,同時對8 0個函數(shù)做性能分析, 得到一個不精確的結(jié)果; 而若使用CodeTEST,我們可以同時對128 0 0 0個函數(shù)做性能分析,得到一個精確的結(jié)果。當對程序做覆蓋率分析時,因為硬件工具是從系統(tǒng)總線捕獲數(shù)據(jù)的,如當 CACHE打開我們會采 用指令預(yù)取技術(shù),從外存中讀一段代碼到一級CACHE中,這時邏輯分析儀在總線上監(jiān)視到這些代碼被讀取的信號,就會報告

7、這些代碼已經(jīng)被執(zhí)行了 ,但實際上被送到CACHE中的代碼可能根本沒有被命 中。為了避免這種誤差必須把 CACHE關(guān)閉掉,而CACHE關(guān)掉就不是系統(tǒng)真實的運行環(huán)境了,有時 甚至會由于CACHE關(guān)閉而導致系統(tǒng)無法正常運行。而仿真器通常采用內(nèi)存標記技術(shù),它所關(guān)心的也是處理器從外存的代碼段讀取數(shù)據(jù)的情況。所以 也無法在CACHE打開的方式下工作。而它的性能分析也是以仿真器的時間系統(tǒng)以抽樣的方式進行的, 也無法時實對系統(tǒng)進行真實的分析。所以我們所得出的結(jié)果也是不精確的。純硬件工具根本不能對內(nèi)存分配進行分析和檢查的能力。CodeTEST對軟件分析測試功能的實現(xiàn)原理AMC公司吸取了純軟件測試工具和純硬件測試

8、工具的優(yōu)點,并對它們進行改善和提升后推出了 CodeTEST。由上圖我們可以看出,程序員編寫的源代碼首先會通過CodeTEST的編譯驅(qū)動器調(diào)用原編譯器對進行預(yù)編譯,然后CodeTEST的插樁器(源代碼分析程序)對預(yù)編譯好的源代碼進行自動的插樁,即 在需要插樁的關(guān)鍵位置寫入一條賦值語句(如:amc_ctrt=0x74100009 ),并把插入的標記送入一個數(shù)據(jù)庫文件中生成一個符號數(shù)據(jù)庫暫存起來,以備為以后分析時調(diào)用。然后,CodeTEST的編譯驅(qū)動器又會調(diào)用原編譯器對插樁后的代碼進行編譯生成可執(zhí)行目標代碼送到目標板上運行。當程序在目標系統(tǒng)運行到插樁點的位置時,目標板的控制總線和地址總線上會出現(xiàn)相

9、應(yīng)的控制信號和地址信號。當CodeTEST的輔助硬件(信號捕獲探頭)從控制總線和地址總線上監(jiān)視到符合以上條件的信號時, CodeTEST會主動地從數(shù)據(jù)總線上把數(shù)據(jù)捕獲回來送到CodeTEST的內(nèi)存中暫存并對這些數(shù)據(jù)進行預(yù)處理,然后將預(yù)處理后的數(shù)據(jù)通過局域網(wǎng)送到工作平臺上。通過與前面生成的符號數(shù)據(jù)庫中的數(shù)據(jù)進行比較,我們就此得知當前程序的運行狀態(tài),借此完成對嵌入式軟件的性能分析,高級覆蓋率分析,內(nèi)存分析和大容量的代碼跟蹤。由此可知,CodeTEST是一個硬件輔助軟件的測試與分析工具,它一方面吸取軟件打點技術(shù),并對這種技術(shù)進行了改善,純軟件工具插入的是一個函數(shù),而 CodeTEST插入的是一條賦值

10、語句,它在匯編級也是一條語句,所以它執(zhí)行的時間非常短,同時避免了被其它的中斷所中斷,所以它對目標 系統(tǒng)的影響非常小(1%-15% )。另一方面,CodeTEST從純硬件的測試工具那里吸取了從總線捕獲 數(shù)據(jù)的技術(shù)并且對它進行了改善,CodeTEST不再是采樣的方式,它是通過監(jiān)視系統(tǒng)總線,當程序運行到插入的特殊的點的時候才會主動的到數(shù)據(jù)總線上把數(shù)據(jù)捕獲回來,借此,在同樣的處理能力下, CodeTEST可以做到精確的數(shù)據(jù)觀察。CodeTEST強大的測試分析功能。由于CodeTEST對軟件打點技術(shù)和從總線捕獲數(shù)據(jù)進行了改善和提升,正是這種原理上的優(yōu)勢,所以CodeTEST具有強大的性能分析、內(nèi)存分析、

11、高級覆蓋率分析和代碼跟蹤功能。1 .強大的性能分析:CodeTEST能同時對128000個函數(shù)和1000個任務(wù)進行性能分析,可以精確的得出每個函數(shù)或任務(wù)執(zhí)行的最大時間、最小時間和平均時間,精確度達到 50ns;能夠精確的顯示各函數(shù)或任務(wù)之間的調(diào)用情況,幫助你發(fā)現(xiàn)系統(tǒng)瓶頸、優(yōu)化系統(tǒng)和提升你的系統(tǒng)性能。2 .強大的覆蓋率分析。CodeTEST可以在系統(tǒng)真實的環(huán)境下,可以從單元級、集成級、系統(tǒng)級以及產(chǎn)品終端現(xiàn)場階段進行嵌入式軟件的分析與測試。幫助測試工程師掌握當前的測試覆蓋率數(shù) 據(jù),指導測試用例的編寫。3 .強大的內(nèi)存分析。CodeTEST可以動態(tài)追蹤內(nèi)存分配,報告內(nèi)存出錯和相應(yīng)的原始數(shù)據(jù)。他不僅可以在程序運行時報告為每條語句分配多少字節(jié)的內(nèi)存,而且他可以鑒別20多種內(nèi)存分配的錯誤。例如:CodeTEST可以捕捉"釋放空指針(freeing a null pointer )” 一樣常見的程序錯誤,報告發(fā)生錯誤的函數(shù)和代碼行幫,助你盡早發(fā)現(xiàn)動態(tài)內(nèi)純泄漏,而無需到系統(tǒng)崩潰時。4 .強大的代碼跟蹤分析。CodeTEST提供400K的追蹤緩沖空間,能追蹤150萬行的源代碼。我們可以設(shè)置觸發(fā)器來追蹤自己感興趣的事件,可以顯示運行過程中程序運行的實際情況,幫助你查找程序的

溫馨提示

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

評論

0/150

提交評論