Zephyr 在 Arduino UNO Q MCU 上
Source: Dev.to
概述
Arduino UNO Q 使用 STM32U585 MCU 来处理所有 Arduino 功能。它与主处理器以及板上的 GPIO 引脚通信。唯一可靠的引脚分配来源是官方原理图:
该原理图展示了哪些 GPIO 引脚连接到 RGB LED(LED 3 和 LED 4),可作为你自己项目的参考。
前置条件
- Zephyr SDK(最低版本 4.3.0 – 首个支持 UNO Q 的发布版)
- ADB 工具 – 用于从主机 PC 向设备传输文件
- 已克隆的 Zephyr 工作区(例如
~/zephyrproject/zephyr)
构建并烧录 Zephyr 示例
以下步骤将在 UNO Q 上编译并运行经典的 blinky 示例。
# 切换到你的 Zephyr 工作区
cd ~/zephyrproject/zephyr
# 为 Arduino UNO Q 开发板构建 blinky 示例
west build -p always -b arduino_uno_q samples/basic/blinky
将二进制文件传输到设备
adb push build/zephyr/zephyr.elf /tmp/
烧录 STM32U585 MCU
通过 ADB 打开 UNO Q 的 shell 并运行 remoteocd 上传命令(路径可能需要根据你的安装进行调整)。
adb shell
# 在 UNO Q shell 中
/home/arduino/.arduino15/packages/arduino/tools/remoteocd/0.0.4-rc.4/remoteocd \
upload \
--adb-path "/home/arduino/.arduino15/packages/arduino/tools/adb/32.0.0/adb" \
-s "{upload.port.properties.serialNumber}" \
-f "/home/arduino/.arduino15/packages/arduino/hardware/zephyr/0.52.0/variants/arduino_uno_q_stm32u585xx/flash_bootloader.cfg" \
"--verbose" \
/tmp/zephyr.elf
如果过程成功完成,LED 3 将会以绿色闪烁。
恢复 Sketch Bootloader
在烧录 Zephyr 二进制文件后,从 Arduino App Lab 上传新 Sketch 将会失败,因为 STM32U585 仍然保留了 Sketch Bootloader。重新安装引导程序即可恢复正常的 Arduino Sketch 上传:
arduino-cli burn-bootloader -b arduino:zephyr:unoq -P jlink
执行此命令后,板子将像往常一样接受通过 App Lab 上传的 Sketch。
参考资料
- Zephyr 文档(Arduino UNO Q)
- Arduino RemoteOCD 仓库
- Arduino UNO Q 原理图 (PDF)