mtd 分区表计算方式

文章详细介绍了如何计算和配置MTD(MemoryTechnologyDevice)设备的分区大小,包括vnvm、uboot、boot、rootfs、misc、recovery和userdata等分区。计算公式基于erasesize,通过起始地址和分区大小进行换算,例如uboot分区大小为5MB,起始地址为0x00001800。整个过程展示了嵌入式系统中存储管理的关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

详细的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=10240
512/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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值