1

如果有人告诉我需要为某些产品(例如游戏控制器)创建驱动程序,我将如何创建一个?这是您可以在 C/C++ 中正常执行的操作吗?

那么外部设备连接到 USB 的固件呢?这通常是如何创建的?这也是用 C/C++ 还是一些较低级别的语言完成的?

谢谢!

4

3 回答 3

2

台式计算机操作系统的设备驱动程序通常用 C 或 C++ 编写。您的目标操作系统将具有某种形式的框架或设备驱动程序开发环境。通常可以免费获得这些开发套件。

有适用于 Windows、Linux 和 MacOS X(及其他)的书籍详细介绍了创建设备驱动程序的过程。

如果您的驱动程序与特定硬件总线(PCI、PCI-X、USB、SCSI、SATA 等)上的设备相关,您还可以获得有关该特定技术的书籍。了解该硬件系统可以极大地促进驱动程序的设计。

另一个很好的资源是与您的类似设备的开源代码。您可以从 Linux 内核源代码或 FreeBSD 源代码中获得它,并研究您的设备类型的某些方面是如何实现的。

编辑:我差点忘了提到您还需要有关设备本身的数据表、原理图和/或操作理论信息。

于 2010-06-25T03:32:20.780 回答
1

您可以使用任何可以与界面对话的语言来执行此操作。如果它需要直接戳端口或地址,那么您可以使用汇编或 C。如果有更高级别的接口,例如 libusb,那么您几乎可以使用任何您喜欢的语言。

于 2010-06-25T03:24:42.027 回答
1

我将通过以下书籍补充 Amardeep 的好答案,这些书籍将帮助您思考设备驱动程序在其中运行的上下文以及它们的结构:

Linux: http ://www.amazon.com/Understanding-Linux-Kernel-Third-Daniel/dp/0596005652

视窗: http ://www.amazon.com/Programming-Microsoft-Windows-Driver-Model/dp/0735618038/ref=sr_1_1?ie=UTF8&s=books&qid=1277439434&sr=1-1

Mac 操作系统: http ://www.amazon.com/Mac-OS-Internals-Systems-Approach/dp/0321278542/ref=sr_1_1?ie=UTF8&s=books&qid=1277439467&sr=1-1

于 2010-06-25T04:18:24.580 回答