我需要根据要写入该卷的 ubifs 映像(例如 rootfs.ubifs)的大小创建一个新卷(它可以是静态的)。目的是创建具有将“rootfs.ubifs”写入该卷并从中引导设备所需的最小可能大小的卷。
有人可以在这方面帮助我吗?
我需要根据要写入该卷的 ubifs 映像(例如 rootfs.ubifs)的大小创建一个新卷(它可以是静态的)。目的是创建具有将“rootfs.ubifs”写入该卷并从中引导设备所需的最小可能大小的卷。
有人可以在这方面帮助我吗?
O
- 与以字节为单位存储 EC 和 VID 头相关的开销,即 O = SP - SL。SP
是物理擦除块大小,SL
是UbiF将得到的。通常,它是最小页面大小乘以 2。一个代表一个EC
,另一个代表一个VID
;这是UBI用来管理闪存的两种结构。两者都在ubi-media.h中定义。 EC
是ubi_ec_hdr
结构,VID
是ubi_vid_hdr
结构。EC
每次擦除擦除块时都会写入或擦除计数,这负责磨损均衡。注意VID
or卷 id 标头允许UBI支持多个卷并提供PEB到LEB(物理到逻辑擦除块)管理。
所以对于没有子页的 2k 页NAND闪存,它是 4k;如果支持子页面,则可以将两个标题放在同一页面中,并且只需要 2k。如果您的 Flash 页面大小不同,您只需在没有子页面的情况下乘以 2,并且仅在有子页面时才添加页面开销。NOR flash的开销是 256 字节,因为它没有pages的概念。
为了创建你的rootfs.ubifs,你必须指定一个逻辑擦除块大小(to mkfs.ubifs
)。逻辑擦除块( LEB
) 和物理擦除块( )之间的区别PEB
只是上面记录的开销。将rootfs.ubifs乘以PEB
/LEB
以获得UBI 卷的最小可能大小。
注意:如果在实际擦除和写入之间擦除中断(复位/电源循环),则在UBI重新读取ubi 设备时,使用所有其他擦除块EC
的平均值来设置擦除计数。