在
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);
|
本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/261074,如需转载请自行联系原作者