资源目录结构

1. 内置资源

1.1 概念

内置应用绑定的资源,其存放与访问方式随外部存储类型(NOR/NAND/eMMC)不同而存在差异,具体规则参考内置资源的存放和访问

  • NOR系统: 编译时资源生成c数组,与code一起编译,资源紧凑排放。访问时,CPU或EPIC可以直接访问

  • NAND/eMMC系统:

    • builtin_res: 与NOR系统的内置资源处理方式一样,但存储是以块的方式存储。访问时,需要通过驱动进行访问。由于NAND/eMMC方案中images通常很大,建议固化images,OTA升级的时候只升级images_update

    • 文件系统方案: butterfli编译资源的时候,编译为bin文件。访问时,是以文件的方式进行访问

1.2 目录

内置资源统一存放于路径 solution/examples/xxx/resource/ 下(xxx 为具体产品型号,如 watch),目录按资源类型与功能细分,以下为典型产品的目录说明:

子目录具体说明如下:

目录

说明

app_tool

SF_TOOL目录,暂未使用

built_in

和主代码一起编译的资源,NAND工程/NOR Ramrun工程OTA时使用

fonts

主代码使用的字体,包括freetype和bitmap

images

内置应用的资源

imgage_emoji

emoji资源

imgages_fs

存放背景图,用于表盘更换背景

images_update

NAND/eMMC使用builtin_res方案时,用于存放OTA更新资源

langs

存放主代码使用的多语言excel表

music

存放音乐

ring

存放铃音

特别说明,images_update:

  1. 设计目的

  • NAND/eMMC 系统中images目录资源通常体积庞大,若每次 OTA 均升级整个images分区,会导致升级耗时过长。images_update用于存放后续新增 / 更新的图片资源,实现 OTA 增量更新,避免全量升级。

  1. 核心规则

  • 资源命名:更新的图片需修改文件名,确保原images分区中的旧文件不被覆盖(旧文件保留但不再被调用);

  • 编译链接:Butterfli 工具编译时,images_update中的资源会被放入OTA_IMG段,通过工程sct文件指定存储分区(LR_IROM4)。

  1. 链接配置

#if HCPU_FLASH2_IMG_UPGRADE_SIZE > 0
LR_IROM4 HCPU_FLASH2_IMG_UPGRADE_START_ADDR HCPU_FLASH2_IMG_UPGRADE_SIZE  {  ; load region size_region
   ER_IROM4 HCPU_FLASH2_IMG_UPGRADE_START_ADDR HCPU_FLASH2_IMG_UPGRADE_SIZE  {  ; RW data
   *.o (.OTA_IMG.*)
   }
}
#endif
  1. 配置方式

  • 配置builtin_res和images_update

2. 外置资源目录

所有外置应用的资源是单独分开的,外置资源目录参考"动态应用指南-目录结构"章节外置应用目录结构