linux设备驱动第三版字符设备源代码学习
来源:互联网 发布:淘宝教育招聘 编辑:程序博客网 时间:2024/05/18 01:25
1、 dev_t是32位无符号整形数(__u32),用于在内核中保存设备编号,包括主设备号和次设备号。
2、 #define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi))
#define MKDEV(ma,mi) ((ma)<<8 | (mi))
dev_t 设备号类型,MKDEV是宏定义用于构造设备号类型
3、register_chrdev_region(dev_t,unsigned, const char *); //静态的申请和注册设备号
使用register_chrdev_region()首先需要定义一个dev_t变量来作为一个设备号,
dev_t dev_num;
如果想静态申请,那么dev_num=MKDEV(major_no,0);major是一个表示设备号的变量
然后便可以用register_chrdev_region(dev_num,2,"my_dev");第二个参数表示注册的此设备数目,第三个表示驱动名。
返回值:成功返回0;失败返回负值。
4、如果要动态的注册主设备号,使用下面
alloc_chrdev_region(&dev_num, 0, 2,"memdev");
返回值:成功返回0;失败返回负值。
//次设备号从0开始,注册两个设备,设备名是Memdev
5、 #define MAJOR(dev) ((dev)>>8) //获得主设备号
#defineMINOR(dev) ((dev) & 0xff) //获得次设备号
6、kmalloc使用 http://baike.baidu.com/view/1575338.htm#3
7、内核同步之自旋锁和信号量
http://www.360doc.com/content/10/1008/16/1317564_59358606.shtml
初始化信号量的值:
#define init_MUTEX(sem) sema_init(sem,1) //初始化,未锁定
#define init_MUTEX_LOCKED(sem) sema_init(sem,0) //初始化,锁定
8、cdev结构相关
http://hi.baidu.com/donghaozheng/blog/item/9191bd191f95de4f42a9ad45.html
http://www.360doc.com/content/10/0720/14/2280906_40299228.shtml
- linux设备驱动第三版字符设备源代码学习
- Linux设备驱动程序(第三版)学习之字符驱动(二)
- linux字符设备驱动学习
- Linux字符设备驱动学习
- Linux驱动学习字符设备
- linux学习--字符设备驱动
- LINUX字符设备驱动学习
- 学习Ldd3--字符设备驱动(第三章)
- Linux驱动学习笔记;字符设备驱动
- linux设备驱动学习笔记(1)-字符设备驱动
- Linux设备驱动开发学习(1)--字符设备驱动
- Linux设备驱动学习(4)-字符设备驱动
- LINUX--字符设备驱动
- Linux字符设备驱动
- Linux字符设备驱动
- Linux字符设备驱动
- linux字符设备驱动
- linux字符设备驱动
- Eclipse的jar里的class文件打断点
- 共享内存
- jQuery中的ajax服务端返回方式
- 在Win7后安装Xp
- OpenCV程序运行错误(2)--CvConnectedComp
- linux设备驱动第三版字符设备源代码学习
- 忙
- windows live writer 发布博客实验
- IPSec中常用的一些简称
- 消息驱动Bean
- 屏蔽对话框的enter还有esc两个按钮
- 外企技术面试题
- 怎么弄积分啊????
- Unix网络编程