Chinaunix首页 | 论坛 | 博客
  • 博客访问: 100153
  • 博文数量: 64
  • 博客积分: 3050
  • 博客等级: 中校
  • 技术积分: 725
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-22 18:16
文章分类
文章存档

2010年(56)

2009年(8)

我的朋友

分类: 嵌入式

2010-01-05 10:27:18

scull“simple character utility for loading loaclities” 区域装载的简单字符工具
scull是一个操作内存区域的字符设备驱动程序,这片内存区域就相当于一个设备。
scull的优点在于它不和硬件相关,而只是操作从内核中分配的一些内存
 
对字符设备的访问是通过文件系统内的设备名称进行的。
设备名称被称为:1特殊文件 2设备文件 3文件系统树的节点 =====【访问字符设备,请先123】
他们通常位于 /dev目录。
 
主次设备号

主设备号标识设备对应的驱动程序(也就是:一个主设备号代表一个驱动程序,但现代linux内核允许多个驱动程序共享主设备号)

次设备号由内核使用(专门伺候皇上的),用于确定设备文件所指的设备。除了知道次设备号用来指向驱动程序所实现的设备之外,内核本身基本上不关心关于次设备号的任何其他信息。

 
 
 
设备号的内部表达

在内核中,dev_t类型(在中定义)用来保存设备编号---包括主次设备号。 2.6版本中,dev_t是一个32位的数,12位表主,20位表次。

要获得dev_t的主次设备号,应使用:

MAJOR(dev_t dev);

MINOR(dev_t dev);

如果需要将主设备号和次设备号转换成dev_t类型,则使用:

MKDEV(int major, int minor);

 
 
 
分配和释放设备编号

在建立一个字符设备之前,首先要获得一个或者多个设备编号。完成该工作的必要函数是register_chrdev_region,其在中声明

阅读(343) | 评论(0) | 转发(0) |
0

上一篇:10.01.04

下一篇:mount命令详解

给主人留下些什么吧!~~

int register_chrdev_region(dev_t first, unsigned int count, char *name);

%3