Windows上ESP8266开发环境配置(工具链和Eclipse配置)

Posted by 橙叶 on Wed, Mar 17, 2021

最近要用到ESP8266这款wifi芯片。ESP8266既可以直接用AT命令操作,也可以在上面运行自己编写的程序。我希望能节约一点上位机的资源,所以想要尝试一下ESP8266的开发。ESP8266搭载的是一块Tensilican L106 32位MCU,需要专门的环境来开发,以下内容基于官方ESP8266_RTOS_SDK的文档:https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/index.html

配置编译工具

在Windows下配置环境稍稍麻烦一点,需要msys环境,如果用WSL1会可以照Linux下操作(WSL2无法使用宿主机的串口)。

其实官方直接提供了打包好环境的msys32:

第一个链接是打包了MSYS2和工具链,只需要下载解压到(例如C:esp32_win32_msys2_environment_and_toolchain-20181001,以下用<msys32_path>代替),然后打开<msys32_path>msys32mingw32.exe>,像这样:

在这里创建一个esp目录作为我们开发的工作目录。

mkdir -p ~/esp

然后下载SDK,克隆ESP8266_RTOS_SDK到这个目录:

cd ~/esp
git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git

设置环境变量IDF_PATH:

export IDF_PATH=~/esp/ESP8266_RTOS_SDK

然后需要下载xtensa-lx106的编译工具链

可以直接在msys里用wget下载到~/esp目录。然后解压。

home@DESKTOP-0EGMBD1 MINGW32 ~/esp
$ wget https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-win32.zip
unzip xtensa-lx106-elf-gcc8_4_0-esp-2020r3-win32.zip

配置环境变量,将~/esp/xtensa-lx106-elf/bin/添加到PATH中,make编译时就会调用这个交叉编译工具。

export PATH="$PATH:$HOME/esp/xtensa-lx106-elf/bin"

从SDK的examples目录下复制一个例程(比如~/esp/ESP8266_RTOS_SDK/examples/get-started/hello world)到~/esp目录下,

cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .

进入目录,然后配置一下刷写ESP8266的串口。

cd ~/esp/hello_world
make menuconfig

把ESP8266用USB转串口连接到电脑 然后选择Serial flasher config-->Default serial port,设置为COMx,COMx是串口号:

在Windows系统里,串口端口号是COMx这种格式:

然后选择OK->Save->OK保存设置.

然后可以编译:

make    # 编译出二进制文件
# 或
make flash # 编译并下载到芯片里

这是执行make flash的输出:

然后连接ESP8266的串口,你可以用其他串口监视软件连接,也可以用如下命令在命令行里连接串口

make monitor

配置Eclipse

参考自:https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/eclipse-setup-windows.html#eclipse-windows-setup

首先安装下载Eclipse.具体步骤略,注意要安装时要选择"Eclipse IDE for C/C++ Developers".

安装完后选择之前的esp目录作为工作目录,在主界面File->Makefile Project with Existing Code, 导入之前的hello_world例程.

在Existing Code Location处选择esp/hello_world目录,取消选中下方的"Show only available toolchains that support this platform",再在"Toolchain for Indexer Settings"里选择"Cygwin GCC".

导入后在项目名上右键->Properties, 找到C/C++ Build, 在Builder Settings里, 取消选中"Use default build command", 在"Build Command"一栏中填写`python ${IDF_PATH}/tools/windows/eclipse_make.py'.

再找到Enviroment, 点击Add添加环境变量:

  1. 添加BATCH_BUILD变量, 值是1
  2. 添加IDF_PATH变量, 值是ESP8266_RTOS_SDK所在的位置, 如J:esp32_win32_msys2_environment_and_toolchain-20181001msys32homehomeespESP8266_RTOS_SDK
  3. 编辑PATH变量, 值是msys32的可执行文件和交叉编译工具xtensa-lx106-elf所在的目录, 如: J:esp32_win32_msys2_environment_and_toolchain-20181001msys32usrbin;J:esp32_win32_msys2_environment_and_toolchain-20181001msys32mingw32bin;J:esp32_win32_msys2_environment_and_toolchain-20181001msys32homehomeespxtensa-lx106-elfbin

在C/C++ General->Preprocessor Include Paths, Macros, etc.->Providers里, 勾选"CDT Cross GCC Built-in Compiler Settings", 在下面的"Command to get compiler specs"里改成xtensa-lx106-elf-gcc ${FLAGS} -E -P -v -dD "${INPUTS}".

再点击“CDT GCC Build Output Parser”, 在"Compiler command pattern"里改成xtensa-lx106-elf-(gcc|g++|c++|cc|cpp|clang)

在C/C++ General->Indexer里, 选中"Enable project specific settings", 然后在下面取消选中"Allow heuristic resolution of includes".

在C/C++ Build里, 找到Behavior, 选中"Enable parallel build"启用并行编译.

应用我们的修改.

在工程hello_world上右键->Build Project, 开始编译.

添加make flash编译命令. 在工程上右键->Build Targets->Build, 在弹出的界面里点击'Add', 'Target name'填写flash, 然后OK->选择刚添加的flash ->Build.

这样就可以直接编译并下载到芯片里:



comments powered by Disqus