设备文件节点是怎么回事,每次都需要手动创建吗?怎么让多个应用程序使用同一个驱动?
1.对于设备文件节点,驱动,应用程序之间的关系还是挺模糊。我现在做的流程是挂载驱动程序,根据设备号创建设备文件节点,然后运行该可执行文件,也就是测试程序比如./led_test。
2.现在我想这样不知怎么做。我让他自动挂载驱动程序,然后自动创建文件节点,有多个应用程序调用这个驱动程序。也就是说多个应用程序怎么和驱动、设备文件节点对应,怎么来自动创建设备文件节点。他们之间的通过什么联系起来,又怎么区分开的。
------解决方案--------------------现在的内核都可以自动创建节点了,你看看device_create这个函数。
自动加载驱动的话,你得在开机启动的时候加入相关语句。
节点和驱动是通过设备id来对应的,应用程序和设备节点是通过open设备文件来建立联系的。
------解决方案--------------------哎 确实概念模糊。同上,设备节点是在系统起来的时候自动创建的,系统会利用hotplug、udev、 mdev等程序建立各个驱动的节点。当然,你也可以手动创建用mknod。
应用程序,没有调用驱动程序这种概念,请区分开user space和kernel space,应用程序充其量只是将数据copy到kernel里面给对应的驱动去处理,然后内核驱动处理完之后将结果再copy到应用程序,这些通过节点。
当然像你这LED之类的东西,应该是通过GPIO或者寄存器之类的来操作的。