概述¶
FAQ1 Solution适合哪些产品? 有哪些demo的方案?¶
Solution2.0 是思澈科技(SiFli)推出的第二代全场景智能交互解决方案。目前,客户使用Solution2.0已经应用在在智能手表、码表、门锁、遥控器、血压健康手表、带屏耳机、地图导航、吧唧等项目上。客户可以根据已提供的以下产品类型的工程来实现各种产品:
watch
手表方案 demo,支持各种菜单(蜂窝、列表、宫格等),支持表盘和平铺框架,支持表盘和应用推送
gridview
宫格菜单方案 demo,不含表盘和平铺框架,支持应用推送
container
单应用架构 demo,烧写后无默认应用(开机黑屏但日志正常),支持应用推送
同时,Solution还提供了墨水屏、蓝牙地图投屏、悬浮歌词音箱等各种特色的产品级Demo应用。
一般来讲,客户如果开发带屏、蓝牙的产品,且对推屏性能、低功耗和蓝牙性能有要求,比较适合于选择思澈的芯片以及Solution的方案。Solution2.0为客户提供提供从底层驱动到上层应用的全栈的开发支持,提供各种控件及组件,助力客户快速实现产品落地与功能迭代。
FAQ2 Solution支持哪些板子?¶
Solution2.0 可全面支持思澈全系列芯片对应的所有开发板与量产板卡。其软件框架深度统一适配思澈全系列芯片平台,一套代码无缝兼容全系产品,无需为不同芯片型号(含后续新发布芯片)重复开发适配,大幅降低多型号项目的开发与维护成本。
FAQ3 基于Solution开发存在哪些限制? 与SDK有何不同?¶
Solution2.0 的基础架构为 RTT + LVGL 组合架构,核心适配带屏且对交互性能、视觉体验有要求的应用场景,因此比较产品带屏且使用蓝牙的产品。
限制:不适用于无屏纯数据采集、极简主控类无 UI 交互的项目场景;此种产品项目建议采用思澈的开源SDK进行开发。
Solution和SDK都深度适配思澈全系列芯片平台,Solution2.0 本身也是基于思澈原生 SDK 开发封装而来,底层完全兼容 SDK 的所有硬件能力,而且底层会随着SDK的演进而升级。
SiFli SDK 与 Solution2.0 核心差异对比表
对比维度 |
SiFli SDK |
Solution2.0 |
|---|---|---|
适配场景 |
全场景覆盖,含无屏/有屏、极简/复杂功能等场景 |
聚焦带屏+高交互/视觉要求场景 |
优点 |
1. 底层可控性强,核心驱动与硬件接口完整; |
1. 整合全套上层组件,提供完整方案; |
缺点 |
1. 需自主整合例程、搭建上层 |
1. 对无屏/极简无UI场景显得笨重; |
FAQ4 不同芯片以及外存配置,Solution有哪些建议?¶
参见方案选型。
FAQ5 Solution 提供哪些编译方式?¶
Solution2.4以及之前的版本只支持keil的编译(注意版本号:建议是5.3.2); Solution2.4.1及后续的版本既支持keil也支持gcc编译。 详细信息参见Solution版本发布说明。
FAQ6 Solution 怎么实现表盘市场和应用市场?¶
Solution提供外置表盘和外置应用的能力,所有的产品工程都自带该功能,且提供手机端推送的SDK以及APP Demo。通过该功能可以帮助客户实现客户自己的表盘市场和应用市场。
实现外置表盘和外置应用,可以通过:
采用C外置表盘来实现,此种方式根据Solution提供的框架进行C编程,然后编译生成打包文件,通过手机端推送的SDK来推送。
采用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 的基础上进行了深度的适配和优化,帧率性能达到了较佳的水平;
Solution2.x的版本不会再进行升级;计划在Solution3.x的版本才会进行升级。
FAQ8 Solution提供哪些UI开发方式? 是否可以进行PC仿真?¶
Solution的应用提供了内置和外置两种方式。应用可以使用C、QJS、GUI Builder工具进行开发:
-
内置C应用,示例参考
solution\examples\xxx\application外置C应用,示例参考
solution\examples\_dynamic_app\c\app内置C表盘,示例参考
solution\examples\watch\application\watchface外置C表盘,示例参考
solution\examples\_dynamic_app\c\wfPC仿真使用butterfli进行编译,运行Visual Studio行调试
板级使用butterfli进行编译,烧写验证功能
通过SiFli_Demo_APP进行推送butterfli生成包(如黄山派在
project\sf32lb52-ulp\bin_bak\sf32lb52-ulp\zip_output下面)的.zip文件(wf,app, aod)到板级进行验证
QJS表盘/应用开发
示例参考参考
solution\examples\_dynamic_app\qjsPC仿真使用butterfli进行编译,运行Visual Studio行调试 在对应的Simulator的工程进行调试
板级使用butterfli进行编译,烧写验证功能
通过SiFli_Demo_APP进行推送butterfli生成包(如黄山派在
project\sf32lb52-ulp\bin_bak\sf32lb52-ulp\zip_output下面)的.zip文件(qjs_wf,qjs_app)到板级进行验证
使用思澈GUI Builder工具进行表盘/应用开发(注:工具位于
solution\tools\GUI_Builder)准备表盘/应用素材(图片、字体)
确定访问的数据接口
创建对应板级、分辨率、色深的工程
开始使用素材进行布局,设置素材的效果,以及绑定数据接口
在GUI Builder中启动PC仿真,验证UI效果
通过GUI Builder提供的串口推送功能,把应用生成BIN推送到板子,进行板级验证(注意此时板子必须烧写对应主框架固件)
通过SiFli_Demo_APP推送GUI Builder生成的发布包
利用第三方工具Squareline以及NXP GUI builder进行表盘/应用开发,并集成相应的生成代码到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.c、lvgl_rtm_export)以及主代码中定义的RTM_EXPORT接口必须后向兼容,否则会造成生成的外置应用/表盘由于接口不存在、不匹配造成异常
使用思澈[GUI Builder]工具:该工具本来就是独立发布,因此直接使用该工具生成外置表盘和应用就可以了。
FAQ12 Solution 是否提供了OTA机制?客户如何适配?¶
Solution提供完善的OTA机制,包括固件端和手机侧,具体参见OTA升级。
FAQ13 怎么减少代码空间? 有哪些方法?¶
设置finsh命令为slim模式,只保留必要的finsh
设置后,仅使用
MSH_CMD_EXPORT_REL的finsh命令才会被支持。
设置assert打印信息为最小空间模式,只保留断言地址

定义
ASSERT_OPTIMIZE_1后,死机的log仅打印了死机是PC的地址(假定是0x60010800),没有打印死机的具体信息需要通过trace32中装入axf或elf的文件,使用命令
d.l 60010800看看PC停在哪个位置来确定死机时的位置
减少打印,删除不必要的打印
通过map文件(如hcpu.map或lcpu.map)确认没有装入不必要的功能,如有则查找原因,disable。