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