基于Linux自行实现USB设备驱动OS
Implementation of USB device driver on my own OS based in Linux
我正在开发基于 Linux 的自己的操作系统。
本周我们的目标是实现非常简单的 USB 设备驱动程序,这很难获得基本算法。
然而,除了商业 linux 系统之外,通常很难找到一些来源。
我想就此获得一些建议。
此外,我在 Ubuntu 上使用 QEMU 模拟器完成了所有这些工作。
到目前为止,我已经完成了简单的文件系统和硬盘设备驱动程序。
帮我看看如何用非常相似的思路实现USB设备驱动。
谢谢 !! :)
实施 USB 是一项艰巨的任务。首先,您必须有一个有效的 PCI(e) 枚举器或其他形式的 USB 控制器查找器。然后,您必须找出它恰好是四种最常见的控制器类型中的哪一种。每种控制器类型都与前一种完全不同,并且必须包含自己的驱动程序。您还需要一个独立于控制器类型的标准 USB 接口。
接上 USB 是一项艰巨的任务,但在我看来,这是一项非常有趣和愉快的任务。足够愉快,我什至 wrote a book about how to do it。它解释了如何通过 PCI(e) 总线找到控制器、如何设置该总线、如何检测 USB 控制器的类型——UHCI、OHCI、EHCI 或 xHCI——以及如何发送和接收数据包 to/from 个附加设备。本书正是为我们这些创建自己的操作系统并为它们添加 USB 支持的人而写的。事实上,你的 OS 基于 Linux 应该无关紧要,因为除了依赖内存分配的示例程序之外,本书不依赖任何现有的 OS 来完成此任务,可以针对您的开发平台轻松修改。
我可以说,如果你真的接下了这个任务,这将是一个艰巨的任务,但它会是一个愉快的任务。在我看来,USB是我们这个爱好中最享受的部分。
我正在开发基于 Linux 的自己的操作系统。
本周我们的目标是实现非常简单的 USB 设备驱动程序,这很难获得基本算法。
然而,除了商业 linux 系统之外,通常很难找到一些来源。 我想就此获得一些建议。
此外,我在 Ubuntu 上使用 QEMU 模拟器完成了所有这些工作。 到目前为止,我已经完成了简单的文件系统和硬盘设备驱动程序。
帮我看看如何用非常相似的思路实现USB设备驱动。 谢谢 !! :)
实施 USB 是一项艰巨的任务。首先,您必须有一个有效的 PCI(e) 枚举器或其他形式的 USB 控制器查找器。然后,您必须找出它恰好是四种最常见的控制器类型中的哪一种。每种控制器类型都与前一种完全不同,并且必须包含自己的驱动程序。您还需要一个独立于控制器类型的标准 USB 接口。
接上 USB 是一项艰巨的任务,但在我看来,这是一项非常有趣和愉快的任务。足够愉快,我什至 wrote a book about how to do it。它解释了如何通过 PCI(e) 总线找到控制器、如何设置该总线、如何检测 USB 控制器的类型——UHCI、OHCI、EHCI 或 xHCI——以及如何发送和接收数据包 to/from 个附加设备。本书正是为我们这些创建自己的操作系统并为它们添加 USB 支持的人而写的。事实上,你的 OS 基于 Linux 应该无关紧要,因为除了依赖内存分配的示例程序之外,本书不依赖任何现有的 OS 来完成此任务,可以针对您的开发平台轻松修改。
我可以说,如果你真的接下了这个任务,这将是一个艰巨的任务,但它会是一个愉快的任务。在我看来,USB是我们这个爱好中最享受的部分。