當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于嵌入式系統(tǒng)調(diào)試診斷方法

本文介紹了嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程實(shí)際上就是一個(gè)調(diào)試診斷的過(guò)程,而且調(diào)試診斷將一直伴隨著一個(gè)產(chǎn)品的終身,即使是最成熟的產(chǎn)品也偶爾會(huì)出現(xiàn)這樣或那樣的問(wèn)題,這都需要開(kāi)發(fā)人員去診斷、排查。

嵌入式系統(tǒng)的調(diào)試包括硬件調(diào)試、軟件調(diào)試以及綜合調(diào)試。硬件調(diào)試一般是指系統(tǒng)剛開(kāi)發(fā)出來(lái)時(shí)上電前后的檢查,包括:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉