第6 章 嵌入式Linux 驱动程序开发6.1 嵌入式Linux 的设备管理 Linux 将设备分成两大类:一类是块设备,类似磁盘以记录块或扇区为单位,成块 进行输入/ 输出的设备;另一类是字符设备,类似键盘以字符为单位,逐个进行输入/ 输出的设备。网路设备是介于块设备和字符设备之间的一种特殊设备。 块设备接口仅支持面向块的I/O 操作,所有I/O 操作都通过在内核地址空间中的I/O 缓冲区进行,它可以支持随机存取的功能。文件系统通常都建立在块设备上。 字符设备接口支持面向字符的I/O 操作,由于它们不经过系统的快速缓存,所以它 们负责管理自己的缓冲区结构。字符设备接口只支持顺序存取的功能,一般不能进行 任意长度的I/O 请求,而是限制I/O 请求的长度必须是设备要求的基本块长的倍数。 处理器与设备间数据交换方式 处理器与外设之间传输数据的控制方式通常有3 种:查询方式、中断方式和直接内 存存取(DMA )方式。 1 查询方式 设备驱动程序通过设备的I/O 端口空间,以及存储器空间完成数据的交换。例如, 网卡一般将自己的内部寄存器映射为设备的I/O 端口,而显示卡则利用大量的存储器 空