手把手教 Zephyr 嵌入式实时操作系统开发环境的安装配置

一、开发环境

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/

  • 34
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值