linux设备驱动的分类

1. 字符设备—c

应用程序和驱动程序之间进行数据读写的时候,数据是以“字节”为单位。数据交互的时候,是按照固定的顺序传输的;数据是实时传输的,是没有缓存的。字符设备是没有文件系统的。
绝大部分设备驱动是字符设备:LED、BEEP、按键、键盘、触摸屏、摄像头、液晶屏、声卡、IIC、SPI、…
应用程序:系统IO函数
open(“/dev/led_drv”, O_RDWR)
read() write() ioctl() mmap() close()

2. 块设备—b

应用程序和驱动程序之间进行数据读写的时候,数据是以“块”为单位,1block=1024KB。块设备是有缓存的,块设备是有文件系统的。
大容量的存储设备一般都是块设备:nand flash、eMMC、SD、U盘、硬盘、…

#cat /proc/partitions
major minor  #blocks  name
179        0    7634944 mmcblk0
179        1      65536 mmcblk0p1
179        2     772096 mmcblk0p2
179        3     438272 mmcblk0p3
179        4          1 mmcblk0p4
179        5       8192 mmcblk0p5
179        6      22528 mmcblk0p6
179        7    6324224 mmcblk0p7
179       16       4096 mmcblk0boot1
179        8       4096 mmcblk0boot0
8        0    1956864 sda
8        1    1802240 sda1

应用程序访问块设备

#ls /dev/sda* -l
brw-rw-rw-    1 root     root        8,   0 Jan  1 00:11 /dev/sda  --->U盘
brw-rw-rw-    1 root     root        8,   1 Jan  1 00:11 /dev/sda1 ---U盘的一个放数据的分区

1)挂载—块设备是有文件系统的。
#mount -t vfat /dev/sda1 /data
vfat ---->fat32
2)像访问普通文件一样访问块设备的内容。
标准IO函数:fopen()/fread()/fwrite()/fclose()

3. 网络设备

网卡类的设备:有线网卡、无线网卡、…,网络设备是没有设备文件的。
应用程序:
socket套接字: IP + 端口号

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值