基于OHCI的USB主机 —— 中断寄存器初始化

简介:
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,如需转载请自行联系原作者
目录
相关文章
|
边缘计算 人工智能 负载均衡
什么是SD-WAN?
【4月更文挑战第15天】
6852 5
|
监控 Java Linux
开源流程引擎Camunda
开源流程引擎Camunda
|
SQL 缓存 NoSQL
接口的幂等性设计和防重保证,详细分析幂等性的几种实现方法
本篇文章详细说明了幂等性,解释了什么是幂等性,幂等性的使用场景,讨论了幂等和防重的概念。分析了幂等性的情况以及如何设计幂等性服务。阐述了幂等性实现防重的几种策略,包括乐关锁,防重表,分布式锁,token令牌以及支付缓冲区。
7694 0
接口的幂等性设计和防重保证,详细分析幂等性的几种实现方法
|
8月前
|
域名解析 网络协议 CDN
阿里云服务器购买后如何解析域名,三步操作即可解析绑定
阿里云服务器购买后如何解析域名,三步操作即可解析绑定
|
4月前
|
Linux
RPM软件包管理工具使用指南
RPM(Red Hat Package Manager)是Red Hat及其他基于RPM的Linux发行版中用于管理软件包的基本包管理工具。它是一个二进制包管理系统,允许用户在Linux系统中方便地安装、升级、查询和删除软件包。RPM使用.rpm文件扩展名的软件包文件,这些软件包文件包含了软件的可执行文件、配置文件、文档等,以及安装和卸载时需要执行的脚本。通过RPM,用户可以轻松地管理和维护系统中的软件,确保系统的稳定运行和软件的及时更新。
174 4
|
7月前
|
消息中间件 运维 数据库
Seata框架和其他分布式事务框架有什么区别
Seata框架和其他分布式事务框架有什么区别
134 1
|
8月前
|
存储 开发框架 Java
什么是Spring?什么是IOC?什么是DI?IOC和DI的关系? —— 零基础可无压力学习,带源码
文章详细介绍了Spring、IOC、DI的概念和关系,解释了控制反转(IOC)和依赖注入(DI)的原理,并提供了IOC的代码示例,阐述了Spring框架作为IOC容器的应用。
367 1
什么是Spring?什么是IOC?什么是DI?IOC和DI的关系? —— 零基础可无压力学习,带源码
|
计算机视觉 开发者 Python
OpenCV中Fisherfaces人脸识别器识别人脸实战(附Python源码)
OpenCV中Fisherfaces人脸识别器识别人脸实战(附Python源码)
404 0
|
10月前
|
分布式计算 Hadoop Java
面向开发者的Hadoop编程指南
【8月更文第28天】Hadoop是一个开源软件框架,用于分布式存储和处理大规模数据集。它由Hadoop分布式文件系统(HDFS)和MapReduce编程模型组成。本指南旨在帮助初学者和中级开发者快速掌握Hadoop的基本概念和编程技巧,并通过一些简单的示例来加深理解。
418 0
|
消息中间件 存储 Java
RabbitMQ之延迟队列(手把手教你学习延迟队列)
【1月更文挑战第12天】延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列的。
3225 56