【知识分享】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,打开终端,输入以下指令更新软件。

c 复制代码
sudo apt update
sudo apt upgrade

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

c 复制代码
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即可。(子模块的更新不一定是根据这个命令里的网址来的,下面细说)

c 复制代码
mkdir -p ~/esp
cd ~/esp
git clone https://github.com/espressif/esp-idf.git

    下载完主体,就可以更新里面用到的子模块,更新之前最好切换一下源,切换方式是在esp-idf路径下,找到.gitmodules的文件(该文件为隐藏文件,需要选择查看隐藏文件才能找到)。

    打开该文件,把其中所有的.../.../替换成镜像源,保存文件。

    然后在当前路径下,输入指令更新子模块的源

c 复制代码
git submodule sync

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

c 复制代码
git submodule update --init --recursive --progress

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

c 复制代码
git submodule --remote

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

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

c 复制代码
cd ~/esp/esp-idf
./install.sh esp32

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

c 复制代码
alias get_idf='. $HOME/esp/esp-idf/export.sh'
相关推荐
今年下半年7 分钟前
mysql数据库备份详细操作流程
学习·mysql
湘美书院--湘美谈教育9 分钟前
湘美书院夜谈录:AI时代的体验感与选择价值观念
人工智能·深度学习·学习·安全·生活
小雪崩9 分钟前
嵌入式学习 day49:ARM基础
嵌入式硬件·学习
田径他爸来了15 分钟前
嵌入式学习第38天——裸机imx6ull(uart接口;配置波特率为115200,8位数据位,无校验,一位停止位)
嵌入式硬件·学习
qeen8721 分钟前
【Linux】操作系统之进程介绍(一)
linux·笔记·学习·进程
邪修king25 分钟前
Re:Linux系统篇(二十五):文件系统(一):磁盘硬件底层原理:从物理结构到 CHS/LBA 寻址,搞懂硬盘数据的定位逻辑
java·linux·运维·gpt
小则又沐风a29 分钟前
TCP协议讲解-----了解TCP可靠性的基石
linux
刚入门的大一新生1 小时前
Linux-简单设计libc库
linux·c++
科小墨1 小时前
【Linux 开发者系列 · 第 1 节】NPM 完全指南:它是什么、为什么重要、在 Linux 上怎么用
linux
IT北辰1 小时前
Linux运维:sed命令修改配置文件IP
linux