我正在尝试为嵌入式Linux系统构建自定义操纵杆/游戏手柄设备。我正在寻找一个库或系统API,该库或系统API将允许我从用户空间代码在/ dev / input中创建一个节点。
我想要这样做是因为:
定制硬件可以使用现有的SPI或I2C驱动程序与系统进行通信(这是我的硬件设计,因此我可以做最有意义的事情)
内核模块不能利用其他驱动程序,只能利用其他模块导出的符号
我知道制作内核模块的唯一方法是使用内核代码并将其编译为内核模块。我不是在尝试用用户空间代码实现内核模块。
我正在寻找一个允许我创建文件的API,当该文件被读取或写入时,将调用函数。这是字符驱动程序的一般概念。我不需要内核提供或施加的特权或限制。
必须有某种方法可以模拟文件I / O,而无需编写全新的内核模块。
谢谢!
“字符设备”是指内核中面向字符的界面。
您可以按照LIUB的建议进行操作,并创建一个类似于保险丝的接口,将类似内核的API编组回用户空间,如果绝对需要使用中产生的HID样式的设备,则需要执行类似的操作/dev/input
。
但是,如果您实际上不需要HID设备,并且因为它仅用于硬件,并且您“不需要内核访问”,因为您实际上可以从用户空间与低级硬件进行通信,则可以考虑其他一些选择:
read()
您希望客户这样做,则可以使用fifo。当您的程序write()
的数据包被均等地分割为一个PIPE_BUF
(512字节)时,您可以保证它们不会被意外地插入另一个数据包中。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句