问个问题,在平台设备(platform_driver)注册以后,在应用层如何调用呢?

lieye_leaves 2011-06-26 08:08:16
问个问题,Linux平台设备注册,注册时提供的函数是pobe,suspend,resume等,但是在应用层一般访问驱动是用open,read,write等,两个部分怎么适配起来的?
...全文
552 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
a1163539718 2011-11-02
  • 打赏
  • 举报
回复
学习一下
井朝天 2011-07-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lieye_leaves 的回复:]
谢谢1楼和6楼的答复,刚刚看懂,还有一点,我觉得platform一般都用于包含在芯片SOC上的内置控制器上面,如arm上的USB,LCD,watchdog等。
[/Quote]

你说的很对!
但是仍然可以用在其他地方
井朝天 2011-07-01
  • 打赏
  • 举报
回复
我对platform设备的理解是这样的:
1,是个虚拟的总线设备。因为系统中有了PCI,USB,SPI, I2C等总线,设备模型通过bus进行匹配device 和driver,为了兼容设备模型,搞出个platform设备(注意这里的platform类似于说某个设备是PCI设备,还是I2C设备,也就是说该设备挂载哪个总线上)

2,这个只是说明了设备在哪个总线上(platform),并不能说明设备是个什么设备(是字符设备,块设备?),所以需要另加说明。我一般注册为混杂设备(这是一个设备类,类似输入类等),因为这些类子系统会动态分配设备号和自动创建/dev下的设备文件(udev机制),所以比较好用。我想目前真正写驱动的时候不会去做个字符设备,然后用mknod去创建设备节点吧!


以上纯属个人理解哈~~
井朝天 2011-07-01
  • 打赏
  • 举报
回复
我一般在Probe函数中将设备注册为misc设备
lieye_leaves 2011-07-01
  • 打赏
  • 举报
回复
谢谢1楼和6楼的答复,刚刚看懂,还有一点,我觉得platform一般都用于包含在芯片SOC上的内置控制器上面,如arm上的USB,LCD,watchdog等。
steven_miao 2011-06-27
  • 打赏
  • 举报
回复
platform僅僅是提供一種驅動和設備匹配的的功能,其設備的本質還是cdev設備,其中的file_operation才是提供了設備的open,close等等!
lieye_leaves 2011-06-27
  • 打赏
  • 举报
回复
就字符设备来说,应用层在打开设备时,会访问到设备节点,类似于打开文件,然后内部传入驱动函数来访问设备,所以我感觉设备驱动在注册的时候会有类似的操作函数,如open,read,write等。因为平台设备也是一种字符设备,但是它注册的时候的函数是probe,suspend, resume等呢,所以对于应用层的操作有点不明白。
翔云123456 2011-06-27
  • 打赏
  • 举报
回复
linux下设备被当做文件来访问,系统初始化就应该有设备与文件的对应关系,同学习中
lieye_leaves 2011-06-27
  • 打赏
  • 举报
回复
那么这个file_operation在哪里注册呢,好像平台设备注册的时候没有该定义的。

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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