当前位置: 首页 > news >正文

ZEPHYR 快速开发指南

简介

国内小伙伴在学习zephyr的时候,有以下几个痛点:

  • 学习门槛过高
  • github访问不畅,下载起来比较费劲。

这篇文章将我自己踩的坑介绍一下,顺便给大家优化一些地方,避免掉所有的坑。

首先用virtualbox 来安装一个ubuntu22.04

本文适应的是ubuntu的操作系统

github访问不畅的问题

github.com 有时候无法访问,这边有个非常好用的办法,执行下面两个命令:

git config --global url."git@git.zhlh6.cn:".insteadOf https://github.com/

这个命令把github.com 转换成镜像国内地址,

执行完之后,可以通过查看~/.gitconfig 文件来检查替换是否正确。

开始搭建zephyr环境

https://docs.zephyrproject.org/latest/develop/getting_started/index.html#get-zephyr-and-install-python-dependencies

按照zephyr中的install

网页中第一步是安装Kitware, 这个只要你的ubuntu是22.04 及以上的就可以跳过这一步

第一步安装软件

当然记得切换一下软件源为国内cn99 ,这样下载软件会比较快

用下面的命令

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 依赖项

安装python venv包

输入下面的命令

sudo apt install python3-venv

创建新的虚拟环境:

python3 -m venv ~/zephyrproject/.venv

激活虚拟环境:

source ~/zephyrproject/.venv/bin/activate

安装west

pip install west

获取源码

west init ~/zephyrproject
cd ~/zephyrproject

这里需要注意west update这里会把所有包都下载下来,实际上有些hello world没必要下载所有的,

下面以STM32-L496ZG举例,

打开west.yml

只需要保留cmsishal_stm32即可,如下所示,可以参考当时的west.yml来修改:

manifest:defaults:remote: upstreamremotes:- name: upstreamurl-base: https://github.com/zephyrproject-rtos- name: babblesimurl-base: https://github.com/BabbleSimgroup-filter: [-babblesim]## Please add items below based on alphabetical orderprojects:- name: cmsisrevision: 74981bf893e8b10931464b9945e2143d99a3f0a3path: modules/hal/cmsisgroups:- hal- name: hal_stm32revision: 1bc72c299d0365c0ee2575a97918b22df0899e10path: modules/hal/stm32groups:- halself:path: zephyrwest-commands: scripts/west-commands.ymlimport: submanifests

执行 west update

这个时候执行一下west update

当然你也可以全部下载,其实没必要,可以先跑起来,后面仓库慢慢添加 ,我是觉得下载需要很长的时间。

到处模板

执行下面的命令到处cmake模板

west zephyr-export

pip安装依赖

Zephyr 的scripts/requirements.txt文件声明了额外的 Python 依赖项。安装它们pip

pip install -r ~/zephyrproject/zephyr/scripts/requirements.txt

安装SDK

SDK 相当于toolchain

下载命令

cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/zephyr-sdk-0.16.1_linux-x86_64.tar.xz
wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/sha256.sum | shasum --check --ignore-missing

这个命令也要github.com , 这个可以自己在网页上下载。

解压

tar xvf zephyr-sdk-0.16.1_linux-x86_64.tar.xz

设置环境变量

cd zephyr-sdk-0.16.1
./setup.sh

编译

拿stm32-l496zg开发板举例:

参考链接:

https://docs.zephyrproject.org/latest/boards/arm/nucleo_l496zg/doc/index.html

编译一个hello_world程序

cd ~/zephyrproject/zephyr
west build -p always -b nucleo_l496zg samples/hello_world

这里的-p always ,在你想要切换另外的exapmle的时候,如果不加这个,编译不了,必须删除build目录才行。如果加了这个直接强制重新生成example。

烧入

west flash

烧入之后的调试,可以尝试用ozone 来学习,非常方便。

相关文章:

ZEPHYR 快速开发指南

简介 国内小伙伴在学习zephyr的时候,有以下几个痛点: 学习门槛过高github访问不畅,下载起来比较费劲。 这篇文章将我自己踩的坑介绍一下,顺便给大家优化一些地方,避免掉所有的坑。 首先用virtualbox 来安装一个ubu…...

【FPGA + 串口】功能完备的串口测试模块,三种模式:自发自收、交叉收发、内源

【FPGA 串口】功能完备的串口测试模块,三种模式:自发自收、交叉收发、内源 VIO 控制单元 wire [1:0] mode;vio_uart UART_VIO (.clk(ad9361_l_clk), // input wire clk.probe_out0(mode) // output wire [1 : 0] probe_out0 );将 mod…...

初步了解预训练语言模型BERT

本文字数::4024字 预计阅读时间:12分钟 BERT是由Google提出的预训练语言模型,它基于transformer架构,被广泛应用于自然语言处理领域,是当前自然语言处理领域最流行的预训练模型之一。而了解BERT需要先了解注…...

Android Hook系统 Handler 消息实现

前言 主线程的Handler 主要依赖于 ActivityThread,Android是消息驱动,比如view的刷新,activity的创建等,如果能打印系统层Handler消息日志,就需要对于系统层的Handler 进行Hook 原理 ActivityThread中 mH对象主要负责…...

R语言从入门到精通之【R语言的使用】

系列文章目录 1.R语言从入门到精通之【R语言介绍】 2.R语言从入门到精通之【R语言下载与安装】 3.R语言从入门到精通之【R语言的使用】 文章目录 系列文章目录一、新手上路1.R语句构成2.获取帮助3.工作空间二、包1.包的安装2.实践应用总结一、新手上路 1.R语句构成 R语句由函…...

WPF实战学习笔记29-登录数据绑定,编写登录服务

添加登录绑定字段、命令、方法 修改对象:Mytodo.ViewModels.ViewModels using Mytodo.Service; using Prism.Commands; using Prism.Events; using Prism.Mvvm; using Prism.Services.Dialogs; using System; using System.CodeDom.Compiler; using System.Collec…...

c++函数式编程:统计文件字符串,文件流

头文件 #include <iostream> #include <fstream> #include <string> #include <sstream> #include <algorithm> #include <vector>统计方法 int count_lines(const std::string &filename) {std::ifstream in{filename};return std:…...

scp命令----跨服务器传输文件

scp命令 Linux scp 命令用于 Linux 之间复制文件和目录。 scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。 scp 是加密的&#xff0c;rcp 是不加密的&#xff0c;scp 是 rcp 的加强版。 一、Linux scp 命令 以下是scp命令常用的…...

React Dva项目中模仿网络请求数据方法

我们都已经选择react了 那么自然是一个前后端分离的开发形式 至少我在公司中 大部分时候是前后端同时开发的 一般你在开发界面没有接口直接给你 但你可以和后端约定数据格式 然后在前端模拟数据 我们在自己的Dva项目中 在根目录下的 mock 目录下创建一个js文件 我这里叫 filmDa…...

【云原生】Docker容器命令监控+Prometheus监控平台

目录 1.常用命令监控 docker ps docker top docker stats 2.weave scope 1.下载 2.安装 3.访问查询即可 3.Prometheus监控平台 1.部署数据收集器cadvisor 2.部署Prometheus 3.部署可视化平台Gragana 4.进入后台控制台 1.常用命令监控 docker ps [rootlocalhost ~…...

DBA 职责及日常工作职责

DBA 职责及日常工作职责: 1.安装和升级数据库服务器,以及应用程序工具构建和配置网络环境. 2.熟悉数据库系统的存储结构预测未来的存储需求,制订数据库的存储方案. 3.根据开发人员设计的应用系统需求创建数据库存储结构. 4.根据开发人员设计的应用系统需求创建数据库对象 5…...

如何利用量化接口进行数据分析和计算?

量化交易作为一种利用数据和算法进行投资的方式&#xff0c;数据分析和计算是量化交易的核心。量化接口作为连接量化交易者和交易所的桥梁&#xff0c;提供了获取市场数据和执行交易指令的功能&#xff0c;为量化交易的数据分析和计算提供了基础。 一、数据获取&#xff1a; 市…...

electron-egg 加密报错

electron框架&#xff1a;electron-egg 解决方式 npm uninstall bytenode npm install bytenode1.3.6node:internal/modules/cjs/loader:928 throw err; ^ Error: Cannot find module ‘node:assert/strict’ Require stack: D:\electron-egg-test\new-electron-egg\electr…...

循环队列的基本操作(3种处理方式,2种实现方式)

为区分队空队满有3种处理方式&#xff1a; ①牺牲一个单元 ②增设表示元素个数的数据成员 ③增设tag数据成员 1.front->队头元素&#xff0c;rear->队尾元素下一位置 1.1牺牲一个单元 1.1.1定义 #define MaxSize 50 typedef struct {ElemType data[MaxSize];int fron…...

react的特点

React的特点包括以下几个方面&#xff1a; 组件化&#xff1a;React将用户界面分解成小而独立的组件&#xff0c;每个组件都有自己的状态和属性。通过组合这些组件&#xff0c;可以构建复杂而灵活的用户界面。 虚拟DOM&#xff1a;React使用虚拟DOM&#xff08;Virtual DOM&am…...

MATLAB实现图像处理:图像识别、去雨、去雾、去噪、去模糊等等(附上20个完整仿真源码)

图像处理是计算机视觉领域的重要研究方向&#xff0c;MATLAB是一种功能强大的数学计算软件&#xff0c;可以用于图像处理和分析。下面是一些简单的MATLAB图像处理代码示例&#xff0c;包括图像增强、边缘检测、形态学处理、特征提取等。 文章目录 1. 图像增强2. 边缘检测3. 形态…...

cmake stm32 模板

文件结构 ├─.vscode ├─build ├─cmake ├─Drivers │ ├─CMSIS │ │ ├─Device │ │ │ └─ST │ │ │ └─STM32F1xx │ │ │ ├─Include │ │ │ └─Source │ │ │ └─Templates │ │ └─Include │ └─STM32F1xx_HAL_Driver │ ├─Inc │ │ └─Leg…...

STM32 UDS Bootloader开发-上位机篇-CANoe制作(2)

文章目录 前言CANoe增加NodeCAPL脚本获取GUI中的参数刷写过程诊断仪在线接收回调函数发送函数总结前言 在上一篇文章中,介绍了UDS Bootloadaer上位机软件基于CANoe的界面设计。本文继续介绍CAPL脚本的编写以实现刷写过程。 CANoe增加Node 在开始编写CAPL之前,需要在Simula…...

实例026 随机更换主界面背景

实例说明 如果开发的软件用户使用频率非常高&#xff0c;可以为程序设计随机更换背景的程序。这样不但可以使用户心情愉快&#xff0c;也增加了软件的人性化设计。下面的界面就是一个随机更换主界面的例子&#xff0c;效果如图1.26所示。 技术要点 随机更换主界面背景使用了…...

PostgreSQL 简洁、使用、正排索引与倒排索引、空间搜索、用户与角色

PostgreSQL使用 PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS)&#xff0c;在灵活的BSD许可证下发行。PostgreSQL 9.0 &#xff1a;支持64位windows系统&#xff0c;异步流数据复制、Hot Standby&#xff1b;生产环境主流的版本是PostgreSQL 12 BSD协议 与 GPL协议 …...

Kubernetes可观测性体系构建:全面监控与故障排查指南

Kubernetes可观测性体系构建&#xff1a;全面监控与故障排查指南 一、可观测性概述 可观测性&#xff08;Observability&#xff09; 是指通过系统产生的数据来理解系统内部状态的能力。在Kubernetes中&#xff0c;可观测性体系包含三个核心维度&#xff1a;指标&#xff08;…...

一直怕大模型幻觉,发现针对性harness约束能大大消除

我让AI写长文&#xff0c;然后人工审核&#xff0c;发现大量胡编乱造。 如果人工一个个消除&#xff0c;实在太累了&#xff0c;这就不是LLM自动化办公的路子了 尝试了 harness (engineering)的实操路子&#xff0c; 试用发现&#xff1a; 大模型正在把长文中我人工审核发现的幻…...

对比按量计费与Token Plan套餐如何为项目选择更优成本模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比按量计费与Token Plan套餐如何为项目选择更优成本模型 在将大模型能力集成到开发项目中时&#xff0c;成本控制是一个绕不开的…...

市场有效的透明化矿场安全防护系统

在矿场作业中&#xff0c;安全问题一直是重中之重。近年来&#xff0c;矿场事故时有发生&#xff0c;给生命和财产带来了巨大损失。据统计&#xff0c;过去十年间&#xff0c;全球矿场事故造成的直接经济损失高达数千亿美元&#xff0c;伤亡人数更是数以万计。因此&#xff0c;…...

【DeepSeek数据隐私保护终极指南】:20年安全专家亲授5大合规落地实践与3大避坑红线

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;DeepSeek数据隐私保护的核心理念与演进脉络 DeepSeek自诞生以来&#xff0c;将“数据主权归用户、模型能力不以隐私让渡为前提”确立为不可妥协的底层信条。其隐私保护理念并非静态规范&#xff0c;而是随技术…...

Windows平台安卓应用安装终极解决方案:APK Installer技术深度解析

Windows平台安卓应用安装终极解决方案&#xff1a;APK Installer技术深度解析 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否厌倦了笨重的安卓模拟器&#xff1…...

在Node.js后端服务中集成统一的大模型调用层

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Node.js后端服务中集成统一的大模型调用层 在构建现代Web应用时&#xff0c;为不同功能模块引入AI能力已成为提升用户体验和产品…...

ClamAV更新失败真相:DNS TXT查询机制深度解析

1. 这不是网络连通性问题&#xff0c;而是ClamAV更新机制被误读的典型症状“Can’t query current.cvd.clamav.net”这个报错&#xff0c;我在过去八年维护超过200台Linux服务器&#xff08;从CentOS 6到Ubuntu 22.04&#xff0c;从物理机到容器化部署&#xff09;的过程中&…...

Cursor Pro破解工具完整指南:5步实现机器标识重置与永久Pro功能解锁

Cursor Pro破解工具完整指南&#xff1a;5步实现机器标识重置与永久Pro功能解锁 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve rea…...

20岁写出Transformer的人,真开源了2180亿大模型

点击下方卡片&#xff0c;关注“CVer”公众号AI/CV重磅干货&#xff0c;第一时间送达点击进入—>【顶会/顶刊】投稿交流群添加微信号&#xff1a;CVer2233&#xff0c;小助手拉你进群&#xff01;扫描下方二维码&#xff0c;加入CVer学术星球&#xff01;可以获得最新顶会/顶…...