快速熟悉 Solution 代码框架¶
本章节面向第一次拿到 Solution 代码的开发者,帮助你用较短时间建立整体认识:代码包有哪些目录、应该先选哪个工程、配置从哪里确认、后续开发应该从哪里开始。
如果你刚接触 Solution,不建议一上来就直接改源码。更推荐先按下面的顺序走一遍,把“目录、工程、配置、运行、开发”这几件事串起来。
1. 推荐上手流程¶
先了解整体目录:看在线文档或
solution代码下面的readme.md。选择合适的参考工程:例如
hello_world、watch、grid_view。阅读工程和模块目录下的
readme.md:先确认代码位置和入口。参考
kconfig_readme.md确认工程配置:根据目标产品检查menuconfig配置。编译、烧录并运行工程:先跑通基础流程,再验证产品工程。
进入业务开发和板级验证:修改应用、资源、组件,并做稳定性验证。
简单理解为:
先看文档 → 再选工程 → 再看 readme.md → 再确认配置 → 再运行验证 → 最后开发功能
2. 第一步:先了解整体目录¶
拿到代码后,建议先看两个入口:
入口 |
作用 |
|---|---|
在线文档:Solution目录结构 |
从文档角度了解 SDK、Solution、framework、components、examples、tools 等目录的分工 |
本地文件: |
从代码仓角度快速定位常用目录、示例工程、框架入口和开发建议 |
Solution 代码包的主目录可以先按下面方式理解:
代码包根目录
├── sdk/ # 底层 SDK、驱动、RTOS、中间件和第三方库
└── solution/ # Solution 产品方案层,客户主要开发目录
├── framework/ # Solution 主框架和系统服务
├── components/ # 蓝牙、Wi-Fi、传感器、OTA 等可选组件
├── examples/ # 产品工程和示例工程
├── tools/ # Butterfli、GUI Builder 等工具
├── readme.md # solution 目录快速导航
└── kconfig_readme.md # 常用 Kconfig/menuconfig 配置说明
说明:
sdk更偏底层能力solution更偏产品方案和应用开发。
客户做产品开发时,大多数时间会在 solution/examples、solution/components 和 solution/framework 下面查代码。
3. 第二步:选择合适的参考工程¶
了解目录之后,不要马上从零开始建工程。建议先选择一个和目标产品最接近的参考工程,在它的基础上理解和修改。
常见选择如下:
目标 |
建议先看 |
说明 |
|---|---|---|
第一次熟悉编译、烧录和应用入口 |
|
最简单的入门工程,适合先跑通开发流程 |
手表、手环、带表盘和菜单的产品 |
|
包含表盘、菜单、平铺、常见系统应用等能力 |
只需要轻量宫格菜单的产品 |
|
比 watch 更轻量,适合简单带屏产品 |
单应用或空框架产品 |
|
默认无内置应用,适合后装应用或高度定制产品 |
动态表盘、动态应用、GUI Builder 应用 |
|
用于学习外置表盘、外置应用和工具生成应用 |
如果还不确定选哪个工程,建议先看:
solution/examples/readme.md
该文件会从示例角度说明不同工程的用途和阅读顺序。
4. 第三步:阅读目录下的 readme.md¶
从 Solution V2.6 开始,代码仓中很多关键目录都补充了 readme.md。这些文件不是替代在线文档,而是帮助你在看源码时快速定位。
建议阅读方式如下:
进入一个目录
↓
先看该目录 readme.md
↓
知道这个目录负责什么
↓
再看入口文件、SConscript、Kconfig 和源码
常见目录级 readme.md 的作用如下:
文件 |
建议什么时候看 |
|---|---|
|
第一次进入 |
|
不知道该选哪个示例工程时 |
|
已选定某个工程,准备看应用和资源前 |
|
准备修改或新增应用时 |
|
准备修改图片、字体、多语言等资源时 |
|
准备打开或裁剪组件能力时 |
|
需要理解应用调度、系统服务、框架启动流程时 |
简单来说:
在线文档适合学习完整流程,目录级
readme.md适合快速找到代码落点。
5. 第四步:参考 kconfig_readme.md 确认配置¶
选好工程后,不建议直接使用示例工程配置做量产。示例工程通常为了展示功能,会打开较多能力;客户项目应根据自己的产品需求重新确认配置。
配置说明入口是:
solution/kconfig_readme.md
这个文件主要说明 Solution 菜单中常见配置项的用途,例如:
配置方向 |
重点关注 |
|---|---|
字体和多语言 |
|
内存和缓存 |
|
屏幕和 LVGL |
|
GUI 框架 |
|
调试和发布 |
|
组件能力 |
|
产品自定义 |
|
建议重点检查下面几类配置:
芯片和板型;
屏幕分辨率、色深和接口;
NOR Flash / NAND Flash / eMMC / TF 卡等存储方案;
PSRAM 和内存大小;
蓝牙、Wi-Fi、传感器、OTA 等产品能力;
字体、多语言、Emoji 和资源方案;
低功耗、唤醒源和调试开关;
不需要的 demo 和组件是否可以关闭。
可以把 kconfig_readme.md 当作 menuconfig 的“导读”。当你不确定某个菜单大概管什么、什么时候需要改、改了有什么影响时,先看这个文件,再结合工程自己的 Kconfig 和 .config 确认。
6. 第五步:编译、烧录并运行工程¶
配置确认后,建议先按 运行第一个项目 跑通基础流程。
推荐顺序是:
先跑 hello_world
↓
确认开发环境、编译、烧录和启动日志正常
↓
再跑目标产品接近的参考工程
↓
确认屏幕、触摸、资源、蓝牙、外设等基础能力正常
如果使用 Butterfli 工具,可以先完成以下检查:
工程路径是否选择正确;
产品类型和编译分组是否选择正确;
编译环境是否配置完整;
下载串口或 JLink 是否选择正确;
烧录后是否能正常启动并看到日志或界面。
7. 第六步:进入业务开发¶
工程跑通后,再开始业务开发会更稳妥。常见开发入口如下:
要做的事情 |
优先看哪里 |
|---|---|
新增或修改应用 |
|
修改图片、字体、多语言资源 |
|
接入蓝牙、Wi-Fi、传感器、OTA 等能力 |
|
理解应用注册和页面跳转 |
|
理解系统服务、线程、NVM、低功耗等 |
|
修改或确认配置 |
|
开发过程中建议保持下面的闭环:
改配置或代码
↓
编译
↓
PC simulator 或板级运行
↓
看日志和现象
↓
修正问题
↓
再做长时间稳定性和低功耗验证
8. 总结¶
第一次熟悉 Solution,不需要从所有源码开始读。更推荐按“文档 → 工程 → 配置 → 运行 → 开发”的路线逐步深入:
在线文档 / solution/readme.md
↓
Solution目录结构
↓
solution/examples/readme.md
↓
选择具体参考工程
↓
工程和模块目录下的 readme.md
↓
solution/kconfig_readme.md
↓
menuconfig 配置确认
↓
编译、烧录、运行
↓
业务开发和验证
这样既能快速建立全局认识,也能在需要修改代码时准确找到对应目录。