mtd和嵌入式系统分区

一. MTD介绍

        嵌入式系统的磁盘分区情况,一般由mtd来表示。

        MTD(Memory Technology Device):内存技术设备是Linux的存储设备中的一个子系统。其设计此系统的目的是,对于内存类的设备,提供一个抽象层,一个接口,使得对于硬件驱动设计者来说,只需要去提供最简单的底层硬件设备的读/写/擦除函数就可以了,数据对于上层使用者来说是如何表示的,可以不关心,因为MTD存储设备子系统都帮你做好了。(MTD的主要目的是为了使新的memory设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。

        MTD设备通常可分为四层

        上到下依次是:设备节点、MTD设备层、MTD原始设备层和硬件驱动层。

mtd和嵌入式系统分区_第1张图片

二. 查看设别分区情况

        1. 查看当前设备分区情况:

mtd和嵌入式系统分区_第2张图片

        dev :分区名称;size:当前分区最大字节空间(十六进制表示)

        erasesize:当前分区擦除的最小字节空间(十六进制表示;块大小,linux的flash以块为单位进行擦除

        2. 查看每个分区块数量情况:

mtd和嵌入式系统分区_第3张图片

        每个块的大小在不同系统会有所不同,有的1KB,有的4KB。可用每个分区size除以对应分区块数目计算。

三. 实例

1:计算设备磁盘大小

mtd0: 01000000 00010000 "ALL":注意:size大小是十六进制表示。

        1)先由十六进制表示:

 mtd和嵌入式系统分区_第4张图片

        2)再由十进制计算

mtd和嵌入式系统分区_第5张图片

        即:此设备磁盘空间为16M 

注意

        1. erasesize是本分区最小擦除字节数。

        十六进制(10000)->十进制(65536/1024=64块),该分区每次最小擦除64个块。

mtd和嵌入式系统分区_第6张图片

2. 单位换算:

        1)1MB=1024KB=1024*1024B

        2)8b(bit/比特位)=1B(Byte/字节)

你可能感兴趣的:(Linux/C语言,mtd,磁盘分区)