拓冰建站拓冰建站
首页 / 资讯中心 / 正文

如何在15分钟搭好Zephyr RTOS开发环境:Docker+VSCode完整避坑指南

如何在15分钟搭好Zephyr RTOS开发环境DockerVSCode完整避坑指南【免费下载链接】zephyr-cnzephyr-cn is a collection of original work of SIG-Zephyr项目地址: https://gitcode.com/openeuler/zephyr-cn想在Windows上开发Zephyr嵌入式应用却对官方那套基于Linux的工具链望而却步别慌。zephyr-cn 资源给了你一套现成组合Docker 搭容器环境、VSCode 写代码、west 管项目。这篇指南专门拆掉新手最容易卡住的四个坎走完你就能编译并跑起第一个 Zephyr 示例应用。为什么要在Docker里搭Zephyr开发环境先说点背景。Zephyr 是面向微控制器的实时操作系统RTOS它的工具链和构建系统都生在 Linux 上Windows 侧没有像 Keil 那样的一键安装包。Windows 用户通常有三条路上 WSL、装 Linux 虚拟机、用 Docker。虚拟机笨重、开机慢WSL 配置也容易折腾错而 zephyr-cn 文档选了第三条直接拉官方 zephyr-build 镜像起个容器编译工具链开箱即用你只管放项目文件。说白了这就是一台秒开的“迷你 Linux”比虚拟机轻得多也足够装下整个 Zephyr 工具链。准备清单四样东西先备齐动手前把下面四样备好一样不少要准备的东西说明Zephyr 项目包基于 LTS 2.7.4、按工程布局打包的文件sig_zephyr_v2.7.4.tar.gzZephyr SDK工具链安装包 zephyr-sdk-0.13.1-linux-x86_64-setup.runWindows Terminal输命令用的终端Docker Desktop建议用 4.18.0 版本坑一镜像下载慢C盘还没开始就满了这是卡住最多人的第一关。默认镜像源在海外拉一次镜像能慢得让人怀疑人生而且 Docker 默认把镜像存 C 盘Zephyr 构建镜像就有 12GB 往上不规划一下 C 盘先遭殃。把镜像存储位置挪走打开 Docker Desktop 设置在 Resources 选项卡里找到 Disk image location把镜像位置改到空间充裕的盘改完重启 Docker 生效。配国内镜像源下载快十倍在 Docker 的守护进程配置里加上国内加速地址{ registry-mirrors: [ https://registry.docker-cn.com, https://mirror.aliyuncs.com ] }配好后再拉镜像速度会明显不一样。拉取官方Zephyr构建镜像打开 Windows Terminal输入docker pull zephyrprojectrtos/zephyr-build:latestlatest 就是拉最新版本。终端显示下载完成再用 docker images 确认本地有 zephyr-build 这个镜像这个坑就算过了。坑二容器起来了项目文件却找不到还有一种常见情况容器倒是启动了可你不知道项目该放哪。解法的关键是“挂载”——把 Windows 本地目录映射进容器以后你在 Windows 文件管理器里放文件容器里立刻就能看到。一条命令建容器并挂载目录docker run -it --name SIG_Zephyr -v /d/Workspace/SIG_Zephyr:/workdir zephyrprojectrtos/zephyr-build:latest拆开看-it进交互模式直接落进容器命令行--name SIG_Zephyr给容器起个名字方便以后管理-v /d/Workspace/SIG_Zephyr:/workdir把本地D:\Workspace\SIG_Zephyr映射到容器的/workdir换成你自己的目录即可命令跑完你的光标已经在容器 shell 里了。解压项目顺手验证工作区把下载好的项目包和 SDK 放进挂载目录在 Windows 侧放就行容器里同步可见然后tar -xvzf sig_zephyr_v2.7.4.tar.gz解压完顶层目录会多出.west、zephyr、modules等文件夹这就是完整的 Zephyr 工程工作区。接着执行一次west update它会按清单文件补齐所有子模块——这一步既能补依赖又能当体检跑通说明项目结构没坏。安装Zephyr工具链SDK 是个安装脚本两步搞定chmod x zephyr-sdk-0.13.1-linux-x86_64-setup.run ./zephyr-sdk-0.13.1-linux-x86_64-setup.run第一条是给文件加执行权限第二条才是真正安装按提示装到默认位置即可。坑三编译报错或者示例跑不起来环境齐了第一件事当然是跑个示例找成就感。Zephyr 仓库自带“哲学家问题”philosophers样例经典的 Dining Philosophers 问题拿来验证环境再合适不过。编译示例进入 zephyr 目录执行west build -p auto -b qemu_cortex_m3 samples/philosophers参数翻译成人话-b qemu_cortex_m3目标是虚拟的 Cortex-M3 板子由 QEMU 模拟器来跑不需要物理开发板-p auto发现旧的构建目录不新鲜时自动清理重建末尾的 samples/philosophers要编译哪个示例编译过程的终端输出长这样在QEMU里运行west build -t run-t run 表示执行“运行”这个构建目标。QEMU 会弹出来终端里开始不断刷字符——那就是示例在跑按 CtrlC 可以随时叫停。⚠️ 万一编译失败九成是两种原因之一SDK 没装干净或者项目目录结构有问题。别急着改代码回头核对一下 SDK 安装和 west update 的输出病根基本都在那儿。坑四命令行太折腾VSCode怎么接入才顺手命令行熟起来确实方便但刚入门时图形化编辑器能省不少事。Zephyr 没有像 Keil 那样官方配套的 IDE社区主流玩法就是 VSCode 加一堆插件覆盖三件事看代码、编译构建、调试。先装这五类插件插件用途C/C代码提示、调试、代码浏览CMake构建脚本语法支持kconfigZephyr 的 Kconfig 配置文件支持nRF DeviceTreeZephyr 设备树文件支持Arm AssemblyARM 汇编高亮VSCode工作区这样摆建议用 multi-root workspace把 zephyr、modules、app你的应用、build 四个目录收进同一个工作区zephyr_workspace ├── zephyr # Zephyr内核代码 ├── modules # Zephyr模块 ├── app # 你自己的应用 └── build # 构建产物单独放别污染 git 仓库项目里带了现成的参考配置可以直接抄vscode/zephyr.code-workspace。让代码提示真正生效Zephyr 代码体量很大C/C 插件默认配置撑不住。救星是 build 目录下的 compile_commands.json——CMake 配置后生成记录了本次构建涉及的文件和编译选项。把它指给插件提示才准{ C_Cpp.default.compileCommands: ${workspaceFolder}/build/compile_commands.json }注意它只覆盖上次构建用到的内容你没编网络功能网络相关代码就不会进提示这是机制使然不是坏了。一键编译与图形化调试Zephyr 的构建内核是 west CMake Python 这套命令行组合VSCode 干的活本质上是给它们套层图形化的“皮”编译任务在 build/.vscode/tasks.json 里定义构建、menuconfig、clean 等任务之后从“运行任务”菜单里点一下即可调试配置在 build/.vscode/launch.json 里定义 gdb 会话断点、单步、看变量全都能在图形界面里做参考配置项目都给了vscode/.vscode/tasks.json 和 vscode/.vscode/launch.json。另外如果你的 VSCode 在 Windows 上、而环境在容器里装个 Docker 插件找到 SIG_Zephyr 容器点 Attach to Container编辑器就直接贴进容器里干活。最常用west命令速查表west 是 Zephyr 项目的管家日常工作就两类管工作区、触发构建记住这几条就够命令干什么west init -m https://gitcode.com/openeuler/zephyr-cn zephyrproject新建工作区从指定地址克隆清单仓库到 zephyrproject 目录west update对照清单文件补齐缺失的子模块已有的也会更新west build -b board app path为指定板子编译应用west build -t run编译后直接运行仿真板就是 QEMU 启动west build -t debug编译后进入调试如果提示找不到 west 命令多半是环境变量没加载在容器里先跑一遍source zephyr/zephyr-env.sh遇到问题时三个快速应答状况怎么办手滑退出了容器exit 只是退出容器还在docker start SIG_Zephyr启动docker attach SIG_Zephyr再进去west / 环境变量缺失容器内执行source zephyr/zephyr-env.shVSCode 想操作容器里的文件装 Docker 插件对容器点 Attach to Container现在可以开始写代码了 ✨到这儿秒开的容器、能编译的工具链、能调试的编辑器都就位了Zephyr 开发环境的三件套算齐活。往后就记两条所有项目文件放挂载目录里构建目录单独放。完整步骤可以看项目里的 doc/source/develop/windows_docker.rst 和 doc/source/develop/vscode.rstwest 的更多细节在 doc/source/develop/west/basic.rst。下一步随便找个 samples 里的例子改一改再跑一遍——这是上手 Zephyr 最快的路。【免费下载链接】zephyr-cnzephyr-cn is a collection of original work of SIG-Zephyr项目地址: https://gitcode.com/openeuler/zephyr-cn创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门