1. 创建最小Zephyr应用
任务目标
本案例将完成Zephyr RTOS开发环境的搭建,创建一个仅包含最基本内核初始化的最小应用,并成功编译生成可运行固件。通过本案例,你将掌握Zephyr项目的基本结构、west工具链的使用方法,以及从源码到固件的完整构建流程。
环境准备
需要一台运行Linux(推荐Ubuntu 22.04+)或macOS的计算机,具备以下依赖:
- Python 3.8+、pip、cmake(3.20+)、ninja-build、dtc(device tree compiler)
- git、wget、tar
- 用于编译的交叉工具链(本案例以x86 native_posix目标为例,无需额外安装交叉编译器)
搭建Zephyr开发环境
安装west工具并获取Zephyr源码(约1.5GB,包含所有模块):
# 安装west
pip3 install west
# 创建工作目录并获取Zephyr源码
mkdir zephyr_project && cd zephyr_project
west init -m https://github.com/zephyrproject-rtos/zephyr --mr v3.7.0
cd zephyr
west update
# 安装Python依赖
pip3 install -r scripts/requirements.txt
# 导出Zephyr环境变量(可加入~/.bashrc)
export ZEPHYR_BASE=$(pwd)
export ZEPHYR_TOOLCHAIN_VARIANT=host
创建最小应用
在zephyr_project目录下创建应用文件夹,包含两个必需文件:
mkdir -p my_minimal_app/src
cd my_minimal_app
CMakeLists.txt:
cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(my_minimal_app)
target_sources(app PRIVATE src/main.c)
prj.conf(空文件即可,仅用于声明应用配置存在):
touch prj.conf
src/main.c:
#include <zephyr/kernel.h>
void main(void)
{
printk("Minimal Zephyr app started!\n");
}
编译与运行
在应用目录下执行以下命令构建并运行(native_posix目标将生成一个可在主机上直接执行的程序):
west build -b native_posix .
west build -t run
程序启动后会在终端输出内核初始化信息,并在末尾打印应用消息。
验证方法
观察终端输出,满足以下条件即判定通过:
- 构建过程无错误,最终生成
build/zephyr/zephyr.exe可执行文件; - 运行后终端出现以
*** Booting Zephyr OS build v3.7.0 ***开头的启动日志; - 启动日志之后出现
Minimal Zephyr app started!,表明应用代码已成功执行。
常见问题
- west init失败:检查网络连接,或尝试使用
--mr main拉取最新开发分支。 - 找不到Zephyr包:确认
ZEPHYR_BASE环境变量已正确指向zephyr源码根目录。 - 编译报错缺少dtc:执行
sudo apt install device-tree-compiler安装。