一、安装编译 ESP-IDF 需要的软件包和编译链: 

sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev

注:使用 ESP-IDF 需要 CMake 3.5 或以上版本。较早版本的 Linux 可能需要升级才能向后移植仓库,或安装 “cmake3” 软件包,而不是安装 “cmake”。

1、下载交叉编译链

2、以下命令可以查询linux是32位还是64位

getconf LONG_BIT

3、解压下载的xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz

sudo tar -xvzf xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz

4、更改xtensa-esp32-elf 权限 

chmod -R 777 xtensa-esp32-elf

5、添加环境变量

sudo vi /etc/profile

6、编辑/etc/profile,在最后一行添加环境变量路径

export PATH=~/esp/tools/xtensa-esp32-elf/bin

Linux环境下ESP32开发_python

7、使新的环境变量立即生效

source /etc/profile

8、查看gcc版本信息

xtensa-esp32-elf-gcc -v

如果有gcc版本信息,即为添加成功,否则为失败。

 

Linux环境下ESP32开发_python_02

 

9、在用户配置文件中添加 IDF_PATH 和 idf.py PATH (CMake)

使用基于 CMake 的构建系统和 idf.py 工具,用户需修改两处系统环境变量:

  • IDF_PATH 需设置为含有 ESP-IDF 目录的路径
  • 系统 PATH 变量需包括含有 idf.py 工具 (属于 ESP-IDF 一部分)的目录
export IDF_PATH=~/esp/esp-idf
export PATH="$IDF_PATH/tools:$PATH"

如图所示: 

Linux环境下ESP32开发_Linux环境下ESP32开发_03

10、运行以下命令来检查 IDF_PATH 设置是否正确:

printenv IDF_PATH

11、确认 idf.py 目前是否在 PATH 中,可以运行以下命令:

which idf.py

这里应打印出类似 ${IDF_PATH}/tools/idf.py 的路径

 

二、获取 ESP-IDF

将ESP-IDF 将下载至~/esp/esp-idf

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

三、安装与设置工具

本步骤中介绍的脚本将 ESP-IDF 所需的编译工具默认安装在用户根文件夹中。

chmod -R 777 ~/esp/esp-idf
cd ~/esp/esp-idf
./install.sh

四、设置环境变量

刚刚安装的工具尚未添加至 PATH 环境变量,无法通过“命令窗口”使用这些工具。因此,必须设置一些环境变量,这可以通过 ESP-IDF 提供的另一个脚本(export.sh)完成。

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

五、开始创建工程

直接复制ESP-IDF 中 examples 目录下的 get-started/hello_world 工程到当前文件夹。

cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .

注:ESP-IDF 编译系统不支持带有空格的路径。

六、连接设备

  • 将 ESP32 开发板连接到 PC,并查看开发板使用的串口。
  • 查看 ESP32 开发板(或外部转串口适配器)的串口设备名称,运行两次以下命令。
  • 首先,断开开发板或适配器,第一次运行命令;然后,连接开发板或适配器,第二次运行命令。其中,第二次运行命令后出现的端口即是 ESP32 对应的串口:
ls /dev/tty*

如图所示: 

Linux环境下ESP32开发_串口_04

七、确认串口连接

1、安装串口工具putty

sudo apt install putty

2、在终端启动putty

putty

3、弹出界面如图所示:点击"OPEN"

Linux环境下ESP32开发_Linux环境下ESP32开发_05

4、可能出现的问题:Unable to open serial port /dev/ttyUSB0

原因:权限不够

解决:通过增加udev规则来实现。

1、创建以下文件

vi /etc/udev/rules.d/70-ttyusb.rules

2、编辑增加以下文字,保存。

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

3、重新插入USB转串口设备,普通用户就有权限访问了。

 

八、配置

ESP32执行make menuconfig报错The following Python requirements are not satisfied:问题解决

进入hello_world 工程目录使用"make menuconfig"命令进入配置工具 menuconfig。

make menuconfig

进入以下界面: 

Linux环境下ESP32开发_Linux环境下ESP32开发_06

选择“Serial flasher config”进入,进入如下界面,可以看到默认USB0,可以根据自己需要修改。

Linux环境下ESP32开发_Linux环境下ESP32开发_07

 

九、编译烧录

执行make命令,第一次执行make命令默认会进入configuration界面。

make

本次编译总共生成了3个文件,分别为:

位于build/bootloader目录下的bootloader.bin

位于build目录下的partitions_singleapp.bin

位于build目录下的hello-world.bin