FLASH分区应用笔记
FLASH分区说明
简介
目前Flash分区采用excel表的方式进行分区定义并通过编译工具生成flash_map.h在代码内使用。可以通过修改excel表实现增删分区、修改分区size
excel主要由FLASH_CONFIG、FLASH_MAP、FS_RES_PATH、MEM_Map_Customize 4个sheet构成
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
备注:存储设备的注释说明
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
FS_RES_PATH说明
用于定义文件系统目录对应的宏。其中RES_NAME中不可修改,butterfli会使用这些名字去对应相应的资源,然后放在指定的分区和路径下
RES_NAME:资源名称
MACRO:资源路径宏定义
PARTITION:资源所属分区,参见FLASH_MAP sheet添加的分区名称
Sub path:子路径
Full Path:完整路径,由文件系统分区路径+sub path拼接
MEM_Map_Customize说明
对已有的宏重定义
宏重定义:原有宏定义
选择:是否进行重定义
值:宏重定义的值
如何进行分区的添加/删除
参见FLASH_MAP sheet说明根据分区功能进行对应分区的添加和删除,
如何修改二级boot在ram上运行
参见 MEM_Map_Customize说明,对BOOTLOADER_XIP_ADDR进行重定义到RAM地址上
如何使用双文件系统
FLASH MAP sheet内,对需要的分区选择不同的文件系统分区类型,menconfig内打开对应文件系统配置,参见下图