Zephyr-环境搭建

2023-10-26

目录

1 前言

2 安装主机依赖

3 获取源码

4 安装工具链

5 编译一个Demo


1 前言

        Zephyr支持Ubuntu,macOS,Windows环境下开发,本文介绍基于Ubuntu的环境搭建,包括:

  • Ubuntu开发环境搭建,主要是工具和相关依赖的安装
  • 获取工程源码
  • 编辑,烧录已经运行Demo

2 安装主机依赖

  • 官方指导建议使用Ubuntu version 18.04 LTS 及以上

1)下载并执行Kitware archive script,将Kitware APT repository添加至源

wget https://apt.kitware.com/kitware-archive.sh 

sudo bash kitware-archive.sh

2)安装所需的依赖

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

3)确认主要依赖版本是否满足要求

3 获取源码

1)安装west工具,并设置路径:~/.local/bin到环境变量PATH

// 安装west 
pip3 install --user -U west 

// 设置~/.local/bin到环境变量
PATH echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc 

//立即生效 
source ~/.bashrc

2)获取Zephyr源码

west init ~/zephyrproject 

cd ~/zephyrproject 

west update
  • west init ~/zephyrproject

        该命令主要功能是从github.com/zephyrproject-rtos/zephyr clone代码至~/zephyrproject

  • west update
    • 会从~/zephyrproject/zephyr/west.yml中获取相关子仓库url
    • 将url依次git clone至设置路径中

        PS:github国内访问很不稳定,可以设置代理或者修改west.yml文件中的url从国内的zephyr镜像下载。

3)导出Cmake package

west zephyr-export

4)安装zephyr/scripts/requirements.txt文件中指明的其他Python依赖

pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt

4 安装工具链

1)下载最新的SDK安装程序

  • 可以直接使用west从仓库下载
//这里为什么下载到路径~中,后面会提到 
cd ~ 

wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.13.1/zephyr-sdk-0.13.1-linux-x86_64-setup.run

2)运行,安装SDK至~/zephyr-sdk-0.13.1

chmod +x zephyr-sdk-0.13.1-linux-x86_64-setup.run ./zephyr-sdk-0.13.1-linux-x86_64-setup.run -- -d ~/zephyr-sdk-0.13.1
  • SDK建议安装在以下路径中:
$HOME/zephyr-sdk[-x.y.z] 
$HOME/.local/zephyr-sdk[-x.y.z] 
$HOME/.local/opt/zephyr-sdk[-x.y.z] 
$HOME/bin/zephyr-sdk[-x.y.z] 
/opt/zephyr-sdk[-x.y.z] 
/usr/zephyr-sdk[-x.y.z] 
/usr/local/zephyr-sdk[-x.y.z]
  • 如果非指定路径,需按如下添加环境变量至~/.bashrc,然后执行source ~/.bashrc
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr 

export ZEPHYR_SDK_INSTALL_DIR= 绝对路径 
//例如zephyr-sdk-0.13.1安装路径为 /home/conor/study 
//export ZEPHYR_SDK_INSTALL_DIR=/home/conor/study

3)安装udev规则

sudo cp ~/zephyr-sdk-0.13.1/sysroots/x86_64-pokysdk-linux/usr/share/openocd/contrib/60-openocd.rules /etc/udev/rules.d 

sudo udevadm control --reload

5 编译一个Demo

  • 开发板使用ST Nucleo l476RG,demo使用samples/basic/blinky
//跳转到zephyrproject/zephyr目录下 
cd ***/zephyrproject/zephyr 

//指定board为nucleo_l476rg 
west build -b nucleo_l476rg samples/basic/blinky
  • 编程结果都保持至zephyrproject\zephyr\build\zephyr下

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zephyr-环境搭建 的相关文章

  • 使用Qt开发绘制多个设备的流量曲线图(附带项目图)

    一 说明 在实际项目中 主要是使用Qt开发CS程序 当然主要是客户端 公司项目中有这个需求是实时显示多个设备的流量曲线图 设备将流量信息发给服务端 服务端再将信息通过Socket发给Qt客户端 Qt客户端通过Socket接收后实时显示在程序

随机推荐

  • pip安装pytorch

    问题简述 直接pip install pytorch 报错 解决办法 1 登陆https pytorch org get started locally 2 选择对应的条件 最后会生成command 3 将command中的代码copy到命
  • Netty实战(七)EventLoop和线程模型

    EventLoop和线程模型 一 什么是线程模型 二 EventLoop 接口 2 14 Netty 4 中的 I O 和事件处理 三 任务调度 3 1 JDK 的任务调度 API 3 2 使用 EventLoop 调度任务 四 实现细节
  • 【廖雪峰python入门笔记】Unicode编码_UnicodeDecodeError处理

    1 Unicode编码的由来 字符串还有一个编码问题 计算机只能处理数字 如果要处理文本 就必须先把文本转换为数字才能处理 最早的计算机在设计时采用8个比特 bit 作为一个字节 byte 所以 一个字节能表示的最大的整数就是255 二进制
  • JAVA String的问题

    String s1 字符串 String s2 字符串 System out println s1 s2 输出true String s3 new String 字符串 String s4 new String 字符串 System out
  • 以太坊 geth常用命令行

    命令行组成为geth lt 命令 gt 参数 geth datadir 指定数据存储位置 也是默认的私钥仓库位置 nodiscover 标志此节点私有 不被别人添加 maxpeer 0 设置网络中可以被接入的最大节点数目 0代表不被其它节点
  • 【线性代数01】矩阵的转置和逆

    这方面的总结一直都有想写 我们先从矩阵的转置和逆谈起 本篇内容整理自网页 矩阵的转置和逆 给出这部分叙事的主角 矩阵A和矩阵B A 1
  • 【深度学习】语义分割-源代码汇总

    目录 Transformer 1 vit 2 Swin Transformer 3 PVT 4 SETR 5 segformer Transformer 1 vit 1 官方 vision transformer 2 Swin Transf
  • Linux内核:内存管理——CMA预留内存

    平时看 proc meminfo中 总能看到CMA的身影 且好像总是被用光了 他是做什么的呢 为啥作为预留内存能用的干干净净呢 一起看下 CmaTotal 438272 kB CmaFree 0 kB Contiguous Memory A
  • 电路设计中LDO与DC-DC的选择问题(DC-DC篇)

    版权声明 本文为博主原创文章 转载请注明出处 https blog csdn net NeverImagine article details 93193105 接上文 上文讨论了LDO的原理和特性 本文再分析一下DC DC 二 DC DC
  • 查看mysql root账户密码

    cat root mysql secret 查看root账号密码
  • 虹膜识别系统 python实现

    先上传效果图 main py An highlighted block Demonstration of the GazeTracking library Check the README md for complete documenta
  • 【从嵌入式视角学习香山处理器】六、NutShell代码结构(乱画的框图)

    文章目录 一 前言 二 简单粗暴版 最终成品的框图 三 不要太凌乱版 去掉连线后的框图 一 前言 这是从上一篇文章 从嵌入式视角学习香山处理器 五 香山开发工作流实践1 主要子模块工程之间的关系 引出的对果壳核 NutShell 一个简单入
  • MySQL存储过程入门教程及实例详解

    1 存储过程简介 存储过程是可编程的函数 在数据库中创建并保存 可以由SQL语句和控制结构组成 当想要在不同的应用程序或平台上执行相同的函数 或者封装特定功能时 存储过程是非常有用的 数据库中的存储过程可以看做是对编程中面向对象方法的模拟
  • 不同集合中判断元素相同的方法

    判断集合中的元素是否相同 对于增删改查有重要意义 不同Collection的实现的判断依据不同 1 List类 线性表 统一标准是equals 2 HashSet和HashMap 哈希表 先hashcode 后equals 3 TreeSe
  • k8s selector_k8s(二)——kubectl的使用以及创建deployment

    kubectl的使用以及创建deployment kubectl的使用 常见概念 kubectl管理命令概要 管理和使用deployment 基于deployment创建nginx pod 有一个副本 查看k8s对象状态 发布应用 服务伸缩
  • SpringBoot:切面AOP实现权限校验:实例演示与注解全解

    1 理解AOP 1 1 什么是AOP AOP Aspect Oriented Programming 面向切面思想 是Spring的三大核心思想之一 两外两个 IOC 控制反转 DI 依赖注入 那么AOP为何那么重要呢 在我们的程序中 经常
  • SM4 CBC模式加密的C语言实现

    因为工作的关系 最近在研究国密算法 其中无线局域网使用的SM4算法颇为神秘 网上资源也是少的可怜 不过在笔者的努力下 还是成功搞定了 有感于SM4相关正确资料的稀少 同时也算是自我的学习积累 故写下此文 希望可以帮助后来人少走些弯路 此处给
  • 有意思的心理学现象

  • Elasticsearch 实战之三:ES 基本操作

    目录 0 数据格式说明 1 ES的基本操作 1 1 索引操作 1 1 1 建立索引 1 1 2 删除索引 1 1 3 查询索引 1 2 映射操作 1 2 1 建立映射 1 2 2 查询映射 1 3 基本操作 CRUD 1 3 1 新增和替换
  • Zephyr-环境搭建

    目录 1 前言 2 安装主机依赖 3 获取源码 4 安装工具链 5 编译一个Demo 1 前言 Zephyr支持Ubuntu macOS Windows环境下开发 本文介绍基于Ubuntu的环境搭建 包括 Ubuntu开发环境搭建 主要是工