FLASH分区¶
FLASH分区也称Flash_map,用于对Flash进行分配,从而生成分区信息。
1. 简介¶
Flash 分区(Flash_map)通过 excel 表定义,编译工具会根据 excel 生成flash_map.h供代码使用;可通过修改 excel 表实现分区的增删、大小调整。
Flash_map的模板位于
solution\framework\__template__\config\hcpu\flash_map目录下,每个板级工程选择对应的flash_map_xxx.xlsx来定义Flash分区。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:分区所属类型类型
说明
BINflash分区,需要生成bin文件进行烧录,大小需要对齐,Align size参照FLASH_Config(分区对齐IMAGE),若FS_DIR为有效路径,会通过mkfatimg/mklfsimg工具打包生成对应的bin文件
RSV预留的FLASH分区,不生成bin文件烧录,常用于NVM分区
FS以文件的方式存在,放入文件系统空间(root或其它)
BIN_EXTfat文件系统分区类型,SD/eMMC,在生成对应分区的bin文件后,还会生成mbr.bin供烧录使用
FS_EXTfat文件系统分区类型,SD/eMMC使用,不生成bin文件烧录,同时将对应分区信息生成写入到mbr.bin供烧录使用
FS_FATFAT文件系统分区类型,通过mkfatimg工具打包生成bin文件
FS_LFSLFS文件系统分区类型,通过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_ADDRHCPU_FLASH_CODE_BURN_ADDRHCPU_FLASH_CODE_SIZEHCPU_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上运行¶
参见 5. MEM_Map_Customize说明,对BOOTLOADER_XIP_ADDR进行重定义到RAM地址上。
8. 如何使用双文件系统 ¶
在
FLASH MAP sheet中为各分区选择文件系统类型,例如FS_FAT或FS_LFS;这是分区表和镜像打包配置,不是 menuconfig 选项。
若分区使用 FAT 文件系统,文件系统开关的完整配置路径为:
menuconfig (Top) → SiFli SDK configuration → RTOS → RT Thread → RT-Thread Components → Device virtual file system → Using device virtual file system (RT_USING_DFS) → Enable elm-chan fatfs (RT_USING_DFS_ELMFAT)。先启用RT_USING_DFS;RT_USING_DFS_ELMFAT位于其子菜单中。启用RT_USING_DFS会自动选择RT_USING_MUTEX。
FS_LFS或其他文件系统分区还必须启用与其匹配的文件系统组件;应以实际选用组件在Device virtual file system菜单中的 Kconfig 选项为准,不能仅修改FLASH MAP sheet后假定运行时文件系统已启用。