2005年五一期間我們解決了ADSL局端及終端設(shè)備的頻帶干擾問題,初步測試下來功能正常,性能滿足要求,終于可以交付到測試部門進行完整的測試。不出意料的,新問題來了。
測試工程師測試下來發(fā)現(xiàn)一個問題,設(shè)備正常工作一段時間后會莫名奇妙的自動重啟,從開機到重啟的時間每次不固定,而且手上的5臺樣機都存在同一問題。
接到測試報告后,軟硬件團隊開始聯(lián)手進行系統(tǒng)調(diào)試。有系統(tǒng)開發(fā)經(jīng)驗的都知道,這個問題對工程師調(diào)試來說喜憂參半,喜的是這是一個必現(xiàn)的bug,相對來說問題比較容易復(fù)現(xiàn)和定位,問題是否得到解決比較好驗證;憂的是這個問題出現(xiàn)的時間長短是隨機的,功能都已實現(xiàn),性能也達到要求,這種情況下的問題往往不簡單,需要調(diào)試的工作量很大。
這個問題對于硬件部分比較常見的問題一般有電源設(shè)計不良、復(fù)位電路、晶振電路、過熱保護、元器件不良、生產(chǎn)制程不良等;軟件部分可能存在的問題有系統(tǒng)配置不正確、異常流程處理不當(dāng)、內(nèi)部看門狗不正確觸發(fā)等。
硬件團隊首先排查了可能存在制程問題,通過目視檢查和X-ray照射,未發(fā)現(xiàn)明顯異常;全面監(jiān)測復(fù)位、供電和晶振等,均未發(fā)現(xiàn)自動重啟時存在異常狀態(tài),通過對電路板全面的熱監(jiān)測也未發(fā)現(xiàn)存在過熱區(qū)域;軟件團隊也對可能存在的問題逐一排除,未發(fā)現(xiàn)任何異常。調(diào)試陷入僵局,項目一時無法進展。
沒辦法,軟硬件團隊再次回到對故障現(xiàn)象的分析梳理,重新擬定測試方案,尋找重啟時的共同點。經(jīng)常大量的測試,終于發(fā)現(xiàn)當(dāng)系統(tǒng)傳輸大容量數(shù)據(jù)時出現(xiàn)重啟概率要大很多,而那種很輕負(fù)載狀態(tài)的設(shè)備重啟幾率較小,時間間距也會拉開更大。找到規(guī)律不代表就能找到確切問題點,甚至更加讓人迷茫。
當(dāng)所有的分析測試都沒有結(jié)果時,我們重新回到對生產(chǎn)制程的分析,由于主控芯片和MAC芯片都是BGA封裝,電路板本身是10層板,大部分走線都是走在內(nèi)層,對我們的排查來說困難重重。經(jīng)過不懈努力,發(fā)現(xiàn)主控芯片到MAC的16根地址線因走線和貼裝工藝存在瑕疵而有虛短路現(xiàn)象,其中一根和地之間的阻抗由正常的10兆歐左右降為1兆歐左右,由于檢查BGA貼裝質(zhì)量的X-ray主要檢查是否存在短路或斷路問題,對于虛短是很難檢查出來的。由于該地址線并未短路,在初始化或低速率傳輸數(shù)據(jù)時問題不大,但當(dāng)大容量數(shù)據(jù)高速傳輸時,地址線之間的差異就會顯現(xiàn)出來,導(dǎo)致程序運行異常而觸發(fā)內(nèi)部看門狗,從現(xiàn)象上看就是系統(tǒng)自動重啟。
經(jīng)驗教訓(xùn):
1、 不是能夠正常工作了硬件就萬事大吉,還要關(guān)注壓力測試和長時間測試;
2、 阻抗匹配很重要,對于很多問題,數(shù)據(jù)線和地址線等對地阻抗測試會告訴我們很多信息;
3、 嵌入式系統(tǒng)的調(diào)試一定要有系統(tǒng)概念,軟硬件及測試團隊的通力協(xié)作是快速發(fā)現(xiàn)問題、定位問題和解決問題的前提和保證,很多現(xiàn)象是多種因素引起的,只有經(jīng)多細致分析,大膽推測、反復(fù)驗證才能解決問題。