Solution目录结构

主目录组成

Solution 软件的主目录核心分为 SDKSolution 两个子目录,二者分工明确,共同支撑开发流程,具体说明如下:

SDK 子目录

基于 SDK 2.X 稳定版本构建,仅在以下必要场景随 Solution 版本同步更新,避免频繁变更影响稳定性:

  • 漏洞修复:修复 SDK 原生存在的功能bug或兼容性问题;

  • 功能集成:新增 Solution 框架依赖的核心功能(如特定硬件驱动、通信协议适配);

  • 性能优化:针对 Solution 场景做底层性能调优(如内存占用、运行效率提升);

  • 需求补充:若需集成未包含的功能,可向开发组提需求,或自行合入代码(需遵循 SDK 代码规范)。

Solution 子目录

Solution 开发的核心目录,包含从框架到工具、从组件到例程的完整开发资源,支持客户按需选用组件,快速搭建产品并推进量产。目录结构如下图所示

../_images/directory_main.png

Solutiont子目录详细介绍

Solution 子目录是开发核心目录,包含 framework(主框架)components(组件库)examples(示例工程)tools(开发工具) 四大核心模块,各模块功能、目录组织及使用逻辑如下:

framework

提供 Solution 运行的底层核心框架,涵盖 UI 调度、基础组件、系统服务及板级配置模板,是所有应用开发的“地基”,确保功能兼容性与稳定性。

核心组成

子目录/文件

功能说明

gui_fwk

UI 调度主框架:负责应用间调度切换、应用内页面管理、
动画效果(如过渡动画、滑动动效)调度,保障 UI 操作流畅度。

gui_widget

基础 UI 组件库:封装按钮、列表、图表、弹窗、进度条等常用控件,支持自定义样
式(如颜色、字体)与交互逻辑(如点击、滑动事件),可直接调用。

service

系统服务层,向上提供统一调用接口。包括IPC通信机制、线程、多语言、flashdb、
内存管理、动态应用机制、电池管理、button、低功耗等服务

__template__

板级配置模板目录:存放每个板级相关的配置文件,包括:
- flash 分区表(flash_map.xlsx
- 链接脚本(link_flash.sct
- 外设初始化配置(msp.c
工程相关的模版

关键注意事项

  • 配置加载逻辑:ButterFli 开发工具选择板级配置时,会自动载入 __template__ 下的文件初始化工程,无需手动复制;

  • 文件修改规则:若需调整 flash 分区、链接地址、外设参数,必须直接修改 __template__ 下的对应文件——若修改 HCPU/LCPU/Simulator 目录下的同名文件,编译时会被模板文件覆盖,导致修改失效。

目录结构

components(组件库目录)

提供解耦式功能组件,覆盖通信、硬件适配、系统服务等场景,组件间独立无强依赖,支持按需集成,灵活搭建产品功能,避免冗余代码,降低开发与维护成本。

组件分类与功能

组件目录

功能说明

alipay

集成支付宝相关功能组件

app_tool

应用工具组件

battery

电池管理用户相关组件

ble

蓝牙低功耗(BLE)通信组件

bt

传统蓝牙(BT)组件

button

按键用户相关组件

call

通话功能组件

comm

通用通信组件

db

实时数据库组件

fs

文件操作系统组件

lcpu

LCPU服务组件

message

消息管理组件

micropython

MicroPython 支撑组件

music

音乐播放组件

nvm

NVM存储组件

nxp

NXP GUI Builder适配组件

ota

OTA 升级组件

pm

低功耗相关电源管理组件

quickjs

QuickJS 引擎组件

sensor

传感器算法及调度组件

squareline

Squareline Studio 适配组件,

tf

TF 卡管理组件

tf_install

TF 卡安装工具组件

usb_mstorage

USB 大容量存储组件

weather

天气服务组件

xiaozhi

小智 AI 交互组件

使用逻辑

  • 组件通过menuconfig“宏定义开关”控制是否集成;

目录结构

examples

包含产品例程,覆盖新手入门到量产参考的需求,代码注释清晰,可直接参考复用,降低学习与开发成本。

目录组织规则

  • 带下划线前缀(_XXX):非板级工程,通用演示或工具适配类,不绑定具体硬件;

  • 不带下划线前缀:板级工程,绑定特定硬件方案(如手表、宫格终端),可直接编译烧录验证。

各子目录详细说明

子目录名称

工程类型

功能说明

_app_demo

通用组件demo

展示单个组件的基础用法,目前持续补充完善,
适合新手学习组件调用。

_dynamic_app

动态应用示例

动态应用/表盘开发示例,支持 3 种开发方式:
- 编程语言:C、QJS、MicroPython;
- 可视化工具:GUI_Builder 零编程开发;
- 加载控制:通过目录下 readme.ini 配置生效宏与分辨率,
控制 ButterFli 是否加载。

_app_tool_simu

GUI 仿真工程

仅用于 GUI_Builder 工具的 PC 仿真:根据用户设置分辨率
、色深参数,生成匹配的仿真工程,确保 PC 端预览效果与
板级实际显示一致。

watch

手表板级工程

手表类产品例程,包含蜂窝菜单、平铺界面、表盘框架
三大核心能力,可直接作为智能手表开发的基础工程。

gride_view

宫格板级工程

极简宫格菜单工程,无平铺和表盘框架,
适合简易智能终端。

container

单应用板级工程

无默认应用的“空框架”工程:烧录后开机黑屏(日志正常),
需通过手机 APP 或串口推送应用,快速搭建定制化产品。
注意,container没有内置setting的应用,因此设计时
只支持一个单应用(推送时会删除前一个应用)

hello_world

基础入门工程

最简单的应用示例,演示如何基于 Solution 框架创建应用
(如显示文本、绑定点击事件),适合新手入门框架逻辑。

板级工程内部结构

每个不带下划线的板级工程(如 watchgride_viewcontainer),内部按“功能模块”标准化组织,方便定位代码,典型结构如下:
(包含 application(应用代码)、project(工程)、resource(资源)等子目录)

tools(工具目录)

提供 Solution 开发全流程所需的开发辅助工具产线工具,覆盖“开发-调试-量产”各环节,提升效率并保障量产稳定性。

  1. 开发工具ButterFli:一站式开发工具,集成工程创建、编译、烧录、调试功能

  2. 产线烧写工具Impeller:16 通道并行烧录工具(支持 SWD/UART 模式)

  3. GUI_Builder工具:可视化 UI 开发工具,零编程制作表盘/应用

  4. Graphics_convert:图形转换工具,提供图片、视频的转换,主要用于外置SD/TF卡的资源