linux驱动开发--字符设备:动态分配设备号
来源:互联网 发布:东海舰队 知乎 编辑:程序博客网 时间:2024/06/07 12:40
设备号的动态分配
int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, const char *name);
dev:保存分配到的设备号
baseminor:希望分配的起始次设备号
count:需要分配的设备号数目
name:设备名称(出现在/proc/devices)
返回:成功返回0, 失败返回负值
int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, const char *name);
dev:保存分配到的设备号
baseminor:希望分配的起始次设备号
count:需要分配的设备号数目
name:设备名称(出现在/proc/devices)
返回:成功返回0, 失败返回负值
请求内核动态分配count个设备号,且次设备号从baseminor开始
/***Copyright (c) 2013.TianYuan*All rights reserved.**文件名称: char_device_driver02.c*文件标识: 字符设备驱动 :动态分配设备号**当前版本:1.0*作者:wuyq **取代版本:xxx*原作者:xxx*完成日期:2013-11-26*/#include <linux/init.h>#include <linux/module.h>#include <linux/fs.h>MODULE_LICENSE("GPL");#define CDD_MAJOR200//cat /proc/devices找一个尚未使用的#define CDD_MINOR0#define CDD_COUNT1dev_t dev = 0;u32 cdd_major = 0;u32 cdd_minor = 0;int __init cdd_init(void){int ret = 0;if(cdd_major){dev = MKDEV(CDD_MAJOR, CDD_MINOR);//生成设备号//注册设备号;1、要注册的起始设备号2、连续注册的设备号个数3、名字ret = register_chrdev_region(dev, CDD_COUNT, "cdd_demo");}else{// 动态分配设备号ret = alloc_chrdev_region(&dev, cdd_minor, CDD_COUNT, "cdd_demo02");}if(ret < 0){printk("register_chrdev_region failed!\n");goto failure_register_chrdev;}//获取主设备号cdd_major = MAJOR(dev);printk("cdd_major = %d\n", cdd_major);return 0;failure_register_chrdev:return ret;}void __exit cdd_exit(void){//注销设备号unregister_chrdev_region(dev, CDD_COUNT);}module_init(cdd_init);module_exit(cdd_exit);
KERNELDIR ?=/root/Desktop/work/ldd3/linux-2.6.31_TX2440APWD := $(shell pwd)obj-m += char_device_driver02.odefault:$(MAKE) -C $(KERNELDIR) M=$(PWD) modulesclean:@rm -f *.o *.ord* *.sy* *.mod.* *.ko
0 0
- linux驱动开发--字符设备:动态分配设备号
- Linux字符驱动中动态分配设备号与动态生成设备节点
- Linux字符驱动中动态分配设备号与动态生成设备节点
- Linux字符驱动中动态分配设备号与动态生成设备节点
- Linux字符驱动中动态分配设备号与动态生成设备节点
- Linux字符驱动中动态分配设备号与动态生成设备节点
- Linux字符驱动中动态分配设备号与动态生成设备节点
- Linux字符驱动中动态分配设备号与动态生成设备节点
- Linux字符驱动中动态分配设备号与动态生成设备节点
- linux驱动开发-字符设备
- linux字符设备驱动开发
- linux驱动开发--字符设备:静态分配设备号
- 【驱动】linux设备驱动·字符设备驱动开发
- Linux 驱动开发-字符设备驱动
- 字符设备驱动 - linux驱动开发
- Linux设备驱动开发详解--笔记6--字符设备驱动
- Linux设备驱动开发学习(1)--字符设备驱动
- Linux字符设备驱动程序开发(1)-使用字符设备驱动
- think in java interview-高级开发人员面试宝典(八)
- 相同属性的Bean相互赋值
- Android仿微信气泡聊天界面设计
- IOS开发 tableview中cell的用法
- 本地连接受限制或无连接怎么办
- linux驱动开发--字符设备:动态分配设备号
- nginx禁止ip访问, 禁止绑定同一个ip的不同域名访问
- Activity间传递Bitmap,startActivityForResult的用法
- 关于gif图片(或png8)杂边锯齿的问题
- FFMpeg框架代码阅读
- QT中位图bitmap与VC的区别
- Deep Learning源代码收集
- oracle笔记——第三天:事务,函数
- 完美解决XCODE5.0以上不会自动更新资源文件的小bug