一、前言
乐鑫的ESP32开发环境跟我们之前用的大多数单片机不太一样,乐鑫他们没有自己的IDE,而是借助于第三方的工具软件来编译程序,现在国内用得比较多的IAR和MDK均不支持直接对乐鑫ESP32的程序直接进行编译,但是这不影响我们去开发ESP32的程序,官方也有比较详细的文档介绍如何搭建开发环境,但是官方有的地方写得也不是很清楚,第一次搭建->编译->烧录成功这个过程肯定是不会这么顺利的,现在笔者就分享下过来人的经验以便后来者快速地进入开发阶段。
二、准备工作
因为我们平时用得大多是Windows系统,所以该篇文章主要是与Windows系统环境为背景介绍开发环境地搭建。
1、工具链
https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20170111.zip
2、开发工具
http://www.eclipse.org/downloads/eclipse-packages/(选择Eclipse IDE for C/C++ Developers)
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
三、获取SDK
解压第二章节中的第1小节所说的MSYS2编译开发环境至本地电脑任意位置(为保险起见,路径最好不要有中文以避免在开发过程中出现不必要的异常!),笔者是直接解压至
D:\Project\ESP32
其次,在本地电脑再新建一个文件夹用于存放ESP32的SDK包,但是你也可以选择不新建而是跟MSYS2放在同一个目录下(笔者就是跟MSYS2在同一目录下),再直接打开MSYS2
D:\Project\ESP32\msys32\msys2_shell.cmd
紧接着,在打开的窗口中直接输入命令进入到MSYS2同级目录下,再键入命令从github获取SDK包
cd "D:\Project\ESP32"
git clone --recursive https://github.com/espressif/esp-idf.git
然后,等SDK包从github下载完成之后,进入SDK包的目录,即输入以下命令:
cd "D:\Project\ESP32\esp-idf-v2.0-rc1"(esp-idf-v2.0-rc1是SDK包的名称,后续会跟着乐鑫官方地更新而改变)
最后,从github获取模板工程,即输入以下命令:
git clone https://github.com/espressif/esp-idf-template.git app(即在SDK包里面再新建一个app文件夹并将模板工程放入app文件夹中)
下载完成的情况如下:
四、配置SDK路径
在编译烧录程序之前,还要再配置下SDK包的路径,否则工程无法正常编译烧录,直接进入到MSYS2目录下profile.d的文件夹,绝对路径如下:
D:\Project\ESP32\msys32\etc\profile.d(这个地址根据个人将MSYS2解压至不同的地方而不同)
修改profile.d文件夹中的"esp32_toolchain.sh"文件,即在该文件末尾新增加以下内容:
export IDF_PATH="D:/Project/ESP32/esp-idf-v2.0-rc1"(即SDK包的绝对路径地址,注意是左斜杠不是右斜杠!)
修改完成后的情况如下:
最后,保存退出即可。
五、编译烧录
经过以上四个步骤,工作还只是完成了90%,还需要做最后的配置才能真正全部完成。
1、配置下载口
在进行编译烧录之前,我们还需要对下载口进行配置,因为乐鑫采用的是串口下载,所以我们必须提前知道是哪个COM口用于下载,笔者这里用的是COM28,如下图所示:
接着,打开MSYS2,再打开的MSYS2窗口中键入以下命令,即SDK包中app文件夹的绝对路径(这里一定要是应用程序的路径,但是不限于一定要是app,只要是应用程序的路径即可但是还是建议用app这个应用程序,因为它是官方提供的模版工程,而不是SDK包的路径):
cd "/D/Project/ESP32/esp-idf-v2.0-rc1/app"
然后,再输入以下命令进入配置下载口界面:
make menuconfig(如果下载口、模块FLash大小及下载速度不变的话,只须设置一次即可,但是如果是新的应用程序则必须再次设置)
配置下载口,在此之前应先对模块进行上电并连接好模块
配置本地电脑实际串口是串口几就填充COM几
然后保存退出,剩下的可以根据自身的情况做出相应的改变,一般情况下默认即可,除了以后有了更大的FLash之外。
2、编译烧录工程
编译烧录有两种方法,一种是直接在MSYS2进行编译烧录(但是它不能编写代码),另外一种则是在Eclipse进行编译烧录而且它还可以编定或修改代码(推荐使用该方式开发)
2.1、MSYS2
MSYS2
make flash
2.2、Eclipse
在使用Eclipse还需要对其进行设置之后,才可以编译烧录。步骤如下所示:
第一个环境变量名是:“V”,值是:“1”
第二个环境变量名是:“IDF_PATH”,值是:“D:/Project/ESP32/esp-idf-v2.0-rc1”(这里就是SDK包的绝对路径,随SDK包存放的位置不同该值则不同,注意左斜杠不是右斜杠)
环境境变量名是:“PATH”的值全部替换为
D:\Project\ESP32\msys32\usr\bin;D:\Project\ESP32\msys32\mingw32\bin;D:\Project\ESP32\msys32\opt\xtensa-esp32-elf\bin(根据MSYS2存放的位置不同而不同)
将Build command的内容修改为
bash $/tools/windows/eclipse_make.sh
修改 “Command to get compiler specs”的内容为
xtensa-esp32-elf-gcc $ -E -P -v -dD "$"
修改“
Compiler command pattern
”的内容为
xtensa-esp32-elf-(g?cc)([gc]\+\+)(clang)
创建新的编译目标
(flash是编译烧录bootloader、app、partition table)
(app-flash是只编译烧录app)
(clean是清除工程)
至此,Eclipse的环境设置就完成了,接下来我们就可以使用Eclipse编译烧录程序至ESP32中去,当GPIO0拉低同时再按下复位键使模块进行下载模式:
成功下载程序至ESP32中
领取专属 10元无门槛券
私享最新 技术干货