在
am9200
中,中斷暫存器分為
2個層次,乙個是用來設定某個功能允許哪些中斷產生,另乙個是
aic中斷暫存器,用來設定是否允許該功能產生中斷。當
aic對應的中斷產生時,需要讀取相應功能的中斷狀態暫存器,以判斷產生中斷的具體原因。
對於usb介面,首先需要設定
uhp_hcinterruptenable
和uhp_hcinterruptstatus
暫存器(關於這兩個暫存器的功能,請參見
ohci
規範)。這兩個暫存器屬於
usb功能暫存器,確定允許哪些
usb中斷。**如下:
//設定usb host
中斷暫存器
puhp->
uhp_hcinterruptenable
= ohci_hc_intr_mie |
ohci_hc_intr_rhsc |
ohci_hc_intr_ue |
ohci_hc_intr_wdh |
ohci_hc_intr_fno;
puhp->
uhp_hcinterruptstatus
= ohci_hc_intr_rhsc |
ohci_hc_intr_ue |
ohci_hc_intr_wdh |
ohci_hc_intr_fno;
//設定aic
中斷資訊
at91f_aic_configureit(at91c_base_aic,
at91c_id_uhp,
//at91c_id_tc1,
at91c_aic_prior_highest,
at91c_aic_srctype_int_edge_triggered,
at91f_asm_uhp_handler);
at91f_aic_enableit(at91c_base_aic,at91c_id_uhp);
基於OHCI的USB主機 中斷處理程式
在 ohci 的體系下,判斷資料是否傳輸完畢是需要通過中斷程式來判斷的,當 usb主機設定了 hccontrol 和hccommandstatus 暫存器開始傳輸資料後,am9200 自動開始資料傳輸,並且定期的檢查 hcdonehead 暫存器的內容,並且將其轉移到 hcca.donehead 然...
基於OHCI的USB主機 中斷處理程式
在 ohci 的體系下,判斷資料是否傳輸完畢是需要通過中斷程式來判斷的,當 usb主機設定了 hccontrol 和hccommandstatus 暫存器開始傳輸資料後,am9200 自動開始資料傳輸,並且定期的檢查 hcdonehead 暫存器的內容,並且將其轉移到 hcca.donehead 然...
基於OHCI的USB主機 OHCI(端點)
ohci open host controller inte ce 是康柏 微軟 國家半導體等公司共同制定的乙個usb主機介面規範,它提供乙個更抽象的介面來完成usb資料傳輸工作。在ohci規範中,最重要的幾個概念是端點 endpoint ed 傳輸描述符 transport descriptor ...