1. 创建最小Zephyr应用
任务目标
创建一个最小Zephyr应用,通过CMake构建系统完成编译,并在目标硬件或模拟器上输出“Hello World”。本案例聚焦于理解Zephyr应用的最小目录结构与CMake构建流程。
环境依赖
- 已安装Zephyr SDK(包含工具链)
- 已安装west工具及Zephyr仓库(版本≥3.0)
- 已设置环境变量
ZEPHYR_BASE指向Zephyr源码根目录
最小应用结构
创建以下三个文件,构成一个完整的Zephyr应用:
hello_world/
├── CMakeLists.txt
├── prj.conf
└── src/
└── main.c
关键完整代码
CMakeLists.txt — 声明应用最低CMake版本并引入Zephyr构建系统:
cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(hello_world)
target_sources(app PRIVATE src/main.c)
src/main.c — 应用入口,通过内核打印接口输出字符串:
#include <zephyr/kernel.h>
#include <zephyr/sys/printk.h>
int main(void)
{
printk("Hello World\n");
return 0;
}
prj.conf — 本案例无需额外配置,文件留空即可(也可直接省略该文件)。
构建与运行
在应用根目录执行以下命令(以qemu_x86模拟器为例):
west build -b qemu_x86 -p always .
west build -t run
若使用真实开发板,将 -b 参数替换为对应板型(如 nrf52840dk_nrf52840),并改用 west flash 烧录。
验证方法
运行后观察终端输出。若构建成功且程序正常执行,终端将显示:
Hello World
同时构建过程无报错,生成 build/zephyr/zephyr.elf 文件,即可判定通过。
常见问题
- 找不到Zephyr包:确认
ZEPHYR_BASE已正确设置,或使用west build时在Zephyr项目目录内执行。 - 编译报错缺少头文件:检查
target_sources中源文件路径是否正确,以及prj.conf是否存在语法错误。 - 模拟器无输出:确认使用
west build -t run而非直接运行可执行文件,qemu需要该命令正确加载内核镜像。