Linux驱动开发基础

Linux驱动开发基础

驱动分类

常规分类法

1、  字符设备

字符设备是一种按字节来访问的设备,字符驱动则负责驱动字符设备,这样的驱动通常实现open,close,read和write系统调用。例如:串口、LED、按键。

2、  块设备

在大部分的UIIX系统,块设备不能按字节处理数据,只能一次传输一个或多个长度是512字节(或一个更大的2次幂的数)的整块数据。而Linux则允许块设备传送任意数目的字节。因此,块和字符设备的区别仅仅是驱动的与内核的接口一同。例如硬盘、flash、SD卡。

3、网络接口

         网络接口可以是一个硬件设备,如网卡;但也可以是一个纯粹的软件设备,比如回环接口(lo)。一个网络接口负责发送和接收数据报文。

         总线分类法

         USB设备、PCI设备、平台总线设备。

字符设备驱动程序的使用

用户程序通过设备文件(又名:设备节点)来使用驱动程序操作字符设备和块设备。设备驱动是通过内核模块来实现。编译安装一个驱动程序实质就是编译安装一个内核模块。首先我们先说一下关于设备号的概念。

         设备号:用来表示与设备文件相连的驱动程序。次编号被驱动程序用来辨别操作的是哪个设备。

         创建字符设备文件的方法一般有两种:

1、  使用mknod命令

mknod /dev/文件名 c 主设备号次设备号

         2、使用函数在驱动程序中创建

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值