Zephyr RTOS 5 步上手从环境搭建到烧录 Blinky 闪灯【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyrZephyr RTOS 是面向资源受限设备的实时操作系统RTOS负责毫秒级任务调度与中断响应支持 ARM、x86、RISC-V 等架构从传感器节点到复杂设备都能跑。本文面向只写过 C、没碰过 Zephyr 的读者按文操作后你能在 Ubuntu 上装好工具链、编译 blinky 示例并烧录到开发板。它是什么适合谁Zephyr 是 Linux 基金会下的开源嵌入式 RTOS一套内核代码跑在 ARM、RISC-V、x86、Xtensa 等几十种芯片上内核裁剪后最小只有几 KB适合做 MCU 产品固件的人。多架构ARM、x86、RISC-V 共用同一套 API换板子只换构建参数服务齐全线程、定时器、信号量、消息队列、中断管理全在 kernel/ 里驱动库大GPIO、I2C、SPI、串口、以太网等驱动开箱即用安全内建MPU 内存保护、栈溢出检测、驱动权限控制是默认能力板卡目录仓库 boards/ 目录收录上千块开发板直接按名构建环境怎么准备先确认三个关键工具的最低版本工具最低版本CMake3.28.0Python3.12设备树编译器 dtc1.4.6以 Ubuntu 为主路径一条命令装齐依赖sudo apt install --no-install-recommends git cmake ninja-build gperf \ ccache dfu-util device-tree-compiler wget python3-dev python3-venv \ python3-tk xz-utils file make gcc g libsdl2-dev libmagic1接着建工作空间、拉源码、装工具链west 是 Zephyr 的工作区管理命令类似包管理器python3 -m venv ~/zephyrproject/.venv source ~/zephyrproject/.venv/bin/activate pip install west west init -m https://gitcode.com/GitHub_Trending/ze/zephyr ~/zephyrproject cd ~/zephyrproject west update west packages pip --install west zephyr-export cd zephyr west sdk installmacOS 用 Homebrew 装依赖、Windows 用 winget步骤一致分别见 installation_mac.rst 和 installation_win.rst。 跑通第一个示例blinky 闪灯仓库自带 blinky 示例目录结构就三个文件blinky/ ├── src/main.c # 应用入口 ├── CMakeLists.txt # 构建描述 └── prj.conf # 配置项核心逻辑见 samples/basic/blinky/src/main.c截取关键行#define LED0_NODE DT_ALIAS(led0) static const struct gpio_dt_spec led GPIO_DT_SPEC_GET(LED0_NODE, gpios); int main(void) { if (!gpio_is_ready_dt(led)) { return 0; } gpio_pin_configure_dt(led, GPIO_OUTPUT_ACTIVE); while (1) { gpio_pin_toggle_dt(led); k_msleep(1000); } }编译并烧录把your-board-name换成你的板名cd ~/zephyrproject/zephyr west build -p always -b your-board-name samples/basic/blinky west flash不确定板名就用west boards列全部受支持板卡暂时没有板子可改构建 hello_world 示例并用-b qemu_x86在模拟器里验证编译。你会看到板载 LED 每 1 秒翻转一次串口控制台同步打印当前 LED 状态。绕不开的三个概念设备树Devicetree一份描述板子上有什么硬件、接在哪个引脚的文本编译时合进程序。代码不写死引脚而是通过别名查找led0: led_0 { compatible gpio-leds; gpios gpio0 13 GPIO_ACTIVE_HIGH; };prj.conf 配置一行一个KEYVALUE决定编译进哪些内核功能。blinky 的全部配置只有一行CONFIG_GPIOy想图形化勾选执行west build -t menuconfig。构建系统west 只是封装底层是 CMake Ninja。记住三条命令就够west build -b 板名编译west flash烧录west debug进 GDB 调试 卡住了怎么办现象构建报led0相关错误 /gpio_dt_spec未声明原因这块板子的设备树里没定义led0别名解法换支持 blinky 的板子或改跑 hello_world 示例现象west: command not found原因虚拟环境没激活解法执行source ~/zephyrproject/.venv/bin/activate每个新终端都要重来一次现象west flash找不到板子原因缺烧录工具或 Linux 下 USB 权限不足解法先装该板文档要求的宿主工具再为调试探针配置 udev 规则现象west update拉取模块中途失败原因网络中断或镜像源问题解法直接重跑west update续传仍失败就更换 manifest 仓库镜像现象编译通过但 LED 不闪原因该板的用户 LED 没接 GPIO 或别名不是led0解法查板卡文档里的别名定义必要时加 overlay 修正接下来去哪官方文档入口doc/index.rst内核、设备树、构建各有专章示例总目录samples/网络、蓝牙、USB 等上千个示例板卡目录boards/index.rst查你的板子受不支持、目标名怎么填社区入口邮件列表 userslists.zephyrproject.org 提问Discord 实时讨论issue 报 bugZephyr 把写 C、编译、烧录压成了三条 west 命令同一份代码换板就能跑。下一步建议挑一个 ADC 或串口示例在你的板子上构建一遍并随手翻翻 kernel/ 里的调度器源码。踩坑过程欢迎去社区同步你的解法。【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考