【知识分享】ubuntu22.04-ESP32环境搭建

文章目录

    • 一、概要
    • 二、环境及工具介绍
    • 三、名词解释
    • 四、环境搭建

一、概要

    手上有一块安信可的WIFI开发板,用的是乐鑫的ESP32模组。刚好最新装了双系统,貌似在Linux环境使用gcc编译器会快一些。
    万事开头难,要在Linux环境下进行开发工作,那就意味着需要在Linux环境中搭建ESP32适当的开发环境。本文主要是在官方搭建文档的基础上进行一些查缺补漏,适合新手阅读。

二、环境及工具介绍

    开发环境:操作系统ubuntu 22.04.1,内核5.19.0-42-generic
在这里插入图片描述
    开发板:NODEMCU-32 V1.3
在这里插入图片描述
    串口工具:USB转TTL
串口工具

三、名词解释

  • esp-idf:是为开发者提供了一整套的工具、库和API,方便快速构建和开发各种物联网设备和应用。可以理解为是跟Keil一样的工具,只是没有像Keil一样把界面做的那么好。
  • 环境:也称开发环境,指的是开发人员用来编写、测试和调试代码的综合工具和设置。而环境搭建指的是准备和配置一个特定的软件开发环境,以便开发人员可以在其中编写、测试和调试代码。

四、环境搭建

    这里选择官方推荐的方式,esp-idf的工具链。

    不同的ubuntu版本可能会有不同的问题出现,建议在进行工具安装前,先使用下面两个指令更新系统软件。在ubuntu系统下,按Ctrl + Alt + T,打开终端,输入以下指令更新软件。

sudo apt update
sudo apt upgrade

    首先需要安装esp-idf所需要的软件及工具,根据官方提示,输入以下指令进行安装。可以看出,这里面安装了git、python3、cmake等需要用到的工具,如果是ubuntu 22.04,其实像python3这类工具是系统自带的,不过这里再选择安装也不影响,系统会自动检查。

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

    接下来就是安装工具主体——esp-idf,打开终端,输入下面指令安装。细心的小伙伴应该会发现,这里用git获取工具有个地方跟官方文档不大一样,就是少了个–recursive参数。加上这个参数,下载esp-idf工具时,会自动下载路径下的子模块,但因为github这个网站直接下载文档速度有点慢,所以这里选择先下载主体,再单独更新子模块。如果连主体下载都太慢的小伙伴,可以百度搜下github.com的镜像网站,替换掉下面github.com即可。(子模块的更新不一定是根据这个命令里的网址来的,下面细说)

mkdir -p ~/esp
cd ~/esp
git clone https://github.com/espressif/esp-idf.git

    下载完主体,就可以更新里面用到的子模块,更新之前最好切换一下源,切换方式是在esp-idf路径下,找到.gitmodules的文件(该文件为隐藏文件,需要选择查看隐藏文件才能找到)。
esp-idf
    打开该文件,把其中所有的…/…/替换成镜像源,保存文件。

在这里插入图片描述
    然后在当前路径下,输入指令更新子模块的源

git submodule sync

    再输入下面的指令更新子模块

git submodule update --init --recursive --progress

    如果这个更新完后,还发现有没更新的模块,则输入以下指令进行更新

git submodule --remote

    如果用这个指令一直更新失败,那就只能手动去下载子模块了,根据刚才打开的那个.gitmodules文件,找到对应的路径,如果对应路径下没有文件,则需要手动下载,下载路径就是文件中的"url ="后面的这个网址。

    以上工具安装完后,就可以安装对应芯片所需要的工具了,键入以下指令进行安装,如果前面工具安装都正常,这里就可以正常安装。其中./install.sh后面带的是对应开发板的芯片,esp32/esp32-s就选esp32,如果需要安装其他芯片系列,则加上对应的芯片即可,比如还需要esp32-s2,就修改指令为./install.sh esp32,esp32s2

cd ~/esp/esp-idf
./install.sh esp32

    安装完工具后,在开始编译工程之前,需要设置环境变量,idf工具里提供了.export.sh的快捷设置方式,但因为每次打开终端都需要设置一次,且每次都需要进入对应路径进行调用,所以官方也很亲切地提供了一种比较快捷的方式,即设置一个快捷变量供使用,将以下指令添加至xxx 文件中,后续打开终端只需要输入get_idf即可设置环境变量。

alias get_idf='. $HOME/esp/esp-idf/export.sh'

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

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

相关文章

[数据集][目标检测]瞳孔虹膜检测数据集VOC+YOLO格式8768张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):8768 标注数量(xml文件个数):8768 标注数量(txt文件个数):8768 标注…

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(二)---ROS2与UE5进行图像数据传输

前言 本系列教程旨在使用UE5配置一个具备激光雷达深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博…

【MySQL进阶之路】表的约束——主键,自增长,唯一键,外键

目录 主键 复合主键 自增长 唯一键 unique 外键 方案一 方案二 方案三 个人主页:东洛的克莱斯韦克-CSDN博客 主键 主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空(必须有非空约束&#xf…

微知-lspci如何查看pcie设备树状结构(-t)

对于查看pcie设备列表除了看是否存在 还需要看拓扑结构。如何看? lspci -t以减号为分割说明 第一列数字是域段 和 bus id。比如0000:00中0000是域 00是busid 第二列 01.2中01是device id。2是functionid 如果还有下游设备device还有一个指定busid的序号

Postman文件上传接口测试

接口介绍 返回示例 测试步骤 1.添加一个新请求,修改请求名,填写URL,选择请求方式 2.将剩下的media参数放在请求body里,选择form-data,选择key右边的类型为file类型,就会出现选择文件的按钮Select Files&a…

QT翻金币小游戏(含音频图片文件资源)

目录 QT翻金币小游戏 音频图片资源文件获取 效果展示 图片 视频 实现代码 main.cpp mymainwindow.h mymainwindow.cpp startscene.h startscene.cpp selectscene.cpp playscene.h playscene.cpp mypushbutton.h mypushbutton.cpp dataconfig.h dataconfig.cpp QT…

大模型时代,云南白药如何成为一家AI医药企业?|产业AI案例

作者|斗斗 编辑|皮爷 出品|产业家 中医药大模型发布;英伟达成立AI制药部门,发力生物制药领域;赛诺菲与百图生科达成战略合作,共同开发用于生物治疗药物发现的领先模型;京东发布医疗大模型;百度“产业级”…

读软件开发安全之道:概念、设计与实施04缓解

1. 缓解 1.1. 安全思维转换为有效行动的方法就是首先预判威胁,然后针对可能的漏洞加以保护 1.2. 主动响应的做法就叫做“缓解” 1.2.1. mitigation 1.2.2. 喂宝宝的时候给孩子围上围嘴,避免掉下来的食物粘在宝宝的衣服上,还有安全带、限速…

ID3算法详解:构建决策树的利器

目录 引言 ID3算法概述 算法基础 信息熵 ​编辑 信息增益 ID3算法步骤 决策树 概念: 核心: 节点 1. 根节点 2. 非叶子节点 3. 叶子节点 引言 在机器学习领域,决策树是一种非常流行的分类和回归方法。其中,ID3算法作为决策树算法…

jenkins最佳实践(二):Pipeline流水线部署springCloud微服务项目

各位小伙伴们大家好呀,我是小金,本篇文章我们将介绍如何使用Pipeline流水线部署我们自己的微服务项目,之前没怎么搞过部署相关的,以至于构建流水线的过程中中也遇到了很多自己以前没有考虑过的问题,特写此篇&#xff0…

使用 Python 进行 PDF 文件加密

使用 Python 解密加密的 PDF 文件-CSDN博客定义一个名为的函数,该函数接受三个参数:输入的加密 PDF 文件路径input_pdf、输出的解密 PDF 文件路径output_pdf和密码password。https://blog.csdn.net/qq_45519030/article/details/141256661 在数字化时代…

Linux驱动开发基础(设备树)

所学来自百问网 目录 1. 引入设备树的原因 2. 设备树语法 2.1 Devicetree格式 2.1.1 DTS文件格式 2.1.2 node的格式 2.1.3 properties的格式 2.1.4 dts 文件包含dtsi文件 2.2 常用属性 2.2.1 #address-cells、#size-cells 2.2.2 compatible 2.2.3 model 2.2.4 st…

一步解决Ubuntu中/mnt/hgfs无共享文件夹的问题

当我们启用了共享文件夹后,但是在终端/mnt/hgfs任然没有文件 在终端输入 sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other 之后,就可以查到共享文件了

复现 LET-NET

摘要 稀疏光流法是计算机视觉中的一项基本任务。然而,它依赖于恒定的假设限制了其在高动态范围(HDR)场景中的适用性。在本研究中,我们提出了一种新的方法,旨在通过学习一个对光照变化具有鲁棒性的特征映射来超越图像的…

KubeSphere核心实战_kubesphere部署redis01_为redis指定配置文件_指定存储卷_配置服务---分布式云原生部署架构搭建047

然后我们再来,部署一下redis,可以看到,首先去容器官网去找到对应的redis的镜像然后 可以看到镜像中都有说的,如何启动,以及 --appendonly yes 是指定持久化.然后 /data表示数据存储的位置. 可以看到数据存储位置 然后还有配置文件的位置. 可以看到,我们首先去创建配置文件,然后…

LNMP 架构(Linux+NGINX+memcache+PHP)

目录 1 源码编译PHP与NGINX 1.1 NGINX 源码编译 1.2 PHP 源码编译安装 2 实现PHP与NGINX的连接 2.1 php-fpm的详细介绍 2.2 LNMP与LAMP的区别 2.3 PHP配置文件的介绍 2.4 实例实现php-fpm 与 NGINX的连接 2.4.1 指定pid的存放位置 2.4.2 php-fpm设置监听自己端口与IP 2.4.3 主配…

配置 昇腾 Ascend C/C++ 开发环境

配置 昇腾 Ascend C/C 开发环境 flyfish 这里以Orange Pi Ai Pro 为例 先说如何配置MindStudio,然后再说如何查看Orange Pi Ai Pro的一些信息 Orange Pi AI Pro 开发板是香橙派联合华为精心打造的高性能AI 开发板,其搭载了昇腾 AI 处理器。Linux 桌面…

VSCode系列 - 如何用VSCode搭建C++高效开发环境(2)

1. 插件的用法 1.1. C/C 1.1.1. 插件介绍1.1.2. 插件配置 1.2. Clang-Format1.3. cpp-check-lint 1.3.1. cpplint1.3.2. cppcheck1.3.3. 插件的使用 1.4. C/C Advanced Lint 1.4.1. 插件介绍1.4.2. 插件配置 1.5. Bracket Pair Colorizer 1.5.1. 插件介绍1.5.2. 功能配置 1.6. …

【机器学习】探索机器学习在旅游业的革新之旅

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀目录 🔍1. 引言📒2. 机器学习在旅游需求分析中的应用🌞用户行为数据分析🌙旅客偏好预测模型⭐…

Java面试八股之如何保证消息队列中消息不重复消费

如何保证消息队列中消息不重复消费 要保证消息队列中的消息不被重复消费,通常需要从以下几个方面来着手: 消息确认机制: 对于像RabbitMQ这样的消息队列系统,可以使用手动确认(manual acknowledge)机制来…