根据我们刚才拟定的 Zephyr 学习计划,现在开始 第01 课:安装开发环境(Install Environment)。
根据我们刚才拟定的 Zephyr 学习计划,现在开始 第01 课:安装开发环境(Install Environment)。
摘要:本文详细介绍了Zephyr RTOS开发环境的完整搭建流程。主要内容包括:1) 在macOS主机上通过VirtualBox安装Ubuntu 22.04虚拟机;2) 安装Git、Python、CMake、Ninja等基础工具;3) 使用West工具管理Zephyr项目;4) 初始化Zephyr v4.2 LTS稳定版源码;5) 安装匹配的Zephyr SDK 0.17.0;6) 配置环境变量并验证安装;7) 编译hello_world示例程序到STM32开发板。文章提供了从零开始搭建环境的每一步命令和注意事项,确保读者能够成功建立稳定的Zephyr开发环境,为后续的RTOS学习和项目开发打下坚实基础。
我的环境:
- Host:macOS(约 30GB 可用空间) - 虚拟机:VirtualBox - Guest:Ubuntu - 开发板: - ESP32-S3 - Nucleo STM32F303RE目标是最终能够:
macOS │ VirtualBox │ Ubuntu22.04│ Zephyr SDK West Python CMake Ninja Git │ Zephyr Project │ Compile │ Flash │ Run on STM32 / ESP32本课目标
完成下面所有安装:
Ubuntu22.04✓ Git ✓ Python ✓ pip ✓ west ✓ CMake ✓ Ninja ✓ Device Tree Compiler ✓ Zephyr SDK ✓ Zephyr Source完成后能够执行
west build虽然还不能下载到板子,但能够完成编译。
Step 1 安装 Ubuntu
建议:
Ubuntu22.04LTS DesktopVirtualBox 建议配置:
30GB 空闲空间基本够学习 Zephyr,不过后续安装 SDK、源码和多个 toolchain 后会比较紧张,因此动态磁盘至少分配
40GB 更合适。
Step 2 更新系统
sudoaptupdatesudoaptupgrade-y我的建议
由于我们是按照完整的 Zephyr 学习计划,从环境搭建一直到 ESP32-S3 和 STM32 项目实践,我建议:
1.删除旧的zephyr, 如4.4.99 工作区。2.重新创建一个 Zephyr v4.2 LTS(或当前最新稳定版)的工作区。3.安装与之匹配的 Zephyr SDK。4.然后开始 02-HelloWorld,后续课程都基于这一套稳定环境。这样后面的每一步都会更加顺利,也更容易与官方文档保持一致。
好吧, 按你的建议做
我建议这样做。因为我们的目标是系统学习 Zephyr,而不是体验最新开发版。稳定版能让我们把精力放在 RTOS、驱动和开发流程上,而不是处理工具链兼容问题。
我推荐的版本
我们使用:
- Zephyr v4.2 LTS(长期支持版) - 与 v4.2 匹配的 Zephyr SDK - Ubuntu22.04- 后续开发板: - NUCLEO-F303RE - ESP32-S3这一套环境稳定,非常适合学习
Step 3 :保留当前环境(不要删除)
先把现在的工作区保留,以防后面需要参考。
mv~/zephyrproject ~/zephyrproject-main确认:
ls~应该能看到:
zephyrproject-mainStep 4:创建新的工作区
mkdir~/zephyrprojectcd~/zephyrproject python3-mvenv .venvsource.venv/bin/activate升级 pip:
pipinstall--upgradepipStep 5:安装 West
pipinstallwest检查:
west--versionStep 6:初始化 Zephyr v4.2
这里不要直接 west init,而是指定版本标签:
west init-mhttps://github.com/zephyrproject-rtos/zephyr--mrv4.2.0然后同步:
west update这个过程会下载所有官方模块,可能需要几分钟。
Step 7:安装 Python 依赖
pipinstall-rzephyr/scripts/requirements.txtStep 8:确认版本
执行:
cdzephyrcatVERSION应该看到类似:
VERSION_MAJOR=4VERSION_MINOR=2PATCHLEVEL=0安装 Zephyr SDK 0.17.0
对于 Zephyr v4.2.0,推荐使用 Zephyr SDK 0.17.x。
- 下载 SDK
进入你的 Home 目录:
cd~下载 SDK(Linux x86_64):
wgethttps://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.17.0/zephyr-sdk-0.17.0_linux-x86_64.tar.xz如果你的网络较慢,也可以先在浏览器下载再复制到 Ubuntu。
2. 解压
tarxf zephyr-sdk-0.17.0_linux-x86_64.tar.xz会得到:
~/zephyr-sdk-0.17.0/3. 安装 SDK
进入目录:
cd~/zephyr-sdk-0.17.0执行:
./setup.sh安装过程中:
Register Zephyr SDK with CMake package registry?
输入:
Y然后:
Install udev rules?
如果是在 VirtualBox Ubuntu 中,建议也输入:
Y
这样以后烧录 STM32 会方便很多。
4. 设置环境变量
编辑:
nano~/.bashrc最后加入:
exportZEPHYR_SDK_INSTALL_DIR=$HOME/zephyr-sdk-0.17.0保存后:
source~/.bashrc然后确认:
echo$ZEPHYR_SDK_INSTALL_DIR应该输出:
/home/cxicc/zephyr-sdk-0.17.05. 验证 SDK
在你的 Python 虚拟环境中:
cd~/zephyrprojectsource.venv/bin/activate执行:
west sdk list应该能看到已安装的 SDK。
然后我们编译第一个程序
cd~/zephyrproject/zephyr west build-bnucleo_f303re samples/hello_world– Zephyr version: 4.2.0 (/home/cxicc/zephyrproject/zephyr), build: v4.2.0
[141/141] Linking C executable zephyr/zephyr.elf
Memory region Used Size Region Size %age Used
FLASH: 14592 B 512 KB 2.78%
RAM: 4480 B 64 KB 6.84%
CCM: 0 GB 16 KB 0.00%
IDT_LIST: 0 GB 32 KB 0.00%
Generating files from /home/cxicc/zephyrproject/zephyr/build/zephyr/zephyr.elf for board: nucleo_f303re