文章目录

  • 【ESP32】交叉编译环境搭建(一)
  • 一、开发前言
  • 二、获取乐鑫软件包
  • 三、安装 esp32 环境
  • 四、创建 esp32 工程
  • 五、编译烧入工程


【ESP32】交叉编译环境搭建(一)

一、开发前言

最近买了块乐鑫的 ESP32 开发板,准备拿来点个灯玩玩,记录一下开发过程

ESP32 BLE增强 esp32 rev1_esp

二、获取乐鑫软件包

进入 linux 下,创建 esp 文件夹,用 git 把软件包拉下来:

git clone --recursive https://github.com/espressif/esp-idf.git

克隆完成:

ESP32 BLE增强 esp32 rev1_arm_02

可以看到克隆后的文件夹,然后我们进入文件夹,拉取子模块

cd /home/jeck/esp/esp-idf
git submodule update --init --recursive

拉取完成后,进入下一步

三、安装 esp32 环境

进入到克隆文件夹下的 esp-idf 文件夹内,执行 esp32 工具安装脚本

cd /home/jeck/esp/esp-idf
./install.sh esp32

安装报错:提示 python 版本太低

ESP32 BLE增强 esp32 rev1_linux_03

这里我后面给 linux 安装一个 anaconda 工具,来安装 python 环境:具体安装方式可以参考这篇文章:Linux下安装Anaconda(64位)详细过程

安装步骤非常简单,无非就是下载安装脚本,然后执行脚本,最后配置环境变量,结束!

这里是我安装 conda 后,用 conda 为 esp 单独创建的 python 环境:(Conda 创建环境可以参考下面的文章:conda创建python环境)

ESP32 BLE增强 esp32 rev1_嵌入式硬件_04

然后激活环境后再次执行工具安装指令,安装完成如下:

ESP32 BLE增强 esp32 rev1_嵌入式硬件_05

如果要给多个目标芯片同时安装工具,则运行 ./install.sh esp32,esp32c3,esp32s3。 要安装全部芯片工具,则运行 ./install.sh./install.sh all

安装完成后,下一步就是设置安装环境,在 esp-idf 目录下执行如下脚本,自动添加环境

. ./export.sh

环境添加完成:

ESP32 BLE增强 esp32 rev1_ESP32 BLE增强_06

四、创建 esp32 工程

我们直接以 esp 提供的例程作为基础进行编辑:

定位到工程目录下:

cd /home/jeck/esp/esp-idf/examples/get-started/hello_world

设置目标芯片为 esp32

idf.py set-target esp32

ESP32 BLE增强 esp32 rev1_linux_07

设置完成会用如下指令打开配置项

idf.py menuconfig

ESP32 BLE增强 esp32 rev1_嵌入式硬件_08

配置项可以配置芯片的具体变量参数包括 Wi-Fi 网络名称、密码和处理器速度等.。示例项目会以默认配置运行,因此可以跳过使用 menuconfig 进行项目配置这一步

五、编译烧入工程

配置完成工程后,下面编译工程

idf.py build

编译完成后会生成 .bin 二进制文件:

ESP32 BLE增强 esp32 rev1_ESP32 BLE增强_09

编译完成通过串口,将程序下载到开发板,默认波特率 460800

idf.py -p PORT [-b BAUD] flash

下载前先查询一下板子的串口:

ls /dev/tty*

拔插看一下是哪个设备,这里我的是 ttyUSB1,这一步串口设备也可以直接在 menuconfig 里面配置!

ESP32 BLE增强 esp32 rev1_arm_10

下载程序:

idf.py -p /dev/ttyUSB1 flash

下载完成:

ESP32 BLE增强 esp32 rev1_嵌入式硬件_11

注意:下载过程中肯会出现串口访问权限的问题,是因为串口只有 root 用户才能操作,普通用户要修改需要添加权限,解决方案如下:

打开规则文件

sudo vim /etc/udev/rules.d/70-ttyusb.rules

添加权限

KERNEL=="ttyUSB[0-9]*",MODE="0666"

保存后就重新拔插串口可以下载了