概述

FAQ1 Solution适合哪些产品? 有哪些demo的方案?

Solution 2.0 是思澈科技(SiFli)推出的第二代全场景智能交互解决方案。目前,客户使用 Solution 2.0 已经应用在智能手表、码表、门锁、遥控器、血压健康手表、带屏耳机、地图导航、吧唧等项目上。客户可以根据已提供的以下产品类型的工程来实现各种产品:

  • watch

    • 手表方案 demo,支持各种菜单(蜂窝、列表、宫格等),支持表盘和平铺框架,支持表盘和应用推送

  • gridview

    • 宫格菜单方案 demo,不含表盘和平铺框架,支持应用推送

  • container

    • 单应用架构 demo,烧写后无默认应用(开机黑屏但日志正常),支持应用推送

同时,Solution 还提供了墨水屏、蓝牙地图投屏、悬浮歌词音箱等各种特色的产品级 Demo 应用。

一般来讲,客户如果开发带屏、蓝牙的产品,且对推屏性能、低功耗和蓝牙性能有要求,比较适合于选择思澈的芯片以及 Solution 方案。Solution 2.0 为客户提供从底层驱动到上层应用的全面开发支持,提供各种控件及组件,助力客户快速实现产品落地与功能迭代。


FAQ2 Solution支持哪些板子?

Solution 2.0 可全面支持思澈所有系列芯片对应的开发板与量产板卡。其软件框架深度统一适配思澈全系列芯片平台,一套代码无缝兼容全系产品,无需为不同芯片型号(含后续新发布芯片)重复开发适配,大幅降低多型号项目的开发与维护成本。


FAQ3 基于Solution开发存在哪些限制? 与SDK有何不同?

Solution 2.0 的基础架构为 RTT + LVGL 组合架构,核心适配带屏且对交互性能、视觉体验有要求的应用场景,聚焦带屏且使用蓝牙的产品。

限制:不适用于无屏纯数据采集、极简主控类无 UI 交互的项目场景;此类产品项目建议采用思澈的开源SDK进行开发。

Solution 2.0 和 SDK 都深度适配思澈全系列芯片平台,Solution 2.0 本身也是基于思澈原生 SDK 开发封装而来,底层完全兼容 SDK 的所有硬件能力,而且底层会随着 SDK 的演进而升级。

SiFli SDK 与 Solution 2.0 核心差异对比表

对比维度

SiFli SDK

Solution2.0

适配场景

全场景覆盖,含无屏/有屏、极简/复杂功能等场景

聚焦带屏+高交互/视觉要求场景
(如智能穿戴、带屏产品)

优点

1. 底层可控性强,核心驱动与硬件接口完整;
2. 例程独立,定制灵活度极高;
3. 无冗余,适配资源受限场景

1. 整合全套上层组件,提供完整方案;
2. 低代码开发,降低技术门槛;
3. 软硬件协同,交互流畅、视觉体验优

缺点

1. 需自主整合例程、搭建上层

1. 对无屏/极简无UI场景显得笨重;
2. 主框架基本固定,灵活性低于SDK


FAQ4 不同芯片以及外存配置,Solution有哪些建议?

参见方案选型


FAQ5 Solution 提供哪些编译方式?

Solution 2.4 以及之前的版本只支持 Keil 编译(注意版本号:建议是 5.32);Solution 2.4.1 及后续版本既支持 Keil 编译也支持 GCC 编译。 详细信息参见Solution版本发布说明


FAQ6 Solution 怎么实现表盘市场和应用市场?

Solution 提供外置表盘和外置应用的能力,所有产品工程都自带该功能,且提供手机端推送的 SDK 以及 APP Demo。通过该功能可以帮助客户实现客户自己的表盘市场和应用市场。 实现外置表盘和外置应用,可以通过:

  1. 采用C 外置表盘来实现,此种方式根据 Solution 提供的框架进行 C 编程,然后编译生成打包文件,通过手机端推送的 SDK来推送。

  2. 采用GUI Builder工具来实现,此种方式通过GUI Builder工具进行UI布局以及逻辑实现,生成打包文件,通过手机端推送的SDK来推送。

两种方式都提供了 PC Simulator 的仿真机制。


FAQ7 Solution 采用的是什么 RTOS 以及 GUI? 是否可以升级?

  • Solution 采用 RT-Thread 3.13 + LVGL 8.3,其中 RT-Thread 有部分组件进行了升级;

  • Solution 在 LVGL 8.3 的基础上进行了深度的适配和优化,帧率性能达到了很好的水平;

  • Solution 2.x 版本不会再升级 RT-Thread 以及 LVGL,计划在 Solution 3.x 版本中才会进行升级。


FAQ8 Solution提供哪些UI开发方式? 是否可以进行PC仿真?

Solution 的应用提供了内置和外置两种方式。应用可以使用 C、QJS、GUI Builder 工具进行开发:

  1. C 应用开发

    • 内置C应用,示例参考solution\examples\xxx\application

    • 外置C应用,示例参考solution\examples\_dynamic_app\c\app

    • 内置C表盘,示例参考solution\examples\watch\application\watchface

    • 外置C表盘,示例参考solution\examples\_dynamic_app\c\wf

      • PC 仿真使用 Butterfli 进行编译,运行 Visual Studio 进行调试

      • 板级使用 Butterfli 进行编译,烧写验证功能

      • 通过 SiFli_Demo_APP 推送 Butterfli 生成包(如黄山派在project\sf32lb52-ulp\bin_bak\sf32lb52-ulp\zip_output下面)的 .zip 文件(wf,app,aod)到板级进行验证

    息屏显示弹窗平铺类似。

  2. QJS表盘/应用开发

    • 示例参考solution\examples\_dynamic_app\qjs

    • PC 仿真使用 Butterfli 进行编译,运行 Visual Studio 在对应的 Simulator 工程上进行调试

    • 板级使用 Butterfli 进行编译,烧写验证功能

    • 通过 SiFli_Demo_APP 推送 Butterfli 生成包(如黄山派在project\sf32lb52-ulp\bin_bak\sf32lb52-ulp\zip_output下面)的 .zip 文件(qjs_wf,qjs_app)到板级进行验证

  3. 使用思澈GUI Builder工具进行表盘/应用开发(注:工具位于solution\tools\GUI_Builder

    • 准备表盘/应用素材(图片、字体)

    • 确定访问的数据接口

    • 创建对应板级、分辨率、色深的工程

    • 开始使用素材进行布局,设置素材的效果,以及绑定数据接口

    • GUI Builder 中启动 PC 仿真,验证 UI 效果

    • 通过 GUI Builder 提供的串口推送功能,把应用生成 BIN 推送到板子,进行板级验证(注意此时板子必须烧写对应主框架固件)

    • 通过 SiFli_Demo_APP 推送 GUI Builder 生成的发布包

  4. 利用第三方工具 SquareLine Studio 以及 NXP GUI Guider 进行表盘/应用开发,并集成相应的生成代码到 Solution 中


FAQ9 Solution 是否支持表盘编辑?

  • 思澈GUI Builder提供了表盘预置多种风格模板的功能,推送到板子后,可以选择表盘使用的风格;

  • 手机侧直接编辑表盘的功能,计划在后续版本提供。具体支持的版本,可参见Solution版本发布说明


FAQ10 Solution 提供的GUI Builder工具可以实现哪些功能?有哪些限制?

  • 思澈GUI Builder可以实现0代码开发表盘以及应用,支持多页面、长页、事件响应、数据对接以及组件调用等功能。

  • 限制: 目前GUI Builder不适合于逻辑处理比较复杂的应用。

  • 计划在后续的版本会推出GUI Builder处理UI布局以及简单逻辑,复杂的逻辑工具会生成C代码框架供客户二次用C进行开发的方式。


FAQ11 Solution 提供的外置应用和表盘是否可以独立发布开发环境?

  • 使用(C、QJS)代码:考虑到客户进行外置应用和表盘开发的人员与主代码开发人员可能不是同一群人,在 git 上(代码仓库)的权限可能不一致,或者客户可能会将外置应用和表盘交给其客户开发,基于此 Solution 提供了生成独立发布外置应用开发环境的功能。

    • Butterfli -> 左侧工程路径 -> 动态表盘工程 -> 右键 -> 点击备份编译环境 -> Solution 的根目录下会生成一个工程名_WFENV目录。

    • 注意: solution\framework\gui_fwk\dyn_fwk\export下的 RTM 接口(app_rtm_export.clvgl_rtm_export)以及主代码中定义的RTM_EXPORT接口必须保持后向兼容,否则会造成生成的外置应用/表盘因接口不存在或不匹配而发生异常。

  • 使用思澈 GUI Builder 工具:该工具本来就是独立发布,因此直接使用该工具生成外置表盘和应用即可。


FAQ12 Solution 是否提供了OTA机制?客户如何适配?

Solution 提供完善的 OTA 机制,包括固件端和手机侧,具体参见OTA 升级


FAQ13 怎么减少代码空间? 有哪些方法?

  1. 设置finsh命令为slim模式,只保留必要的finsh

    • 设置后,仅使用MSH_CMD_EXPORT_REL的finsh命令才会被支持。

  2. 设置assert打印信息为最小空间模式,只保留断言地址

    • 定义ASSERT_OPTIMIZE_1后,死机的log仅打印了死机是PC的地址(假定是0x60010800),没有打印死机的具体信息

    • 需要通过trace32中装入axf或elf的文件,使用命令d.l 60010800看看PC停在哪个位置来确定死机时的位置

  3. 减少打印,删除不必要的打印

  4. 通过map文件(如hcpu.map或lcpu.map)确认没有装入不必要的功能,如有则查找原因,disable。