ESP32算是如今比较强大的物联网芯片,但是编译环境搭建的工作对于初学者来说可能并不是那么容易。官方文档给出了Windows、Linux、OSX三种平台的编译环境搭建教程,官方文档地址:http://esp-idf.readthedocs.io/en/latest/windows-setup.html,本文以官方文档为基础,讲一讲Windows平台下编译环境的搭建,然后实现使用Eclipse IDE进行开发编译。
一.编译环境的搭建
1.安装软件
首先我们需要下载MSYS2和idf配置脚本,如下图所示,将配置脚本放在C盘根目录下
下载地址:msys2-i686-20161025.exe windows_install_prerequisites.sh
安装MSYS2,一直默认下一步,安装完毕后,取消勾选“立即运行 MSYS2 32bit”,然后点击完成。
2.配置MSYS2
在开始菜单中找到MSYS2 MinGW 32-bit,运行。
弹出如下窗口
然后键入以下代码开始执行配置脚本,我是将这个脚本放在C盘根目录下,如在别的路径,则也可以修改为对应的路径,注意使用正斜杠而不是反斜杠
C:/windows_install_prerequisites.sh
该脚本将下载并安装ESP-IDF支持的软件包和ESP32工具链。
初始更新过程中,MSYS2会将其更新为无法再运行的状态,你会看到类似下图所示的错误,此时需要将窗口关闭,然后再次运行MSYS2 MinGW 32-bit
在新运行的窗口中,再次执行之前的sh脚本,等待脚本执行完毕
C:/windows_install_prerequisites.sh
3.获取esp-idf
在C盘根目录下新建文件夹,名为ESP32,在MSYS2中键入以下代码
cd C:/ESP32
git clone --recursive https://github.com/espressif/esp-idf.git
4.获取示例启动工程
在MSYS2中键入以下代码
cd C:/ESP32
git clone https://github.com/espressif/esp-idf-template.git
5.配置工程
用写字板打开C:\msys32\etc\profile.d\esp32_toolchain.sh,在文本末尾加上如下代码,然后重新启动MSYS2
export IDF_PATH="C:/ESP32/esp-idf"
重新启动MSYS2后,在MSYS2中键入以下代码
cd C:/ESP32/esp-idf-template
make menuconfig
选择Serial flasher config
将Flash size修改为自己芯片对应的容量,例如4 MB,Default serial port修改为对应的串口,然后选择Save,之后Exit。
至此,在MSYS2中输入make all即可通过命令行的方式编译工程
如图所示,即为编译成功,就可以按照其中打印的信息进行烧录了。
至此,esp-idf的工具链就已配置成功,下面介绍如何使用Eclipse IDE进行开发与编译。
二.Eclipse IDE的配置
1.安装软件
安装Eclipse IDE for C/C++ Developers
2.导入工程
导入选择Existing Code as Makefile Project
Existing Code Location 选择之前的esp-idf-template路径,Languages取消勾选C++,取消勾选Show only available toolchains that support this platform,然后选择Cygwin GCC
3.配置工程属性
新工程将显示在工程资源管理器下。右键单击该项目,然后从上下文菜单中选择Properties
选择C/C++ Build选项卡,取消勾选 Use default build command,Build command键入"python ${IDF_PATH}/tools/windows/eclipse_make.py"
python ${IDF_PATH}/tools/windows/eclipse_make.py
选择C/C++ Build下的Environment选项卡,点击Add...,输入名称BATCH_BUILD和值1,再次点击Add...,输入名称IDF_PATH。该值应为安装ESP-IDF的完整路径。应使用非反斜杠(例如我的路径是C:/ESP32/esp-idf)的转斜斜杠来指定IDF_PATH目录。编辑PATH环境变量,删除现有值并替换C:\msys32\usr\bin;C:\msys32\mingw32\bin;C:\msys32\opt\xtensa-esp32-elf\bin
C:\msys32\usr\bin;C:\msys32\mingw32\bin;C:\msys32\opt\xtensa-esp32-elf\bin
选择C/C++ General下的Preprocessor Include Paths, Macros,etc.选项卡,单击Providers选项卡,单击CDT GCC Built-in Compiler Settings Cygwin,替换Command to get compiler specs 输入框为xtensa-esp32-elf-gcc ${FLAGS} -E -P -v -dD "${INPUTS}"
xtensa-esp32-elf-gcc ${FLAGS} -E -P -v -dD "${INPUTS}"
然后单击CDT GCC Build Output Parser,替换Compiler command pattern输入框为为xtensa-esp32-elf-(g?cc)|([gc]\+\+)|(clang)
xtensa-esp32-elf-(g?cc)|([gc]\+\+)|(clang)
然后单击Apply,然后单击OK保存退出
4.编译工程
至此,Eclipse IDE的编译环境已经配置完成,选择Project->Build Project即可进行编译,如图所示控制台输出即表明编译完成
三.程序烧录
程序编译完成后,需要将编译生成的文件烧录进ESP32,在这里我们使用乐鑫官方的烧录工具
Flash 下载工具 V3.4.4(ESP8266 & ESP32):http://www.espressif.com/sites/default/files/tools/flash_download_tools_v3.4.4_0.zip
关注使用Eclipse编译控制台最后输出的一行,其中说明了下载时需要如何配置
python C:/ESP32/esp-idf/components/esptool_py/esptool/esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 115200 --before default_reset --after hard_reset write_flash -u --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 C:/ESP32/esp-idf-template/build/bootloader/bootloader.bin 0x10000 C:/ESP32/esp-idf-template/build/app-template.bin 0x8000 C:/ESP32/esp-idf-template/build/partitions_singleapp.bin
晶振频率:40M
SPI MODE:DIO
flash size:按照之前menu config中选的,例如32Mbit
C:/ESP32/esp-idf-template/build/bootloader/bootloader.bin 下载地址0x1000
C:/ESP32/esp-idf-template/build/app-template.bin 下载地址0x10000
C:/ESP32/esp-idf-template/build/partitions_singleapp.bin 下载地址0x8000
按照以上分析结果配置下载工具,点击START开始下载
四.总结
到此,编译环境教程也就结束了,本文是按照esp-idf官方提供的文档进行了综合。如果有帮助的话,请点个赞哈。因为本人也是初学者,希望有什么问题的话,可以共同探讨哈。