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

共4条 1/1 1 跳转至

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

菜鸟
2026-05-20 21:12:50   被打赏 50 分(兑奖)     打赏

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

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

提出问题:

D盘有一个zephyr文件夹,为FRDM-MCXW71开发板建立一个zephyr开发环境,要求绿色,全部文件放在这个文件夹,重装系统后可以用,(注释:我的系统版本使用了win10的最后一个版本22H2,19045。)

一、 目录规划

在 D:\zephyr 下创建以下子文件夹:

D:\zephyr\env —— 存放 Python、Git、CMake、Ninja 等便携版工具。

D:\zephyr\project —— 存放 Zephyr 源码及你的项目代码。

二、 准备便携版底层工具(全部解压到 env 目录)

请前往各官网下载以下工具的 Windows 64位 Binary / Portable / ZIP 版本:

1,Python 3.12.10 便携版:下载 https://sourceforge.net/projects/winpython/files/WinPython_3.12/3.12.3.0/Winpython64-3.12.3.0dot.exe/download  。下载得到Winpython64-3.12.3.0dot.exe,修改后缀成Winpython64-3.12.3.0dot.zip,解压,将其中的 python-3.12.3.amd64 复制成 D:\zephyr\env\python。(注意文件夹名字改了,这个版本自带pip,不用折腾了)

2,Git Portable:下载 Thumbdrive edition 版本的 7z 压缩包。解压到 D:\zephyr\env\git。

https://github.com/git-for-windows/git/releases/download/v2.54.0.windows.1/PortableGit-2.54.0-64-bit.7z.exe

3,CMake:下载 Windows x64 ZIP。解压到 D:\zephyr\env\cmake。

https://github.com/Kitware/CMake/releases/download/v4.3.2/cmake-4.3.2-windows-x86_64.zip

4,Ninja:下载 ninja-win.zip。解压并将 ninja.exe 放入 D:\zephyr\env。

https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip

image.png

三、 编写绿色环境“一键激活”脚本

在 D:\zephyr 下创建一个名为 env.bat 的批处理文件。双击它就会打开一个配置好所有路径的命令行窗口。

在 D:\zephyr\env.bat 中写入以下内容:

 

@echo off

title Zephyr Portable Environment for MCXW71

set WORK_DIR=%~dp0

set PATH=%WORK_DIR%env\python;%WORK_DIR%env\python\Scripts;%PATH%

set PATH=%WORK_DIR%env\git\cmd;%PATH%

set PATH=%WORK_DIR%env\cmake\bin;%PATH%

set PATH=%WORK_DIR%env;%PATH%

python --version

pip --version

git --version

cmake --version

ninja --version

echo ------------------------

cmd /k

image.png

此时env文件夹大小 651M左右。

运行 D:\zephyr\env.bat 得到shell,

四,west init 和 update

用pip安装west这个工具:

pip install west 

执行命令设置代理:

set HTTP_PROXY=http://127.0.0.1:1082

set HTTPS_PROXY=http://127.0.0.1:1082

切换到 `project` 目录:   

cd /d D:\zephyr\project

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

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

(要下载一段时间,下载完成后project由0变1.15GB)

image.png




关键词: Zephyr     MCXW71     环境建构    

菜鸟
2026-05-25 07:06:31   被打赏 30 分(兑奖)     打赏
2楼

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

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

(大多数教程到此会要求 直接执行 west update 命令,但是这将会下载整个所有Zephyr支持的开发板的各种支持包——类似将keil的所有支持的MCU的库都下载了一样。这显然是不过精简的。所以接下来是改动设置文件)

编辑 D:\zephyr\project\zephyr\west.yml

替换成:

manifest:
  defaults:
    remote: upstream
  remotes:
    - name: upstream
      url-base: https://github.com/zephyrproject-rtos
    - name: babblesim
      url-base: https://github.com/BabbleSim
  group-filter: [-test]  
  projects:
    - name: cmsis
      revision: 512cc7e895e8491696b61f7ba8066b4a182569b8
      path: modules/hal/cmsis
      groups:
        - hal
    - name: cmsis-dsp
      revision: 97512610ec92058f0119450b9e743eeb7e95b5c8
      path: modules/lib/cmsis-dsp
    - name: cmsis-nn
      revision: d20117c9e88cf9018d6fa06744dddac700c3e3a1
      path: modules/lib/cmsis-nn
    - name: cmsis_6
      repo-path: CMSIS_6
      revision: b2dfbe1a20bbd49c2d2c605073799671074bbb30
      path: modules/hal/cmsis_6
      groups:
        - hal
#    - name: hal_nordic
#      revision: 3c08112f3d92c81b98134479c01d3cfd40f54016
#      path: modules/hal/nordic
#      groups:
#        - hal
    - name: hal_nxp
      revision: 91bd9377e18d002822f6d920804bad7d00e0c38c
      path: modules/hal/nxp
      groups:
        - hal
#    - name: hal_rpi_pico
#      path: modules/hal/rpi_pico
#      revision: 562b41e10a1d8b1a761b253b107c5c6a84cf4535
#      groups:
#        - hal
    - name: liblc3
      revision: 48bbd3eacd36e99a57317a0a4867002e0b09e183
      path: modules/lib/liblc3
    - name: libmetal
      revision: c41f476ba425663cadf7e456b6432e4b21591278
      path: modules/hal/libmetal
      groups:
        - hal
    - name: littlefs
      path: modules/fs/littlefs
      groups:
        - fs
      revision: 8f5ca347843363882619d8f96c00d8dbd88a8e79
    - name: mbedtls
      revision: 6a08a7eb799853ce2a9053d24ecde31bf3a1322c
      path: modules/crypto/mbedtls
      groups:
        - crypto
    - name: mbedtls-3.6 # Required for TF-M build until we bump it to v2.3
      repo-path: mbedtls
      revision: a00e23de17b6b0a0de28e180cb186da6f0008836
      path: modules/crypto/mbedtls-3.6
      groups:
        - crypto
    - name: mcuboot
      revision: e36d3c8d6ca5e0ed1f510f2a7d110f405a7c396b
      path: bootloader/mcuboot
      groups:
        - bootloader
    - name: nanopb
      revision: 5499fd4c9a478f8139eeb07a82c3b4468d6067f7
      path: modules/lib/nanopb
    - name: net-tools
      revision: c3431f482ea8a7b570fa4573aa5d35875b7f2a23
      path: tools/net-tools
      groups:
        - tools
#    - name: nrf_wifi
#      revision: 47bd5b4ebd357ba637be0f2b092e1c0d370eea2f
#      path: modules/lib/nrf_wifi
    - name: open-amp
      revision: 01032a8a7bdfdd541686f5dfa3671e602b9fcbff
      path: modules/lib/open-amp
    - name: openthread
      revision: e4d97681c53ec1cc34af1404ad2960adda4ba691
      path: modules/lib/openthread
    - name: picolibc
      path: modules/lib/picolibc
      revision: 01254932e8e81085817ed61fd858648584ffe37c
    - name: segger
      revision: 50892fdbcf2f570e67baa72b8894a66b16946f72
      path: modules/debug/segger
      groups:
        - debug
    - name: tf-psa-crypto
      revision: dc575a2ddcc8cb16275d24c42a52eaf79ebe2231
      path: modules/crypto/tf-psa-crypto
      groups:
        - crypto
    - name: trusted-firmware-m
      revision: 9a4cb1a280b63a5e66bd469e82eb75f2b3e05a78
      path: modules/tee/tf-m/trusted-firmware-m
      groups:
        - tee
    - name: uoscore-uedhoc
      revision: dc0ab6345450668de3f9597320a48c5a2d409bb6
      path: modules/lib/uoscore-uedhoc
    - name: zcbor
      revision: 9164bd18dcd88ff9d9ef98279501fc1093571017
      path: modules/lib/zcbor
  # zephyr-keep-sorted-stop
  self:
    path: zephyr
    west-commands: scripts/west-commands.yml
    import: submanifests


运行 D:\zephyr\env.bat 得到shell,

切换到真正包含 .west 配置的项目根目录

cd /d D:\zephyr\project

执行命令设置代理:

set HTTP_PROXY=http://127.0.0.1:1082

set HTTPS_PROXY=http://127.0.0.1:1082

拉取对应的软件:

west update --narrow

(下载了约2.46G文件)

安装 python 依赖依赖包:

west zephyr-export
pip install -r zephyr\scripts\requirements.txt --prefer-binary



下载 SDK(编译对应的gcc等工具)

https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v1.0.1/zephyr-sdk-1.0.1_windows-x86_64_gnu.7z

运行env.bat再切换到这个文件夹执行setup.cmd 。

然后它提示要装7z,下载7z:

https://github.com/ip7z/7zip/releases/download/26.01/7z2601-x64.exe

把下载得到的exe改成zip,解压,将其中的7z.exe 和 7z.dll 复制到D:\zephyr\env

同样需要下载得到dtc.exe(已经下载好图中)

image.png

运行 D:\ephyr\env.bat 得到shell,运行文件夹中的setup.cmd

  1. Install GNU toolchain [Y,N]? 输入 Y 回车。

  2. Install LLVM toolchain [Y,N]?(如果弹出了这一问) 输入  N 

  3. Install host tools [Y,N]?(如果弹出了这一问) 输入 Y 回车。

  4. Register Zephyr SDK CMake package [Y,N]? 输入 Y 回车!

看到最后提示 All done. Press any key to exit ... 之后,就可以关闭这个窗口了。



五,验证与编译测试

双击 D:\zephyr\env.bat。

进去样例目录(以最简单的 blinky 为例):

cd /d D:\zephyr\project\zephyr\samples\basic\blinky


针对 `FRDM_MCXW71` 开发板进行编译:   

west build -b frdm_mcxw71 -p always -- -DWEST_TOPDIR="D:/zephyr/project"

编译完成后,所有的 build 文件和生成的 .bin/.hex 固件都会留存在当前工程的 build 目录下,整个 D:\zephyr 文件夹可以直接整体打包备份,移动到任何一台 Windows 电脑上都能做到“即开即用”。



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

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


菜鸟
2026-05-25 08:34:50     打赏
4楼

BUG:这个Cmake对多种windows的文件民敏感。估计还是linux原生。


精简优化到8G内(删除了除ARM和riscv之外的编译器)

上传到了google drive:提供下载:

https://drive.google.com/file/d/1n6rBc3XwLNVjsrgy4EKwlQcEd6UkrYf4/view?usp=sharing


共4条 1/1 1 跳转至

回复

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