arm-linux字符设备驱动开发之---简单字符设备驱动_生成静态

分享到:

一、linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:

1、字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。
2、块设备:是指可以从设备的任意位置读取一定长度数据的设备。块设备包括硬盘、磁盘、U盘和SD卡等。

  每一个字符设备或块设备都在/dev目录下对应一个设备文件。linux用户程序通过设备文件(或称设备节点)来使用驱动程序操作字符设备和块设备。

 

二、字符设备驱动程序基础:
1、主设备号和次设备号(二者一起为设备号):
  一个字符设备或块设备都有一个主设备号和一个次设备号。主设备号用来标识与设备文件相连的驱动程序,用来反映设备类型。次设备号被驱动程序用来辨别操作的是哪个设备,用来区分同类型的设备。
  linux内核中,设备号用dev_t来描述,2.6.28中定义如下:
  typedef u_long dev_t;
  在32位机中是4个字节,高12位表示主设备号,低12位表示次设备号。

可以使用下列宏从dev_t中获得主次设备号:                   也可以使用下列宏通过主次设备号生成dev_t:
MAJOR(dev_t dev);                              MKDEV(int major,int minor);
MINOR(dev_t dev);

View Code
昵    称:
验证码: