社区
驱动程序开发区
帖子详情
关于platform虚拟总线,一驱动对多设备中,read()write()函数的编写
EdSmith
2014-11-11 10:52:25
由于是多个设备共用一个驱动,所以一个read()函数要所有设备通用的,那我在read()函数中,应该如何确定用户层打开的是哪个设备,而作出不同的判断。
...全文
131
3
打赏
收藏
关于platform虚拟总线,一驱动对多设备中,read()write()函数的编写
由于是多个设备共用一个驱动,所以一个read()函数要所有设备通用的,那我在read()函数中,应该如何确定用户层打开的是哪个设备,而作出不同的判断。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
worini2011
2014-11-12
打赏
举报
回复
新手,说一下我的理解 在probe函数里面其实已经把你定义的不同设备注册了,根据设备名字不同,注册生成了不同的设备节点 而上层在打开设备,获取设备句柄的时候,根据设备名字已经获取到了该指定设备 后续的read 或者其他函数都会有相应设备的 inode 或者 file什么的传进来,作对应处理即可 共同探讨一下!
fly 100%
2014-11-12
打赏
举报
回复
每一个设备注册都会probe一次 每次ioremap出不同的地址出来 将这个地址存到私有结构体中 read和write也要用这个地址 这样就完全区分开了
lbaihao
2014-11-12
打赏
举报
回复
那我在read()函数中,应该如何确定用户层打开的是哪个设备 在平台设备驱动中platform_device_register注册多个设备,应用层通过open打开注册的不同设备节点,例如/dev/test0 /dev/test1,通过返回的不同句柄fd0 ,fd1, read(int fd, void *buf, size_t count);
linux
设备
驱动
模型-linux
驱动
开发第5部分
本课程是linux
驱动
开发的第5个课程,主要内容是linux的
设备
驱动
模型,包括
总线
、类、
设备
、
驱动
等概念,重点通过
platform
平台
总线
的工作来演示
设备
驱动
模型的工作方法,实践环节对上个课程的LED
驱动
进行平台
总线
式...
基于
设备
树的
platform
驱动
之LED(平台
设备
驱动
)
platform
驱动
框架分为
总线
、
设备
和
驱动
。
总线
:是 Linux 内核提供的,不需要我们这些
驱动
程序员去管理。我们在
编写
驱动
的时候只要关注于
设备
和
驱动
的具体实现即可。
设备
、
驱动
:在没有
设备
树的 Linux 内核下,我们需要分别
编写
并注册
platform
_device 和
platform
_driver,分别代表
设备
和
驱动
。在使用
设备
树的时候,
设备
的描述被放到了
设备
树
中
,因此
platform
_device 就不需要我们去
编写
了,我们只需要实现
platform
_driver 即可。
Linux
设备
驱动
开发(一)——
platform
总线
、
设备
和
驱动
platform
总线
、
设备
和
驱动
一个现实的Linux
设备
和
驱动
通常都需要挂载在一种
总线
上,对于本身依附于PCIUSB、I2C、SPI等的
设备
而言,这自然不是问题,但是在嵌入式系统
中
,SoC系统
中
集成的独立的外设控制器,挂接在SoC内存空间的外设却不依附于此类
总线
。因此,Linux发明了一种
虚拟
的
总线
,称为
platform
总线
(
虚拟
总线
),相应的
设备
称为
platform
_device,
驱动
称为p...
linux
总线
驱动
模型之
platform
总线
驱动
模型
本文重点讲述了
platform
驱动
的作用与使用方法,介绍了linux上的分层思想
【嵌入式环境下linux内核及
驱动
学习笔记-(14)linux
总线
、
设备
、
驱动
模型之
platform
】
传统的
驱动
方式,
驱动
代码与
设备
数据混在一个程序文件
中
,这会导致开发不方便以及一些功能难以支持:\qquad为了使得一个
驱动
可以在不同平台上适配同一类但资源分配不同的
设备
。这时需要使得
设备
资源信息独立于
驱动
,
驱动
不再绑定具体
设备
。因此这种思路下就形成了
总线
设备
驱动
模型。 \qquad这个
总线
、
设备
、
驱动
模型的目的在于使
驱动
只管
驱动
,
设备
只管
设备
资源,
总线
负责匹配
设备
和
驱动
。
驱动
则以标准途径拿到板级信息,这样,
驱动
就可以独立于具体的
设备
。\qquad在linux2.6以后的
设备
驱动
模型
中
,需关心
总线
、
设备
和
驱动
驱动程序开发区
1,318
社区成员
2,173
社区内容
发帖
与我相关
我的任务
驱动程序开发区
主要是开发驱动技术
复制链接
扫一扫
分享
社区描述
主要是开发驱动技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章