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