JL701N的WATCH资源分区功能说明
📎 原始文档:https://www.kdocs.cn/l/ca4U43BESTAe JL701N的WATCH资源分区功能说明
JL701N SDK为701n_watch_release_v3.0.3,板级选择为 CONFIG_BOARD_7012A7_DEMO(内封16M flash),CONFIG_FLASH_SIZE = FLASH_SIZE_16M (128Mbit = 16MB = 0x1000000),采用内置Flash虚拟文件系统(VIRFAT INSERT)模式。以下是完整的Flash分区布局和资源文件对应关系:
一、Flash 分区布局总览
地址 大小 区域名称
────────────────────────────────────────────────────────────
0x000000 ┬─────────────────────────────────
│ Boot/Uboot + System Code + 区域
│ (约 1.125MB)
├─────────────────────────────────
│ 系统资源区
│ (含VM/BTIF等预留区)
│ (~0x5E000, 约376KB)
0x17E000 ├─────────────────────────────────
│ VIRFAT 虚拟文件系统区 (UI资源)
│ 0xE60000 (~14.375MB)
0xFDE000 ├─────────────────────────────────
│ UI VM 区域
│ 0x20000 (128KB)
0xFFE000 ├─────────────────────────────────
│ Flash 尾部保留
│ 0x2000 (8KB)
0x1000000└─────────────────────────────────
二、各区域下载的资源文件详情
1. Boot/Uboot 区域 (0x000000, -boot )
| 文件名 | 说明 |
|---|---|
| uboot.boot | Bootloader 引导程序 |
2. System Code + 系统资源区 ( ~ 0x17DFFF)
通过 isd_download.exe 的 -app 和 -res 参数下载:
| 参数类型 | 文件名 | 说明 |
|---|---|---|
| -app | app.bin | 应用程序代码(text+data+data_code+aec+aac+aptx+common+psram_data_code 合并) |
| -app | cfg_tool.bin | 配置工具数据 |
| -res | p11_code.bin | P11 协处理器固件 |
| -res | tone.cfg | 提示音配置文件 |
| -res | eq_cfg_hw.bin | EQ 音效硬件配置(由 effect_file 目录中对应 bin 复制而来) |
| -res | ui_upgrade/ | UI 升级资源目录 |
| -flash-params | flash_params.bin | Flash 参数配置 |
| -ex_api_bin | user_api.bin | 用户 API 接口 |
| -key | default.key | 加密密钥 |
预留子区域(由 isd_config.ini 工具自动分配地址):
| 预留区 | 大小 | 说明 | OPT |
|---|---|---|---|
| PRCT | CODE_LEN | 代码保护区 | 2 (保护) |
| VM | 100KB | 虚拟存储区(蓝牙配对信息、系统参数等) | 1 (升级不擦) |
| BTIF | 4KB (0x1000) | 蓝牙信息区 | 1 (升级不擦) |
3. VIRFAT 虚拟文件系统区 (0x17E000, 大小 0xE60000)
对应 board_7012a7_demo_cfg.h 中的配置:
#define TCFG_VIRFAT_INSERT_FLASH_BASE 0x17e000
#define TCFG_VIRFAT_INSERT_FLASH_SIZE 0xE60000
下载文件为 new_res.bin(由 fat_comm.exe 打包的 FAT 镜像),包含以下UI资源包:
| 资源包名 | 包含文件 | 说明 |
|---|---|---|
| JL | JL.sty, JL.res, JL.str | 主 UI 样式/资源/字符串 |
| sidebar | sidebar.sty, sidebar.res, sidebar.str, sidebar.tab | 侧边栏 UI 资源 |
| watch | watch.sty, watch.res, watch.str, watch.view, watch.json | 表盘0 资源 |
| watch1 | watch1.sty, watch1.res, watch1.str, watch1.view, watch1.json | 表盘1 资源 |
| watch2 | watch2.sty, watch2.res, watch2.str, watch2.view, watch2.json | 表盘2 资源 |
| watch3 | watch3.sty, watch3.res, watch3.str, watch3.view, watch3.json | 表盘3 资源 |
| watch4 | watch4.sty, watch4.res, watch4.str, watch4.view, watch4.json | 表盘4 资源 |
| watch5 | watch5.sty, watch5.res, watch5.str, watch5.view, watch5.json | 表盘5 资源 |
| font | F_ASCII.PIX, F_GB2312.PIX, F_GB2312.TAB, ascii.res | 字体资源 |
打包命令(download_insert.bat):
fat_comm.exe -pad-backup2 -force-align-fat -out new_res.bin -image-size 16
-filelist JL sidebar watch watch1 watch2 watch3 watch4 watch5 font
-remove-empty -remove-bpb -mark-bad-after 0xe60000 -address 0
4. UI VM 区域 (0xFDE000, 大小 0x20000)
| 起始地址 | 大小 | 说明 |
|---|---|---|
| 0xFDE000 | 128KB (0x20000) | UI 虚拟内存存储(表盘设置、UI 状态等用户数据) |
5. Flash 尾部保留 (0xFFE000, 大小 0x2000)
| 起始地址 | 大小 | 说明 |
|---|---|---|
| 0xFFE000 | 8KB (0x2000) | Flash 尾部保留空间,不可使用 |
三、固件打包输出文件
下载完成后还会生成以下固件文件:
| 文件名 | 说明 |
|---|---|
| jl_isd.fw | 完整固件(含 ota.bin 和 script.ver) |
| update.ufw | 升级固件包(由 jl_isd.fw 转换) |
| upgrade.zip | 升级压缩包(包含 update.ufw) |
四、关键配置来源
- 板级选择: board_config.h → CONFIG_BOARD_7012A7_DEMO
- Flash 大小: board_7012a7_demo_global_build_cfg.h → FLASH_SIZE_16M
- Flash 分区: board_7012a7_demo_cfg.h (第126~166行)
- 下载脚本: download_insert.bat
- ISD 配置规则: isd_config_rule.c根据对代码的分析,当前选择的板级是 CONFIG_BOARD_7012A7_DEMO(内封8/16M flash),CONFIG_FLASH_SIZE = FLASH_SIZE_16M(16MB = 128Mbit)。在此配置下 TCFG_VIRFAT_INSERT_FLASH_ENABLE 被使能,UI资源直接写入内置Flash(无需外挂Flash)。
内置 128Mbit (16MB) Flash 分区布局
地址范围 大小 区域说明
─────────────────────────────────────────────────────────
0x000000 ~ ~几KB Boot/Uboot 区域
~ 0x17DFFF ~0.375MB Code/App + 系统资源 + 预留区
0x17E000 ~ 0xFDDFFF ~14.375MB VIRFAT 虚拟文件系统 (UI资源)
0xFDE000 ~ 0xFFDFFF 128KB UI VM 存储区域
0xFFE000 ~ 0xFFFFFF 8KB Flash 尾部保留
─────────────────────────────────────────────────────────
合计 16MB (0x1000000)
一、系统区域 (0x000000 ~ 0x17DFFF)
通过 isd_download.exe 烧录,包含以下资源文件:
| 资源文件 | 说明 | 下载参数 |
|---|---|---|
| uboot.boot | Bootloader引导程序 | -uboot |
| app.bin | 应用程序代码(text+data+overlay等段合并) | -app |
| cfg_tool.bin | 配置工具数据 | -app |
| p11_code.bin | P11协处理器固件 | -res |
| tone.cfg | 提示音配置 | -res |
| eq_cfg_hw.bin | 音效EQ硬件配置 | -res |
| flash_params.bin | Flash参数配置 | -flash-params |
| user_api.bin | 用户API扩展接口 | -ex_api_bin |
| ui_upgrade/ | UI升级资源目录 | -res |
| br28loader.bin | BR28 Loader(升级用) | 打包进fw |
| ota.bin | OTA升级文件 | 打包进fw (type=100) |
系统区内的预留子区域(由工具自动分配地址):
| 预留区 | 大小 | 说明 |
|---|---|---|
| PRCT | CODE_LEN | 代码保护区 (OPT=2, 写保护) |
| VM | 100KB | 虚拟存储区 (蓝牙配对信息等, OPT=1) |
| BTIF | 4KB | 蓝牙信息存储区 (OPT=1) |
二、VIRFAT 虚拟文件系统区域 (0x17E000 ~ 0xFDDFFF)
大小 0xE60000(约14.375MB),存储打包后的 new_res.bin(FAT格式镜像),包含所有UI资源:
| 资源包名 | 包含的源文件 | 说明 |
|---|---|---|
| JL | JL.sty, JL.res, JL.str | 主UI风格/图片/字符串资源 |
| sidebar | sidebar.sty, sidebar.res, sidebar.str, sidebar.tab | 侧边栏资源 |
| watch | watch.sty, watch.res, watch.str, watch.view, watch.json | 表盘0资源 |
| watch1 | watch1.sty, watch1.res, watch1.str, watch1.view, watch1.json | 表盘1资源 |
| watch2 | watch2.sty ... watch2.json | 表盘2资源 |
| watch3 | watch3.sty ... watch3.json | 表盘3资源 |
| watch4 | watch4.sty ... watch4.json | 表盘4资源 |
| watch5 | watch5.sty ... watch5.json | 表盘5资源 |
| font | F_ASCII.PIX, F_GB2312.PIX, F_GB2312.TAB, ascii.res | 字体资源 |
打包命令(来自 download_insert.bat):
fat_comm.exe -pad-backup2 -force-align-fat -out new_res.bin -image-size 16
-filelist JL sidebar watch watch1 watch2 watch3 watch4 watch5 font
-remove-empty -remove-bpb -mark-bad-after 0xe60000 -address 0
isd_config 中对应配置(来自 isd_config_rule.c:564):
FATFSI_FILE = new_res.bin
FATFSI_ADR = 0x17E000
FATFSI_LEN = 0xE60000
FATFSI_OPT = 1
三、UI VM 存储区域 (0xFDE000 ~ 0xFFDFFF)
大小 0x20000(128KB),用于UI相关的虚拟内存数据持久化存储。
UIVM_ADR = 0xFDE000
UIVM_LEN = 0x20000
UIVM_OPT = 1
来源: board_7012a7_demo_cfg.h:164
四、Flash 尾部保留 (0xFFE000 ~ 0xFFFFFF)
大小 8KB,Flash尾部保留空间,不可使用。
关键配置文件索引
| 文件 | 作用 |
|---|---|
| board_7012a7_demo_cfg.h | VIRFAT分区地址/大小定义 |
| board_7012a7_demo_global_build_cfg.h | FLASH_SIZE=16M等全局构建配置 |
| isd_config_rule.c | Flash预留区/分区规则定义 |
| download_insert.bat | INSERT模式下载脚本(资源写入内置Flash) |
| download.c | 下载流程控制(选择download_insert.bat) |