Chinaunix首页 | 论坛 | 博客
  • 博客访问: 180602
  • 博文数量: 80
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 835
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-29 10:30
文章分类
文章存档

2009年(12)

2008年(60)

2007年(8)

我的朋友

分类: LINUX

2009-04-20 14:09:32

这一章介绍了一个不依赖硬件的scull(Simple Character Utility for Loading Localities)字符设备驱动程序的编写,scull可以为我们编写真正的linux内核设备驱动程序提供样板。
 
(一) 设备编号
 
1.设备编号的表示
 
主编号标识设备相连的驱动,次编号被内核用来决定引用哪个设备。
内核用dev_t类型()来保存设备编号,dev_t是一个32位的数,12位表示主设备号,20为表示次设备号。
用在 中的一套宏定义来进行转换:
 

MAJOR(dev_t dev);
MINOR(dev_t dev)
MKDEV(int major, int minor)

 
2.分配和释放设备编号
建立一个字符驱动时,驱动需要做的第一件事是获取一个或多个设备编号来使用,主要函数在中声明:
 

int register_chrdev_region(dev_t first, unsigned int count

阅读(439) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~