当前位置: 首页 > article >正文

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

【本文发布于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.gzfor 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.debcode --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"

相关文章:

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

【本文发布于https://blog.csdn.net/Stack_/article/details/147194686,未经允许不得转载,转载须注明出处】 需要有Linux使用基础,自行准备 1、VM17 Pro (自行搜索教程安装) 2、ubuntu-24.04-desktop-amd64 &#xff0…...

数据仓库分层存储设计:平衡存储成本与查询效率

数据仓库分层存储不仅是一个技术问题,更是一种艺术:如何在有限的资源下,让数据既能快速响应查询,又能以最低的成本存储? 目录 一、什么是数据仓库分层存储? 二、分层存储的体系架构 1. 数据源层(ODS,Operational Data Store) 2. 数据仓库层(DW,Data Warehouse)…...

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

从 Vue 到 React:深入理解 useState 的异步更新

目录 从 Vue 到 React:深入理解 useState 的异步更新与函数式写法1. Vue 的响应式回顾:每次赋值立即生效2. React 的状态更新是异步且批量的原因解析 3. 函数式更新:唯一的正确写法4. 对比 Vue vs React 状态更新5. React useState 的核心源码…...

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…...

Vue 2.0和3.0笔记

Vue 3 关于组件 今天回顾了下2.0关于组件的内容&#xff0c;3.0定义组件的方式多了一种就是通过单文件组件&#xff08;Single-File Component&#xff09;的方式将Vue的模板&#xff0c;逻辑和样式放到一个文件中&#xff0c;2.0则不同&#xff0c;它是将模板放到一个属性中…...

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;例如某…...

Oracle 中的 NOAUDIT CREATE SESSION 命令详解

Oracle 中的 NOAUDIT CREATE SESSION 命令详解 NOAUDIT CREATE SESSION 是 Oracle 数据库中用于取消对用户登录会话审计的命令&#xff0c;它与 AUDIT CREATE SESSION 命令相对应。 一、基本语法 NOAUDIT CREATE SESSION [BY user1 [, user2]... | BY [SESSION | ACCESS]] …...

OutputStreamWriter 终极解析与记忆指南

OutputStreamWriter 终极解析与记忆指南 一、核心本质 OutputStreamWriter 是 Java 提供的字符到字节的桥梁流&#xff0c;属于 Writer 的子类&#xff0c;负责将字符流按指定编码转换为字节流。 注意&#xff1a;OutputStreamWriter也是一个字符流&#xff0c;也是一个转换…...

1022 Digital Library

1022 Digital Library 分数 30 全屏浏览 切换布局 作者 CHEN, Yue 单位 浙江大学 A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Each book is assigned an u…...

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…...

LeetCode面试热题150中19-22题学习笔记(用Java语言描述)

Day 04 19、最后一个单词的长度 需求&#xff1a;给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 代码表示 public class Q19_1 {p…...

道路运输安全员企业负责人考试内容与范围

道路运输企业主要负责人&#xff08;安全员&#xff09;考证要求 的详细说明&#xff0c;适用于企业法定代表人、分管安全负责人等需取得的 《道路运输企业主要负责人和安全生产管理人员安全考核合格证明》&#xff08;交通运输部要求&#xff09;。 考试内容与范围 1. 法律法…...

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并安装开启科学上网…...

Oracle 11G RAC 删除添加节点(一):删除节点

1、查看节点删除前的资源状态 用集群资源查看命令查看一下状态 1 [gridlvmrac1 ~]$crsctl stat res ‐t 2 ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐…...

面试宝典(C++基础)-02

文章目录 1.C++基础1.1 说说new和malloc的区别1.2 说说const和define的区别。1.3 说说C++中函数指针和指针函数的区别1.4 说说const int *a, int const *a, const int a, int *const a, const int *consta分别是什么,有什么特点。1.5 说说使用指针需要注意什么?1.6 说说内联函…...

express框架使用cors包解决跨域问题时,还是存在问题的原因。

express框架使用cors包解决跨域问题时&#xff0c;还是存在问题的原因。 今天我在使用express框架写一个后台管理系统时&#xff0c;发现存在这样的问题&#xff0c;那就是跨域问题&#xff0c;但是我明明是使用了 cors 包解决了跨域问题了。当我调用其他接口的时候&#xff0…...

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;接下来会针对链…...

Tree Shaking(摇树优化)详解

Tree Shaking&#xff08;摇树优化&#xff09;详解 Tree Shaking 是现代 JavaScript 打包工具&#xff08;如 Webpack、Rollup、Vite等&#xff09;中的一项重要优化技术&#xff0c;它的名字形象地比喻为"摇动一棵树&#xff0c;让没用的叶子掉下来"。 核心概念 …...