Solution目录结构¶
1. 主目录组成¶
Solution 软件的主目录核心分为 SDK 和 Solution 两个子目录,二者分工明确,共同支撑开发流程,具体说明如下:
1.1 SDK 子目录¶
基于 SDK 2.X 稳定版本构建,仅在以下必要场景随 Solution 版本同步更新,避免频繁变更影响稳定性:
漏洞修复:修复 SDK 原生存在的功能bug或兼容性问题;
功能集成:新增 Solution 框架依赖的核心功能(如特定硬件驱动、通信协议适配);
性能优化:针对 Solution 场景做底层性能调优(如内存占用、运行效率提升);
需求补充:若需集成未包含的功能,可向开发组提需求,或自行合入代码(需遵循 SDK 代码规范)。
1.2 Solution 子目录¶
Solution 开发的核心目录,包含从框架到工具、从组件到例程的完整开发资源,支持客户按需选用组件,快速搭建产品并推进量产。目录结构如下图所示
2. Solution子目录详细介绍¶
Solution 子目录是开发核心目录,包含 framework(主框架)、components(组件库)、examples(示例工程)、tools(开发工具) 四大核心模块,各模块功能、目录组织及使用逻辑如下:
2.1 framework¶
提供 Solution 运行的底层核心框架,涵盖 UI 调度、基础组件、系统服务及板级配置模板,是所有应用开发的“地基”,确保功能兼容性与稳定性。
2.1.1 核心组成¶
子目录/文件 |
功能说明 |
|---|---|
|
UI 调度主框架:负责应用间调度切换、应用内页面管理、动画效果(如过渡动画、滑动动效)调度,保障 UI 操作流畅度。 |
|
基础 UI 组件库:封装按钮、列表、图表、弹窗、进度条等常用控件,支持自定义样式(如颜色、字体)与交互逻辑(如点击、滑动事件),可直接调用。 |
|
系统服务层,向上提供统一调用接口。包括IPC通信机制、线程、多语言、flashdb、内存管理、动态应用机制、电池管理、button、低功耗等服务 |
|
工程生成模板目录:存放 Butterfli 创建/初始化工程时使用的配置和工程骨架,包括:
- HCPU flash 分区表( |
2.1.2 关键注意事项¶
配置加载逻辑:Butterfli 开发工具根据
PrjCfg.ini中的路径,从__template__载入 flash 分区表、链接脚本、HCPU/LCPU MSP 文件以及工程骨架,用于初始化或更新工程;
警告
若需调整 flash 分区、链接地址、MSP/MPU/cache 等模板配置,请修改 __template__ 下的对应文件。不要修改 HCPU/LCPU/Simulator 工程目录下由模板生成的同名文件;这些文件在后续重新生成或同步工程时可能被模板覆盖,导致修改失效。
2.1.3 目录结构¶

2.2 components(组件库目录)¶
提供解耦式功能组件,覆盖通信、硬件适配、系统服务等场景,组件间独立无强依赖,支持按需集成,灵活搭建产品功能,避免冗余代码,降低开发与维护成本。
2.2.1 组件分类与功能¶
组件目录 |
功能说明 |
|---|---|
|
支付宝支付码、乘车码、安全、通信及适配层相关组件 |
|
应用工具组件,按 |
|
电池检测、温控、强制充电等电池服务组件 |
|
BLE 服务、连接、NVM、AMS/ANCS/HID、OTA、微信及 Zephyr BLE 相关组件 |
|
传统蓝牙服务组件,覆盖 HF、A2DP、SPP、AVRCP、AG、HID、PBAP、GATT 等 profile |
|
按键服务组件,主要面向 HCPU 或 PC 仿真工程 |
|
蓝牙通话功能组件,随 |
|
Solution 通用通信与信息封装组件 |
|
HCPU/PC 仿真侧实时数据库组件 |
|
频响相关功能组件,主要用于 HCPU 或 PC 仿真工程 |
|
文件系统扩展组件,依赖 DFS 或 PC 仿真环境 |
|
HCPU/LCPU 协同相关服务组件 |
|
应用消息管理组件,随 |
|
开机性能/指标统计组件,随 |
|
MicroPython 与 LVGL 绑定支撑组件,按存储介质和色深选择生成文件 |
|
音乐播放组件,支持本地、BLE、BT 等音频播放路径 |
|
网络应用服务组件,随 |
|
NVM 参数存储组件,主要面向 HCPU 或 PC 仿真工程 |
|
NXP GUI Guider 动态应用模板与适配组件 |
|
OTA 升级组件,包含普通 OTA、扩展 OTA、传输、OTA Manager 等子模块 |
|
低功耗和电源管理相关组件,支持可选动画逻辑 |
|
QuickJS 与 LVGL/脚本运行框架组件 |
|
录音/音频采集相关服务组件,非 LCPU 和非 OTA Manager 工程集成 |
|
传感器服务、NVM、算法及 GPS/加速度/心率/环境光/磁力计等驱动适配组件 |
|
SquareLine Studio 动态应用模板与适配组件 |
|
组件构建、工程生成或发布流程使用的辅助脚本目录 |
|
系统配置服务组件,随 |
|
TF 卡服务组件,随 |
|
TF 卡安装工具组件,依赖 DFS 和 TF 卡能力 |
|
USB 大容量存储组件,随 |
|
天气服务组件,依赖 WebClient 或 PC 仿真环境 |
|
Wi-Fi 应用与 Wi-Fi NVM 管理组件,随 |
|
小智 AI 交互组件,依赖网络应用能力并支持 WebSocket/MQTT 路径 |
说明:
Kconfig和SConscript是组件目录的配置/构建入口文件,不作为独立组件列入上表。
2.2.2 使用逻辑¶
组件通过 menuconfig/Kconfig 中的宏定义开关控制是否集成,最终在各组件的
SConscript中通过GetDepend()判断后加入编译;常见组件开关关系如下,实际是否编译还会叠加 HCPU/LCPU、PC 仿真、OTA Manager 等工程类型条件:
组件目录 |
主要宏/条件 |
说明 |
|---|---|---|
|
|
支付宝相关功能按支付码、乘车码、HAL/FWK/第三方库等子模块分别裁剪 |
|
|
应用工具支持 |
|
|
电池服务、检测、温控、强制充电等模块按工程侧和仿真开关集成 |
|
|
BLE 基础服务及 AMS/ANCS/HID/OTA/Zephyr BLE 等子能力 |
|
|
传统蓝牙及 profile 级裁剪 |
|
|
HCPU/仿真侧按键服务 |
|
|
蓝牙通话服务 |
|
默认加入 |
通用通信/信息封装 |
|
|
HCPU/仿真侧数据库服务 |
|
|
频响相关功能 |
|
|
文件系统相关扩展 |
|
默认加入 |
HCPU/LCPU 协同服务 |
|
|
应用消息服务 |
|
|
开机指标统计 |
|
|
MicroPython/LVGL 绑定,并按存储介质和色深选择源码 |
|
|
本地、BLE、BT 音乐路径按音频与协议栈开关裁剪 |
|
|
网络应用服务 |
|
|
HCPU/仿真侧 NVM 服务 |
|
|
NXP GUI Guider 动态应用模板 |
|
|
OTA 应用、扩展 OTA、传输和 OTA Manager 按场景裁剪 |
|
|
电源管理及可选动画 |
|
|
QuickJS/LVGL 脚本框架 |
|
非 |
录音/音频采集服务 |
|
|
传感器服务、算法和具体器件驱动按能力裁剪 |
|
|
SquareLine Studio 动态应用模板 |
|
|
系统配置服务 |
|
|
TF 卡服务 |
|
|
TF 卡安装工具 |
|
|
USB 大容量存储 |
|
|
天气网络服务 |
|
|
Wi-Fi 应用与 NVM 管理 |
|
|
小智 AI 交互,并按 WebSocket/MQTT 网络路径裁剪 |
2.3 examples¶
包含产品例程,覆盖新手入门到量产参考的需求,代码注释清晰,可直接参考复用,降低学习与开发成本。
2.3.1 目录组织规则¶
带下划线前缀(_XXX):非板级工程,通用演示或工具适配类,不绑定具体硬件;
不带下划线前缀:板级工程,绑定特定硬件方案(如手表、宫格终端),可直接编译烧录验证。
2.3.2 各子目录详细说明¶
2.3.3 板级工程内部结构¶
每个不带下划线的板级工程(如 watch、gride_view、container),内部按“功能模块”标准化组织,方便定位代码,典型结构如下:
(包含 application(应用代码)、project(工程)、resource(资源)等子目录)

2.4 tools(工具目录)¶
提供 Solution 开发全流程所需的开发辅助工具与产线工具,覆盖“开发-调试-量产”各环节,提升效率并保障量产稳定性。
开发工具Butterfli:一站式开发工具,集成工程创建、编译、烧录、调试功能
产线烧写工具Impeller:16 通道并行烧录工具(支持 SWD/UART 模式)
GUI_Builder工具:可视化 UI 开发工具,零编程制作表盘/应用
Graphics_convert:图形转换工具,提供图片、视频的转换,主要用于外置SD/TF卡的资源