嵌入式块设备内核驱动
发布时间
阅读量:
阅读量
一,块设备简介(linux __ 设备被分为字符设备、块设备、网络设备)
1,块设备特征
块设备主要面向存储类硬件,例如SD卡、EMMC、NAND Flash、Nor Flash、SPI Flash、U盘、机械硬盘以及固态硬盘等。因此,块设备驱动实质上就是这些存储介质的驱动程序。与字符设备驱动相比,块设备驱动具有以下主要差异:
① 块设备的数据读写是以“块”为基本单位进行的,“块”是linux虚拟文件系统(VFS)中数据传输的基本单元。而字符设备则以字节为单位进行数据传输,并且无需缓冲机制。
② 块设备在结构上支持随机访问,其读写操作均按照“块”来执行。此外,这类设备会使用缓冲区临时保存数据,在满足特定条件后才会将缓冲区内容一次性写入实际存储介质中。这种设计的目的在于延长存储介质的使用寿命。例如一些闪存产品会标明擦除次数(flash特性决定了在写入前必须先擦除),如可擦除100000次等。通过引入缓冲机制,可以减少对物理存储单元的擦除频率,从而提升整体寿命。
相较于字符设备而言,块设备最显著的特点是支持批量的数据读写操作。当然也可以通过多次调用字符设别的读写接口实现相同目标;但实际硬件操作中存在一些限制:
(1)某些类型的闪存器件在进行写操作前需要先完成当前扇区的擦除动作;
(2)部分具备机械结构的存储装置要求按照地址顺序进行读取或写入才能达到最佳效率水平。因
全部评论 (0)
还没有任何评论哟~
