MTD是干什么的

来源:互联网 发布:大酒神淘宝店 编辑:程序博客网 时间:2024/06/02 08:52

    MTD(memory technology device 存储 技术设备 ) 是用于访问 memory 设备( ROM 、 flash )的 Linux 的子系统。

    先来看一个图:

        FLASH是嵌入式设备最常用的介质,FLASH有一个特性,它不能像PC机使用的磁盘一样可以重复写一个单元的数据。FLASH必须事先擦除然后再写入。这个特性使得PC机上的文件系统如FAT/NTFS/Ext等不能直接使用到FLASH上。所以FLASH设备上的JFFS和YAFFS等嵌入式文件系统诞生了,MTD设备层位于文件系统和FLASH硬件驱动层之间,它是一个桥梁。有了MTD,从文件系统编写者的角度看,他无须关心使用了何种类型的FLASH,甚至是其它类型的存储介质,他只调用MTD提供的接口;从硬件驱动编写者的角度看,他无须关心使用了何种文件系统,他只要编写少量的与MTD接口的代码,甚至不用写一行代码,也能使用新加入的FLASH工作,因为MTD本身就提供了很多驱动代码,这正是MTD设计者的英明之处。

        如果在嵌入式linux中使用传统的PC机文件系统FAT/NTFS/Ext,那么需要加一个转换层,也就是上图中FTL/NFTL。FTL是Flash translation layer的缩写,它应用于Nor falsh。NFTL是NandFlash translation layer的缩写,它应用于Nand Flash。

0 0
原创粉丝点击