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