Ubuntu24.04搭建ESP8266_RTOS_SDK V3.4开发环境

news2025/4/19 13:48:14

【本文发布于https://blog.csdn.net/Stack_/article/details/147194686,未经允许不得转载,转载须注明出处】


需要有Linux使用基础,自行准备

1、VM17 Pro (自行搜索教程安装)
2、ubuntu-24.04-desktop-amd64 (如果安装后启动卡顿,关闭3D加速)



结合官方教程 进行以下操作



1、安装/更新必须的依赖

	官方教程  sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-serial
	
    但这个版本的Ubuntu已经不支持apt安装python2了,需要更改为:
    
    "sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python3 python3-serial"

2、安装vim编辑器,如已安装则跳过

	sudo apt install vim

3、确定工作目录

选择一个路径作为我们的esp8266工作目录,大家自己确定,我这里的路径是如下图 "/home/tavio/esp8266"

4、下载Toolchain(GCC编译器)


   for 64-bit Linux:
   https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz

   for 32-bit Linux:
   https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz

解压缩

在这里插入图片描述


5、拉取SDK / IDF框架代码

	esp8266路径下执行
	git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git  克隆官方SDK
    或者 git clone --recursive https://gitee.com/catbabys/tyrion-wifi-socket.git 我使用的SDK

    修改文件夹名:
    mv ESP8266_RTOS_SDK/ ESP8266_RTOS_SDK_V34 或
    mv tyrion-wifi-socket/ ESP8266_RTOS_SDK_V34    "(修改后的名字和 profile 中的IDF_PATH一致)"

在这里插入图片描述


6、将GCC添加到环境变量

/home/tavio下有隐藏文件 " .profile", 使用"ls -a"指令可见

在这里插入图片描述

在这里插入图片描述

$HOME即当前用户的主路径 /home/tavio)

    保存并退出,执行 source ./.profile 刷新PATHprintenv PATH 打印PATH。
    执行 xtensa-lx106-elf-gcc -v 将列出gcc信息(如gcc version 8.4.0),若提示命令无效,可能是添加的PATH格式、路径有误,
    或者是和系统位数不对应

    "!!! 修改环境变量后如果发现终端输入任何指令都提示NOT FOUND,那就要注意了,
    这是因为编辑profile文件时某行格式有误,此时关机会导致系统无法再进入桌面。需要检查profile文件"

7、安装pip

sudo apt install python3-pip

8、安装、激活python虚拟环境

	此时执行 python3 -m pip install --user -r $IDF_PATH/requirements.txt 会报错,
	这是因为这样安装的组件可能会直接影响到系统的python环境,
    报错信息建议为该工作空间创建虚拟的python环境

	"(在esp8266路径执行以下命令)"

    sudo apt install python3.12-venv        (安装)
    python3 -m venv esp8266_py_venv         (创建)
    source esp8266_py_venv/bin/activate     (激活,每次退出该虚拟环境或者重启系统都要重新激活,"要编译烧录时需要保持激活")
    deactivate                               (退出)

	成功进入虚拟环境,命令行开头会显示虚拟环境名称

在这里插入图片描述


9、更新IDF配置

	执行python3 -m pip install -r $IDF_PATH/requirements.txt, 没有翻墙很可能会失败。
    可以临时使用国内站点:
    python3 -m pip install -r $IDF_PATH/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

    (因为在虚拟环境中执行,不能像官方那样使用--user 参数)

10、编译

	按照官方教程进入官方demo,或者cd ESP8266_RTOS_SDK_V34/MyProjects/wifi_socket/进入我的工程,
    "make all" 执行编译

在这里插入图片描述
在这里插入图片描述


11、安装VS Code并打开工程文件

	官网下载,执行安装指令:    sudo dpkg -i /mnt/hgfs/ShareDir/code_1.91.1-1720564633_amd64.deb
    code --version 显示版本号即确认安装完毕
    code 打开软件
"Open Folder" 打开SDK所在文件夹

"Terminal" 打开控制台,可以直接在这里敲命令而非系统控制台,也可以不使用VScode的控制台,全凭个人喜好

在这里插入图片描述


12、烧录

	插入ESP8266开发板,执行命令"make flash"执行烧录

    如果提示“could not open port”打开端口失败,
    
    需要执行 sudo usermod -a -G dialout $USER 将当前登录的用户添加到dialout组中以获得外部设备的使用权限,
    
    或者 执行 sudo chmod -R 777 /dev/ttyUSB0 将串口设备的权限开放给所有用户
    
    重启后再次尝试"make flash"

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

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

相关文章

matlab求和∑函数方程编程?

matlab求和∑函数方程编程? 一 题目:求下列函数方程式的和 二:代码如下: >> sum_result 0; % 初始化求和变量 for x 1:10 % 设…

基于Java+MySQL实现的(Web)科研资讯推送系统

科研资讯推送系统 技术选型 核心框架:SpringBoot 数据库层:springdatajpa 安全框架:Shiro 数据库连接池:Druid 缓存:Ehcache 部署 阿里云学生机:ecs.n4.small Tomcat:9.0 JDK:1.8 数据库:MySQL8.0 操作系统:CentOS…

PHP弱类型hash比较缺陷

目录 0x00 漏洞原因 0x01 利用方法 0x02 [BJDCTF2020]Easy MD5 1 利用md5($password,true)实现SQL注入 PHP md5弱类型比较 数组绕过 0x00 漏洞原因 1、在进行比较的时候,会先将两边的变量类型转化成相同的,再进行比较 2、0e在比较的时候会将其认…

​asm汇编源代码之-汉字点阵字库显示程序源代码下载​

汉字点阵字库显示程序 源代码下载 文本模式下显示16x16点阵汉字库内容的程序(标准16x16字库需要使用CHGHZK转换过后才能使用本程序正常显示) 本程序需要调用file.asm和string.asm中的子程序,所以连接时需要把它们连接进来,如下 C:\> tlink showhzk file string 调用参…

Excel 中让表格内容自适应列宽和行高

Excel 中让表格内容自适应列宽和行高 目录 Excel 中让表格内容自适应列宽和行高自适应列宽自适应行高在Excel中让表格内容自适应列宽和行高,可参考以下操作: 自适应列宽 方法一:手动调整 选中需要调整列宽的列(如果是整个表格,可点击表格左上角行号和列号交叉处的三角形全…

Java使用ANTLR4对Lua脚本语法校验

文章目录 什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Grammar文件maven配置生成Lexer Parser Listener Visitor代码新建实体类Lua语法遍历器语法错误监听器单元测试 参考 什么是ANTLR? https://www.antlr.org/ ANTLR (ANothe…

vue3.2 + element-plus 实现跟随input输入框的弹框,弹框里可以分组或tab形式显示选项

效果 基础用法&#xff08;分组选项&#xff09; 高级用法&#xff08;带Tab栏&#xff09; <!-- 弹窗跟随通用组件 SmartSelector.vue --> <!-- 弹窗跟随通用组件 --> <template><div class"smart-selector-container"><el-popove…

Windows VsCode Terminal窗口使用Linux命令

背景描述&#xff1a; 平时开发环境以Linux系统为主&#xff0c;有时又需要使用Windows系统下开发环境&#xff0c;为了能像Linux系统那样用Windows VsCode&#xff0c;Terminal命令行是必不可少内容。 注&#xff1a;Windows11 VsCode 1.99.2 下面介绍&#xff0c;如何在V…

负载均衡的实现方式有哪些?

负载均衡实现方式常见的有: 软件负载均衡、硬件负载均衡、DNS负载均衡 扩展 二层负载均衡&#xff1a;在数据链路层&#xff0c;基于MAC地址进行流量分发&#xff0c;较少见于实际应用中 三层负载均衡&#xff1a;在网络层&#xff0c;基于IP地址来分配流量&#xff0c;例如某…

LWIP学习笔记

TCP/ip协议结构分层 传输层简记 TCP&#xff1a;可靠性强&#xff0c;有重传机制 UDP&#xff1a;单传机制&#xff0c;不可靠 UDP在ip层分片 TCP在传输层分包 应用层传输层网络层&#xff0c;构成LWIP内核程序&#xff1a; 链路层&#xff1b;由mac内核STM芯片的片上外设…

Nodejs Express框架

参考&#xff1a;Node.js Express 框架 | 菜鸟教程 第一个 Express 框架实例 接下来我们使用 Express 框架来输出 "Hello World"。 以下实例中我们引入了 express 模块&#xff0c;并在客户端发起请求后&#xff0c;响应 "Hello World" 字符串。 创建 e…

Visual Studio Code 开发 树莓派 pico

开发环境 MCU&#xff1a;Pico1&#xff08;无wifi版&#xff09;使用固件&#xff1a;自编译版本开发环境&#xff1a;Windows 10开发工具&#xff1a;Visual Studio Code 1.99.2开发语言&#xff1a;MicroPython & C 插件安装 找到Raspberry Pi Pico并安装开启科学上网…

Python与R语言用XGBOOST、NLTK、LASSO、决策树、聚类分析电商平台评论信息数据集

全文链接&#xff1a;https://tecdat.cn/?p41501 分析师&#xff1a;Rui Liu 在当今数字化浪潮席卷的时代&#xff0c;电商市场的蓬勃发展犹如一部波澜壮阔的史诗&#xff0c;蕴藏着无尽的商业价值与潜力。电商平台积累的海量数据&#xff0c;宛如一座等待挖掘的宝藏&#xff…

半导体制造如何数字化转型

半导体制造的数字化转型正通过技术融合与流程重构&#xff0c;推动着这个精密产业的全面革新。全球芯片短缺与工艺复杂度指数级增长的双重压力下&#xff0c;头部企业已构建起四大转型支柱&#xff1a; 1. 数据中枢重构产线生态 台积电的「智慧工厂4.0」部署着30万物联网传感器…

LabVIEW 程序持续优化

LabVIEW 以其独特的图形化编程方式&#xff0c;在工业自动化、测试测量、数据分析等众多领域发挥着关键作用。为了让 LabVIEW 程序始终保持高效、稳定&#xff0c;并契合不断变化的实际需求&#xff0c;持续改进必不可少。下面将从多个关键维度&#xff0c;为大家细致地介绍通用…

Windows10系统RabbitMQ无法访问Web端界面

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 项目场景&#xff1a; 在一个基于 .NET 的分布式项目中&#xff0c;团队使用 RabbitMQ 作为消息队列中间件&#xff0c;负责模块间的异步通信。开发环境为 Windows 10 系统&#xff0c;开发人员按照官…

初阶数据结构--链式二叉树

二叉树&#xff08;链式结构&#xff09; 前面的文章首先介绍了树的相关概念&#xff0c;阐述了树的存储结构是分为顺序结构和链式结构。其中顺序结构存储的方式叫做堆&#xff0c;并且对堆这个数据结构进行了模拟实现&#xff0c;并进行了相关拓展&#xff0c;接下来会针对链…

SpringAI版本更新:向量数据库不可用的解决方案!

Spring AI 前两天&#xff08;4.10 日&#xff09;更新了 1.0.0-M7 版本后&#xff0c;原来的 SimpleVectorStore 内存级别的向量数据库就不能用了&#xff0c;Spring AI 将其全部源码删除了。 此时我们就需要一种成本更低的解决方案来解决这个问题&#xff0c;如何解决呢&…

BladeX单点登录与若依框架集成实现

1. 概述 本文档详细介绍了将BladeX认证系统与若依(RuoYi)框架集成的完整实现过程。集成采用OAuth2.0授权码流程&#xff0c;使用户能够通过BladeX账号直接登录若依系统&#xff0c;实现无缝单点登录体验。 2. 系统架构 2.1 总体架构 #mermaid-svg-YxdmBwBtzGqZHMme {font-fa…

JVM 内存调优

内存调优 内存泄漏&#xff08;Memory Leak&#xff09;和内存溢出&#xff08;Memory Overflow&#xff09;是两种常见的内存管理问题&#xff0c;它们都可能导致程序执行不正常或系统性能下降&#xff0c;但它们的原因和表现有所不同。 内存泄漏 内存泄漏&#xff08;Memo…