配置Zephyr编译环境

安装chocolatey

以管理员身份运行PowerShell,然后在PowerShell下执行以下命令,安装chocolatey。

bash 复制代码
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'))

如果出现安装失败,可删除C:\ProgramData\chocolatey目录后再次运行相同命令,多次尝试直到安装成功。

安装完成后,可输入choco命令,确认版本号。

安装依赖程序

以管理员身份运行cmd。

首先,禁用全局确认以避免必须确认单个程序的安装。

bash 复制代码
choco feature enable -n allowGlobalConfirmation

然后,安装cmake。因为网络原因,安装过程较慢,并且可能出现中断,需要耐心等待。

bash 复制代码
choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System'

安装其他依赖工具。安装过程与cmake类似,省略安装过程图片。

bash 复制代码
choco install ninja gperf python311 git dtc-msys2 wget 7zip

下载Zephyr源码,安装python依赖库

以管理员身份运行cmd。安装python库west。

bash 复制代码
pip3 install -U west

安装后查看python库列表如下。

下载Zephyr源码,以普通用户身份运行cmd。源码下载到当前用户目录。

首先初始化zephyrproject。

bash 复制代码
cd %HOMEPATH%
west init zephyrproject

然后进入zephyrproject目录,更新Zephyr源码。

bash 复制代码
cd zephyrproject
west update

注意,由于更新过程是从github拉取文件,网络环境不稳定会导致部分源码更新失败,需要反复运行west update,直到没有以下错误log。

导出Zephyr CMake软件包。这允许CMake自动加载构建Zephyr应用程序所需的样板代码。

bash 复制代码
west zephyr-export

接下来安装python依赖库。

以管理员身份运行cmd(也可以用普通用户身份安装,但是用管理员身份安装更加可靠)。并执行以下命令。

bash 复制代码
pip3 install -r %HOMEPATH%\zephyrproject\zephyr\scripts\requirements.txt

如果安装过程中没有出现错误,会列出已经完成安装的python库。否则需要尝试重新安装。

此时,可以再次使用pip list查看python库列表。

安装Zephyr SDK

Zephyr软件开发工具包(SDK)包含Zephyr支持的每个架构的工具链,其中包括编译器、汇编程序、链接器和构建Zephyr应用程序所需的其他程序。

还包含其他host工具,如用于模拟、烧录和调试Zephyr应用程序的自定义QEMU和OpenOCD构建。

以普通用户身份运行cmd。下载SDK构建包。

bash 复制代码
cd %HOMEPATH%
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.5-1/zephyr-sdk-0.16.5-1_windows-x86_64.7z

解压Zephyr SDK构建包。

建议在以下路径解压Zephyr SDK:

  • %HOMEPATH% ---- 当前用户目录
  • %PROGRAMFILES% ---- C:\Program Files
bash 复制代码
7z x zephyr-sdk-0.16.5-1_windows-x86_64.7z

执行Zephyr SDK setup脚本。仅需要在SDK下载后执行一次。如果更换SDK路径,需要再次执行。

bash 复制代码
cd zephyr-sdk-0.16.5-1
setup.cmd

编译Hello World

以管理员身份运行cmd。进入zephyr目录,执行编译命令。

注意,帮助文档中提供的命令west build -b qemu_x86 samples/hello_world,会导致运行时异常。因此用以下命令进行编译。

bash 复制代码
cd %HOMEPATH%\zephyrproject\zephyr
west build -b qemu_cortex_m3 samples/hello_world

安装QEMU软件,在https://qemu.weilnetz.de/w64/下载qemu-w64-setup-20240423.exe,并手动安装。

注意将QEMU安装路径添加到环境变量。

如果没有安装QEMU,会提示如下错误。

编译完成后,运行。

bash 复制代码
west build -t run

看到Hello World打印,说明已经运行成功。

通过ctrl + a,再按x退出QEMU,退出后,输入方向键会导致乱码,这是因为QEMU是模拟linux环境,与windows使用的字符集不同。

可以通过chcp 431命令解决。

相关推荐
丁丁丁梦涛16 分钟前
EMQX配置 ssl 和 wss
网络·网络协议·ssl·emqx·wss
大熊背31 分钟前
ISP基本框架及软硬件算法实现介绍目录
网络·接口隔离原则
繁华似锦respect1 小时前
C++ unordered_map 底层实现与详细使用指南
linux·开发语言·c++·网络协议·设计模式·哈希算法·散列表
IT 乔峰1 小时前
linux部署DHCP服务端
linux·运维·网络
Wokoo71 小时前
HTTP不同版本核心对比
网络·网络协议·tcp/ip·http·udp·ssl
在路上看风景2 小时前
7.4 KDC和CA
网络
新诺韦尔API2 小时前
手机空号检测接口对接全流程指南
大数据·网络·智能手机·api
乾元3 小时前
AI + Jinja2/Ansible:从自然语义到可执行 Playbook 的完整流水线(工程级深度)
运维·网络·人工智能·网络协议·华为·自动化·ansible
ZhengEnCi3 小时前
一次多线程同步问题的排查:从 thread_count 到 thread.join() 的踩坑之旅
python·网络协议·tcp/ip
飞行增长手记3 小时前
IP协议从跨境到物联网的场景化应用
服务器·前端·网络·安全