一、开发环境
Ubuntu 22.04.4 LTS
二、Zephyr 操作系统介绍
Zephyr OS是一个轻量级的开源实时操作系统(RTOS),专为物联网(IoT)和资源受限的嵌入式系统而设计。Zephyr OS旨在构建一个针对资源受限设备的小型、可裁剪的实时操作系统,提供了一个低占用空间、高性能、多线程的执行环境。
硬件支持:
Zephyr OS支持多种硬件架构,包括ARM Cortex-M、Intel x86、ARC、Nios II、Tensilica Xtensa和RISC-V等。
Zephyr OS支持超过600种开发板,包括Arduino、ESP32、树莓派Pico、nRF51和nRF52板、NXP MIMXRT1010-EVK和其家族,以及STM32 Nucleo和Discovery家族等。
除了包含处理器的开发板,Zephyr OS还支持许多附加板(背板),并包括了各类接口和超过150种传感器的驱动。
软件特性:
Zephyr OS是一个可扩展的RTOS,针对资源受限的设备进行了优化,并在构建时考虑了安全性。
提供了广泛的内核服务套件,包括多线程服务、中断服务、内存分配服务、线程间同步服务、电源管理服务等。
支持多种调度算法,如协作和抢占式调度、最早截止日期优先(EDF)等。
提供了多种线程间数据传递服务,如基本消息队列、增强消息队列和字节流。
支持多种网络技术与协议,如TCP/IP、蓝牙、IEEE 802.15.4(在Zigbee中使用)、MQTT、NFS与LoRaWAN等。
开源与许可:
Zephyr OS是基于Apache 2.0许可的,完全开源,其代码托管在GitHub上。主要用C语言编写,代码风格、框架与Linux十分相似。
系统架构:
Zephyr OS将架构分为操作系统部分(内核 + 操作系统服务)和用户特定部分(应用程序服务)。
操作系统部分包含底层的、特定于平台的驱动程序和I/O API、文件系统、内核特定函数和加密库的通用实现。
独特性:
相比其他微型内核,Zephyr OS具有许多独特的优秀特性,如单地址空间操作系统、高度可配置性、编译时定义资源、最小错误检查等。
详细介绍:
https://docs.zephyrproject.org/latest/introduction/index.html
https://www.zephyrproject.org/
三、安装步骤
sudo apt update
sudo apt upgrade
版本依赖
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
新工作空间中克隆Zephyr 和 Python 相关依赖
sudo apt install python3-venv
python3 -m venv ~/zephyrproject/.venv
source ~/zephyrproject/.venv/bin/activate
注意:每次开始工作前需要激活虚拟环境。
pip install west
git config --global http.postBuffer 2048288000
git config --global https.postBuffer 2048288000
west init ~/zephyrproject
cd ~/zephyrproject
west update
west zephyr-export
pip install -r ~/zephyrproject/zephyr/scripts/requirements.txt
Zephyr SDK的安装
cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.8/zephyr-sdk-0.16.8_linux-x86_64.tar.xz
可先将sdk下载到本地
下载地址
https://github.com/zephyrproject-rtos/sdk-ng/releases
或者
wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.8/sha256.sum | shasum --check --ignore-missing
tar xvf zephyr-sdk-0.16.8_linux-x86_64.tar.xz
cd zephyr-sdk-0.16.8
./setup.sh
注意:
只需要在提取Zephyr SDK包之后运行一次安装脚本。如果在初始目录之后Zephyr SDK包目录发生变化,则必须重新运行安装脚本设置。
sudo cp ~/zephyr-sdk-0.16.8/sysroots/x86_64-pokysdk-linux/usr/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d
sudo udevadm control --reload
四、模板工程测试
hello world测试
cd ~/zephyrproject/zephyr
west boards | grep qemu
west build -p always -b <your-board-name> samples/basic/blinky
比如:
west build -p always -b qemu_x86_64 samples/hello_world/
west build -t run
//查看记录
history | grep build
可以看到,正常输出 hello world!
参考:
https://docs.zephyrproject.org/latest/develop/getting_started/index.html
https://docs.zephyrproject.org/latest/develop/beyond-GSG.html
https://blog.bruceou.cn/2020/09/2-zephyr-compilation-environment-setup-linux/237/