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进行使用选择&&定义

  1. 选择:表示是否被选择使用

  2. 起始地址:FLASH的base addr,参见对应平台mem_map内的base_addr

  3. 空间大小:FLASH的总大小

  4. 分区对齐IMAGE:Image 分区的Align size

  5. 分区对齐非IMAGE:非Image 分区的Align size

  6. C_BUS:对应PSARM的c_bus addr

  7. 备注:存储设备的注释说明

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内打开对应文件系统配置,参见下图