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