【物联网设备端开发】使用QEMU模拟ESP硬件运行ESP-IDF

news2024/9/25 17:15:38

目录

一,开发环境搭建

1.1 安装ESP-IDF

1.2 安装vscode插件

1.3 在ESP-IDF插件配置ESP-IDF开发配置

1.4 下载IOTDeviceSDK 设备端开发代码

1.5 通过ESP-IDF插件编译好镜像

1.6 构建QEMU docker镜像

1.7 使用QEMU容器运行镜像

二,搭建QEMU环境步骤

一,开发环境搭建

1.1 安装ESP-IDF

进入乐鑫 ESP-IDF Windows Installer Download 下载页面,选择ESP-IDF v4.4.8离线安装包,然后进行安装。

1.2 安装vscode插件

在 Visual Studio Code 上安装ESP-IDF插件和Dev Containers插件

1.3 在ESP-IDF插件配置ESP-IDF开发配置

选择系统上已有ESP-IDF

1.4 下载IOTDeviceSDK 设备端开发代码

git clone https://gitee.com/zhuangpengli/IOTDeviceSDK.git
cd IOTDeviceSDK/platform-fastbee/ESP-IDF
# 目前该sdk只适配ESP-IDFv4.4.x版本,

1.5 通过ESP-IDF插件编译好镜像

1.6 构建QEMU docker镜像

1.7 使用QEMU容器运行镜像

二,搭建QEMU环境步骤

当您创建项目时,有一个Dockerfile可以与 Microsoft Dev Containers Extension一起使用。您可以使用vscode命令在容器内打开任何项目: Dev Containers: Open Folder in Container.。除了包含已配置的ESP-IDF和工具设置(基于ESP-IDF docker镜像)外,还包括用于Espressif设备的QEMU分支,可用于模拟开发。

注意 : ESP-IDF: Add Docker Container Configuration 命令可用于将这些文件添加到当前项目目录。
  1. 基于代码模板创建.devcontainer 目录. 如下:
    • 在VScode上创建项目,使用 New Project, ESP-IDF: Show Examples Projects or ESP-IDF: Create Project from Extension Template 命令
    • 在VScode上,使用Shift+Ctrl+P,然后输入 ESP-IDF: Add Docker Container Configuration 命令,添加 .devcontainer 文件添加到当前打开的项目目录中。
  2. 在VScode上,使用Shift+Ctrl+P,然后输入 Dev Containers: Open Folder in Container.. 命令打开容器中的文件夹。
  3. Dev Containers 将从Dockerfile构建容器(如果以前没有创建过),并在容器上安装此扩展。
  4. 扩展应自行配置,否则请运行安装向导。
  5. 编写代码并使用 Build your Project 命令构建项目。
  6. 点击ESP-IDF: Launch QEMU Server 或活动栏中的[QEMU Server] 按钮,使用构建目录中的二进制文件来启动QEMU。
  7. 使用 ESP-IDF: Monitor QEMU Device命令启动在QEMU上运行IDF Monitor的终端。此扩展使用QEMU中串行监视器的 idf.qemuTcpPort 配置设置
  8. 如果要启动QEMU调试会话,请使用 ESP-IDF: Launch QEMU Debug Session 命令,该命令将停止任何现有的QEMU服务器并启动一个新的QEMU server进行调试。
注意 : 使用QEMU不限于docker容器, 基本上 该扩展假设在 ESP-IDF: Launch QEMU Server 命令的环境变量PATH中可以使用 qemu-system-xtensa,并且QEMU服务器正在为 ESP-IDF: Monitor QEMU DeviceESP-IDF: Launch QEMU Debug Session运行。

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

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

相关文章

CS531 Virtualization

MLFQ copy and change address translation Segmentation TLB multilevel page

Qt实现中英文切换中QMessageBox中的中文信息怎么处理

有粉丝看了《Qt实现中英文切换》文章后,留言说“中英文切换中QMessageBox中的中文信息怎么处理”,这篇文章就告诉你处理方法。 1,QMessageBox OK或Cancel提示语句 QMessageBox::information(this, QString::fromLocal8Bit("测试")…

达林顿管uln2004a参数及其功耗计算

特点: 单输出集电极电流500mA高电压输出 50V有输出钳位二极管达林顿晶体管阵列。每个由七个组成NPN达林顿对,具有高压输出与共阴极钳位二极管开关感性负载。单个达灵顿对的集电极额定电流为500mA。达林顿对可以并联,以获得更大的电流能力 应…

【LVS】部署NAT模式集群

一、实验环境 每台主机的防火墙和SELinux都要关掉 systemctl stop firewalld setenforce 0 client(测试机): ip 172.25.254.50 lvs(调度器): vip 172.25.254.100 dip 192.168.0.100 RS1(真实服…

2025深圳国际户外棋牌游戏休闲娱乐展览会

2025深圳国际户外棋牌游戏休闲娱乐展览会 2025 Shenzhen International Outdoor Chess Card Games, Leisure and Entertainment Exhibition 时间:2025年02月27-3月01日 地点:深圳会展中心(福田馆) 详询主办方陆先生 I38&…

LeetCode.3131.找出与数相加的整数I

题目描述: 给你两个长度相等的数组 nums1 和 nums2。 数组 nums1 中的每个元素都与变量 x 所表示的整数相加。如果 x 为负数,则表现为元素值的减少。 在与 x 相加后,nums1 和 nums2 相等 。当两个数组中包含相同的整数,并且这…

C语言结构体初识(变量定义初始化和传参)

结构体类型的声明 结构体是一些值的集合,这些值被称为成员变量,结构体的每个成员可以是不同类型的变量。而数组却是一些相同类型元素值的集合。 声明: struct tag {member-list; 成员变量的列表 }variable-list; 结构体变量 -》是全局变量…

Python写UI自动化--playwright(输入框操作)

get_by_placeholder 允许我们根据输入框的 placeholder 属性来查找元素。这对于使用占位符文本作为提示的输入框非常有用。 如上图,导航百度一下--登录操作,对账号和密码输入框进行检查,在源码页面会看到类似:placeholder"手…

C口一拖二数据线:解锁数字生活的便捷新篇章LDR6020

添加图片注释,不超过 140 字(可选) 在科技日新月异的今天,我们的电子设备如同生活中的伴侣,无论是工作、学习还是娱乐,都离不开它们的陪伴。随着Type-C接口逐渐成为众多高端智能手机、平板电脑、笔记本电脑…

Java中的优先级队列(PriorityQueue)(如果想知道Java中有关优先级队列的知识点,那么只看这一篇就足够了!)

前言:优先级队列(Priority Queue)是一种抽象数据类型,其中每个元素都关联有一个优先级,元素按照优先级顺序进行处理。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 …

从零开始之AI视频制作篇

从零开始之AI视频制作篇 文章目录 从零开始之AI视频制作篇前言一、工具列表二、成片展示三、制作流程1、获取图片素材2、图片生成视频2.1 Runway操作流程 3、文本生成语音3.1 Fish Audio操作流程 4、视频剪辑4.1 音频素材4.2 字幕生成 四、Runway提示词参考:参考 前…

盘点5个PDF 怎么转换成 Word 的实用技巧

在日常的办公和学习中,要将 PDF 文件转换成 Word 是很常有的事。方便我们编辑、修改内容或者是提取其中的内容。一般都会用到一些工具;下面,我将为大家介绍5种高效且实用的 PDF 转 Word 的方法。 1、PDF365转换软件 直通车:www.…

搜维尔科技:【研究】大屏幕沉浸式系统的优势,视觉冲击强、‌分辨率高、‌画面层次感强以及沉浸式交互性体验好等!

大屏幕沉浸式系统的优势主要体现在视觉冲击强、‌分辨率高、‌画面层次感强以及沉浸式交互性体验好。‌ 视觉冲击强:‌大屏幕沉浸式系统通过使用多台投影机投射画面,‌结合高质量影片,‌营造出场景环境,‌通过视觉艺术直击体验者…

Hanoi(汉诺)塔问题

目录 什么是汉诺塔? 如何分析汉诺塔 代码实现汉诺塔 什么是汉诺塔? 这是一个古典的数学问题,是一个用递归方法解题的典型例子。汉诺塔的故事在这里不做介绍啦! 汉诺塔的思想是: 总共有3根柱子,这里假设为…

书生.浦江大模型实战训练营——(三)Git基本操作与分支管理

最近在学习书生.浦江大模型实战训练营,所有课程都免费,以关卡的形式学习,也比较有意思,提供免费的算力实战,真的很不错(无广)!欢迎大家一起学习,打开LLM探索大门&#xf…

趋动科技荣登「AIGC赋能金融创新引领者TOP20」

2023年11月28日,“极新AIGC行业峰会”在北京召开,峰会以“AI落地”为指引,探究AI实践与产业化。 从制造业到金融服务业,从医疗保健到交通运输,从文化娱乐到消费零售,智能客服、数字人直播、智能巡检机器人&…

RocketMQ5.0课笔记-架构设计

rocketmq云原生架构 rocketmq的可观测性 NameServer服务发现和注册 rocketMQ的负载均衡 rocketmq高可用方案设计

pod的存储卷

容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。其次&a…

【轨物洞见】光伏电站组件满发小时偏差监测分析方案

光伏发电作为一种环保、可再生的能源形式,在全球得到了广泛的应用。然而,与其他发电方式相比,光伏发电的产能与天气条件息息相关。长期以来,人们一直关注光伏满发小时偏差的问题,并不断努力找到解决方案。 光伏满发小时…

C++笔记1•C++入门基础•

1.C关键字 C总计63个关键字,C语言32个关键字: 2.命名空间: 在 C/C 中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目…