zehpyr环境搭建和demo的编译

news2024/11/29 12:54:53

qemu可执行固件编译的探索

  • 环境
  • demo的模拟
  • SDK构建
    • zephyr环境设置
      • 安装依赖项
      • 下载 Aspeed Zephyr 软件包
    • 安装工具链
    • 配置

环境

ubuntu22.04 qemu9.0.0-rc1cmake 3.25.2python 3.8.10dtc 1.5.0west 1.2.0zephyr-sdk-0.16.1

demo的模拟

首先先尝试一个可以正常跑起来的案例

我们先看看自己的qemu可以模拟的arm机器类型:
这里使用的qemu版本是qemu-9.0.0-rc1,具体编译安装过程看qemu9.0.0编译安装
在这里插入图片描述
之后我们下载我们尝试使用的demo:

https://github.com/AspeedTech-BMC/zephyr/releases/download/v00.01.04/ast1030-evb-demo.zip

下载之后解压,之后进入该目录然后执行:值得注意的是下图中的qemu是编译目录下的qemu

qemu-system-arm -M ast1030-evb -kernel ./zephyr.elf -nographic

在这里插入图片描述

这样就模拟成功了

SDK构建

zephyr环境设置

安装依赖项

下载依赖:

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

检查一下必要项的版本

cmake -version
python3 -version
dtc -version

要求:
在这里插入图片描述

下载 Aspeed Zephyr 软件包

安装west,配置环境变量,这里的west操作比较吃网络,多试几次吧

pip3 install – user - U west
echo ‘export PATH=~/.local/bin:“$PATH”’ >> ~/.bashrc
source ~/.bashrc
west init -m https://github.com/AspeedTech-BMC/zephyr.git --mr v00.02.01 zephyrproject
cd zephyrproject
west update

之后按照Zephyr 的 scripts/requirements.txt 文件声明了其他 Python 依赖项。使用 pip3 安装它们。

cd zephyr/scripts/
pip3 install --user -r requirements.txt

在pip的时候可能会遇到一些问题,这是缺少一些必要的库
在这里插入图片描述
之后我们分别安装下面这些依赖即可:

pip install --upgrade packaging
pip install --upgrade Jinja2
pip install testresources
pip install --upgrade six
pip install --upgrade pyyaml

安装工具链

下载 Zephyr SDK 捆绑包:

cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.1/zephyr-sdk-0.16.1_linux-x86_64.tar.xz

解压()建议解压到$Home下

cd ~
mkdir zephyr-sdk-0.16.1
tar xvf zephyr-sdk-0.16.1_linux-x86_64.tar.xz -C ~/zephyr-sdk-0.16.1

设置环境变量

touch .zephyrrc
echo “export ZEPHYR_TOOLCHAIN_VARIANT=zephyr” > ~/.zephyrrc
echo “export ZEPHYR_SDK_INSTALL_DIR=/home/”$(whoami)“/zephyr-sdk-0.16.1” >> ~/.zephyrrc

配置

进入之前的Zephyr 软件包(/zephyrproject/zephyr)中执行

source zephyr-env.sh
west build -b ast1030_evb -t menuconfig samples/hello_world

板子的默认配置文件在/zephyrproject/zephyr/boards/arm/ast1030_evb/ast1030_evb_defconfig目录中
这里根据自己需要进行配置的修改
在这里插入图片描述
之后我们可以构建application:

west build -b ast1030_evb samples/hello_world

在这里插入图片描述
build/zephyr/目录中可以看到编译后的bin文件,对于UART引导的,可以使用uart_zephyr.bin
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1598971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

即插即用模块详解SCConv:用于特征冗余的空间和通道重构卷积

目录 一、摘要 二、创新点说明 2.1 Methodology 2.2SRU for Spatial Redundancy​编辑 2.3CRU for Channel Redundancy 三、实验 3.1基于CIFAR的图像分类 3.2基于ImageNet的图像分类 3.3对象检测 四、代码详解 五、总结 论文:https://openaccess.thecvf.c…

基于 Operator 部署 Prometheus 监控 k8s 集群

目录 一、环境准备 1.1 选择版本 1.2 过滤镜像 1.3 修改 yaml 镜像 1.4 移动 *networkPolicy*.yaml 1.5 修改 service 文件 1.6 提前下载镜像并推送到私有镜像仓库 1.7 修改镜像(可选) 二、执行创建 三、查看 pod 状态 四、访问 prometheus、…

【Spring】依赖注入(DI)时常用的注解@Autowired和@Value

目录 1、Autowired 自动装配 1.1、要实现自动装配不是一定要使用Autowired 1.2、Autowired的特性 (1)首先会根据类型去spring容器中找(bytype),如果有多个类型,会根据名字再去spring容器中找(byname) (2)如果根据名…

冯喜运:4.16中东对抗风暴下,黄金原油市场何去何从?

黄金行情走势分析:4小时图布林道开始收口,昨日下探至下轨附近,也是此前的起涨低点2320启稳上升,十字K线配合单阳拉起,重新去摸高上轨。目前4小时图处于摸高当中。周线和日线留意多空转换,摸高之后是强势延续…

使用Scrapy选择器提取豆瓣电影信息,并用正则表达式从介绍详情中获取指定信息

本文同步更新于博主个人博客:blog.buzzchat.top 一、Scrapy框架 1. 介绍 在当今数字化的时代,数据是一种宝贵的资源,而网络爬虫(Web Scraping)则是获取网络数据的重要工具之一。而在 Python 生态系统中,S…

03-echarts如何画立体柱状图

echarts如何画立体柱状图 一、创建盒子1、创建盒子2、初始化盒子(先绘制一个基本的二维柱状图的样式)1、创建一个初始化图表的方法2、在mounted中调用这个方法3、在方法中写options和绘制图形 二、画图前知识1、坐标2、柱状图图解分析 三、构建方法1、创…

第七周学习笔记DAY.1-封装

学完本次课程后,你能够: 理解封装的作用 会使用封装 会使用Java中的包组织类 掌握访问修饰符,理解访问权限 没有封装的话属性访问随意,赋值也可能不合理,为了解决这些代码设计缺陷,可以使用封装。 面向…

RabbitMQ入门实战

文章目录 RabbitMQ入门实战基本概念安装快速入门单向发送多消费者 RabbitMQ入门实战 官方:https://www.rabbitmq.com 基本概念 AMQP协议:https://www.rabbitmq.com/tutorials/amqp-concepts.html 定义:高级信息队列协议(Advanc…

LangChain入门:19.探索结构化工具对话

引言 在人工智能的浪潮中,对话代理技术正逐渐成为企业和开发者关注的焦点。LangChain,作为对话代理领域的一颗新星,自2021年9月诞生以来,以其强大的功能和灵活的应用场景迅速赢得了市场的认可。本文将带你深入了解LangChain中的S…

【从浅学到熟知Linux】进程控制上篇=>进程创建、进程终止与进程等待(含_exit与exit的区别、fork函数详解、wait与waitpid详解)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。 🎯每天努力一点点,技术变化看得见 文章目录 进程创建fork函数写时拷贝 进程退出进程退出操作系统做了什么?进程退出场景进程退出的常见方法…

openstack修改实例名称但是gnocchi监控数据中实例名称没有变更的问题处理

文章目录 一、问题描述二、调研过程1、变更实例名称2、查看grafana中的监控数据3、libvirt服务中的xml文件4、现有的监控数据流转架构 总结 一、问题描述 openstack修改实例名称但是gnocchi监控数据中实例名称没有变更的问题处理。 通过修改实例名称的功能修改了实例名称&…

大模型赋能:爬虫技术的全新革命

大模型加持下的爬虫技术革新:从BS4到提示工程的飞跃 在爬虫技术的演进历程中,内容解析一直是一个核心环节。传统的爬虫技术,如使用BeautifulSoup(BS4)等工具,需要逐个解析网页内容,通过XPath或C…

XILINX 7系列时钟资源

文章目录 前言一、时钟概要1.1、CC1.2、BUFR、BUFIO、BUFMR1.3、CMT1.4、BUFH1.5、BUFG 二、时钟路由资源三、CMT 前言 本文主要参考xilinx手册ug472 一、时钟概要 7系列FPGA时钟资源主要有CC、BUFR、BUFIO、BUFMR、CMT、BUFG、BUFH和GTE_COMMON 1.1、CC “CC”&#xff0…

OpenHarmony开发案例:【自定义通知】

介绍 本示例使用[ohos.notificationManager] 等接口,展示了如何初始化不同类型通知的通知内容以及通知的发布、取消及桌面角标的设置,通知类型包括基本类型、长文本类型、多行文本类型、图片类型、带按钮的通知、点击可跳转到应用的通知。 效果预览&am…

TensorFlow实战Google深度学习框架 PDF书籍分享

今天又来给大家推荐一本TensorFlow方面的书籍<TensorFlow实战Google深度学习框架>。本书适用于想要使用深度学习或TensorFlow的数据科学家、工程师&#xff0c;希望了解大数据平台工程师&#xff0c;对人工智能、深度学习感兴趣的计算机相关从业人员及在校学生等。 下载当…

【数据结构与算法】用两个栈实现一个队列

题目 用两个栈&#xff0c;实现一个队列功能 add delete length 队列 用数组可以实现队列&#xff0c;数组和队列的区别是&#xff1a;队列是逻辑结构是一个抽象模型&#xff0c;简单地可以用数组、链表实现&#xff0c;所以数组和链表是一个物理结构&#xff0c;队列是一个逻…

Cannot access ‘androidx.activity.FullyDrawnReporterOwner‘

Android Studio新建项目就报错&#xff1a; Cannot access ‘androidx.activity.FullyDrawnReporterOwner’ which is a supertype of ‘cn.dazhou.osddemo.MainActivity’. Check your module classpath for missing or conflicting dependencies 整个类都报错了。本来原来一直…

阿里面试:DDD中的实体、值对象有什么区别?

在领域驱动设计&#xff08;DDD&#xff09;中&#xff0c;有两个基础概念&#xff1a;实体&#xff08;Entity&#xff09;和值对象&#xff08;Value Object&#xff09;。 使用这些概念&#xff0c;我们可以把复杂的业务需求映射成简单、明确的数据模型。正确使用实体和值对…

【环境】原则

系列文章目录 【引论一】项目管理的意义 【引论二】项目管理的逻辑 【环境】概述 【环境】原则 一、培养项目系统性思维 1.1 系统性思维 1.2 系统性思维的价值 1.3 建模和推演&数字孪生 二、项目的复杂性和如何驾驭复杂性 2.1 复杂性的三个维度 2.2 如何驾驭复杂性 三、…

【御控物联】Java JSON结构转换(4):对象To对象——规则属性重组

文章目录 一、JSON结构转换是什么&#xff1f;二、术语解释三、案例之《JSON对象 To JSON对象》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…