Linux设备驱动程序——字符设备驱动编程

10 篇文章 1 订阅

字符设备

Linux对设备的操作与对文件的操作是一样的,可以看到一个设备所对应的文件。我们平时用的read、write等函数也可以用于设备文件。

字符设备:
- 以字符为单位
- 按照顺利操作
- 没有缓存区,故不支持随机读写

例外:帧缓存设备,如显卡,是可以随机访问的

设备号

设备号由主设备号与次设备号组成。

主设备号标识设备对应的驱动程序。不同的设备可以有相同的主设备号,主设备号相同的设备使用相同的主设备号,内核利用主设备号与相应的驱动程序对应。

可以把主设备号理解成设备驱动程序的标识,就是Program

次设备号

原来区分具体设备驱动程序的实例,就是instance

创建设备文件节点

mknod  /dev/char0 c 10 3

含义

mknod 创建设备节点
/dev 在...目录下创建
char0 设备名字
c 字符设备
10 主设备号
3  次设备号

在/dev目录下创建char0的设备,该设备文件对应的是字符设备,其主设备号是10,次设备号是3。

常见的设备号

file_operation结构体

file_operation是一个连接设备文件和文件操作的结构体,是一些函数指针的集合。每个文件都对应一个file_operation结构,用来执行对应的系统调用。

struct  file_operations {
    ssize_t (*read) (struct file* , char* , loff_t*);
    ......
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值