我非常热衷于为微控制器(如 PIC、Atmel 等)编写设备驱动程序。由于我是这个控制器编码领域的新手,我只想知道为控制器编写设备驱动程序是否与我们为 linux(或任何其他操作系统)编写的相同?
也有人可以建议一些相同的在线设备驱动程序构建教程..?
谢谢,
我非常热衷于为微控制器(如 PIC、Atmel 等)编写设备驱动程序。由于我是这个控制器编码领域的新手,我只想知道为控制器编写设备驱动程序是否与我们为 linux(或任何其他操作系统)编写的相同?
也有人可以建议一些相同的在线设备驱动程序构建教程..?
谢谢,
如果您正在考虑开发设备驱动程序以将您的设备与主机连接(可能使用 USB),那么现在大多数微控制器都实现了依赖本机驱动程序的默认类。
一个具体的例子:
如果您使用 PIC18F4555,您可以使用常规的 HID(人机接口设备)Windows 驱动程序与您的微控制器通信(假设您正确实现它)。无需开发任何驱动程序。
为 MCU 编写设备驱动程序与为操作系统编写设备驱动程序相去甚远。大多数 MCU 根本不会运行操作系统。您通常最终会编写一些低级别的中断服务例程 (ISR) 并填充缓冲区,您的应用程序软件最终会清空。您不必适应操作系统定义的任何设备驱动程序范例。您基本上必须阅读您想要与之连接的设备的数据表,并通过它可能使用的任何接口(例如 SPI、I2C、UART 等)读取和写入其内存。最终,设备驱动程序应该为应用软件提供直观的函数调用。
如果您使用的是像 atmega 这样的 AVR MCU,那么您可以将 vusb ( https://www.obdev.at/products/vusb/index.html ) 用于那些没有任何 HID 并通过连接 D+ 和USB 的 D- 引脚连接到 MCU 的数字 I/O 端口。atmegaU2 软件包有自己的 USB 通信端口和 HID。