ESP32开发:ubuntu22.04 下esp-idf开发环境搭建

发布于:2025-09-11 ⋅ 阅读:(22) ⋅ 点赞:(0)

1.安装编译 ESP-IDF 需要以下软件包

编译 ESP-IDF 需要以下软件包。请根据使用的 Linux 发行版本,选择合适的安装命令。

  • Ubuntu 和 Debian:

    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
    

2.获取 ESP-IDF

在home目录下新建 esp 文件夹.

mkdir ~/esp

为了安装多个版本:

esp 目录下载指定版本的esp-idf sdk.

cd ~/esp
git clone -b v5.4.2 --recursive https://github.com/espressif/esp-idf.git

等待下载解压结束,把esp-idf 重命名为 esp-idf-v5.4.2,进入 esp-idf-v5.4.2

3.设置工具

进入 esp-idf-v5.4.2 ,运行安装脚本:.install.sh

cd esp-idf-v5.4.2

如果只需要为esp32-s3、esp32设置所需工具,可以指定:

. ./install.sh esp32s3,esp32

如果需要一次性为所有支持的目标芯片安装工具,可以运行如下命令:

. ./install.sh all

下载工具备选方案

ESP-IDF 工具安装器会下载 Github 发布版本中附带的一些工具,如果访问 Github 较为缓慢,可以设置一个环境变量,从而优先选择 Espressif 的下载服务器进行 Github 资源下载。

⚠️ 该设置只影响从 Github 发布版本中下载的单个工具,它并不会改变访问任何 Git 仓库的 URL。

要在安装工具时优先选择 Espressif 下载服务器,请在运行 install.sh 时使用以下命令:

cd ~/esp/esp-idf-v5.4.2
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh

⭐️推荐国内用户使用国内的下载服务器,以加快下载速度。

cd ~/esp/esp-idf-v5.4.2
export IDF_GITHUB_ASSETS="dl.espressif.cn/github_assets"
./install.sh

4.设置环境变量

工具安装完成之后,尚未添加至 PATH 环境变量,无法通过终端中使用这些工具。因此,必须设置一些环境变量。

需要运行 ESP-IDF 的终端窗口运行以下命令:

. $HOME/esp/esp-idf-v5.4.2/export.sh

如果需要经常运行 ESP-IDF,可以为执行 export.sh 创建一个别名,具体步骤如下:

  1. 复制并粘贴以下命令到 shell 配置文件中(.profile.bashrc.zprofile 等)

    alias get_idf='. $HOME/esp/esp-idf/export.sh'
    
  2. 通过重启终端窗口或运行 source [path to profile],如 source ~/.bashrc 来刷新配置文件。

现在可以在任何终端窗口中运行 get_idf 来设置或刷新 ESP-IDF 环境。

不建议直接将 export.sh 添加到 shell 的配置文件。这样做会导致在每个终端会话中都激活 IDF 虚拟环境(包括无需使用 ESP-IDF 的会话)。这违背了使用虚拟环境的目的,还可能影响其他软件的使用。

按照上述方法,当安装了多个版本的esp-idf 之后,也可以通过使用添加别名来区分不同的版本。

示例如下:

在终端中,输入get_idf_v53 即可使用V5.3.3版本的esp-idf:

5.编译工程并烧录

配置工程

设置目标芯片,然后配置项目,指令如下:

idf.py set-target esp32s3
idf.py menuconfig

编译工程

打开一个测试工程,编译工程需要输入指令:

idf.py build

运行以上命令可以编译应用程序和所有 ESP-IDF 组件,接着生成引导加载程序、分区表和应用程序二进制文件,编译完成后将生成 .bin 文件。

把串口插入到ubuntu中,找到对应的串口的标识,Linux 操作系统:/dev/tty 开头。

Linux中两种常见的 USB 转串口设备标识:

  • ttyUSB*:常见于 CH340、CP2102 等 USB 转串口芯片。

  • ttyACM*:常见于 CDC-ACM 类设备(比如 Arduino、STM32 的虚拟串口)。

使用如下指令可以查看ubuntu下的可用的串口设备文件:

cd /dev
ls ttyUSB*
ls ttyACM*

也可以比较插入设备前后的变化,可以快速找到当前的设备标识符:

插入设备前,运行:

ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/null

记下已有的串口设备。

插入 USB 串口设备后,再运行同样的命令。

ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/null

新出现的设备就是你要找的,比如 /dev/ttyUSB0/dev/ttyACM0

烧录固件到设备

烧录之前,需要获取串口设备文件的读写权限:

sudo chmod a+rw /dev/ttyACM0

或者

sudo chmod 666 /dev/ttyACM0

运行以下命令,将刚刚生成的二进制文件烧录至芯片:

idf.py -p PORT flash

将 PORT 替换为自己的串口名称,上面的设备对应指令则为:

idf.py -p /dev/ttyACM0 flash

6.其他指令

监视输出

可以使用 idf.py -p PORT monitor 命令,监视工程的运行情况

idf.py -p PORT monitor

擦除 flash

ESP-IDF 支持擦除 flash。请运行以下命令,擦除整个 flash:

idf.py -p PORT erase-flash

若存在需要擦除的 OTA 数据,请运行以下命令:

idf.py -p PORT erase-otadata

擦除 flash 需要一段时间,在擦除过程中,请勿断开设备连接。

清除编译

清除之前的编译:

idf.py fullclean

文档参考链接:
Linux 和 macOS 平台工具链的标准设置


网站公告

今日签到

点亮在社区的每一天
去签到