1. 设置工具链
Windows 没有内置的 “make” 环境,因此如果要安装工具链,你需要一个 GNU 兼容环境。我们这里使用 MSYS2 来提供该环境。你不需要一直使用这个环境(你可以使用 Eclipse 或其它前端工具),但是它是在后台运行的。
1.1 工具链的设置
快速设置的方法是从 dl.espressif.com 下载集成在一起的工具链和 MSYS2 压缩文件:
下载地址:https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20180110.zip
将 zip 压缩文件解压到 C:\ (或其它路径,这里假设是 C:),它会使用预先准备的环境创建一个 msys32 目录。
1.2 更新环境
当 IDF 更新时,有时需要新的工具链,或者将新的需求添加到 Windows MSYS2 环境中。要将旧版本的预编译环境中的数据移动到新版本:
- 把旧的 MSYS2 环境(即 C:\msys32)移动/重命名为不同的目录(即 C:\msys32_old)。
- 按照前文所述步骤下载新的预编译环境。
- 将新的 MSYS2 环境解压缩到 C:\msys32 (或其他位置)。
- 找到旧的 C:\msys32_old\home 目录并把它移到 C:\msys32。
- 如果你不再需要 C:\msys32_old 可以将它删除。
你可以在系统上拥有独立的不同的 MSYS2 环境,前提是在不同的目录中。
或者,你也可以更新现有的环境而不是下载新环境,但是这样更复杂。
2. 安装Python
建议安装版本为2.7
3. 获取 ESP-IDF
工具链(包括用于编译和构建应用程序的程序)安装完后,你还需要 ESP32 相关的 API/库。API/库在 ESP-IDF 仓库 中。要获取这些 API/库,打开一个终端,进入某个你希望存放 ESP-IDF 的目录,然后 git clone 以下指令:
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git
ESP-IDF 将会被下载到 ~/esp/esp-idf。
或者从
页面中下载ESP-IDF
更新ESP-IDF
要更新到最新的ESP-IDF稳定版本(建议用于生产用途),请遵循以下流程:
-
定期检查“Releases页面”页面以获取新版本。
-
当您正在使用的版本的bugfix版本Releases时(例如,如果使用v3.0.1并且v3.0.2可用),请将新的bugfix版本导入到现有的ESP-IDF目录中:
cd $IDF_PATH
git fetch
git checkout vX.Y.Z
git submodule update --init --recursive
发布主要或次要更新时,请检查版本页面上的发行说明,并确定是要更新还是保留现有版本(通过上面显示的相同Git命令进行更新)。
如果您通过zip文件安装稳定版本而不是使用git,则可能无法以这种方式更改版本。在这种情况下,通过下载新的zip文件并替换整个目录来进行更新。
在用户配置文件中添加 IDF_PATH
为了在系统多次重新启动时保留 “IDF_PATH” 环境变量的设置,请按照以下说明将其添加到用户配置文件中。
用户配置文件脚本存放在 C:/msys32/etc/profile.d/ 目录中。每次打开 MSYS2 窗口时,系统都执行这些脚本。
- 在 C:/msys32/etc/profile.d/ 目录下创建一个新的脚本文件。将其命名为 export_idf_path.sh。
- 确定 ESP-IDF 目录的路径。路径与系统配置有关,例如 C:\msys32\home\user-name\esp\esp-idf。
- 在脚本中加入 export 命令,e.g.:
export IDF_PATH=“C:/msys32/home/user-name/esp/esp-idf”
请将原始 Windows 路径中将反斜杠替换为正斜杠。
- 保存脚本。
- 关闭 MSYS2 窗口并再次打开。输入以下命令检查是否设置了 IDF_PATH:
printenv IDF_PATH
将此前在脚本文件中输入的路径打印出来。
如果您不想在用户配置文件中永久设置 IDF_PATH,则应在打开 MSYS2 窗口时手动输入:
export IDF_PATH=“C:/msys32/home/user-name/esp/esp-idf”
4. 安装和配置Eclipse
现在可以开始创建 ESP32 应用程序了。
为了快速开始,我们这里以 IDF 的 examples 目录下的 get-started/hello_world 工程为例进行说明。
将 get-started/hello_world 拷贝到 ~/esp 目录:
cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
ESP-IDF 的 examples 目录下有一系列示例工程,都可以按照上面的方法进行创建(重要:esp-idf 构建系统不支持在路径中存在空格)。
在终端窗口中,输入
cd ~/esp/hello_world
进入 hello_world 所在目录,然后启动工程配置工具 menuconfig:
cd ~/esp/hello_world
make menuconfig
如果之前的步骤都正确,则会显示下面的菜单:
-
新项目将出现在 “Project Explorer” 下。请右键选择该项目,并在菜单中选择 “Properties”。
-
点击 “C/C++ Build” ,取消
Use default build command
选项,并在Build command
中写入
python ${IDF_PATH}/tools/windows/eclipse_make.py
-
点击 “C/C++ Build” 下的 “Environment” 属性页,选择 “Add…”,并在对应位置输入
BATCH_BUILD
和1
。 -
再次点击 “Add…”,并在
IDF_PATH
中输入ESP-IDF所在的完整安装路径。 -
选择 “PATH” 环境变量,不要改变默认值。如果 Xtensa 工具链的路径尚不在 “PATH” 列表中,则应将该路径 (
something/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” 属性页面。
- 点击Providers选项卡。
- 从Providers列表中选择CDT Cross GCC Built-in Compiler Settings,将
Command to get compiler specs
修改为xtensa-esp32-elf-gcc ${FLAGS} -E -P -v -dD "${INPUTS}
- 从Providers列表中选择CDT GCC Build Output Parser,将
Compiler command pattern
修改为xtensa-esp32-elf-(gcc|g\+\+|c\+\+|cc|cpp|clang)
- 前往C/C++ General -> Indexer 属性页面。去除 Allow heuristic resolution of includes 勾选。启用此选项时,Eclipse 有时无法找到正确的头文件目录。
- 点击C/C++ General->Indexer属性页。
- 选择Enable project specific settings以启用本页上的其他设置。
- 从Providers列表中选择CDT Cross GCC Built-in Compiler Settings,将
- 点击Providers选项卡。
环境设置好后,就可以开始开发应用程序了。整个过程可以概括为如下四步:
- 配置工程并编写代码
- 编译工程并链接成一个 应用程序
- 烧写应用程序到ESP32
- 监视/调试 应用程序