03 · 第一个 Hello World
前置条件:工作区与 SDK已准备好,已确认经典 ESP32-DevKitC 板卡。
验证状态
以下命令已与 v4.2.0 官方板卡资料核对,但本站尚无实板运行结果。示例日志只是预期现象。
编译
source ~/Projects/zephyr-workspace/.venv/bin/activate
cd ~/Projects/zephyr-workspace/zephyr
west build -p always -b esp32_devkitc/esp32/procpu \
samples/hello_world -d build/hello-world
-p always 清理指定构建目录的旧输出;-d 为实验使用独立构建目录,避免与 Blinky 混淆。成功后检查 build/hello-world/zephyr/zephyr.elf 和 zephyr.bin。
此处沿用该板默认 Simple boot 流程,不额外打开 MCUboot / sysbuild。以后学习 OTA 时再单独记录引导链差异。
连接与烧录
插入开发板,观察设备节点。优先记录 /dev/serial/by-id/ 下的稳定标识。
ls -l /dev/serial/by-id/
west flash -d build/hello-world
若有多个串口设备,用 runner 帮助确认选择端口的参数:
west flash -d build/hello-world --context
west flash -d build/hello-world -H
不要把示例串口路径当成自己的设备。烧录失败时先保留完整输出,再看排错页。
观察串口
cd ~/Projects/zephyr-workspace/zephyr/build/hello-world
west espressif monitor -h
west espressif monitor
从构建目录执行,使该扩展读取当前构建的 runners.yaml 和 ELF。此版本的 -d 是地址解码开关,不是构建目录;指定串口使用 -p,指定波特率使用 -b。参数以当前版本帮助为准。必要时选择实际端口;默认示例通常使用 115200 波特率,也可根据生成的配置确认。若烧录后错过启动输出,在监视器已连接的情况下按 EN / RESET。
预期看到类似:
*** Booting Zephyr OS ... ***
Hello World! ...
版本和板卡后缀随构建变化。看到明确的 Hello World 输出才算完成运行验证,仅有编译成功还不够。
保存证据
- 记录
git describe --tags --always和完整 board target。 - 保存成功编译末尾输出。
- 保存烧录结果与串口启动文本。
- 在实验手记中填写结果及日期。
官方来源
基于 Zephyr v4.2.0 官方资料整理的中文学习笔记,非逐字翻译;命令及说明作了学习场景适配。