字符设备驱动--- 设备号 设备文件
2014-10-20 15:26
162 查看
字符设备驱动--- 设备号 设备文件
分类: Linux Device Driver2013-02-2821:46 296人阅读 评论(0) 收藏 举报
LINUX驱动
目录(?)[+]
设备号作用:
主设备号 用来标识与设备文件相连的驱动程序. 用来反映设备类型.次设备号 被驱动程序用来辨别操作的是哪一个设备. 用来区分同类型的设备.
字符设备文件 和 字符设备驱动 如何建立起对应关系:
通过的是主设备号.{ 解释:字符设备文件 对应了一个主设备号, 字符设备驱动也对应了一个主设备号,
当两个 主设备号 一样时,那么 这 字符设备文件 和 字符设备驱动 两者是匹配的,是对应的. }
字符设备文件 解释:
字符设备文件 本身没有太多的内容,通过 字符设备文件 能找到 字符设备驱动程序 ,字符设备文件 能将 应用程序 的需求传递给 字符设备驱动程序.
主、次设备号:
内核中如何描述设备号:使用的是 dev_t 这个类型,其实质是unsigned int 32 位整数,其中高 12 位为主设备号,
低 20 位 为 次设备号.
如何从 dev_t 中 分解出主、次设备号:
主设备号: MAJOR( dev_t dev ) , 次设备号 MINOR( dev_t dev ) .
如何分配主设备号:
Linux 内核可以采用 静态申请 和 动态申请 两种方法.静态申请:
方法:1,根据 Documentation/devices.txt ,确定一个没有使用的主设备号.
2,使用 register_ chrdev_region 函数注册设备号.
优点: 简单.
缺点:一旦驱动被广泛使用,这个随机选定的主设备号可能会导致设备号冲突,
而使驱动程序无法注册.
函数:int register_ chrdev_region ( dev_t from , unsigned count , const char * name )
要注册的设备号 要注册设备号的个数 设备名(体现在 /proc/devices)
动态分配:
方法:使用alloc_chrdev_region 分配设备号.有点:易于推广.
缺点:无法在安装驱动前创建 设备文件 ( 因为安装前没有分配到 主设备号) .
解决办法:安装驱动后,从 /proc/devices 查询设备号.
函数:int alloc_chrdev_region ( dev_t *dev , unsigned baseminor , unsigned count , const char * name )
分配到的设备号 起始次设备号 要注册设备号的个数 设备名(体现在 /proc/devices)
注销设备号:
不论使用何种方法分配到的设备号,都应该在不使用它们时释放这些设备号.函数: void unregister_chrdev_region ( dev_t from , unsigned count)
释放从from开始的 count 个设备号.
创建设备文件方法 - 2种:
1,使用 mknod 命令手工创建.2,自动创建(驱动程序来实现).
mknod 用法:
mknod filename type major minor设备文件名 设备文件类型 主设备号 次设备号
eg. mknod serial0 c 100 0 .
相关文章推荐
- Linux字符设备驱动(三)-文件操作函数实现
- 字符设备驱动3:驱动代码与文件系统中的设备信息的关系
- 字符设备驱动--- 设备号 设备文件
- 高级字符设备驱动-自动创建设备文件笔记
- linux内核字符设备驱动之设备文件自动创建
- Linux驱动编程--字符设备文件注册
- linux 驱动程序 设备模块 设备号 设备文件创建 设备注册 字符驱动设备分析
- Hasen的linux设备驱动开发学习之旅--使用文件私有数据的字符设备驱动
- 简单字符设备驱动和自动创建设备文件
- linux 驱动程序 设备模块 设备号 设备文件创建 设备注册 字符驱动设备分析
- Linux 字符设备驱动开发基础(六)—— VFS 虚拟文件系统解析
- Linux 字符设备驱动开发基础(六)—— VFS 虚拟文件系统解析
- Linux 字符设备驱动开发基础(六)—— VFS 虚拟文件系统解析
- linux设备驱动开发学习之旅--使用文件私有数据的字符设备驱动
- 字符设备驱动1:新的方式添加cdev + 在open函数中将文件私有数据指向设备结构体
- 字符设备驱动基础知识(设备号-设备文件)
- 简单字符设备驱动和自动创建设备文件
- (6)2.4之前的字符驱动-用devfs_register自动生成设备文件(可能在2.6linux目录树下编译不了)
- 20 字符设备驱动相关的函数和参数及实现(虚拟文件)
- 设备驱动,字符设备驱动、(总线)设备驱动模型、sysfs文件系统、平台设备驱动