引言
本篇博文并非技術類文章,但無疑是專為技術人員撰寫的。完成幾個項目之后,您心知肚明這些項目能夠一蹴而就或多或少都摻雜些運氣成分。您可能會遇到人為錯誤、事先未曾預料到的困難、甚至是超出您控制的問題(比如,源端 (source) 或接收端 (sink) 設備的問題)。
但工程師的職責就是解決問題。只要采用正確的方法,就可以快速找到并解決問題根源,而不會對項目產生影響(希望項目規劃為此預留了一些時間)。
我在賽靈思全球技術支持 (WTS) 部門供職多年,因此,我嘗試將所學到的有關如何在賽靈思器件上調試視頻應用的經驗加以總結融會貫通。
步驟 1 - 深入透徹了解系統
開始調試前,您必須明確了解自己的系統的運作方式。首先簡單描述期望的系統用途,包括期望的系統功能。例如,記錄系統是否僅支持 1080p 視頻,或者是否支持從 SD 到 UHD 范圍內的各種分辨率。
記得畫一張系統原理圖,很有用。原理圖的主要作用在于展示流經系統的數據。 您甚至可以給系統添加對應于所寫描述的標簽。 如果要使用軟件應用,那么還有必要畫一張描述此類應用的基本軟件流程圖。
這不僅有助于您更好地了解自己的系統并識別潛在的故障點,對于愿意幫助您調試系統的任何其他人同樣很有幫助。
步驟 2 - 嘗試失敗
第 2 步是嘗試明確可反復重現問題的步驟。這將有助于您明確哪些變化因素會導致系統故障以及哪些變化因素對于問題沒有影響。
它還可以幫助您集中精力解決根因,并提供一種實施修復后的驗證手段。
在這一步中,您通常需要捕獲有關系統行為和交互的數據。
例如,在視頻系統中,您可能想要了解不同輸入(即,GPU 之類的視頻源端)或不同輸出(即顯示器或測試設備之類的接收端 (sink))是否會生成不同行為。
執行此類測試時,需捕獲有關系統輸入和輸出的詳細信息,包括系統的視頻源端 (source) 和/或視頻接收端 (sink) 的說明,以及測試期間配置。
如果故障可重現,請記錄相關系統和配置信息,然后檢查更改某個變量(例如,嘗試改變輸入,或者改變輸入運行的操作系統)后是否仍舊會發生故障。
應最大限度減少每次測試期間所改變的參數數量,最好每次僅調整一個參數。
步驟 3 - 識別問題根源
故障可重現后,下一步要做的就是識別問題的根源。
首先我要介紹的方法我稱之為逐個擊破法。
即,重現故障后,我會嘗試通過移除系統部分器件來確認問題是否仍然存在。
為確認設計分割位置,最佳方法是參閱步驟 1 中創建的原理圖。 例如,如果在視頻設計的傳遞部分發生故障,那么我會通過觀察原理圖來確認設計的捕獲和顯示部分的合理分割位置。然后,我會測試移除源端的情況下,使用測試模式生成器來向外發送固定模式并確認結果。
如果問題仍然存在,即可知我無需再檢查輸入,而是只需對系統的顯示或輸出部分集中執行其他調試步驟即可。 應該注意的是,這可能需要修改設計才能實現,但通常系統由軟件控制,可通過軟件來開啟和關閉測試模式,而無需修改設計本身。
盡可能限定問題范圍后,即可尋找可用工具來調試問題。
對于視頻系統,您可添加 Integrated Logic Analyzer (ILA),如視頻系列 31 - 使用 ILA 調試視頻系統中所示。使用步驟 1 中的原理圖來尋找放置探針的最佳位置。這將有助于您確認數據路徑中是否有個別 IP 未按期望的方式運行,例如,未使用或未生成任何數據或者生成的數據錯誤。
如果系統使用的是 Linux 或者軟件應用可輸出至 UART,那么請使用所獲得的輸出來收集調試數據。它可提供有關應用運行失敗的階段或者失敗原因的信息。 并且,調試時請放心在應用中隨意添加更多打印或日志記錄功能,解決問題后可隨時將其移除。
注釋:使用 UART 時,有時最好先捕獲數據,稍后再打印,因為打印信息過多可能導致出現更多中斷從而改變整個系統的行為。
并且,許多應用或驅動具有內置調試功能,甚至可能已提供調試應用,例如,Linux 上提供的 media-ctrl 或 modetest 命令。 您可參閱 IP/驅動/應用文檔來了解相關信息。
如果應用已掛起,還可以通過“Debug”模式來運行應用,逐步分析應用以確認其掛起位置。
步驟 4 - 利用關鍵字來描述問題
在各種調試方法中并未論及此方法,但別忘了我們身處于互聯網和搜索引擎的時代。
就像在步驟 1 中描述系統一樣,只要把問題描述縮短到幾個關鍵字,不僅可以幫助您明確問題核心,還將幫助您在網上找到相關問題(和解決方案),從而幫助您解決問題。
如果您已確認問題發生在某個具體 IP 上,那么第一個關鍵字就是此 IP 的名稱。
然后,嘗試尋找到描述該問題的單個關鍵字。 如果在輸出控制臺中包含錯誤,那么輕而易舉就能找到這個關鍵字。
如果所選關鍵字并未返回任何結果,有時需要尋找描述相同問題的近義詞或其他方法。 比如,“我的屏幕上為何會出現噪點?”或者“我的屏幕為何有雪花?”
步驟 5 - 查找相關已知問題
他人可能遇到過相同的問題,因此尋找相關問題記錄總歸有利無害。 您可利用許多資源來查找已知問題或者更詳細的調試信息。
您可以通過直接搜索預定義位置來尋找所需信息。 通過縮小搜索范圍,可以提高找到相關問題的幾率。
您可通過下列位置來查找賽靈思視頻系統相關信息:
-
IP 產品指南 (PG):
- 大部分 IP 產品指南都包含調試部分(通常位于附錄部分中)。請務必遵循提供的所有步驟進行操作。這些步驟是根據他人使用 IP 中所遇到的問題編寫的,因此很可能對您會有所幫助。
- 您還可以嘗試在產品指南中使用步驟 4 中定義的關鍵字來執行搜索。
-
IP 主答復記錄 (AR):
- 每個賽靈思 IP 都有其主答復記錄,其中列出了賽靈思已知的各種核的所有已知問題。您可以在這里進行搜索,以確認您的問題是否存在相關記錄以及修復方法。
查找特定 IP 的主答復記錄的途徑之一是訪問視頻設計中心 (Video Design Hub)。在 IP 類別下,可以查找主答復記錄和產品指南。
如果找不到任何相關主題,那么您可藉此機會在賽靈思社區論壇上創建新主題。
-
對于 Linux 系統,賽靈思還提供維基百科頁面,其中包含在基于 Linux 的系統中使用 IP 的相關具體信息。賽靈思維基百科包含對應于所有 Linux 驅動的頁面。
這些驅動頁面包含有關 Linux 驅動支持的硬件功能的信息以及測試和調試信息,可有助于您重現并識別系統故障。
編輯:hfy
-
賽靈思
+關注
關注
33文章
1797瀏覽量
132290 -
工程師
+關注
關注
59文章
1590瀏覽量
69437 -
Linux
+關注
關注
87文章
11508瀏覽量
213541
發布評論請先 登錄


老工程師分享的模電設計經驗
工程師經驗分享:社區之星 趙云 沉著穩定才能做好技術


電子工程師的電源設計經驗分享
電子工程師的PCB設計經驗
電子工程師的電源設計經驗
電子工程師的電路設計經驗分享
電子工程師的經驗分享

賽靈思低溫失效的原因,有沒有別的方法或者一些見解?
有考慮深圳國企崗位的基帶硬件工程師嗎?

評論