esp8266 编译、烧录环境搭建

一、准备

xtensa-lx106-elf-gcc8-4-0-esp-2020r3-win32下载:点击跳转

MSYS2 压缩包文件:

固件烧录工具:点击跳转

esp8266源码地址:点击跳转

二、搭建编译环境

1、在D盘创建一个ESP8266目录,解压MSYS2.zip到里面,得到msys32目录,如下图:

2、解压xtensa-lx106-elf-gcc8_4_0-esp-2020r3-win32.zip,得到xtensa-lx106-elf-gcc8_4_0-esp-2020r3-win32文件,将里面的xtensa-lx106-elf文件夹移动到msys32/opt目录下,如下:

3、在D:/ESP8266目录下载8266源码,步骤如下:

git clone git://github.com/espressif/ESP8266_RTOS_SDK.git
//选择SDK版本并拉取子模块
cd ESP8266_RTOS_SDK
git fetch
git checkout release/v3.4
git pull
git submodule update --init --recursive

修改D:\ESP8266\msys32\etc\profile.d\esp32_toolchain.sh 脚本如下:

//原始
export PATH="/opt/xtensa-esp32-elf/bin:$PATH"修改后:
#export PATH="/opt/xtensa-esp32-elf/bin:$PATH"  加#注释掉原始的esp32的工具链路径export PATH="$PATH:/opt/xtensa-lx106-elf/bin"  #上面解压生成的esp8266的工具栏路径
export IDF_PATH="D:/ESP8266/ESP8266_RTOS_SDK"   #上面解压生成的ESP8266_RTOS_SDK的路径

三、编译DEMO

为了验证上面的编译环境是否正常,我们可以将D:\ESP8266\ESP8266_RTOS_SDK\examples\get-started\hello_world目录拷贝出来放在其他目录下面,如E:/——

打开D:\ESP8266\msys32\mingw32.exe,进入shell界面,然后切换到hello_world所在工程目录:

cd /e/hello_world

通过make命令执行配置:

make menuconfig

执行命令后会进入如下图所示的配置页面:

进入SDK tool configuration选项,把第一行修改为D:\ESP8266\msys32\opt\xtensa-lx106-elf\bin\xtensa-lx106-elf-,然后点保存,完成工程的工具链配置:

保存退出后可以看到如下信息:

之后编译:

make 或者make all

编译完成后会在build文件夹里面生成hello_world.bin等二进制文件,用于下载到单片机运行。

三、烧录

打开ESPFlashDownloadTool_v3.6.3.exe,操作如下:

我用的正点原子的8266模块,需要先将模块的 IO_0 需连接至 GND,使模块上电后进入下载模式,然后点击 START 便可。

觉得有帮助的话,打赏一下呗。。

           

需要商务合作(定制程序)的欢迎私信!! 

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

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

相关文章

WEB攻防-通用漏洞CSRFSSRF协议玩法内网探针漏洞利用

CSRF构造工具,也可以用bp构造 选中要保存的请求,点击Generate HTML,生成带有添加用户请求的html文件,然后将构造的html放在网站上,生成访问地址,诱导管理员点击链接,就会添加用户 start Recording之后就会…

2-7 C函数指针与回调函数

前言: 对函数指针与回调函数知识回顾,仅供学习参考... 目录 前言: 1.0 函数指针 2.0 函数指针变量 3.0 函数指针与指针函数 4.0 函数指针类型 5.0 卡点 后记: 1.0 函数指针 函数指针,简单来说就是指向函数的指针…

代码设计:设计模式:应对变化

文章目录 概述1.拆分代码2.解耦3.扩展总结概述 代码的设计模式主要为了应对变化 三种代码设计中应对变化的方式 1.拆分代码 2.解耦 3.扩展 1.拆分代码 减小变化对代码的影响 需要拆分代码的几种情况 1.类或方法的代码量巨大,导致代码可读性降低 2.存在复杂的代码,如…

分布式FastDFS存储的同步方式

目录 一:FatsDFS的结构图 二:FatsDFS文件同步 前言: 1:同步日志所在目录 2:binlog格式 3:同步规则 4:binlog同步过程 1 :获取组内的其他Storage信息 tracker_report_thread_e…

【大模型】ChatGPT 提示词优化进阶操作实战详解

目录 一、前言 二、ChatGPT 提示词几个基本的优化原则 2.1 明确的提示词 2.1.1 提示词具体而清晰 2.1.1.1操作案例演示 2.2 确定焦点 2.2.1 操作案例演示 2.3 保持提示词的相关性 2.3.1 什么是相关性 2.3.2 提示词相关性操作案例一 2.3.2 提示词相关性操作案例二 三…

龙芯要构建独立于x86和ARM的第三套新型信息技术体系和产业生态

2024泰山科技论坛”在泉城济南召开,近600位院士、专家和产业精英共同探讨了智能机器人、先进制造、工业模型等技术如何助力产业高质量发展。 大会上,龙芯中科董事长胡伟武发表了《破解卡脖子问题,构建新发展格局》主旨演讲。 胡伟武表示&…

软件工程中的需求分析流程详解

一、需求分析的定义 需求分析(Requirements Analysis)是指在软件开发过程中,通过与用户、相关人员的沟通与讨论,全面理解和确定软件需求的过程。需求分析的最终目标是清晰、准确地定义软件系统应具备的功能、性能、用户界面、约束…

C 语言学习的经典书籍有哪些?

学习C语言的理由 C语言是一种程席设计语言,它是由美国AT&T公司贝尔实验室的Dennis Ritchie于1972年发明的。C语言之所以流行,是因为它简单易用。学习C语言的几个理由如下: (1)C、C#和Java使用一种被称为面向对象程序设计(0bject-Orient…

在鲲鹏麒麟服务器上部署MySQL主从集群

因项目需求需要部署主从MySQL集群,继续采用上次的部署的MySQL镜像arm64v8/mysql:latest,版本信息为v8.1.0。计划部署服务器192.168.31.100和192.168.31.101 部署MySQL主节点 在192.168.31.100上先创建好/data/docker/mysql/data和/data/docker/mysql/l…

Kamailio SIP服务器的配置与运行

一、Kamailio 简介 Kamailio(原名OpenSER)是一款基于SIP(Session Initiation Protocol)协议的开源服务器,适用于构建VoIP(Voice over Internet Protocol)、视频会议、即时消息和 presence服务等…

Transformers在计算机视觉领域中的应用【第2篇:MAE——BERT的CV版本】

目录 1 介绍2 模型示意图3 MAE算法4 总结 论文:Masked Autoencoders Are Scalable Vision Learners 代码:https://github.com/facebookresearch/mae 1 介绍 MAE是基于ViT的,将整个训练拓展到没有标号的数据上面,和BERT一样&#…

WebGL vendor [显卡]指纹

一、WebGL vendor:(厂商) Google Inc. (NVIDIA) c定义在 third_party\angle\src\libANGLE\Display.cpp 格式化Google Inc.字符在Display::initVendorString()函数里面,可以在此修改值。 void Display::initVendorString() {mVendorString …

PCL点云处理之判断点在多边形内外--方法1 (二百四十二)

PCL点云处理之判断点在多边形内外--方法1 (二百四十二) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 这里实现一种判断点与多边形位置关系的算法,具体使用前可能需要验证!!!,这里只做了有限的测试用于参考,代码实现不依赖其他库,使用接口直接看给出示例即可,注意…

stable diffusion实践操作-大模型介绍:SD的发展历史,SD1.5和SDXL之间的差别

大家有没有这样的困惑:在找模型时,老是会出现一些奇怪的标签,像 sd1.5、sdxl 之类的模型后缀,真让人摸不着头脑,一会儿 1.0,一会儿 1.5,一会儿 XL,完全搞不清楚状况。今天就来给大家…

网络编程第二课

预备知识 1、操作系统的用户态和内核态: 用户态指的是用户自己定义工作空间,自己申请变量、定义函数的操作。 内核态指把一些工作交给操作系统去玩成,用户本身看不到执行过程,只能获取操作系统最后执行完成的结果。其中&#x…

Spring中@Transactional注解与事务传播机制

文章目录 事务传播机制事务失效的场景 事务传播机制 事务的传播特性指的是 当一个事务方法调用另一个事务方法时,事务方法应该如何执行。 事务传播行为类型外部不存在事务外部存在事务使用方式REQUIRED(默认)开启新的事务融合到外部事务中Transactional(propagati…

Python酷库之旅-第三方库Pandas(252)

目录 一、用法精讲 1191、pandas.tseries.offsets.BusinessMonthBegin.n属性 1191-1、语法 1191-2、参数 1191-3、功能 1191-4、返回值 1191-5、说明 1191-6、用法 1191-6-1、数据准备 1191-6-2、代码示例 1191-6-3、结果输出 1192、pandas.tseries.offsets.Busine…

IO流之文件

1. 文件流 2. 常用文件操作 2.1 文件创建 方式1 new File(String pathname) // 根据路径创建一个File对象 方式2 new File(File parent,String child) //根据父目录文件子路径构建 方式3 new File(String parent,String child) //根据父目录子路径构建 package com.hspedu.fil…

【从零开始的LeetCode-算法】35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2示例 2: 输入: …

C++(4个类型转换)

1. C语言中的类型转换 1. 隐式 类型转换: 具有相近的类型才能进行互相转换,如:int,char,double都表示数值。 2. 强制类型转换:能隐式类型转换就能强制类型转换,隐式类型之间的转换类型强相关,强制类型转换…