基于OHCI的USB主机 —— 寄存器(其它)
生活随笔
收集整理的這篇文章主要介紹了
基于OHCI的USB主机 —— 寄存器(其它)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
USB端口關(guān)電
對USB端口進(jìn)行關(guān)電處理的目的主要有兩個,一是安全拔下U盤,防止帶電插拔造成數(shù)據(jù)丟失或錯誤,另一個是為了再次開電,對U盤內(nèi)部程序進(jìn)行復(fù)位。| /** ?* 斷開USB端口的供電 ?*/ short ohciHardDisable(void) { ??? // Disable port power ??? pUhp->UHP_HcRhPortStatus[0] = 0x00000001; ??? pUhp->UHP_HcRhPortStatus[1] = 0x00000001; ? ??? // Disable global power ??? pUhp->UHP_HcRhStatus = 0x00000001; ??? ??? return 0; } |
清除中斷狀態(tài)
該程序在中斷程序中被調(diào)用,在OHCI規(guī)范中,設(shè)置中斷是通過HcInterruptEnable寄存器來完成的,而產(chǎn)生中斷以后,中斷狀態(tài)寄存器(HcInterruptStatus)的對應(yīng)位就會被設(shè)置為1,通過查詢該寄存器的內(nèi)容可以得知當(dāng)前中斷產(chǎn)生的原因。?
但是如果中斷狀態(tài)寄存器的數(shù)據(jù)不清除的話,AM9200就不會產(chǎn)生新的中斷,因此在中斷處理程序中需要調(diào)用本函數(shù)清除中斷狀態(tài):| /** ?* 清除中斷狀態(tài)寄存器的內(nèi)容,以便能夠產(chǎn)生新的中斷 ?*/ short ohciClearIntrStatus(void) { ??? pUhp->UHP_HcInterruptStatus = 0xFFFFFFFF; ??? return 0; } |
?
說明:按照OHCI規(guī)范,在中斷狀態(tài)寄存器的相應(yīng)位寫1,就可以清除對應(yīng)的中斷狀態(tài)。總結(jié)
以上是生活随笔為你收集整理的基于OHCI的USB主机 —— 寄存器(其它)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国农业银行数据中心智能布线系统
- 下一篇: 李开复写给中国学生的七封信之给中国学生的