Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Operating system 基于Linux的USB设备驱动程序在我自己操作系统上的实现_Operating System_Usb - Fatal编程技术网

Operating system 基于Linux的USB设备驱动程序在我自己操作系统上的实现

Operating system 基于Linux的USB设备驱动程序在我自己操作系统上的实现,operating-system,usb,Operating System,Usb,我正在基于Linux开发自己的操作系统 本周我们的目标是实现非常简单的USB设备驱动程序,这很难获得基本算法 然而,通常很难找到商业linux系统之外的一些源代码。 我想得到一些关于这方面的建议 另外,我使用QEMU模拟器在Ubuntu上完成所有这些工作。 到目前为止,我已经完成了简单的文件系统和硬盘设备驱动程序 帮助我了解如何用非常简单的想法实现USB设备驱动程序。 谢谢!!:) 实现USB是一项相当艰巨的任务。首先,您必须有一个工作的PCI(e)枚举器或其他形式的USB控制器。然后,您必须找

我正在基于Linux开发自己的操作系统

本周我们的目标是实现非常简单的USB设备驱动程序,这很难获得基本算法

然而,通常很难找到商业linux系统之外的一些源代码。 我想得到一些关于这方面的建议

另外,我使用QEMU模拟器在Ubuntu上完成所有这些工作。 到目前为止,我已经完成了简单的文件系统和硬盘设备驱动程序

帮助我了解如何用非常简单的想法实现USB设备驱动程序。
谢谢!!:)

实现USB是一项相当艰巨的任务。首先,您必须有一个工作的PCI(e)枚举器或其他形式的USB控制器。然后,您必须找出它恰好是四种最常见的控制器类型中的哪一种。每种控制器类型与前一种完全不同,必须包含自己的驱动程序。您还需要一个独立于控制器类型的标准USB接口

使用USB是一项相当艰巨的任务,但在我看来,这是一项非常有趣和愉快的任务。我甚至觉得很愉快。它解释了如何通过PCI(e)总线查找控制器、如何设置此总线、如何检测USB控制器的类型(UHCI、OHCI、EHCI或xHCI)以及如何向连接的设备发送和接收数据包。这本书的写作目的正是为了帮助我们创建自己的操作系统并为其添加USB支持。事实上,您的操作系统基于Linux并不重要,因为本书不依赖任何现有的操作系统来完成这项任务,除了依赖内存分配的示例程序之外,它很容易为您的开发平台修改


我想说,如果你真的承担了这项任务,这将是一项艰巨的任务,但它将是一项令人愉快的任务。在我看来,USB是我们这个爱好中最令人愉快的部分。

欣赏它!我很快就会查到你的书。是的,我终于明白了实现USB是我现在的任务。所以我决定一步一步轻松的设备驱动程序,如扬声器,键盘的东西第一!从其他设备开始是个好主意。请注意,大多数计算机不再有(内置)扬声器,尽管PIT(可编程间隔计时器)可能仍有能力运行扬声器,即使扬声器不在那里。除非你谈论的是多媒体扬声器,你现在可能会回到USB,或其他直接输出源(SoundBlaster是一个有趣的一个)。请注意,现在大多数键盘也是USB键盘。如果您使用模拟器,例如Qemu或Bochs,您仍然可以为这些旧项目、键盘控制器等编程。