有的系統在長時間運行中偶爾出現HRDY 常高,導致主機端總線訪問異常,需要重新上電才能恢復HPI 的正常操作。這種故障是由于HPI 狀態機出現異常。
從實際故障定位中總結出以下幾點原因:
A.??? HPI 的高低半字訪問的順序訪問被其它HPI 訪問打斷:在復用模式下,一個完整的HPI 訪問是由高低半字兩次訪問組成,需要嚴格保證,否則會破壞HPI 的狀態機,從而導致不可預期的后果。
B.??? 主機通過HPI 訪問了DSP 內部的保留空間,或者破壞了DSP 的程序,數據空間,導致DSP 運行異常,進而導致HPI 狀態機異常。
C.??? 主機的HSTROBE 信號有毛刺,或者信號完整性不好,如下圖中HCS(些案例HSTROBE 是由HCS 控制)的上升沿的回勾,都會導致HPI 誤判斷為主機的新的訪問的開始,從而打亂了高低半字的訪問順序要求,導致HPI 狀態機的錯亂。
7.總結
HPI 是一種簡單的異步接口,只要設計中滿足了時序要求,即可穩定工作。在開發當中遇到數據讀寫不正確,從HSTROBE 信號入手檢查與之相關的信號的時序關系,便可以找出問題原因。另外,信號完整性是任何系統穩定工作的前提。
關于特定芯片上HPI 接口的特有功能本文沒有針對討論,如C6727 的字地址模式和字節地址模式可通過HPIC配置;C6727 在HPI 啟動后ROM bootloader 將HPI 關閉,需要軟件重新使能才能使用等;以及不同芯片的HPI 啟動模式下的跳轉方式不同,請參考相應芯片的HPI 手冊及bootloader 應用手冊。