【无标题】WIN11下 ESP8266 _RTOS_SDK3.0以上开发环境搭建(记录及避坑必看)

news2024/11/19 19:43:25

前提参考文档

1、乐鑫官网:
https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/index.html
官网上有如何搭建windows linux macos 三种环境,以及如何配置Eclipse去编译和开发项目(如何安装Eclipse环境,请参考:
https://blog.csdn.net/weixin_41634778/article/details/112628552?spm=1001.2014.3001.5506)。
2、别人的安装步骤
https://blog.csdn.net/tjb132/article/details/112257592

搭建开发环境选择

windows下开发环境选择有两个,一个是自行搭建开发环境(本文主要讲解是这个方法),另外一个是安信可的一体化安装环境(如有需要:
请参考:
https://blog.csdn.net/Boantong_/article/details/106229281?spm=1001.2014.3001.5506)。
其中,自行搭建开发环境当然会碰见坑。下面重点记录:
这里主要记录过程中的踩坑点:
1、整体环境配置思路和一般的开发一样,需要安装:
(1)windows环境下的编译工具链
https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip。
注意:
== msys32文件夹 所在的路径名字如果太长,自行可以修改 ==
解压到你自己指定的目录后,会得到msys32文件夹(这个是windows下的一个linux环境,可以认为是一个linux 虚拟机,后边所有的编译、下载指令都在这个里边完成),需要在系统环境变量下添加以下路径到PATH变量下:
a)你自己的路径+\msys32\mingw32\bin;(添加这个作用是为了后边能找到python2.7.exe,因为后边在执行make 命令的时候会依赖于python 的工具包);
b)你自己的路径+\msys32\usr\bin;(添加这个作用是为了后边能找到make.exe以及其他作用的可执行文件)。
(2)乐鑫ESP8266的工具链
可以使用官方最新的8.4版本,也可以使用老版本5.2(至于为什么是5.2,可以在后边的配置文件中看到版本要求,这里先安装正确版本),
另外请注意,本文主要针对的是SDK包在3.0以上
https://dl.espressif.com/dl/xtensa-lx106-elf-win32-1.22.0-100-ge567ec7-5.2.0.zip。
解压后,找到xtensa-lx106-elf,将你自己的路径+xtensa-lx106-elf\bin添加到系统环境变量下添加以下路径到PATH变量下:
添加这个作用是为了后边能找到乐鑫ESP8266所有的工具包执行文件,包括gcc5.2.exe。
== 这里注意:xtensa-lx106-elf里边又包含了xtensa-lx106-elf同名文件夹==
(3)下载ESP8266_RTOS_SDK包
注意:这里是大坑,不要按照官网去执行git 命令去clon github地址,因为国内环境问题,pull的SDK包是不完整的,尤其是在拉取依赖编译的子模块时,根本拉取不完整,别浪费时间再去找gitee国内镜像了,别问我为什么知道,我浪费了两天时间在这个地方,毫无意义,下边说解决方法
解决方法:乐鑫官网已经提供了:
https://www.espressif.com.cn/zh-hans/support/download/sdks-demos?keys=&field_type_tid%5B%5D=14
在这里插入图片描述
最新的是ESP8266_RTOS_SDK Release v3.4,版本之间修复一些bug,根据自己需要下载。
直接下载压缩包即可,这个肯定是完整的。
在这里插入图片描述
2、配置路径。以上三个文件准备好后,后边就很简单了,在MSYS32下配置ESP8266编译工具链+SDK的路径。具体为:你自己的路径(E:\esp8266\toolchain\esp32_win32_toolchain-20181001)+\msys32\etc\profile.d,找到esp32_toolchain.sh,使用文本编辑器(这个随便哪个都可以)打开,编辑以下内容后保存退出:

export PATH=“ P A T H : / o p t / x t e n s a − e s p 32 − e l f / b i n " e x p o r t P A T H = " PATH:/opt/xtensa-esp32-elf/bin" export PATH=" PATH:/opt/xtensaesp32elf/bin"exportPATH="PATH:/opt/xtensa-lx106-elf/bin”
export IDF_PATH=“E:/esp8266/toolchain/esp32_win32_toolchain-20181001/msys32/home/zyf/esp/ESP8266_RTOS_SDK”
export LANG=“en_US”

这里最好在系统变量中也添加以下 IDF_PATH及其对应的值。
配置完后,双击打开msys32下mingw32.exe,也可以发送桌面,经常会用。
打开后,在终端窗口下 输入 P A T H 和 PATH 和 PATHIDF_PATH,验证是否和之前配置的一样。
3、安装ESP8266编译过程中依赖的python 工具包。
python -m pip install --user -r $IDF_PATH/requirements.txt
== 注意:在执行之前最好 先输入一下 python 命令,正确的话 你会看到python2.7版本的回复==
如果不正确的话,请返回上边继续查找问题所在。

4、编译工程文件。
假定你的工程是在E:\projects\hello_world,
那么直接cd 到工程目录下后,执行make menuconfig 配置串口以及下载的参数。
在这里插入图片描述
这里主要配置串口参数,根据自己需要修改不再细说,配置好后保存退出:
在这里插入图片描述
配置项目的具体内容在E:\projects\hello_world\sdkconfig中可以查看。
注意,串口配置的时候就需要电脑连接ESP8266模组了,这里提一句ESP8266模组是串口通讯,电脑上为USB口,所以需要有一个串口转USB TTL的工具或者自行准备转换板或者买现成的开发板
之后执行make flash 命令 执行编译得到bin 文件。
在这里插入图片描述
接着 执行 make monitor后会出现(这里会循环重启MCU):
在这里插入图片描述
也可以通过SSCOM 串口调试助手打开后,看到日志
在这里插入图片描述到此,编译 下载 运行已经结束。
需要注意的是 shell脚本和串口调试助手只能看一个。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/898205.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高品质音乐下载命令行工具Musicn

又到了小苏同学的生日🎂,宝贝,生日快乐!祝永远健康、快乐、心想事成! 什么是 Musicn ? Musicn 是一个可播放及下载高品质🎵音乐🎵的命令行工具。支持咪咕、酷我、酷狗和网易云的服务…

《合成孔径雷达成像算法与实现》Figure3.10

代码复现如下: clc clear close all% 参数设置 TBP 100; % 时间带宽积 T 7.2e-6; % 脉冲持续时间 t_0 1e-6; % 脉冲回波时延% 参数计算 B TBP/T; …

springboot整合websocker启动失败

在工作的时候,准备使用websocker建立长连接来统计网站在线人数,但是在配置好所有东西后,发现springboot启动失败 详细错误 java.lang.IllegalStateException: Failed to register ServerEndpoint class: class com.example.pipayshopapi.co…

【算法题解】54. 树的冗余连接

这是一道 中等难度 的题 https://leetcode.cn/problems/redundant-connection/ 题目 树可以看成是一个连通且 无环 的 无向 图。 给定往一棵 n n n 个节点 (节点值 1 ~ n 1~n 1~n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 …

Python可视化在量化交易中的应用(11)_Seaborn折线图

举个栗子,用seaborn绘制折线图。 Seaborn中折线图的绘制方法 在seaborn中,我们一般使用sns作为seaborn模块的别名,因此,在下文中,均以sns指代seaborn模块。 seaborn中绘制折线图使用的是sns.plot()函数: …

【算法学习】两数之和II - 输入有序数组

题目描述 原题链接 给你一个下标从 1 开始的整数数组 numbers &#xff0c;该数组已按 非递减顺序排列 &#xff0c;请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] &#xff0c;则 1 < index1 < …

JavaScript中的作用域(scope)是什么?以及有哪些类型的作用域?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 作用域&#xff08;Scope&#xff09;是什么&#xff1f;1. 全局作用域&#xff08;Global Scope&#xff09;2. 局部作用域&#xff08;Local Scope&#xff09;3. 块级作用域&#xff08;Block Scope&#xff09; ⭐ 写在最后 ⭐ 专栏简…

MPLAB X IDE 中的查找方式

1.第一种选择到变量&#xff0c;然后按ctrlf&#xff0c;这种方式只能在单个文件中查找&#xff1b; 2.第二种&#xff0c;按ctrlshiftf&#xff0c;前提必须在英文模式下&#xff0c; 对于普通用户来说&#xff0c;只需要知道Containing Text是搜索对象&#xff1b;最下面的F…

stm32红绿灯源代码示例(附带Proteus电路图)

本代码不能直接用于红路灯&#xff0c;只是提供一个思路 #include "main.h" #include "gpio.h" void SystemClock_Config(void); void MX_GPIO_Init(void) {GPIO_InitTypeDef GPIO_InitStruct {0};/* GPIO Ports Clock Enable */__HAL_RCC_GPIOB_CLK_ENAB…

JavaScript中的变量声明方式有哪些?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 变量声明方式var 声明&#xff08;ES5及以前&#xff09;let 声明&#xff08;ES6以后&#xff09;const 声明&#xff08;ES6以后&#xff09; ⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者…

【算法学习】平方数之和

title: 【力扣】633.平方数之和 cover: ‘https://storage.bummon.com/image/202308171051399.png’ tags: 算法LeetCode双指针法二分查找法 categories:算法笔记 abbrlink: 2911343079 date: 2023-08-17 10:49:52 mathjax: true 【力扣】633.平方数之和 题目 原题链接 给定…

Vue 2 计算属性与侦听器

计算属性 vs 方法 vs 侦听器 计算属性的出现是为了解决模板内表达式太过复杂而变得难以维护。 假设我们知道长和宽&#xff0c;要计算一个矩形的面积&#xff0c;如果没有计算属性&#xff0c;我们可能像下面这样处理&#xff1a; <div id"app"><input t…

functools.wrap的使用

一、介绍 functools.wraps 是 Python 标准库中的一个函数&#xff0c;用于帮助创建装饰器时保留被装饰函数的元数据&#xff08;如函数名、文档字符串等&#xff09;。在使用装饰器时&#xff0c;如果不使用 functools.wraps&#xff0c;则被装饰函数的一些元数据可能会丢失或…

ubuntu系统快捷键

前言&#xff1a;可以在设置—>设备—>键盘中查看键盘快捷键 打开活动搜索界面 Super键 想要打开一个应用程序&#xff1f;按下 Super 键然后搜索应用程序。如果搜索的应用程序未安装&#xff0c;它会推荐来自应用中心的应用程序。 想要看看有哪些正在运行的程序&#xf…

【C++笔记】C++之类与对象(中)

【C笔记】C之类与对象&#xff08;中&#xff09; 1、类的构造函数1.1、构造函数的基本用法1.2、构造函数的7个特性 2、类的析构函数2.1、析构函数的基本用法2.2、析构函数的6个特性 3、类的拷贝构造函数3.1、拷贝构造的基本用法3.2、拷贝构造的“无限套娃”陷阱3.3、深拷贝与浅…

汽车领域专业术语

1. DMS/OMS/RMS/IMS DMS&#xff1a;即Driver Monitoring System&#xff0c;监测对象为Driver&#xff08;驾驶员&#xff09;。DMS三大核心&#xff1a; OMS&#xff1a;即Occupancy Monitoring System&#xff0c;监测对象为乘客。 RMS&#xff1a;后排盲区检测系统 IMS&…

动手学深度学习--基础知识上篇

&#x1f388;动手学deep learning ☁️本专栏会定期更新关于动手学深度学习的每章知识点的讲解&#xff0c;题目答案 &#x1f47b;如果喜欢&#xff0c;欢迎点赞&#xff0c;收藏 动手学深度学习-预备知识篇 线性代数篇 1-3题讲解 证明一个矩阵 A \mathbf{A} A的转置的转置…

C#程序配置读写例子 - 开源研究系列文章

今天讲讲关于C#的配置文件读写的例子。 对于应用程序的配置文件&#xff0c;以前都是用的ini文件进行读写的&#xff0c;这个与现在的json类似&#xff0c;都是键值对应的&#xff0c;这次介绍的是基于XML的序列化和反序列化的读写例子。对于ini文件&#xff0c;操作系统已经提…

Java课题笔记~ 整合第三方技术

1. 整合JUnit 问题导入 回忆一下Spring整合JUnit的步骤&#xff1f; 1.1 Spring整合JUnit&#xff08;复习&#xff09; 1.2 SpringBoot整合JUnit 【第一步】添加整合junit起步依赖(可以直接勾选) <dependency><groupId>org.springframework.boot</groupId…

什么是变量提升(hoisting)?它在JavaScript中是如何工作的?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 变量提升&#xff08;Hoisting&#xff09;⭐ 变量提升的示例&#xff1a;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&…