这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 开发记录02:Zephyr在Win10(22H2)开发环境建构(目标板FRDM-

共6条 1/1 1 跳转至

开发记录02:Zephyr在Win10(22H2)开发环境建构(目标板FRDM-MCXW71)

菜鸟
2026-05-20 21:12:50     打赏

视频教程(https://v.eepw.com.cn/video/play/id/16462)中,对于Zephyr开发环境的建构并未详细说明。

参考:刘工(论坛ID:lulug)发的贴子:https://forum.eepw.com.cn/thread/399428/1/#1 标题:“ZephyrRTOSWindows11完整安装教程”

第一阶段:安装依赖工具(通过Chocolatey)

我的系统版本使用了win10的最后一个版本22H2,19045。为了本贴发布,特别重新安装了系统。

1779281268440651.png

(注释:因为后续发现python 3.14版本过高,导致有些库无法安装,所以退回python3.12,相关记录删除,明日重装系统,再次测试)

# 安装 Chocolatey,以管理员身份运行 PowerShell,依次运行如下命令:

$env:HTTP_PROXY="http://127.0.0.1:1082"; $env:HTTPS_PROXY="http://127.0.0.1:1082"

Set-ExecutionPolicy Bypass -Scope Process -Force

[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072

iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

第一行设置代理,为了提高互联网速度。

第二行,可以运行网络下载的脚本的。

第三行,兼容https的设置,固定套路。

第四行,下载脚本并运行安装choco。


安装choco完成后,关闭这个窗口,从新打开一个,使用命令 choco来测试命令已经安装完成。接着使用choco安装。

# 使用 Chocolatey 安装所有依赖工具(不加代理会慢)

$env:HTTP_PROXY="http://127.0.0.1:1082"; $env:HTTPS_PROXY="http://127.0.0.1:1082"

choco install -y cmake --installargs 'ADD_CMAKE_TO_PATH=System'

choco install -y ninja gperf python312 git dtc-msys2 wget 7zip

完成的截图(中间等了一段时间)

关闭这个powershell窗口,让更新的PATH生效。新开一个powershell,测试安装:

# 验证安装

cmake --version

python --version

git --version


补充说明:你可能会问,为什么不手工一个一个的安装这些软件工具,非要搞一个包管理呢?windows是一个贴近物质层面的操作系统,它不像UNIX/BSD/linux是使用抽象目录树的格式,从一般直觉上看,我们更倾向于知道这些软件二进制文件所在何处。但是对于Zephyr的特殊之处在于,它的风格和工具链是linux内核式的,如果你找一种统一IOS(根子是BSD)和Android(根子是linux)的物联网软件的话,Matter是标准,Zephyr是骨架,这是已经钦定的了。这俩都是UNIX系的抽象模型打头的模式(微软的这种贴地操作确实存在灵性天花板)。在这种情况下,从下到上操作将变的非常困难,工具链保持乱七八糟的状态是比较长期的特征(参考linux的GUI一直都是慢慢悠悠的,侧重灵性的一般物质优化,或者说针对性优化差)。在这种情况下,只有尽可能使用cli和保守的开发生态,比如说choco这种,来应对。你任何的试图稳定物质层面——固定化一组二进制软件包的行为都将被上层的更新/变化打乱。如果你真的优化得到了一组非常稳定的二进制工具包,那么,你也不会获得任何阶级提升,相反是给zephyr开发高桌会议白白供血供思路供肥料了,所以只有选择已经成型的稳定生态使用,再寻找自由度的策略




关键词: Zephyr     MCXW71     环境建构    

菜鸟
2026-05-21 00:32:27     打赏
2楼

第二阶段:安装 west 工具

Zephyr这个名字来源于希腊神话西风之神,为什么是希腊神话?为什么是西风?发行量最大的那本英文书后半部分原文是希腊语的所以总要找个希腊名拔高,至于说为什么是西风?因为东风和北风不听话,而南风贴地。所以只能是西风。既然都有拔高的西风了那也得造一个生态(就是个缝合怪),于是就有了python(本身也是混乱不堪)之上的west工具。

这工具干嘛的呢?有一点git有一点make,总之,zephyr命令集合入口。

既然west是基于python的,那么自然可以pip安装。

pip install west --proxy http://127.0.0.1:1082

捕获.PNG



菜鸟
2026-05-21 01:49:38     打赏
3楼

第三阶段:初始化 Zephyr 工作区

既然辅助工具也装完了,python的west也装完了,那自然应该到了把软件代码下载到某个文件夹了。这些代码都放在github,然后用git,不,west调用git下载。

既然要用github那前置动作自然是:设置代理:

$proxy="http://127.0.0.1:1082"; $env:HTTP_PROXY=$proxy; $env:HTTPS_PROXY=$proxy; $env:http_proxy=$proxy; $env:https_proxy=$proxy; git config --global http.proxy $proxy; git config --global https.proxy $proxy

建立一个文件夹,我们使用D盘的nxp_w71_zephyr

mkdir d:\nxp_w71_zephyr

cd d:\nxp_w71_zephyr

然后从github上把zephyr的文件下载下来:

west init -m https://github.com/zephyrproject-rtos/zephyr

我这里显示下载了一段时间:

image.png

下载了850M,最后文件夹大小

image.png

我们下一步看看下载了什么。


菜鸟
2026-05-21 02:29:51     打赏
4楼

image.png

很显然,历史记录占了绝大部分空间,但是,询问AI后得知,似乎还不能删除这个文件夹,west需要这个文件夹中的一些内容。

当然,一种合理的做法是保留最后的一次改动。

image.png排除.git后的体积大小:274M!!还是很大!

我们接下来 应该是 

west update

,但是这个下载的内容高达8G,太大了,各种内容混在一起,所以我们要改下设置,精准对应到NXP的FRDM-MCXW71



菜鸟
2026-05-21 06:16:22     打赏
5楼

west init 下载的是:纯粹的Zephyr RTOS 内核(调度器、线程管理、内存管理、线程间通信等)。这部分代码相对纯粹、体积小,由 Zephyr 基金会核心团队高频更新。west update 下载的是: 庞大的外围生态(协议栈、各家板级支持包 BSP、测试套件)。

这像是一个操作系统和应用软件的关系,先画骨干后补充肉。


# 用标准命令写入本地配置,只拉nxp的

west config manifest.group-filter -- "-optional,+core,+hal_nxp,+cmsis,+blobs"

# 修改west.yml

删除各种不用的hal(Hardware Abstraction Layer(硬件抽象层))只留下: 

   - name: hal_nordic

    - name: hal_nxp

    - name: hal_rpi_pico

    - name: hal_silabs

west.zip

# 结合“浅克隆”参数进行精准极速同步

west update --narrow

(过程中我不得不发出感叹:zephyr万神殿啊)

下载完了大约4个G(还是有点大啊,精简的不够厉害)

image.png

# 导出 Zephyr CMake 包

west zephyr-export

# 安装 Python 依赖包

cd d:\nxp_w71_zephyr\zephyr

pip install -r .\scripts\requirements.txt

然后它报错要求有vc+,我直接:

choco install visualstudio2022buildtools --package-parameters "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended" -y

(总是都是很耗费时间的。。为了装个python包装了个vc+。。)

然后

pip install -r .\scripts\requirements.txt --upgrade

(竟然还是报错!!!,我下次还是退回到python3.12好了!)

先跳过错误。从arm官方下载arm-gcc 13.3,设置,编译测试:

west build -b frdm_mcxw71 samples/basic/blinky -- -DZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb -DGNUARMEMB_TOOLCHAIN_PATH="D:\bin\arm-gnu-toolchain-13.3.rel1-mingw-w64-i686-arm-none-eabi"

(又等了很长时间。。。CPU 100%)

终于生成了elf,看来这一次栽在python版本过高上了!

image.png



高工
2026-05-21 07:55:12     打赏
6楼

优秀,期待你的精彩作品!


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]