应用由哪些文件组成
Zephyr 将应用与内核、驱动一起构建成固件。先认识这三个核心文件:
applications/my-app/
├── CMakeLists.txt # 哪些源码参与构建
├── prj.conf # 需要哪些软件功能
└── src/
└── main.c # 应用逻辑
需要硬件配置时,再增加 app.overlay。本页是官方结构的中文整理与最小改写示例,尚未编译验证该固件。
CMakeLists.txt
cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(my_app)
target_sources(app PRIVATE src/main.c)
实际使用的 CMake 仍须满足 Zephyr v4.2.0 的最低要求 3.20.5。find_package 引入 Zephyr 构建系统,应位于 project 之前。
prj.conf
CONFIG_PRINTK=y
这里添加应用需要的配置。控制台后端还依赖板卡默认设置;某一项为 y 不代表所有依赖都自动满足。
src/main.c
#include <zephyr/kernel.h>
#include <zephyr/sys/printk.h>
int main(void)
{
while (1) {
printk("Hello from my notebook!\n");
k_sleep(K_SECONDS(1));
}
return 0;
}
k_sleep 让当前线程等待,不使用消耗 CPU 的空循环延时。
构建自己的应用
将上述文件保存到 ~/Projects/zephyr-workspace/applications/my-app/,再执行:
cd ~/Projects/zephyr-workspace/zephyr
west build -p always -b esp32_devkitc/esp32/procpu \
../applications/my-app -d build/my-app
阅读 build/my-app/zephyr/.config 确认最终配置,阅读 zephyr.dts 确认硬件描述。不要直接修改构建输出文件来保存设置。
官方来源
基于 Zephyr v4.2.0 官方资料整理的中文学习笔记,非逐字翻译;命令及说明作了学习场景适配。