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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論