目录
前言
最近在学习Zephyr RTOS系统的嵌入式开发,所以首先第一步就需要搭建开发环境。Zephyr支持Ubuntu,macOS,Windows环境下开发,我也就纠结是要在Windows上搭建还是在Ubuntu上搭建,最后选择在Ubuntu上搭建开发。原因有几点哈,Zephyr是Linux基金会管理的项目,它的开发方式也跟Linux比较类似,在Linux上开发能更好的使用一些开源的工具等。废话不多说,接线来我们开整。
按照本指南进行操作:
-
在Ubuntu上设置命令行Zephyr开发环境
-
获取源代码
-
构建、闪存并运行示例应用程序
1、选择和更新操作系统
本指南涵盖 Ubuntu 版本 18.04 LTS 及更高版本。
sudo apt update
sudo apt upgrade
2、安装依赖
接下来,您将使用包管理器安装一些主机依赖项。
当前主要依赖项的最低要求版本是:
工具 |
最小版本 |
---|---|
3.20.5 |
|
3.8 |
|
1.4.6 |
-
如果使用早于 22.04 的 Ubuntu 版本,则需要添加额外的存储库以满足上面列出的主要依赖项的最低要求版本。在这种情况下,下载、检查并执行 Kitware 存档脚本以将 Kitware APT 存储库添加到您的源列表中。
kitware-archive.sh
可以在这里找到 kitware 第三方 apt 存储库的详细解释:wget https://apt.kitware.com/kitware-archive.sh sudo bash kitware-archive.sh
-
用于
apt
安装所需的依赖项:sudo apt install --no-install-recommends git cmake ninja-build gperf \ ccache dfu-util device-tree-compiler wget \ python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \ make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1
-
通过输入以下内容来验证系统上安装的主要依赖项的版本:
cmake --version python3 --version dtc --version
3、获取 Zephyr 并安装 Python 依赖项
接下来,将 Zephyr 及其模块克隆到一个名为zephyrproject
. 您还将安装 Zephyr 的附加 Python 依赖项。
在系统或用户级别安装依赖项时,很容易遇到 Python 包不兼容问题。例如,如果在同一台机器上使用 Python 处理多个 Zephyr 版本或其他项目,就会发生这种情况。
为此,建议使用Python 虚拟环境。
-
用于
apt
安装 Pythonvenv
包:sudo apt install python3-venv
-
创建一个新的虚拟环境:
python3 -m venv ~/zephyrproject/.venv
-
激活虚拟环境:
source ~/zephyrproject/.venv/bin/activate
激活后,您的 shell 将带有前缀
(.venv)
。可以随时通过运行来停用虚拟环境deactivate
。笔记
每次开始工作时请记住激活虚拟环境。
-
安装west:
pip install west
-
获取 Zephyr 源代码:
west init ~/zephyrproject cd ~/zephyrproject west update
-
导出Zephyr CMake 包。这允许 CMake 自动加载构建 Zephyr 应用程序所需的样板代码。
west zephyr-export
-
Zephyr 的
scripts/requirements.txt
文件声明了额外的 Python 依赖项。安装它们pip
。pip install -r ~/zephyrproject/zephyr/scripts/requirements.txt
4、安装 Zephyr SDK
Zephyr 软件开发工具包(SDK) 包含每个 Zephyr 支持的架构的工具链,其中包括编译器、汇编器、链接器和构建 Zephyr 应用程序所需的其他程序。
它还包含其他主机工具,例如用于模拟、刷新和调试 Zephyr 应用程序的自定义 QEMU 和 OpenOCD 构建。
1.下载并验证最新的 Zephyr SDK 包:
cd ~ wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.0/zephyr-sdk-0.16.0_linux-x86_64.tar.xz wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.0/sha256.sum | shasum --check --ignore-missing
如果您的主机架构是 64 位 ARM(例如,Raspberry Pi),请替换
x86_64
为aarch64
以下载 64 位 ARM Linux SDK。2.提取 Zephyr SDK 包存档:
tar xvf zephyr-sdk-0.16.0_linux-x86_64.tar.xz
笔记
建议在以下位置之一提取 Zephyr SDK 包:
-
$HOME
-
$HOME/.local
-
$HOME/.local/opt
-
$HOME/bin
-
/opt
-
/usr/local
Zephyr SDK 包存档包含该
zephyr-sdk-0.16.0
目录,当在 下解压时$HOME
,生成的安装路径将为$HOME/zephyr-sdk-0.16.0
.3.运行 Zephyr SDK 捆绑设置脚本:
cd zephyr-sdk-0.16.0 ./setup.sh
笔记
在提取 Zephyr SDK 包后,您只需运行一次设置脚本。
如果在初始设置后重新定位 Zephyr SDK 包目录,则必须重新运行设置脚本。
4.安装udev规则,它允许您以普通用户身份刷入大多数 Zephyr 开发板:
sudo cp ~/zephyr-sdk-0.16.0/sysroots/x86_64-pokysdk-linux/usr/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d sudo udevadm control --reload
使用west build构建Blinky, 并根据您的电路板进行适当更改:
<your-board-name>
cd ~/zephyrproject/zephyr west build -p always -b <your-board-name> samples/basic/blinky
该选项强制进行原始构建,建议新用户使用。用户还可以使用该选项,它将使用启发式方法来确定是否需要原始构建,例如在构建另一个示例时。
-p always
-p auto
6、下载运行Blinky 示例
通常通过 USB 连接您的电路板,如果有电源开关,则将其打开。如果不确定该怎么做,请在支持的开发板中查看您的开发板页面。
然后使用west flash下载示例:
west flash
您可能需要安装电路板所需的其他主机工具。如果缺少任何必需的依赖项,该命令将打印错误。
west flash
如果您使用的是Blinky,LED 将开始闪烁。
-