我是靠谱客的博主 彩色钢笔,最近开发中收集的这篇文章主要介绍EHCI主机控制器--主机控制器初始化,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

当系统启动时,枚举主机控制器,为寄存器空间分配一个基址,BIOS将FLADJ寄存器设置为系统特定的值。初始上电或HCReset(硬件或通过USBCMD寄存器中的HCReset位)后,所有的操作寄存器将在其默认值,如表所示。在硬件复位后,只有辅助电源井中不包含的运行寄存器将处于默认值。
在这里插入图片描述
软件应执行的步骤:

  1. CTRLDSSEGMENT寄存器编写4-gb段,其中分配了所有接口数据
  2. 将适当的值写入USBINTR寄存器以启用适当中断
  3. 周期帧列表基址写入PREIODICLIST基寄存器。
  4. 写USBCMD寄存器设置所需中断阈值,设置运行停止位
  5. 向CONFIGFLAG写1,将所有端口路由到EHCI

此时,主机已经运行,端口寄存器报告设备连接,系统软件通过重置过程枚举端口,此时端口活动但还没有开始调度
为了异步调度,ss写ASYNDLISTADDR。软件在USBCMD异步调用位写1.
为启动定期调度,向USBCMD相应位写1,可以在第一个端口重置前打开调度。

最后

以上就是彩色钢笔为你收集整理的EHCI主机控制器--主机控制器初始化的全部内容,希望文章能够帮你解决EHCI主机控制器--主机控制器初始化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部