mtd设备驱动

常见的fs有ext2/3/4,这都是针对磁盘设计的。在嵌入式文件系统ES中,存储设备是flash,flash有和磁盘不一样的特殊性。

如按照blocksize划分,每个bls有几十K,但是磁盘的一个簇才512K,这样导致擦除一个BL需要花费很长的时间;flash操作

的特性是一次必须针对一个block,如果修改一个字节,必须先擦除128K,这样不划算;flash的每个blk擦写次数都是有限的,

频繁的对一个blk进行操作,会很快死掉。针对nand flash的特性,设计了jffs2(journaling flash file system),关键点就是引入

了损耗均衡,也就是每次擦写都不会停留在一个blk上。


mtd(memory technology device)是为了访问memory设备(rom/flash)的linux子系统,mtd存在的目的是在硬件和上层之间提供一个

抽象的接口,使新的memory设备驱动更加简单。

flash硬件驱动层基于特定的处理器和flash芯片,具体的结构体由flash硬件类型来定义,如pxa3xx_bbm。mtd原始设备层中用

结构体mtd_info来描述mtd原始设备,这个结构体中有一个域会指向flash硬件驱动层中所有使用的结构体,而mtd_info又内嵌在

mtd_part结构体中,nandflash使用时,都会划分为多个分区,在nand的驱动加载执行相应的probe函数时,会将nand的每一个分

区用mtd_part来描述。mtd_part中还有一个master指针,指向整片flash原始设备的mtd_info结构体,这片描述整片nand的mtd_info

结构体也叫做主分区。

如果系统中有2片nand flash,每个都有8个分区,那么系统中总共存在有18个mtd_info结构体对象,mtd_table数组中有16个指针

已经有归属。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值