设备文件节点是怎么回事,每次都需要手动创建吗?怎么让多个应用程序使用同一个驱动?

wzw409 2013-07-08 09:59:12
1.对于设备文件节点,驱动,应用程序之间的关系还是挺模糊。我现在做的流程是挂载驱动程序,根据设备号创建设备文件节点,然后运行该可执行文件,也就是测试程序比如./led_test。
2.现在我想这样不知怎么做。我让他自动挂载驱动程序,然后自动创建文件节点,有多个应用程序调用这个驱动程序。也就是说多个应用程序怎么和驱动、设备文件节点对应,怎么来自动创建设备文件节点。他们之间的通过什么联系起来,又怎么区分开的。
...全文
225 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzw409 2013-07-12
  • 打赏
  • 举报
回复
谢谢各位,这两天集中看了一下,大概了解了。实验了各种方法,终于弄出来了。
苍白了想念 2013-07-10
  • 打赏
  • 举报
回复
哎 确实概念模糊。同上,设备节点是在系统起来的时候自动创建的,系统会利用hotplug、udev、 mdev等程序建立各个驱动的节点。当然,你也可以手动创建用mknod。 应用程序,没有调用驱动程序这种概念,请区分开user space和kernel space,应用程序充其量只是将数据copy到kernel里面给对应的驱动去处理,然后内核驱动处理完之后将结果再copy到应用程序,这些通过节点。 当然像你这LED之类的东西,应该是通过GPIO或者寄存器之类的来操作的。
Carl_CCC 2013-07-08
  • 打赏
  • 举报
回复
现在的内核都可以自动创建节点了,你看看device_create这个函数。 自动加载驱动的话,你得在开机启动的时候加入相关语句。 节点和驱动是通过设备id来对应的,应用程序和设备节点是通过open设备文件来建立联系的。

23,114

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧