ubuntu环境下搭建ESP32开发环境,安装时经常会遇到各种坑,造成安装失败,这里是记录一下本人的安装和使用总结。

1、安装依赖

        ESP32编译调试环境采用Python3脚本编写,所以必须支持,同时还依赖其他常用工具,如下:

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

2、获取esp-idf

        esp-idf环境内部依赖其他开源库,例如mbedtls,mqtt等,此类库采用子模块的方式链接更新,这类库有些存在国外服务器,一次性克隆esp-idf和其子模块容易失败,所以先克隆esp-idf,不包含子模块。国内代码库下载指令如下:

git clone https://gitee.com/EspressifSystems/esp-idf.git

3、获取esp-gitee-tools

        子模块的获取可以采用git submodules相关指令,但是国内gitee环境的esp-idf,submodules会指向github或者以相对路径的方式指向gitee上不存在或不正确的仓库,导致clone慢或者会出错,因此引入了esp-gitee-tools.git工具来解决此问题。下载esp-gitee-tools.git指令如下:

git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git

4、获取子模块 

         进入esp-gitee-tools目录,执行如下命令下载子模块(注:参数是esp-idf的路径,用户根据实际情况填写):

./submodule-update.sh ../esp-idf/

5、安装交叉编译工具

本步骤也是失败率最高的一步,原因是安装器会从github上下载交叉编译工具链,因访问github较为缓慢,而且文件比较大,所以很容易失败。解决办法是在执行安装工具脚本之前先设置环境变量IDF_GITHUB_ASSETS,设置为Espressif 的下载服务器的网址,下载的时候就会从Espressif 的服务器下载,加快速度。

        首先进入esp-idf目录,然后设置环境变量,再执行安装器脚本,指令如下:

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

        安装成功后,会打印相关提示,并提示执行环境变量设置命令:. ./export.sh,到这一步,开发环境安装已经成功了。

6、开发工具使用

    1)设置环境变量

        进入esp-idf目录,并执行设置环境变量指令,如下:

. ./export.sh

    2)选择目标芯片

esp-idf环境适用于ESP32和ESP32-S系列,编译前需要选择目标芯片(只需设置一次),指令如下:

idf.py set-target esp32

    3)进入示例代码

        esp-idf中有很多的实例,在example目录下,进入hello world测试程序,指令:  

cd ./examples/get-started/hello_world

    4)执行编译指令

        编译指令如下,编译清除指令为idf.py clean,编译成功打印Project build complete. 

idf.py build

    5)接开发板、设置权限

esp-idf通过串口下载固件,串口通信需要root权限,通过USB线连接开发板,并查看/dev/下对应的接口,默认为ttyUSB0,对应指令如下:

sudo chmod 777 /dev/ttyUSB0

    6)下载固件

        idf.py flash指令自动重新构建项目,完成编译,并下载程序到开发板,-p参数用于指定硬件端口(这里是ttyUSB0),指令如下。(注意:ESP32开发板不需要按组合键进入程序下载模式)

idf.py -p /dev/ttyUSB0 flash

    7)观察串口日志

        idf.py工具还集成了串口指令,用来观察开发板串口日志(退出指令为:Ctrl+]),指令如下:

idf.py monitor