Zig Blinky 示例
源码位置: samples/libraries/zig/blinky 查看源码
功能说明
该示例演示如何在 Zig 中通过 arcs.Gpio 打开设备、配置输出引脚并周期性翻转板载 LED。它是一个典型的“设备 HAL + 定时休眠”入门示例,适合快速理解 Zig 侧如何访问 ARCS SDK 的 GPIO 设备框架。
硬件连接
该示例面向 arcs_evb 板载 LED。
设备:
gpiob引脚:
PAD_B[9]现象: LED 以 500ms 周期翻转,共切换 20 次
示例步骤
初始化 Zig 日志系统
打开
gpiob设备将
PAD_B[9]配置为 GPIO 输出循环调用
toggle()翻转 LED通过
arcs.sleep(500)控制闪烁节奏输出结束日志并返回
编译
重要提示:在编译前,请先确认您使用的开发板型号。SDK 目前支持以下开发板:
arcs_evb - ARCS EVB 评估板
arcs_mini - ARCS Mini 开发板
根据您的开发板型号,选择对应的编译命令:
在 SDK 根目录执行编译:
# 使用 arcs_evb 开发板
./build.sh -C -S samples/<示例路径> -DBOARD=arcs_evb
# 或使用 arcs_mini 开发板
./build.sh -C -S samples/<示例路径> -DBOARD=arcs_mini
Note
确保已安装对应的工具链。
建议将示例路径替换为:
./build.sh -C -S samples/libraries/zig/blinky -DBOARD=arcs_evb
烧录
编译完成后,使用 SDK tools 目录下的 cskburn 工具烧录固件:
./tools/burn/cskburn -s /dev/ttyUSB0 -b 3000000 0x0 build/arcs.bin -C arcs
Note
烧录参数说明:
-s /dev/ttyUSB0:串口设备路径,需要根据实际情况修改 - Linux 系统:通常是/dev/ttyUSB0或/dev/ttyACM0- 可通过ls /dev/tty*命令查看可用串口设备 - 不同开发板或 USB 转串口芯片可能使用不同的设备名-b 3000000:烧录波特率(3Mbps)0x0:烧录起始地址build/arcs.bin:编译生成的固件路径-C arcs:芯片类型
注意事项:
确保开发板已正确连接到电脑
如果无法识别串口设备,请检查 USB 连接线是否正常,或尝试其他 USB 端口
预期输出
串口中可看到类似日志:
=== Zig Blinky Demo ===
Calling zig_blinky_main()...
Blinky starting — opening gpiob...
gpiob opened successfully
LED pin 9 configured as output
LED ON (toggle #0)
LED OFF (toggle #1)
...
Blinky done — 20 toggles completed
=== Zig Blinky PASSED ===
同时板载 LED 会持续闪烁约 10 秒。
在 CI 真机验证中,样例通过条件以串口出现 === Zig Blinky PASSED === 为准,而不是依赖人工观察 LED 现象。
核心 API
API |
说明 |
|---|---|
|
打开 GPIO 设备 |
|
配置输出引脚 |
|
翻转输出电平 |
|
毫秒级休眠 |
关键代码
var gpio = arcs.Gpio.open("gpiob") catch return -2;
const LED_PIN: u32 = 9;
gpio.configOutput(LED_PIN, .{ .init_high = false }) catch return -3;
var count: u32 = 0;
while (count < 20) : (count += 1) {
gpio.toggle(LED_PIN) catch {};
arcs.sleep(500);
}
注意事项
板型依赖: 当前引脚号和设备名依赖
arcs_evb板级配置移植调整: 若切换到其他板型,需要同步调整 LED 对应设备和引脚
覆盖范围: 示例主要验证 Zig GPIO HAL 的基础可用性,不覆盖输入、中断等高级模式