Arduino¶
OpenSiFli/ArduinoCore-zephyr 是面向 SF32 的 Zephyr Arduino Core。它适合在 SiFli SF32LB52 DevKit LCD 上编写 sketch、开展外设实验、制作演示和验证早期原型。
测试版核心
OpenSiFli 将此 Core 标记为 BETA。功能、API、软件包内容、loader 行为和发布版本均可能变化。将此路径用于产品前,请对照项目 README 和 Releases 确认当前行为。
首次安装 IDE、选择开发板和端口、烧录 Bootloader,以及验证 Blink,请参阅Arduino 快速开始。本页用于评估 Arduino 是否适合项目,以及在完成首次运行后维护 Arduino 项目。
Arduino 的适用范围¶
当快速迭代和熟悉的 sketch 模型比完整访问 SF32 专有能力更重要时,可选择 Arduino。它适合概念验证、简单外设检查、课堂或演示项目,以及已有 Arduino 代码库的团队。
若产品依赖量产固件基线、蓝牙(Bluetooth)协议栈调优、图形密集型应用、低功耗优化、开发板启动调试或厂商中间件,请转用 SiFli-SDK。若需要直接控制设备树(devicetree)、Kconfig 和 Zephyr 原生应用结构,请使用 Zephyr。
| 适合选择 Arduino 的场景 | 更适合其他路径的场景 |
|---|---|
| 短小 sketch 和快速外设实验。 | 对广泛且经过验证的 SF32 功能有要求的产品。 |
| 已熟悉 Arduino IDE 或 Arduino CLI 的团队。 | 自定义开发板的硬件启动调试,或需要深入控制 Flash、电源和中间件。 |
| 演示和早期可行性原型。 | 需要 Zephyr 原生配置、驱动和 RTOS 结构。 |
开发板标识¶
当前公开软件包面向 SF32LB52 DevKit LCD。请在项目记录和问题报告中保存以下值;它们决定 sketch 的构建、加载和开发板映射方式。
| 项目 | 数值 |
|---|---|
| Boards Manager 标题 | SiFli Serial Boards |
| Arduino 平台 | sifli:sf32lb52 |
| 开发板 | SiFli SF32LB52 DevKit LCD |
| FQBN | sifli:sf32lb52:sf32lb52devkitlcd |
| Zephyr target | sf32lb52_devkit_lcd |
| 变体 | sf32lb52_devkit_lcd_sf32lb525uc6 |
| 上传工具 | sftool |
LED_BUILTIN |
13 |
名称相近的思澈科技(SiFli)或 Zephyr 开发板标识,不能与此 FQBN 互换使用。所选开发板决定构建和上传参数。
构建与 Loader 模型¶
ArduinoCore-zephyr 将面向 sketch 的 Arduino API、Zephyr 加载器(loader)和开发板专用配置组合在一起。构建模式和链接模式这两组设置会影响启动和链接行为,而不只是编译器选项。
| 选项 | 行为 | 工程含义 |
|---|---|---|
Standard 构建模式 |
加载后启动 sketch。 | 用于正常运行 sketch。 |
Debug 构建模式 |
Zephyr shell 停留等待 sketch 命令。 |
仅在调试流程需要 shell 时使用。 |
Dynamic 链接模式 |
将 sketch 打包,走常规的基于加载器的流程。 | 运行时和内存预算中需要计入加载器。 |
Static 链接模式 |
使用静态链接镜像。 | 用于排查加载器问题,或在充分了解其权衡后使用。 |
建议从 Standard 和 Dynamic 开始。在 Debug 模式下,上传后的 sketch 要等到在 Zephyr shell 中运行 sketch 才会启动;这是“上传看似成功、应用却毫无动作”的常见原因。
加载器是独立的开发板产物。Burn Bootloader 通常只用于首次使用、更新或恢复,而不是每次上传 sketch 的步骤。请将 Arduino 软件包版本与加载器的任何更新一并记录;前提假设不一致,后续很难定位问题。
集成边界¶
应将 Arduino Core 视为集成层,而不是底层 Zephyr 平台的替代品。sketch 可能需要 loader 尚未导出或启用的 Zephyr 符号或子系统,常见现象包括 Zephyr 符号未定义、子系统缺失,以及动态加载和 shell 带来的内存压力。
在向产品原型加入库或功能前,应逐项明确:
- 软件包版本、FQBN、构建模式和链接模式。
- 目标开发板修订版及其串口下载/恢复流程。
- 所需外设或库的已验证示例。
- 采用目标加载器配置后的 RAM 与 Flash 预算,并通过测量加以确认。
- 使用 Arduino 加载器或 SiFli-SDK 固件恢复的路径。
不要只因存在 Arduino API 或名称相近的 Zephyr 驱动就推断库已受支持。请在目标硬件上验证完整的 sketch、loader、开发板和软件包组合。
定位与升级¶
若开发板未被识别、无法烧录或无法运行 Blink,请先完成快速开始中的基线检查。该基线跑通后,可按下表划分问题边界,缩短调试时间。
| 首次运行基线成功后出现的现象 | 首先检查 |
|---|---|
sketch 仅在运行 sketch 后启动 |
确认是否有意选择 Debug 模式。 |
| 缺少 Zephyr 函数或子系统 | 检查 Core README,以及加载器的导出项和配置。 |
| 内存失败或运行不稳定 | 测量 sketch 预算;计入动态加载和 Zephyr shell;只有具备恢复方案时才评估 Static。 |
| 库能编译但硬件不工作 | 确认开发板引脚假设,并用最小的开发板专用示例测试。 |
| 上传或恢复失败 | 重新建立文档化的 Arduino 基线;必要时使用开发板的 SiFli-SDK 恢复路径。 |
提交问题时,请提供软件包版本、IDE 或 CLI 版本、操作系统、FQBN、构建模式、链接模式、开发板修订版、完整上传输出和串口日志。
相关页面¶
最后更新: