前言
ESP8266玩了很久了,一直都听说出了ESP32。最近就买了两块该开发板。要玩ESP32,首先就要搭建好开发环境。
那么这篇文章就是主要讲解如何在Windows下搭建ESP32的开发环境。
开发平台和工具
- Windows 10 x64
-
AiThinkerIDE_V0.5
- cygwin
- eclipse
- esp-idf
- Flash 下载工具 V3.4.8
IDE环境使用安信可的IDE,目前最新版本是AiThinkerIDE_V0.5
环境下载和安装
首先需要下载AiThinkerIDE_V0.5。解压后主目录有一份说明文件:
1 打开 ConfigTool.exe,点击 Default 可以检测当前所在路径,或手动进行路径配置;
2 配置后点击 Save 进行保存;
3 打开 AiThinker_IDE.exe,可以直接进行固件的编译;
4 点击 OpenWorkSpace.bat 可以快速打开默认的 project 目录;
5 点击 Register 可注册 Cygwin Here 快捷方式到鼠标右键,可实现在当前目录打开终端。
在主目录下找到 cygwin 文件夹和 eclipse 文件夹,进行配置即可。
注意!cygwin 文件夹所在路径不可以有空格或中文!!!
配置好后打开 AiThinker_IDE.exe 即可。
如果打不开 ConfigTool.exe ,打开 DotNetFx40 Framework 快捷方式下载安装 dotNetFx40_Full_x86_x64.exe。
IDE 默认配置保存在同目录下的 config 文件夹内。
ESP-IDF 下载
esp-idf 和 esp-idf-template可以到github下载,由于git下载可能比较慢,可以到这里下载:http://pan.baidu.com/s/1jIRotBg
下载后请执行 git pull
进行更新。
另外,如果是从 github 下载的 idf 似乎会编译报错,不知道是什么原因,所以 idf 用安信可提供的即可。
导入项目
打开IDE后可能需要导入下载好的 IDF。那么就要进行工程导入。下面步骤是参考安信可官网旧版IDE的导入教程。
- 选择 File→Import
- 点开C/C++分支,并选中Existing Code as Makefile Project
- 去除 C++ 支持,选中 Cygwin GCC
点击Browser,选中 esp-idf 所在的目录
- 点击 Finish 完成 esp-idf 的导入
配置项目
因为 make 只能从 app 目录启动,故我们需要修改整个项目 build 的位置
右键项目→Properties ,单击 C/C++ Build
,修改如下图
此时,已经具备了编译的基础。
下面我们配置 make menuconfig
和 make flash
两条指令
首先新建target,右键项目名称→Make targets ,选择 Creat
给该 Target 新建一个名称:MenuConfig
,
在弹出的页面中取消勾选 Use builder setting ,取消勾选 Same as the target name 并清空 Make target 的内容。
在下面 command 中输入 mintty.exe -e make menuconfig
。
点击 OK 保存
重复上一步骤,新建一个Download
的 Target 。
在弹出的页面中取消勾选 Use builder setting ,取消勾选 Same as the target name 并清空 Make target 的内容。
在下面command 中输入 make flash
。
点击 OK 保存
选中项目,按下快捷键 Shift + F9,弹出刚才新建的两个 Target
鼠标选中需要编译的 Target, 点击 Build 即可实现在 Eclipse 中下载和配置 idf
编译项目
首次使用请先执行 make menuconfig
鼠标选中项目名称,点击右键出现菜单:
- Build Project :编译项目
- Clean Project:清理项目
之后到esp-idf\examples\get-started
目录下把 hello_world 文件夹拷贝到 esp-idf 主目录,同时修改名称为 app 。与前面 C/C++ Build 的配置相对应。
编译之前clean一下,然后编译,
当控制台最后输出如下信息即编译成功。(这里为了阅读方便手动换行了一下)
python /cygdrive/f/ESP32/esp-idf/esp-idf_20170410/components/esptool_py/esptool/esptool.py --chip esp32 --port /dev/ttyUSB0
--baud 115200 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect
0x1000 /cygdrive/f/ESP32/esp-idf/esp-idf_20170410/app/build/bootloader/bootloader.bin
0x10000 /cygdrive/f/ESP32/esp-idf/esp-idf_20170410/app/build/hello-world.bin
0x8000 /cygdrive/f/ESP32/esp-idf/esp-idf_20170410/app/build/partitions_singleapp.bin
Build Project 是执行 make all
命令。其实,bootloader.bin
编译烧写一次即可,所以只需要编译用户程序,编译命令:
make app
按照上一小结配置 make menuconfig
命令的方法添加进去即可。
烧写固件
编译后由控制台输出信息可知各个烧录bin文件的地址。
文件 | 地址 | 所在路径 | 说明 |
---|---|---|---|
bootloader.bin | 0x1000 | app/build/bootloader | 二级boot程序,由 SDK 代码编译生成 |
partitions_singleapp.bin | 0x8000 | app/build | 分区信息,由代码自动生成 |
app-template.bin | 0x10000 | app/build | 用户主程序,由代码编译生成 |
到官网的工具栏目那里下载Flash下载工具,目前最新版本是V3.4.8,支持ESP32。启动后根据提示选择 ESP32 即可。
之后打开串口,波特率115200,复位ESP32,可以看到下面信息。
……
Hello world!
Restarting in 10 seconds...
Restarting in 9 seconds...
Restarting in 8 seconds...
Restarting in 7 seconds...
Restarting in 6 seconds...
Restarting in 5 seconds...
Restarting in 4 seconds...
Restarting in 3 seconds...
Restarting in 2 seconds...
Restarting in 1 seconds...
Restarting in 0 seconds...
Restarting now.
如果看到上面的信息说明我们的 hello_world 工程烧录成功。
如果没有看到上面的信息,说明没有进入 hello_world 代码,可能原因是 bin 文件烧写的路径不对。旧版本的partitions_singleapp.bin是烧写在0x4000的(输出信息也是说明烧录在0x4000,很坑人),这一点必须要注意。
其他
本教程所使用的工具可以到这里下载:
链接: https://pan.baidu.com/s/1b63FuI 密码: dqbh
参考资料
本文首发于CSDN:http://blog.csdn.net/yannanxiu/article/details/74537550