FLASH分区应用笔记¶
1. 简介¶
Flash 分区通过 excel 表定义,编译工具会根据 excel 生成flash_map.h供代码使用;可通过修改 excel 表实现分区的增删、大小调整。
excel 包含 4 个核心 sheet:FLASH_CONFIG、FLASH_MAP、FS_RES_PATH、MEM_Map_Customize。
2. FLASH_Config说明¶
FLASH_Config Sheet主要对当前产品使用的FLASH进行定义:
选择:表示是否被选择使用
起始地址:FLASH的base addr,参见对应平台mem_map内的base_addr
空间大小:FLASH的总大小
分区对齐IMAGE:Image 分区的Align size
分区对齐非IMAGE:非Image 分区的Align size
C_BUS:对应PSARM的c_bus addr
备注:存储设备的注释说明
3. FLASH_MAP说明¶
FLASH_MAP sheet主要是针对产品功能定义进行分区划分
OFFSET:分区起始的偏移地址
SIZE:分区的大小
PARTITION_TYPE:分区所属类型
类型
说明
BIN
flash分区,需要生成bin文件进行烧录,大小需要对齐,Align size参照FLASH_Config(分区对齐IMAGE),若FS_DIR为有效路径,会通过mkfatimg/mklfsimg工具打包生成对应的bin文件
RSV
预留的FLASH分区,不生成bin文件烧录,常用于NVM分区
FS
以文件的方式存在,放入文件系统空间(root或其它)
BIN_EXT
fat文件系统分区类型,SD/EMMC,在生成对应分区的bin文件后,还会生成mbr.bin供烧录使用
FS_EXT
fat文件系统分区类型,SD/EMMC使用,不生成bin文件烧录,同时将对应分区信息生成写入到mbr.bin供烧录使用
FS_FAT
FAT文件系统分区类型,通过mkfatimg工具打包生成bin文件
FS_LFS
LFS文件系统分区类型,通过mklfsimg打包生成bin文件
XIP:用户软件xip运行地址
IS_RESET:Reserved field,未使用
GC_RATIO:文件系统GC参数 (主要用于 elmfat+dhara文件系统组合时使用)
FS_DIR:文件系统分区mount 路径
PARTITION_MACRO:分区宏定义,flash_map,h内会生成如下分区相关的宏,例如分区宏定义为HCPU_FLASH_CODE,头文件内生成的宏定义如下
HCPU_FLASH_CODE_START_ADDR
HCPU_FLASH_CODE_BURN_ADDR
HCPU_FLASH_CODE_SIZE
HCPU_FLASH_CODE_END_ADDR
4. FS_RES_PATH说明¶
用于定义文件系统目录对应的宏。其中RES_NAME中不可修改,butterfli会使用这些名字去对应相应的资源,然后放在指定的分区和路径下
RES_NAME:资源名称
MACRO:资源路径宏定义
PARTITION:资源所属分区,参见FLASH_MAP sheet添加的分区名称
Sub path:子路径
Full Path:完整路径,由文件系统分区路径+sub path拼接
5. MEM_Map_Customize说明¶
对已有的宏重定义
宏重定义:原有宏定义
选择:是否进行重定义
值:宏重定义的值
6. 如何进行分区的添加/删除¶
参见FLASH_MAP sheet说明根据分区功能进行对应分区的添加和删除。
7. 如何修改二级bootloader在RAM上运行¶
参见 MEM_Map_Customize说明,对BOOTLOADER_XIP_ADDR进行重定义到RAM地址上。
8. 如何使用双文件系统¶
FLASH MAP sheet内,对需要的分区选择不同的文件系统分区类型,menuconfig内打开对应文件系统配置,参见下图