社区
Linux/Unix社区
帖子详情
linux 驱动程序的主设备号问题?
zeng_xiangyang
2003-08-18 07:45:38
创建一个设备节点时,用mknod /dev/devicename1 c major1 次设备号,
向内核登记设备调用函数 register_chrdev(major2 devicename2 *fops)
请问:devicename1和devicename2是不是要一模一样,major1和major2是不是要一模一样?
...全文
51
1
打赏
收藏
linux 驱动程序的主设备号问题?
创建一个设备节点时,用mknod /dev/devicename1 c major1 次设备号, 向内核登记设备调用函数 register_chrdev(major2 devicename2 *fops) 请问:devicename1和devicename2是不是要一模一样,major1和major2是不是要一模一样?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CoolQ
2003-08-18
打赏
举报
回复
主设备号肯定是要一样的,系统通过这个才知道你的/dev/devicename是设备major
名字我想不需要一样,但是你的register和unregister的名字可得一样
Linux
驱动开发之
主设备
号
找驱动,次设备
号
找设备
一、引言 很久前接触
linux
驱动就知道
主设备
号
找驱动,次设备
号
找设备。这句到底怎么理解呢,如何在驱动中实现呢,在介绍该实现之前先看下内核中主次设备
号
的管理: 二、
Linux
内核主次设备
号
的管理
Linux
的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件,完成对设备的操作,就像操作普通
linux
驱动12:
主设备
号
和次设备
号
主设备
号
和次设备
号
Linux
设备
驱动程序
和设备文件
Linux
设备
驱动程序
和设备文件 设备
驱动程序
一个设备
驱动程序
是一个管理着系统与某种特定硬件之间交互作用的程序。
驱动程序
在设备可理解的硬件指令和内核使用的固定编程接口之间起转换作用。
驱动程序
层的存在有助于内核合理地保持设备独立性。 在大多数情况下,设备
驱动程序
是内核的组成部分,它们不是用户进程。不过,一个
驱动程序
可以从内核里,也可以从用户空间进行访问。对设备的用户级访问往往要通过位于/
linux
驱动开发
主设备
号
与次设备
号
一个字符设备或者块设备都有一个
主设备
号
和次设备
号
。
主设备
号
和次设备
号
统称为设 备
号
。
主设备
号
用来表示一个特定的
驱动程序
。次设备
号
用来表示使用该
驱动程序
的各 设备。例如一个嵌入式系统,有两个LED指示灯,LED灯需要独立的打开或者关闭。那么 ,可以写一个LED灯的字符设备
驱动程序
,可以将其
主设备
号
注册成5
号
设备,次设备
号
分别为1和2。这里,次设备
号
就分别表示两个LED灯。 1.
主设备
号
和
内核怎么通过
主设备
号
找驱动、次设备
号
找设备
MAJOR宏将dev_t向右移动20位,得到
主设备
号
;MINOR宏将dev_t的高12位清零,得到次设备
号
。相反,可以将
主设备
号
和次设备
号
转换为设备
号
类型(dev_t),使用宏MKDEV可以完成这个功能。
Linux
内核允许多个驱动共享一个
主设备
号
,但更多的设备都遵循一个驱动对一个
主设备
号
的原则。 内核维护着一个以
主设备
号
为key的全局哈希表,而哈希表中数据部分则为与该
主设备
号
设备对应的
驱动程序
(只有一个次设备)的指针或者多个同类设备
驱动程序
组成的数组的指针(设备共享
主设备
号
)。根据所编写的
驱动程序
Linux/Unix社区
23,115
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章