在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于嵌入式系統(tǒng)調(diào)試診斷方法

            基于嵌入式系統(tǒng)調(diào)試診斷方法

            作者: 時間:2012-08-28 來源:網(wǎng)絡(luò) 收藏

            本文介紹了開發(fā)過程實(shí)際上就是一個診斷的過程,而且診斷將一直伴隨著一個產(chǎn)品的終身,即使是最成熟的產(chǎn)品也偶爾會出現(xiàn)這樣或那樣的問題,這都需要開發(fā)人員去診斷、排查。

            本文引用地址:http://www.biyoush.com/article/148515.htm

            包括硬件調(diào)試、軟件調(diào)試以及綜合調(diào)試。硬件調(diào)試一般是指剛開發(fā)出來時上電前后的檢查,包括:

            1)上電前檢查電源和地是否短路,目視檢查是否有虛焊、漏焊;

            2)上電后檢查時鐘線上的頻率和波形、幅度是否正常,各電源電壓是否穩(wěn)定正常,各芯片溫度是否正常,各指示燈是否正常。

            軟件調(diào)試一般是指保證硬件一切正常的情況下驗(yàn)證程序執(zhí)行的時序是否正確,邏輯和結(jié)果是否與設(shè)計要求相符,能否滿足功能和性能要求等。軟件調(diào)試的方法有很多,包括:

            1)用指示燈跟蹤調(diào)試;

            2)用串口打印調(diào)試;

            3)用簡單的調(diào)試器進(jìn)行匯編代碼級調(diào)試;

            4)用比較高端的調(diào)試器進(jìn)行源代碼級調(diào)試;

            5)用仿真器進(jìn)行硬件仿真。

            上述單純的硬件調(diào)試或軟件調(diào)試都是相對比較簡單的,困難的是綜合調(diào)試。下面我先舉一些自己在工作中曾經(jīng)碰到的疑難問題,然后再從中歸納出一些一般的調(diào)試方法和注意事項(xiàng)。

            例 1:我們自主設(shè)計制作的PPC860(Motorola)網(wǎng)絡(luò)引擎平臺的調(diào)試已接近尾聲,同一批生產(chǎn)的4塊板子都通過了全部軟件測試,于是又去焊了第二批,可是在第二批板子中有1塊板子的FEC不能正常工作,我們幾個軟件和硬件工程師使用了各種手段,重新看了多遍芯片手冊,還是沒找出原因,于是把板子發(fā)回工廠重新焊接BGA,可是回來問題還是照樣存在,沒辦法最后打算將這塊板子當(dāng)作個樣處理,把板子上的芯片都焊下來。按常理來說這種做法很符合邏輯,因?yàn)樵骷际且粯拥模遄右彩且慌?,那就可能是這塊板子的某個地方焊接不好,但又不好查,反復(fù)重新焊接可能會把主板焊壞。后來有人從PPC860芯片上用放大鏡都要睜大眼睛才能看清的字符上(據(jù)說我國第一代國產(chǎn)高端處理器芯片“寒心”就是某“科學(xué)家”將“摩托”同一類型芯片上的這些字母磨掉后刻上“寒心一號”搖身一變造出來的!!!)發(fā)現(xiàn)這塊板子的CPU版本號是“D4”,而其他板子的CPU版本號是“D3”,可芯片手冊上并沒有這兩個版本之間的比較說明,從網(wǎng)上找到PPC860的勘誤手冊,發(fā)現(xiàn)在PPC860TZP50D4版本中,ECNTRL寄存器增加了一個叫FEC_PIN_MUX的位(bit2)來控制FEC各管腳的復(fù)用功能,如果要使用FEC就必須將該位設(shè)置為1,所以要在FEC的相關(guān)程序中加上ECNTRL |= 0x00000004語句行。

            例2:當(dāng)我調(diào)試業(yè)余自制的MC68VZ328板子時,電路板硬件檢查沒有問題,用Code warrior通過串口往flash中燒制編譯好的uClinux程序也一切正常,但是重新上電,發(fā)現(xiàn)串口沒有任何數(shù)據(jù),用萬用表檢查(當(dāng)時自己沒有示波器等“先進(jìn)設(shè)備”)也沒查出結(jié)果,然后每天上下班把這塊板子放在包里,沒事就拿出來瞪大眼睛看看,看著也不免窩火,但有一天卻發(fā)現(xiàn)一個標(biāo)著電阻符號的地方卻焊上了電容,回到家把電阻換上去再上電,串口一下就打印出uClinux的啟動信息,呵,那滋味,比喝了蜂蜜都甜,當(dāng)然當(dāng)時也是因?yàn)闆]有太多經(jīng)驗(yàn),如果這問題放現(xiàn)在,估計一天內(nèi)肯定解決掉。另外在初次調(diào)試自制的S3C4510開發(fā)板時,就是不能從串口輸出字符,費(fèi)了半天時間才發(fā)現(xiàn)把串口電平轉(zhuǎn)換芯片 max3232cse的第6腳上的旦電容極性焊反了。

            例3:在調(diào)試SB1250服務(wù)器主板時,由于使用的是DDR1代內(nèi)存條,數(shù)據(jù)線和時鐘線上串并聯(lián)的去耦電容電阻相當(dāng)多,第一批焊回來的板子幾乎沒有一塊能夠順利進(jìn)入CFE(BIOS)菜單界面的,檢查時鐘波形和電源與借用的 DEMO板相比都很好,我把主板上DDR DIM槽周圍的那些去耦電阻電容都全部用烙鐵重新過一遍錫,嘿嘿,還真管用,這種方法屢試不爽,而且在后面調(diào)試PCI和HT總線時使用這招也很有用,可能是因?yàn)镾B1250系統(tǒng)是高頻電路,對焊接要求比較高,稍微有一點(diǎn)漏焊或者虛焊都不行,我是這樣認(rèn)為的。

            從上述幾個例子中我們可以總結(jié)歸納以下幾點(diǎn)調(diào)試方法和注意事項(xiàng):

            1)加深理解法:加深理解包括加深對硬件和軟件的理解,加深對硬件的理解主要是詳細(xì)閱讀相關(guān)的芯片數(shù)據(jù)手冊,而加深對軟件的理解是因?yàn)楝F(xiàn)在開發(fā)嵌入式系統(tǒng)并不是所有程序都需要自己編寫,很多都是已經(jīng)做好的,直接從網(wǎng)上獲取或者采購獲得,但這些軟件不一定是完全針對我們自己的目標(biāo)板的,所以在使用過程中經(jīng)常會發(fā)現(xiàn)一些問題,特別是底層軟件,而一旦出現(xiàn)問題,開發(fā)人員首先必須了解出現(xiàn)問題的代碼。只有建立在對相關(guān)硬件和軟件深入理解的基礎(chǔ)上才可能做出更符合實(shí)際的判斷,才可能更好地解決問題。

            2)比較法:比較的方法有很多,比如將同樣的軟件放在兩個類似但不相同的硬件平臺上運(yùn)行比較現(xiàn)象;將兩個不同版本的軟件放在同一個硬件平臺上運(yùn)行比較現(xiàn)象;將相同的軟件放到相同批次但不同的兩個硬件平臺上運(yùn)行比較現(xiàn)象。對于一些不是很隱蔽的問題通過比較法通常能得到不錯的效果。

            3)分解法:當(dāng)碰到分析起來比較復(fù)雜、可能有很多因素的問題時,可以把問題分成解幾個小問題來測試診斷,比如編寫幾個單獨(dú)的小測試程序?qū)Ω鞣N可能因素進(jìn)行排查測試,根據(jù)這些測試結(jié)果再進(jìn)行科學(xué)判斷。

            4)軟硬件結(jié)合法:這種方法是需要一定靈感和悟性的。比如上面的例5,在測試過程中,可以在不破壞硬件的前提下臨時改變一下硬件的狀態(tài)(比如該例中將數(shù)據(jù)線和時鐘線短路),看問題現(xiàn)象會不會有所變化,如果有,那么多做類似試驗(yàn)找出變化規(guī)律和關(guān)鍵因素,然后再進(jìn)行分析解決。在底層軟件開發(fā)中,對于時序要求嚴(yán)格的硬件模塊的軟件編程要特別注意,一旦程序的時序出了問題,而這部分軟件已經(jīng)與其他系統(tǒng)軟件融合到一起,那么這種軟件讓別人去檢查是很難查出問題的。

            5)診斷、排故要建立在大量實(shí)驗(yàn)的基礎(chǔ)之上,要多動手,不能光知道臆想,不愿實(shí)際操作,還美其名曰“善于思考和分析”。嵌入式系統(tǒng)開發(fā)是一門實(shí)踐性很強(qiáng)的科學(xué),需要在實(shí)踐中總結(jié)出事物客觀規(guī)律,從而更好地認(rèn)識和利用它們,讓它們更好地按我們的意圖工作。

            6)嵌入式系統(tǒng)開發(fā)調(diào)試要求開發(fā)人員有嚴(yán)謹(jǐn)細(xì)致的工作態(tài)度,決不放過調(diào)試過程中發(fā)現(xiàn)的任何一點(diǎn)蛛絲馬跡,因?yàn)樗芸赡芫褪谴蜷_潘多拉寶盒的鑰匙。

            7)要有實(shí)事求是的工作作風(fēng),要有敢于懷疑一切的精神和勇氣,我們理當(dāng)尊重權(quán)威和前人的科技成果,但當(dāng)出現(xiàn)矛盾時我們更應(yīng)該相信實(shí)驗(yàn)結(jié)果,這樣科學(xué)才會進(jìn)步。

            8)要勇于挑戰(zhàn)自我,拋開習(xí)慣性思維和成見,拓寬思路,多角度分析問題。

            9)嵌入式系統(tǒng)開發(fā)特別是底層軟件和操作系統(tǒng)內(nèi)核開發(fā)因?yàn)樾枰瑫r跟軟件和硬件打交道,所以是一件比較艱苦的工作,很有挑戰(zhàn)性。即使我們各方面都做得非常好,考慮得非常細(xì)致周全,目標(biāo)系統(tǒng)仍然可能跟我們開一些小小的玩笑,我們經(jīng)常會碰到一個非常小的問題困擾我們幾天甚至幾周的時間,這期間我們可能茶飯不思、夜不能寐,因此嵌入式系統(tǒng)底層軟件開發(fā)人員不但要有平和的心態(tài),且具備一定的耐心和毅力,還要有勇于克服一切困難的勇氣和信心!只要我們做得足夠好,那么可能解決一個具體疑難的過程帶有一定偶然性,但我們終將排除所有阻礙!

            所以說,嵌入式系統(tǒng)調(diào)試過程就是一個更加深入了解我們的目標(biāo)系統(tǒng)以及系統(tǒng)中的每個單元模塊特性的過程,就是一個鍛煉我們的邏輯思維和分析推理能力的過程,就是一個開拓思路、向習(xí)慣思維和權(quán)威挑戰(zhàn)的過程,就是一個培養(yǎng)嚴(yán)謹(jǐn)細(xì)致的工作態(tài)度和實(shí)事求是工作作風(fēng)的過程,就是一個鍛煉我們耐力和毅力的過程,最終是一個學(xué)習(xí)進(jìn)步的過程!

            嵌入式系統(tǒng)調(diào)試診斷能力的提升是一個長期實(shí)踐、積累、提高的過程!

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉