linux字符设备驱动

 linux字符设备驱动
字符设备文件和字符设备驱动通过主设备号联系
主设备号对应设备类型
次设备区分同类型的设备
内核如何如何描述设备号?
用dev_t 实质为12+20位的整数
MAJOR
MINOR
怎样申请设备驱动?
1.静态申请
2.动态分配
int alloc_chrdev_region
安装后/proc/devices查看设备名


不用设备时,注销设备号

有设备号创建设备文件
1.手工创建
mknod用法
mknod  serial0 c 100 0

struct file
loff_t f_pos 文件读写位置
struct file_operations *f_op

struct inode
dev_t i_rdev

struct file_operations  过渡作用
系统调用做出读写,驱动程序根据做出反应
vfs_read函数

分配c_dev
struct cdev * cdev_alloc(void)
初始化c_dev
void cdev_init(struct cdev*cdev,const file_operations*fops)
待初始化的cdev结构
设备对应的操作函数集

注册添加c_dec
int cdev_add(struct cdev* p,dev_t dev,unsigned count)
注销设备
int cdev_del
open
close
xxx_read
2个来自内核空间,2个来自用户空间,用户空间指针不能直接访问copy_to_user
xxx_write

驱动调试

打印调试
调试器调试
查询调试 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值