esp8266 SDK环境搭建及子模块拉取超时解决

本文简单记录一下esp8266开发环境搭建,主要目的是记录子模块拉取失败的问题。

主要介绍windows平台。(其实windows主要就是多个编译环境的设置,其他跟linux差不多。)

1、获取MSYS2

这个MSYS2就是为编译器创建在windows的运行环境,操作类似linux终端
在乐鑫指南中有,我这里就不给出下载地址了,因为地址可能会更新

https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started-legacy/windows-setup.html

解压,msys32/mingw32.exe就是控制台了,可以把它看成linux终端

2、获取编译工具链toolchain

https://github.com/espressif/ESP8266_RTOS_SDK

在这个仓库下面说明中有地址,注意选择版本
解压,获得xtensa-lx106-elf这样一个目录,(esp32是xtensa-esp32-elf)
建议将xtensa-lx106-elf扔到msys32/opt下面

3、获取SDK

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

–recursive是一并拉取所有依赖的子模块
但是,由于github非常慢,经常失败,特别是子模块拉取,即便你拆分成如下:

git clone  https://github.com/espressif/ESP8266_RTOS_SDK
cd ESP8266_RTOS_SDK
git submodule update --init

依然会失败,报错如下:

Cloning into 'F:/ESP/ESP8266/ESP8266_RTOS_SDK/components/mbedtls/mbedtls'...
fatal: unable to access 'https://github.com/espressif/mbedtls.git/': Failed to connect to github.com port 443: Timed out
fatal: clone of 'https://github.com/espressif/mbedtls.git' into submodule path 'F:/ESP/ESP8266/ESP8266_RTOS_SDK/components/mbedtls/mbedtls' failed
Failed to clone 'components/mbedtls/mbedtls'. Retry scheduled
Cloning into 'F:/ESP/ESP8266/ESP8266_RTOS_SDK/components/mbedtls/mbedtls'...
fatal: the remote end hung up unexpectedly
error: RPC failed; curl 7 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
fatal: clone of 'https://github.com/espressif/mbedtls.git' into submodule path 'F:/ESP/ESP8266/ESP8266_RTOS_SDK/components/mbedtls/mbedtls' failed
Failed to clone 'components/mbedtls/mbedtls' a second time, aborting

对于能科学上网的,下面可以跳过。

解决办法:偷梁换柱(使用gitee)
如果已经从github获取了SDK,可以跳过1,2步

1,将https://github.com/espressif/ESP8266_RTOS_SDK仓库从github导入到gitee
2,git clone https://gitee/xxx/ESP8266_RTOS_SDK拉取代码到本地
3,打开ESP8266_RTOS_SDK/.git/config
4,submodule下面的github地址就是各个模块的仓库地址,依次将这些仓库导入到gitee
5,修改config,每个模块的github地址改成导入后的gitee的地址
6,cd ESP8266_RTOS_SDK
7,git submodule update --init	//拉取模块

成功如下:

Cloning into 'F:/ESP/ESP8266/ESP8266_RTOS_SDK/components/mbedtls/mbedtls'...
Submodule path 'components/coap/libcoap': checked out 'cfec0d072c5b99ed3e54828ca50ea2f6b91e1f50'
Submodule path 'components/json/cJSON': checked out '3c8935676a97c7c97bf006db8312875b4f292f6c'
Submodule path 'components/lwip/lwip': checked out '4fd84abace0cd8a5a709c194fa54afb3cd39b3f7'
Submodule path 'components/mbedtls/mbedtls': checked out '9ef92c551eb8d92677034c3ec8078a8076febf41'
Submodule path 'components/mqtt/esp-mqtt': checked out '01594bf118ae502b5a0ead040446f2be75d26223'

4、设置环境

1,进入msys32/etc/profile.d,
2,编辑esp32_toolchain.sh(不要双击,这是可运行脚本文件),改成类似如下:

# This file was created by ESP-IDF windows_install_prerequisites.sh
# and will be overwritten if that script is run again.
	export PATH="/opt/xtensa-lx106-elf/bin:$PATH"
	export IDF_PATH="F:\ESP\ESP8266\ESP8266_RTOS_SDK"

(#开头是注释,不用管)
别直接复制,要根据你的路径修改
PATH是你下载的xtensa-lx106-elf/bin路径。
IDF_PATH路径是你SDK路径:
A、F:\ESP\ESP8266\ESP8266_RTOS_SDK,这里用的是windows格式路径
B、假如你的SDK在home/you name/esp/下面,也可以用export IDF_PATH="~/esp/ESP8266_RTOS_SDK"
(不会linux的,建议用windows格式路径)

5、编译

这里简单写一下
1.拷贝ESP8266_RTOS_SDK\examples\get-started\hello_world例程到msys32/home/xx/esp/
2.运行mingw32.exe
3.cd esp
4.cd hello_world
5.make menuconfig
6.修改serial port,比如COM3
7.保存 退出
8.make
9.make flash
(10.make monitor)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅兰里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值