Zephyr RTOS开发环境搭建
前言
- 在当今快速发展的物联网(IoT)领域,实时操作系统(RTOS)在嵌入式开发中的作用越来越重要。Zephyr 是一个功能强大且开源的实时操作系统,专为资源受限的设备设计,提供了高效、可扩展的解决方案。它支持广泛的硬件平台,并且具有灵活的配置选项,适用于从简单的传感器节点到复杂的智能设备等各种应用。
- 在实际进行嵌入式系统开发时,开发人员需要一个完善的开发环境。这不仅能帮助加速开发过程,还能确保高质量的代码和系统性能。搭建一个高效的 Zephyr 开发环境可以简化代码编写、测试和调试过程,使开发人员能够专注于创新和优化。
- 本文将介绍如何搭建一个 Zephyr 开发环境,从环境配置到工具安装,确保可以顺利启动和管理 Zephyr 项目。
准备
- 系统:ubuntu 18.04
- zephyr版本:3.2.99
- 参考文档 zephyr 入门指
获取依赖工具
工具 | 最低版本 |
---|---|
cmake | 3.20.0 |
Python | 3.8 |
dtc | 1.4.6 |
sudo apt update
sudo apt upgrade
wget https://apt.kitware.com/kitware-archive.sh
sudo bash kitware-archive.sh
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
若 Python 版本低于3.8,更新软件包列表,并且安装依赖包
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.8
python3.8 --version
获取 Zephyr 并安装 Python 依赖项
- apt 安装 Pythonvenv 包
sudo apt install python3.8-venv
- 创建一个新的虚拟环境
python3.8 -m venv ~/zephyrproject/.venv
- 激活虚拟环境,激活后,shell 将以(.venv)为前缀; 可以通过 deactivate 随时停用虚拟环境
source ~/zephyrproject/.venv/bin/activate
- 更新 pip
pip install --upgrade pip
- 安装 west
pip install west
- 获取 Zephyr 源代码
west init ~/zephyrproject
cd ~/zephyrproject
west update
- 导出 Zephyr CMake 包,这允许 CMake 自动加载构建 Zephyr 应用程序所需的样板代码
west zephyr-export
- 安装 Zephyr 的额外的 Python 依赖项
pip install -r ~/zephyrproject/zephyr/scripts/requirements.txt
#若 west update 时出现类似报错,只要不是关键仓库下载失败,可以忽略
#ERROR: update failed for projects: hal_renesas, hal_telink, hal_wurthelektronik, liblc3, loramac-node, picolibc, #trusted-firmware-a, uoscore-uedhoc, zcbor
#若 west zephyr-export 导出失败,选择不通过 west 导出,如我的目录 (.venv) chenqinhu@chenqinhu:~/zephyrproject$
sudo cmake -P zephyr/share/zephyr-package/cmake/zephyr_export.cmake
sudo cmake -P zephyr/share/zephyrunittest-package/cmake/zephyr_export.cmake
- 下载并验证最新的 Zephyr SDK 包
cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.1/zephyr-sdk-0.15.1_linux-x86_64.tar.gz
wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.1/sha256.sum | shasum --check --ignore-missing
- 在 /usr/local 下提取 Zephyr SDK 包存档
tar xvf zephyr-sdk-0.15.1_linux-x86_64.tar.gz
生成的安装路径将为 $/usr/local/zephyr-sdk-0.15.1.
- 运行 Zephyr SDK 包设置脚本
cd /usr/local/zephyr-sdk-0.15.1
./setup.sh
- 安装udev规则,它允许您以普通用户的身份刷写大多数 Zephyr 板
sudo cp ~/zephyr-sdk-0.15.1/sysroots/x86_64-pokysdk-linux/usr/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d
sudo udevadm control --reload
构建示例
- 找一块 west boards blinky 示例支持的板,如我的板 nucleo_g474re
cd ~/zephyrproject/zephyr
west build -p always -b nucleo_g474re samples/basic/blinky
west flash
- 如果不确定板子是否支持 blinky 示例,运行 hello_world 示例
west build -p always -b nucleo_g474re samples/hello_world
- 通过 minicom 串口助手观察输出
安装 minicom,相关使用可看这里 Linux笔记:串口通讯工具minicom基础使用
sudo apt install minicom
- 打开串口助手
sudo minicom -D /dev/ttyACM0 -b 115200
到此就成功搭建 zephyr 的开发环境了
查看芯片厂商提供的示例
- zephyr/samples 目录下有各种厂商对自加芯片提供的示例,可以参考这里面的示例,逐渐在 zephyr 上开发自己的项目功能。