Zephyr SDK
Zephyr 软件开发工具包(SDK)为 Zephyr 支持的各架构提供 GNU 和 LLVM 工具链,还包含定制 QEMU、OpenOCD 等主机工具。
强烈建议使用 Zephyr SDK,在某些情况下甚至是必需的(例如在某些架构上通过 QEMU 运行测试)。
支持的架构
Zephyr SDK 支持以下目标架构:
ARC(32 位和 64 位;ARCv1、ARCv2、ARCv3)
ARM(32 位和 64 位;ARMv6、ARMv7、ARMv8;A/R/M 配置)
Microblaze(32 位)
MIPS(32 位和 64 位)
RISC-V(32 位和 64 位;RV32I、RV32E、RV64I)
RX
SPARC(32 位和 64 位;SPARC V8、SPARC V9)
x86(32 位和 64 位)
Xtensa
安装套件与变量
Zephyr SDK 套件支持 Linux、macOS 和 Windows 等主要操作系统,以压缩文件形式分发。
为方便分发,SDK 提供三种预打包变体可供下载:
变体 |
主机工具 |
所含工具链 |
|---|---|---|
|
是 |
适用于所有受支持架构的 GNU 工具(Binutils、GCC 和 GDB) |
|
是 |
LLVM/Clang |
|
是 |
无 |
安装过程包括解压下载的套件,并运行其中的安装脚本。
无论下载哪个套件,安装时都会询问需要安装哪些工具链。如果运行安装脚本的本地目录中找不到所选工具链,会在安装过程中下载。也可以将 GNU 和 LLVM SDK 套件都下载并解压到同一个目录树,从而同时安装两者,而无需在运行安装脚本时再下载。
各操作系统的附加说明见以下各节。
未选择工具链时,构建系统会查找 Zephyr SDK 并使用其中的工具链。将环境变量 ZEPHYR_TOOLCHAIN_VARIANT 设为 zephyr 可强制采用此方式。
如果将 Zephyr SDK 安装在默认位置之外(默认位置见下方各操作系统说明),又希望能够自动发现它,则必须运行安装脚本,将 SDK 注册到 CMake 包注册表。如果不注册,可使用 ZEPHYR_SDK_INSTALL_DIR 指向 SDK 安装目录。
也可以将 ZEPHYR_SDK_INSTALL_DIR 指向包含多个 Zephyr SDK 的目录,以自动选择工具链。例如,将 ZEPHYR_SDK_INSTALL_DIR 设为 /company/tools,其中 company/tools 包含以下子目录:
/company/tools/zephyr-sdk-0.13.2/company/tools/zephyr-sdk-a.b.c/company/tools/zephyr-sdk-x.y.z
这样既可以将多个 Zephyr SDK 集中存放在指定路径,也能让构建系统选择正确版本。
Zephyr SDK 版本兼容性
一般而言,本页引用的 Zephyr SDK 版本可视为对应 Zephyr 版本的推荐版本。
完整的 Zephyr 与 SDK 版本兼容列表见 Zephyr SDK Version Compatibility Matrix。
安装 Zephyr SDK
备注
如有需要,可以将以下说明中的 1.0.1 换成其他版本;所有可用 SDK 版本见 Zephyr SDK Releases 页面。
备注
以下说明使用 Zephyr GNU SDK 套件安装,其中包含所有受支持架构的 GNU 工具链及主机工具。使用 Zephyr LLVM SDK 套件时,将套件文件名中的 _gnu 后缀替换为 _llvm。
备注
卸载 SDK 时,只需删除其安装目录。
下载并验证 Zephyr SDK bundle:
cd ~ wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v1.0.1/zephyr-sdk-1.0.1_linux-x86_64_gnu.tar.xz wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v1.0.1/sha256.sum | shasum --check --ignore-missing
如果主机架构是 64 位 ARM,例如 Raspberry Pi,请将
x86_64替换为aarch64,下载 64 位 ARM Linux SDK。解压 Zephyr SDK 套件:
tar xvf zephyr-sdk-1.0.1_linux-x86_64_gnu.tar.xz
备注
建议将 Zephyr SDK 套件解压到以下某个位置:
$HOME$HOME/.local$HOME/.local/opt$HOME/bin/opt/usr/local
SDK 套件压缩包包含
zephyr-sdk-<version>目录,因此解压到$HOME后,安装路径为$HOME/zephyr-sdk-<version>。运行 Zephyr SDK 套件安装脚本:
cd zephyr-sdk-1.0.1 ./setup.sh
备注
解压 Zephyr SDK 套件后,只需运行一次安装脚本。
首次设置后,如果移动了 Zephyr SDK 套件目录,必须重新运行安装脚本。
安装 udev 规则,以便普通用户烧录大多数 Zephyr 开发板:
sudo cp ~/zephyr-sdk-1.0.1/hosttools/sysroots/x86_64-pokysdk-linux/usr/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d sudo udevadm control --reload
下载并验证 Zephyr SDK bundle:
cd ~ curl -L -O https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v1.0.1/zephyr-sdk-1.0.1_macos-aarch64_gnu.tar.xz curl -L https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v1.0.1/sha256.sum | shasum --check --ignore-missing
解压 Zephyr SDK 套件:
tar xvf zephyr-sdk-1.0.1_macos-aarch64_gnu.tar.xz
备注
建议将 Zephyr SDK 套件解压到以下某个位置:
$HOME$HOME/.local$HOME/.local/opt$HOME/bin/opt/usr/local
SDK 套件压缩包包含
zephyr-sdk-<version>目录,因此解压到$HOME后,安装路径为$HOME/zephyr-sdk-<version>。运行 Zephyr SDK 套件安装脚本:
cd zephyr-sdk-1.0.1 ./setup.sh
备注
解压 Zephyr SDK 套件后,只需运行一次安装脚本。
首次设置后,如果移动了 Zephyr SDK 套件目录,必须重新运行安装脚本。
以普通用户身份 打开
cmd.exe终端窗口。-
cd %HOMEPATH% wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v1.0.1/zephyr-sdk-1.0.1_windows-x86_64_gnu.7z
解压 Zephyr SDK 套件:
7z x zephyr-sdk-1.0.1_windows-x86_64_gnu.7z
备注
建议将 Zephyr SDK 套件解压到以下某个位置:
%HOMEPATH%%PROGRAMFILES%
SDK 套件压缩包包含
zephyr-sdk-<version>目录,因此解压到%HOMEPATH%后,安装路径为%HOMEPATH%\zephyr-sdk-<version>。运行 Zephyr SDK 套件安装脚本:
cd zephyr-sdk-1.0.1 setup.cmd
备注
解压 Zephyr SDK 套件后,只需运行一次安装脚本。
首次设置后,如果移动了 Zephyr SDK 套件目录,必须重新运行安装脚本。