基于ESP8266_RTOS_SDK 开发esp01-s 等esp8266芯片环境配置
前言
其实文章早就验证好了,社区等的文章没有针对python版本等不匹配所以尝试很久才解决,故这里记录下
1、windows下的开发工具链安装
因为windows没有make环境,所以需要安装一个all in one(多合一)的工具链
esp32_win32_msys2_environment_and_toolchain-20181001.zip 解压到 E:\esp32
2、下载ESP8266专用工具链
xtensa-lx106-elf-gcc8_4_0-esp-2020r3-win32.zip
解压后将xtensa-lx106-elf整个文件夹复制到msys32文件夹下的opt目录中
3、下载SDK
下载 github.com/espressif/E… 放到 E:\esp32\msys32\home\liangguohun(自己的用户名)\esp
4、配置环境变量
在目录\msys32\etc\profile.d下的esp32_toolchain.sh中配置
# export PATH="$PATH:/opt/xtensa-esp32-elf/bin"
# 避免make menuconfig 等乱码
export LANG="en_US"
# 把本机的python 考进去 Python 3.8.7 (安装ESP-IDF路径里头)
export PATH="/mingw32/Python38/Scripts:/opt/xtensa-lx106-elf/bin:$PATH"
export IDF_PATH="E:/esp32/msys32/home/liangguohun/esp/ESP8266_RTOS_SDK-v3.4"
4、运行msys32目录下的mingw32.exe,初始化环境
注意只能通过mingw32.exe 编译
python -m pip install --upgrade pip
python -m pip install --user -r $IDF_PATH/requirements.txt
提示不用--user 就不加, 这里的python 是从ESP-IDF考来的所以不用
5、配置编译及烧录
mingw32.exe 命令行下
cd ESP8266_RTOS_SDK-v3.4\examples\get-started\hello_world
make all(编译时会自动弹出make menuconfig的配置界面, 只用设置flash大小匹配,及串口号(也就是COM几)就行)
编译后生成 3个 固件bin
bootloader.bin 0x0 (引导程序)
hello-world.bin 0x10000 (应用程序主程序)
partitions_singleapp.bin 0x8000 (分区表)
根据偏移量烧录时会进入相应的闪存地址
GPIO0 接地 进入烧录模式(此时波特率为11520)
烧录
make flash
GPIO0 接3.3V 进入工作模式 (串口调试助手的波特率设置为74880)
问题
1、python -m pip install --user -r $IDF_PATH/requirements.txt 报错
-i https://pypi.tuna.tsinghua.edu.cn/simple -- "setuptools >= 46.4.0"" failed with error code 1 in None
46.4.0 对应的py版本是3以上的,工具链自带的是2.7的py所以怎么野没法安装
解决方法:
配置用 3.8.7 版本的python
2、make all 时出错
pkg_resources cannot be imported probably because the pip package is not installed and/or using a legacy Python interpreter. Please refer to the Get Started section of the ESP-IDF Programming Guide for setting up the required packages.
解决方法:
python3.10 起就被标记移除, 3.13 已经移除了,用旧的版本 3.8
3、运行状态串口工具消息乱码
冷启动或硬件复位。
初次上电或硬件复位时, 系统一定会输出乱码, 除非您使用 74880 波特率的固件。 这是因为系统上电
时, 会运行厂商芯片内部的 Boot loader.然而 Boot loader 因为某些原因会将整个 SoC 的波特率初始
化成 74880.您的串口软件很有可能不在这个波特率上, 因此会出现乱码。
如果您想知道这些乱码的含义, 请设置成 74880 波特率。
软件或看门狗复位。
当您使用 AT 指令复位后, 下次启动时仍然会执行厂商 SDK 的代码, 该部分代码不开源, 我们无法修
改。 此代码会将波特率设置成 115200.如果您的波特率恰好是 115200, 那么恭喜您, 在执行 RST 的
时候将不会出现乱码。 如果不是, 那么在串口速率切换的过程中, 您依然会看到乱码。
当然, 在您不使用 74880 这个波特率的前提下, 冷启动的乱码是您使用任何固件都无法避免的。
4、未定义标识符
需要配置 cygwin
配置cygwin可用站点
http://mirrors.aliyun.com/cygwin/
安装 binutils、 gcc 、mingw 、gdb、make
配置
CYGWIN_HOME
C:\cygwin64
path环境变量
%CYGWIN_HOME%\bin
%CYGWIN_HOME%\sbin
c_cpp_properties.json includePath 配置"C:/cygwin64/usr/include",
参考
blog.csdn.net/qq_36347513… blog.51cto.com/u_16213663/… cloud.tencent.com/developer/a…