
零基础跑通 Zephyr 开发环境Docker 沙盒到 QEMU 示例的完整链路【免费下载链接】zephyr-cnzephyr-cn is a collection of original work of SIG-Zephyr项目地址: https://gitcode.com/openeuler/zephyr-cn在 Windows 上硬装 Zephyr 工具链大概率会卡在依赖这一关。zephyr-cn 仓库给出的 Zephyr 开发环境思路是换个打法用 Docker 造一个隔离的 Linux 沙盒在沙盒里接好 west 工具链再让第一个示例应用在 QEMU 里跑起来。下面以一台真实的 Windows 机器为起点按操作时间顺序走完这条链路最后把 VSCode 也接进来。上图是 Zephyr 的整体架构你即将搭出的环境要承载的就是这些组件。第一站下载 Zephyr 构建镜像你会撞见什么Docker Desktop 刚装好面对镜像仓库不知道用哪个。为什么这么处理Zephyr 官方维护的 zephyr-build 镜像里预装了构建工具和依赖省去在容器里逐个装包的麻烦。拉镜像前建议先把镜像存储位置挪出 C 盘、配好国内镜像源这两步都写在 Windows Docker 环境文档 里照着改即可。关键命令docker pull zephyrprojectrtos/zephyr-build:latest用docker images能看到一条 zephyr-build 记录说明镜像就位。第二站挂载本地目录一条命令拉起容器你会撞见什么容器是封闭沙盒Zephyr 项目文件怎么进去为什么这么处理把 Windows 本地目录挂载到容器的 /workdir两边看到的是同一份文件后续拷文件、传文件都可以省掉。挂载语法是-v 宿主路径:容器路径。关键命令docker run -it --name SIG_Zephyr -v /d/Workspace/SIG_Zephyr:/workdir zephyrprojectrtos/zephyr-build:latest执行完你就已经站在容器命令行里ls能看到挂载目录的内容。容器名 SIG_Zephyr 是给自己起的方便后面复用。第三站用 west update 校验工作区并装上 SDK你会撞见什么挂载目录里放着两样东西打包好的 Zephyr 工程包sig_zephyr_v2.7.4.tar.gz和 SDK 安装脚本。为什么这么处理west 是 Zephyr 的工程管理工具靠 .west 目录标记工作区用 west update 按清单文件把所有依赖仓库拉齐。拿它跑一遍就是校验工作区完整性最快的办法SDK 则提供真正干活的一整套编译器。关键命令tar -xvzf sig_zephyr_v2.7.4.tar.gz west update跑完后 /workdir 下会出现 .west、zephyr、modules 等目录这就是一个完整工作区概念细节见 West 基础文档。接着装 SDKchmod x zephyr-sdk-0.13.1-linux-x86_64-setup.run ./zephyr-sdk-0.13.1-linux-x86_64-setup.run手上没有打包工程的话也可以改用west init从零初始化工作区再用west update补齐项目。第四站 让 philosophers 示例在 QEMU 里跑起来你会撞见什么环境都通了却不知道该拿什么当第一次试金石。为什么这么处理philosophers 示例不依赖任何真实硬件编译目标是 qemu_cortex_m3 这块虚拟板产物直接在 QEMU 里执行。用它验证整条链路零成本、零风险。关键命令cd zephyr west build -p auto -b qemu_cortex_m3 samples/philosophers west build -t run第一条触发构建CMake 和工具链会在后台把示例编译完第二条直接拉起 QEMU 执行产物。QEMU 窗口一开终端里开始滚动输出哲学家们的对话说明从镜像到运行的整条链路已经打通。按 CtrlC 即可中止。第五站让 VSCode 认出整个 Zephyr 工程你会撞见什么VSCode 能打开代码但提示全乱跳转经常指错文件。为什么这么处理Zephyr 代码量太大默认的 C/C IntelliSense 解析不动。关键是把插件指向构建时生成的 compile_commands.json——它记录了本次构建涉及的文件和编译器选项IntelliSense 照着它提示就不会乱。关键配置装五个插件C/C、CMake、kconfig、nRF DeviceTree、Arm Assembly。用 multi-root workspace 把 zephyr、modules、自己的 app、build 目录一起拉进工作区现成模板在 vscode/zephyr.code-workspace照抄结构即可。在 workspace 层级指向编译数据库{ C_Cpp.default.compileCommands: ${workspaceFolder}/build/compile_commands.json }把 build/.vscode 下的 tasks.json 和 launch.json 也补齐后VSCode 的任务菜单能直接调起 west build调试器也能图形化挂上 gdb细节可翻 VSCode 集成文档。第六站 每天如何快速回到开发沙盒你会撞见什么exit一敲、终端一关第二天想接着干又得从头找状态。为什么这么处理容器只是进程退出不会销毁它。启动再附着就回到上次离开的位置项目文件一个不少。关键命令exit # 容器内退出 docker start SIG_Zephyr # 启动已退出的容器 docker attach SIG_Zephyr # 重新进入容器另外如果 shell 里突然找不到 west 命令多半是环境变量没加载执行source zephyr/zephyr-env.sh补上就行。第一个示例跑通环境这关就算过了。接下来可以换一块真实开发板的板名替换构建参数里的 qemu_cortex_m3开始写自己的应用。参考资源Windows Docker 环境搭建文档West 工具基础文档VSCode 开发指南VSCode 工作区模板【免费下载链接】zephyr-cnzephyr-cn is a collection of original work of SIG-Zephyr项目地址: https://gitcode.com/openeuler/zephyr-cn创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考