
10分钟零硬件跑通Zephyr RTOS第一条输出【免费下载链接】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把 Zephyr RTOS 仓库拉下来之后满目录的 CMakeLists 和 Kconfig你不确定第一条命令该敲什么。这篇教程全程不碰硬件用 QEMU 把 hello world 跑到屏幕上只敲十几条命令。三句话说清这个项目Zephyr RTOS 是专为资源受限设备优化的开源实时操作系统。它解决的核心痛点没有开发板、不想搭仿真环境也能写、编译、调试嵌入式应用。硬指标内核最小配置约 10KB RAM支持 ARM、x86、RISC-V 等架构内置 400 块可运行开发板定义其中 QEMU 虚拟板无需硬件。官方文档入口doc/index.rst README 入口README.rst一条命令装齐构建链sudo apt update sudo apt install -y git cmake ninja-build gperf ccache dfu-util \ device-tree-compiler wget python3-dev python3-pip python3-setuptools python3-tk \ python3-wheel xz-utils file make gcc gcc-multilib g-multilib libsdl2-dev这条命令实际在干什么一次装齐 git、cmake、ninja-build、设备树编译器、gcc 等 Zephyr 构建工具链外加 QEMU 运行界面用的 SDL2 库。pip3 install -r scripts/requirements.txt这条命令装 Python 侧依赖west 工具用的脚本源文件见 scripts/requirements.txt。git clone https://gitcode.com/GitHub_Trending/ze/zephyr cd zephyr source zephyr-env.sh这条命令拉取仓库并加载环境变量之后west命令才可用环境脚本见 zephyr-env.sh。打开最小样例只看两个文件样例就 4 个文件加 1 个源文件目录树如下samples/hello_world/ ├── CMakeLists.txt # 构建配置 ├── prj.conf # 内核配置本样例为空 ├── tests.yaml # 测试元数据 ├── README.rst # 说明文档 └── src/ └── main.c # 主程序构建入口见 samples/hello_world/CMakeLists.txtfind_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(hello_world) target_sources(app PRIVATE src/main.c)find_package那行告诉 CMake 去哪找 Zephyr 内核target_sources把src/main.c加进应用整个构建系统就靠这两句话接上。主程序见 samples/hello_world/src/main.c#include stdio.h int main(void) { printf(Hello World! %s\n, CONFIG_BOARD_TARGET); return 0; }注意CONFIG_BOARD_TARGET它不是写死的字符串是 Kconfig 配置系统在编译时按你选的目标板自动填进去的宏。后面换板子这行代码不用动输出会变。两条命令构建并看到输出west build -b qemu_x86 samples/hello_world west build -t run第一步就是告诉构建系统你要编译哪个板子这里选qemu_x86因为它在 QEMU 里跑一块硬件都不用买。第二步编译完直接拉起 QEMU 前台运行。跑起来后终端输出大致长这样SeaBIOS (version rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org) Booting from ROM.. *** Booting Zephyr OS build zephyr-v4.4.99 *** Hello World! x86能逐字对上最后两行就算跑通了。版本号一行取自本地构建时的版本信息具体以你的终端为准。⚠️ QEMU 是前台进程停掉它要先按CtrlA再按x。改一个字符串验证编译把 samples/hello_world/src/main.c 里的Hello World!改成Hello Zephyr!然后west build -t run输出从Hello World! x86变成Hello Zephyr! x86就说明改动真的进了二进制你手里这个东西完全可控。换一种架构再跑一遍rm -rf build west build -b qemu_cortex_m3 samples/hello_world west build -t run这一步把目标从 x86 虚拟板换成 ARM Cortex-M3 虚拟板。预期差异输出里没了 SeaBIOS 那段 BIOS 提示Hello Zephyr!后面的板名从x86变成cortex_m3。同一段源码两种架构命令只改了一个-b参数。真实硬件开发板也一样把-b换成对应板名即可命令完全不变。三个高频坑的速查表症状一条修复命令一句话原因敲west提示 command not foundsource zephyr-env.sh环境变量没加载当前 shell 找不到 west改了代码输出没变rm -rf build west build -b qemu_x86 samples/hello_world旧构建缓存没清增量编译没生效QEMU 窗口卡住退不出先按CtrlA再按xQEMU 前台运行这是它的退出快捷键读完这篇往哪走内核层读 kernel/ 目录下的线程、调度器源码搞懂main()之前内核干了什么。驱动层翻 drivers/ 看 GPIO、UART、I2C 这些驱动是怎么接进设备模型的。应用层从 samples/basic/ 的 LED 闪烁、线程、定时器样例入手开始写自己的东西。下一篇写 Zephyr 多线程与中断处理到时候你会把main()里的单线程拆成两个协作的线程。本文基于 Zephyr v4.4.99 开发树撰写版本号文件见 VERSION。【免费下载链接】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),仅供参考