




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
tasktask3:1(實際上可能更來講很重。很多前,一開發(fā)人為了對入有更的理解,向ace問了這樣的一個題我怎么能知道懂得我系統(tǒng)到干些什么? rale對這問題有吃驚,因在當(dāng)時有人這問過,同時代嵌式開發(fā)人問的最的大都繞“怎么才能使程跑的更”、什么編器最”等膚淺的題。所以面對這不同尋卻異乎成問題,rae感欣喜回復(fù)他你的題很有深很成熟因為只不斷地深入理解才可能不斷提高水。并且rae為鼓勵這位著的程員,把0條于嵌入式軟件發(fā)測試秘訣告了他:重編譯代碼來消除bug,結(jié)果卻無濟(jì)于事。懶惰是因為他們習(xí)慣了使用printf調(diào)試最根本有效的調(diào)試方法。比如VxWorksTornaI提供的gdb就屬于這一種。printf對正常的代碼執(zhí)行干擾比較大(一般printfCPU比較長的時間),需要慎重使用,最好設(shè)置打印開關(guān)來控制打印。ICE是用來仿真CPU的設(shè)備,它可以在不干擾運算器的正常運行情況下,實時的檢測CPU的內(nèi)部工作情況。像桌面調(diào)試軟件所提供的:復(fù)雜的條件斷點、先進(jìn)的實時、性能分析和端口分析這些功能,它也都能提供。ICE一般都有一個比較特殊的CPU,稱為外合(bond-out)CPU。這是一種被打開了封裝的CPU,并且通過特殊的連接,可以到CPU的內(nèi)部信號,而這些信號,在CPU被封裝時,是沒法“看到”聯(lián)合使用時,ICEICE同樣有一些缺點:昂貴;不能全速工作;CPUCPU的,從另一個角度說,這些外合CPU也不大可的被新出的CPU所更換。JTAG(JointTestActionGroup)雖然它最初開IC和電路連接,但是這種串行接口擴(kuò)展了用途,包括對調(diào)試的支持。ADBlackfinVisualDsp++JTAG調(diào)試。RM器是一程序,留在嵌系統(tǒng)RM中,通過行的或絡(luò)的連和運行在少量的存空間,不需其它任專的硬件。提供了下功能代碼、運行控制斷點、步步進(jìn)以及觀、修改寄和內(nèi)存。為RM器是操軟件CU下應(yīng)用程,再次入RM器。.Data監(jiān)視器[Data.OS監(jiān)視器[OperatingSystem操作系統(tǒng)監(jiān)視器可以顯示諸如任務(wù)切換、信號量收發(fā)、中斷等。一方面,這些監(jiān)視器能夠為你呈現(xiàn)之間的關(guān)系和時間聯(lián)系;另一方面,還可以提供對信號量優(yōu)先級反轉(zhuǎn)、死鎖可以用來測試CPU到底耗在那里。profiler工具可以讓你知道系統(tǒng)的瓶頸在那里、CPU可以找到內(nèi)存使用的問題所在,比如內(nèi)存、內(nèi)存碎片、內(nèi)存等問題。如果發(fā)現(xiàn)系.運行[Execution要用于測試代碼邏輯,可以在大量的中發(fā)現(xiàn)異常的那些。.GUI測試工具[GUI入響應(yīng)時間進(jìn)行的。GUI測試工具可以作為工具有開發(fā)環(huán)境中運試用例,其功能包括對操作的記錄和回放、抓取屏幕顯示供以后分析和比較、設(shè)置和管理測試過程(Rational公robotMercuryLoadrunner工具是杰出的代表)GUI,但常??梢詫η度胧皆O(shè)備進(jìn)行插裝來運行GUI測試,雖然這種方式可能要求對被測代碼進(jìn)行更本人曾經(jīng)寫的流錄顯具在測會數(shù)流向和變上幫了忙幫公司到了幾u。內(nèi)存問題危害很大,不容易排查,主要有三種類型:內(nèi)存、內(nèi)存碎片和內(nèi)存。對于內(nèi)存問題態(tài)度必須要明確,那就是早發(fā)現(xiàn)早“治療”。在軟件設(shè)計中,內(nèi)存的“名氣”最程老手有時后也會遭遇內(nèi)存問題。有測試過內(nèi)存的朋友估計都有深刻地體驗,那就是內(nèi)存問題一般隱藏很深,很難通過代碼閱讀來發(fā)現(xiàn)。有些內(nèi)存甚至可能出現(xiàn)在中。有可能這本身是庫中的bug,也有可能是因為程序員沒有正確理解它們的接口說明文檔在很多時候,大多數(shù)的內(nèi)存問題無法探測,但可能表現(xiàn)為隨機(jī)的故障。程序員們往往;這些工具通過查找沒有或重復(fù)使用的代碼塊、內(nèi)存收集、庫等技術(shù)來發(fā)現(xiàn)內(nèi)存泄該去測試內(nèi)存的問題,做到防患于未然。由于動態(tài)內(nèi)存管理的種種問題,在嵌入式應(yīng)用中,很多公司干脆就禁用malloc/ 內(nèi)存是內(nèi)存使用最嚴(yán)重的結(jié)果,主要原因有數(shù)組越界、寫已經(jīng)釋放的內(nèi)存、指針計算錯誤、堆棧地址越界等等。這種內(nèi)存造成系統(tǒng)故障是隨機(jī)的,而且很難查找,目總之,如果要使用內(nèi)存管理單元的話,必須要,并嚴(yán)格遵守它們的使用規(guī)則,比如誰講到系統(tǒng)穩(wěn)定性,人們地會想到實時性和速度,因為代碼效率對嵌入式系統(tǒng)來說太重要了。知道怎么優(yōu)化代碼是每個嵌入式軟件開發(fā)人員必須具備的技能。就象子減肥一profile(性IDE都提供這種內(nèi)置的工具)能夠記錄各種情況比如各個任務(wù)的CPU占用率、各個任務(wù)的優(yōu)先級是否分配妥當(dāng)、某個數(shù)據(jù)被拷貝了多少次、磁盤多少但是,profile工具在分析實時系統(tǒng)性能方面還是有不夠的地方。一方面,人們使用profile工具往往是在系統(tǒng)出現(xiàn)問題即CPUprofile工具本身對CPU占用較大,所以profile對這種情況很可能不起作用。根據(jù)Heisenberg效應(yīng),任何測試或多或少都會改變系統(tǒng)運行,這個對profiler同樣適用!總之,提高運行效率的前提是你必須要知道CPU*bug的碼,只他自己不要出這種代,否則一天同的其它可能同樣會肯定是有人不或草率。所以你在怨針那么找的時,你是想過是自尋?c編程指南》或《關(guān)于C的08“”》。 和捕捉問題根源,我們可以設(shè)計比較全面的錯誤代碼。怎么來做呢?盡可能對每個函數(shù)調(diào)用失敗作出處理,盡可能檢測每個參數(shù)輸入輸出的有效性包括指針以及檢測是否過多或過少地調(diào)用某個過程。錯誤能夠讓你知道你成很多塊,一塊一塊的找。對于模塊獨立的大型項目,使用方法往往是對付那些隱藏極bug的最后方法。如果問題的出現(xiàn)是間歇性的,我們有必要設(shè)法去重現(xiàn)它并記錄使其重現(xiàn)的去重現(xiàn)問題,那么我們就可以著手去問題。怎么呢?我們可以用#ifdef把一些可能和可以使用工具獲得函數(shù)調(diào)用的情況包括參數(shù)的傳遞;檢查內(nèi)存是否以及堆棧溢出的問迷路時可以根據(jù)這些標(biāo)記找到出路。對過去代碼的修改進(jìn)行記錄對將來出現(xiàn)問題之后的調(diào)試很有幫助。假一天,你最近一次修改的程序跑了很久之后忽然死掉了,那么你這時的上次的修改呢?SCSVCS(ConcurrentVersionControl,CVSVCS的演化版本)checkin下來后和當(dāng)前測試版本比較。比較的SCS/VCS/CVS自帶的diff工具或其它功能更強(qiáng)的比較工具,比如你怎么知道你的測試有多全面呢?覆蓋測試(coveragetesting)可以回答這個問題。覆蓋測試工具可以告訴你CPU20%到40%代碼沒有問題,而其余的可能存在bug。覆蓋工具有不同的測試級別,用戶可以根據(jù)自己deadcode,覆蓋工具還是可以為你一些潛在的問題,看下面的代碼:if(i>=0&&(almostAlwaysZero==0||(last=如果almostAlwaysZero0,last=i賦值語句就被跳過,這可能不是你所期望的。更糟糕的是你可能需要花費10-200倍的時間來找一個bug,而這個bug在開始的時候可能很容易就能找到。一個小bug可能讓你付出巨大的
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工組織與計劃編制試題及答案
- 2025辦公租賃補充合同書
- 2024年水利水電工程市場需求分析試題及答案
- 工程經(jīng)濟(jì)學(xué)的市場機(jī)制分析試題及答案
- 煙草遼寧公司筆試試題2024
- 煙草河南公司筆試試題2024
- 2025關(guān)于汽車租賃合同的范本
- 工程招標(biāo)中的評估指標(biāo)考核試題及答案
- 馬鞍山花山區(qū)區(qū)直部門招聘考試真題2024
- 2024年錫林浩特市招募青年人員筆試真題
- 10.信息光子技術(shù)發(fā)展與應(yīng)用研究報告(2024年)
- 《導(dǎo)數(shù)及其應(yīng)用》復(fù)習(xí)課教學(xué)課件
- 林業(yè)高級工試題及答案
- 出納崗面試試題及答案
- 2025年下半年商務(wù)部外貿(mào)發(fā)展事務(wù)局第二次招聘8人易考易錯模擬試題(共500題)試卷后附參考答案
- 【公開課】+埃及+課件-2024-2025學(xué)年七年級地理下學(xué)期湘教版
- 六下試卷計算題目及答案
- 《行政法與行政訴訟法》課件各章節(jié)內(nèi)容-第一章 行政法概述
- 浙江2025年浙江省地質(zhì)院本級及所屬部分事業(yè)單位招聘筆試歷年參考題庫附帶答案詳解
- 2025年廣東廣州中物儲國際貨運代理有限公司招聘筆試參考題庫含答案解析
- 湖北省武漢市2025屆高中畢業(yè)生二月調(diào)研考試數(shù)學(xué)試題及答案
評論
0/150
提交評論