首页 > 代码库 > 驱动笔记 - 字符设备常用函数

驱动笔记 - 字符设备常用函数

字符设备:

静态申请设备号
int register_chrdev_region(dev_t from, unsigned count,const char *name)
申请使用从from开始的count个设备号(主设备号不变,次设备号增加)
from:希望申请使用的设备号
count:希望申请使用的设备号数目
name:设备文件

动态分配设备号
int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, const char *name)

dev:分配到的设备号
baseminor:起始次设备号
count:需要分配的设备号数目
name:设备文件


注销设备号
void unregister_chrdev_region(dev_t from,unsigned count)

mknod filename type major minor

字符设备注册(分配空间)
struct cdev *cdev_alloc(void)

字符设备注册(初始化)
void cdev_init(struct cdev *cdev, const struct file_operations *fops)

字符设备注册(添加)
int cdev_add(struct cdev *p, dev_t dev, unsigned count)

count:添加的设备个数

字符设备注销
int cdev_del(struct cdev *p)

分配设备号

MKDEV(int major, int minor);

从设备号获取主设备号

MAJOR(dev_t dev);

从设备号获取次设备号
MINOR(dev_t dev);

从用户空间获取数据(自带权限检查)

int copy_from_user(void *to, const void __user *from, int n)

向用户空间发送数据(自带权限检查)

int copy_to_user(void __user *to, const void *from, int n)

创建设备节点

mknod filename type major minor

查看设备信息

cat /proc/devices

驱动笔记 - 字符设备常用函数