ESP32 IDF linux下开发环境搭建

文章目录

  • 介绍
    • 升级Python环境
      • 下载Python包
      • 配置编译环境及安装Python
      • 设置环境变量
    • ESPIDF环境搭建
      • 下载esp-idf 代码
      • 编译等待下载
      • 烧录成功
      • 查看串口打印

介绍

esp32 官方文档给的不是特别详细 参考多方资料 最后才完成开发 主要问题在于github下载的很慢本教程适用于ubuntu deban系统 centos系统可以参考本教程开发
参考资料
开始是升级的Python环境,自己安装的时候可以先跳过这一步,直接到第二步安装IDF的步骤,如果提示Python环境不支持,再进行第一步

升级Python环境

我的linux环境是Deepin环境,自带的python3版本是3.7 之前曾尝试过装过ESP32的开发环境,但是因为Python3的版本太低不支持,所以搜索了教程升级更高Python3的版本。本次安装的新版本是Python3.10 最好是两者共存,如果替换掉本地的默认的Python3.7的话 自带的一些软件 如deepin的桌面可能会出错,所以本次使用兼容安装
image.png

下载Python包

下载链接:https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz
如果网速比较慢的话,可以直接从CSDN下载,提供多种版本的python包
CSDN链接:https://download.csdn.net/download/ciqujinnian_/88741069?spm=1001.2014.3001.5503
大家帮忙CSDN下载一下 挣点积分
image.png

配置编译环境及安装Python

  • 解压代码 并进入目录
tar -xzvf Python-3.10.12.tgz
cd Python-3.10.12/

image.png

  • 配置环境信息

如果这一步提示缺少环境依赖的话根据所缺少的使用apt安装

./configure --prefix=/opt/apps/python3.10 --enable-optimizations

在这里–prefix=/opt/apps/python3.10 是我们在编译完成后 执行make install命令时编译好的Python3.10的库和命令所安装的位置 这里我选择/opt/app/ 目录下 大家根据自己需要更改
等待配置编译环境 配置完成后会生成Makefile
image.png

  • 编译代码
make -j6

等待编译完成
image.png

  • 安装Python环境
sudo make install

因为前面指定的目录是在/opt目录下 所以需要加sudo 要不然没有权限 等待安装完成,我们可以看到 该目录下已经有Python/3.10的信息了
image.png

设置环境变量

上一步安装好的python还不能直接用,需要将其配置为环境变量

  • 创建软连接
sudo ln -s /opt/apps/python3.10/bin/python3.10 /usr/bin
sudo ln -s /opt/apps/python3.10/bin/python3.10-config /usr/bin
# 设置环境变量
PATH="$PATH:/opt/apps/python3.10/bin"

image.png

  • 检查效果

image.png
当然也可以用软连接 将Python3指向Python3.10 不过后续会不会导致基本的环境问题还不清楚

ESPIDF环境搭建

参考资料:https://blog.csdn.net/karaxiaoyu/article/details/122613328

下载esp-idf 代码

  • 安装依赖

Ubuntu deban 用户

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
  • 下载代码

由于esp32的代码在github上 国内网不是特别好 下载子模块的时候会出错 所以按照下面的方法使用国内的gitee下载esp32的代码

  • 下载git tool工具
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git

image.png
下载 esp-idf代码 不包括子模块

git clone https://gitee.com/EspressifSystems/esp-idf.git -b release/v5.0

image.png

  • 下载子模块
cd esp-gitee-tools
export TOOL_PATH=$(pwd)
cd ..
cd esp-idf
$TOOL_PATH/submodule-update.sh

等待完成
image.png

  • 配置esp-idf

进入esp-idf的环境执行下面语句

#安装编译工具链
$TOOL_PATH/install.sh

等待完成 会让你执行配置环境变量的语句
image.png
执行

. ./export.sh

image.png
等待执行完成会让我们 进入工程文件 可以开始编译了

编译等待下载

image.png

烧录成功

image.png

查看串口打印

image.png

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

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

相关文章

Vue生命周期都有哪些?

定义 Vue的生命周期就是实例从创建到销毁的一个过程&#xff0c;即从创建、初始化数据、编译模板、挂载Dom($el)->渲染、更新->渲染&#xff0c;卸载等一系列的过程。el是挂载点如<div id"app"></div>。 Vue的生命周期分为八个阶段 1.beforeCreate…

ubuntu20安装colmap

系统环境 ubuntu20 &#xff0c;cuda11.8 &#xff0c;也安装了anaconda。因为根据colmap的官方文档说的&#xff0c;如果根据apt-get安装的话&#xff0c;默认是非cuda版本的&#xff0c;而我觉得既然都安装了cuda11.8了&#xff0c;自然也要安装cuda版本的colmap。 安装步骤…

2022 年全国职业院校技能大赛高职组云计算赛项试卷(容器云)

#需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包…

Flutter开发Dart中的队列(Queue)

文章目录 Dart中的队列&#xff08;Queue&#xff09;基本操作示例队列的类型队列的应用总结 Dart中的队列&#xff08;Queue&#xff09; 队列是一种抽象的数据结构&#xff0c;遵循“先进先出”&#xff08;FIFO&#xff09;的原则。这意味着最早添加的元素将首先被移除。队…

76.网络游戏逆向分析与漏洞攻防-移动系统分析-分析角色移动产生的数据包

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果&#xff0c;代码看不懂是正常的&#xff0c;只要会抄就行&#xff0c;抄着抄着就能懂了 内容…

【第6节课笔记】LagentAgentLego

Lagent 最中间部分的是LLM&#xff0c;即为大语言模型模块&#xff0c;他可以思考planning和调用什么action&#xff0c;再将其转发给动作执行器action executer执行。 支持的工具如下&#xff1a; Arxiv 搜索 Bing 地图 Google 学术搜索 Google 搜索 交互式 IPython 解释器 IP…

Java集合简介

单列集合 双列集合

PWN入门--栈溢出

PWN入门–栈溢出 栈概要 介于网上各种wp在栈溢出利用脚本方面浅入浅出&#xff0c;深入讲一下栈溢出利用时&#xff0c;地址如何计算&#xff0c;栈中垃圾数据如何填充&#xff0c;函数调用时 参数 在栈中的分布&#xff0c; 栈帧的生成&#xff0c;函数返回值ip在栈中的摆放…

【强化学习】公平性Actor-Critic算法

Bringing Fairness to Actor-Critic Reinforcement Learning for Network Utility Optimization 阅读笔记 Problem FormulationLearning AlgorithmLearning with Multiplicative-Adjusted RewardsSolving Fairness Utility Optimization Evaluations 在网络优化问题中&#xff…

了解外汇震荡类货币对特征与交易策略

外汇市场是全球最大的金融市场&#xff0c;每天的交易量超过6万亿美元。在这个市场上&#xff0c;货币对之间的价格变动反映了全球经济和政治动态。外汇货币对通常被分为三类&#xff1a;主要货币对、次要货币对和外来货币对。而在交易这些货币对时&#xff0c;市场表现通常分为…

适合小白使用的编译器(c语言和Java编译器专属篇)

本节课主要讲如何安装适合编程小白的编译器 废话不多说&#xff0c;我们现在开始 c/c篇 首先&#xff0c;进入edge浏览器&#xff0c;在搜索框输入visual studio &#xff0c;找到带我画圈的图标&#xff0c;点击downloads 找到community版&#xff08;社区版&#xff09;的下…

BFS Ekoparty 2022 -- Linux Kernel Exploitation Challenge

前言 昨天一个师傅给了我一道 linux kernel pwn 题目&#xff0c;然后我看了感觉非常有意思&#xff0c;题目也不算难&#xff08;在看了作者的提示下&#xff09;&#xff0c;所以就花时间做了做&#xff0c;在这里简单记录一下。这个题是 BFS Lab 2022 年的一道招聘题&#…

原型模式类图与代码

现要求实现一个能够自动生成求职简历的程序&#xff0c;简历的基本内容包括求职者的姓名、性别、年龄及工作经历。希望每份简历中的工作经历有所不同&#xff0c;并尽量减少程序中的重复代码。 采用原型模式(Prototype)来实现上述要求&#xff0c;得到如图 7.25 所示的类图。 原…

FME学习之旅---day26

我们付出一些成本&#xff0c;时间的或者其他&#xff0c;最终总能收获一些什么。 【由于上周&#xff0c;上班状态不是很好&#xff0c;事情多又杂&#xff0c;没有学习的劲头&#xff0c;就短暂的休息了一下下。双休爬山&#xff0c;给自己上了强度&#xff0c;今天才缓过来…

品高虚拟化后端存储的发展演进

在品高虚拟化技术不断发展的过程中&#xff0c;虚拟化的后端存储一直是关注的焦点之一。 本文将从最初的文件存储和NFS开始&#xff0c;追溯到集中式存储SAN&#xff0c;然后选择了Ceph的RBD方式&#xff0c;并最终抵达选择支持vhost协议的后端存储的现状&#xff0c;我们将探…

Android 桌面小组件 AppWidgetProvider

Android 桌面小组件 AppWidgetProvider 简介 小组件就是可以添加到手机桌面的窗口。点击窗口可以进入应用或者进入应用的某一个页面。 widget 组件 如需创建 widget&#xff0c;您需要以下基本组件&#xff1a; AppWidgetProviderInfo 对象 描述 widget 的元数据&#xff0…

一键式手机文件传输,让你生活更便捷!

随着手机功能不断增强&#xff0c;我们经常需要在不同设备之间传输文件&#xff0c;如照片、音乐、视频、文档等。不过&#xff0c;现在有许多应用程序和技术可以帮助我们实现手机文件传输的便捷和快速。本文将介绍2类让手机文件传输一键完成的方法&#xff0c;让你的生活更加便…

redis 使用记录

redis 使用记录 下载运行配置文件启动 参考 下载 github: Redis for Windows 或者从百度网盘下载 Redis version 3.2.100 链接: https://pan.baidu.com/s/1kxNOuZFunvVhVy1cfQzCDA?pwdpibh 运行 双击运行 运行效果 如果出错&#xff1a;查看是否项目路径是否包含中文 配…

如何用virtualbox 来跑openwrt 镜像?

1.下载好openwrt源代吗&#xff0c;编译之前先配置&#xff0c;让编译产生x86的virtualbox 镜像&#xff1a; 编译完成之后会产生vdi镜像文件&#xff0c; 在virtualbox 中创建一虚拟机&#xff0c;类型选择linux,版本other linux 64: 内存选择512&#xff1a; 这个地方把镜像…

AUTOSAR中EcuM、ComM和CanNm的关联

ComM的内外部唤醒 ComM可以通过NM保持网络的唤醒&#xff0c;同时也可以通过SM激活通信&#xff0c;总之就像一个通信的总管。 下面通过两种唤醒源来解释ComM的状态机。 1、内部唤醒 ① 当ComM上电初始化时会首先进入NO COMMUNICATION状态&#xff0c;在该状态下ComM会持续循…