详细的MTD设备分析见opensource
https://www.opensourceforu.com/2012/01/working-with-mtd-devices/
下面主要介绍如何计算分区大小
mtd 分区表计算方式
dev 分区大小 erasesize
name 换算M mtd0 00100000 00020000 vnvm 1M
mtd1 00500000 00020000 uboot 5M
mtd2 00800000 00020000 boot 8M
mtd3 05500000 00020000 rootfs 85M
mtd4 00080000 00020000 misc 0.5M
mtd5 01000000 00020000 recovery 16M mtd6 089e0000
00020000 userdata 137.875M
parameter 分析
device/xx/parameter.txt
分区大小 @ 起始地址 sector = 512换算成M 公式:分区大小 * sector / 1024 / 1024
0x00000800@0x00001000(vnvm)0x800 = 2048sector/1024/1024 = 1M
0x00002800@0x00001800(uboot)0x2800=10240512/1024/1024 = 5M
0x00004000@0x00004000(boot)0x4000 =…=8M
0x00014000@0x00008000(rootfs)… = 85M 0x00000400@0x0001c000(misc)…
= 0.5M 0x00008000@0x0001c400(recovery)… = 16M
-@0x00024400(userdata:grow)… = 137.875M
起始地址 = 前一个分区大小 + 前一个分区起始地址
eg:
(uboot)起始地址 = (vnvm)分区大小 + (vnvm)起始地址
= 0x00000800 + 0x00001000
= 0x00001800