ubuntu下编译esp32 micropython固件编译(可自行增加模块)

news2024/11/28 8:30:51

目录

  • 0. 前言
  • 1. 安装ESP-IDF
  • 2. 初始化Micropython仓库
  • 3. 选择ESP-IDF相应版本
    • 情况1
    • 情况2
  • 4. 开始编译
  • 5.烧录固件

0. 前言

为ESP32编译Micropython固件

操作系统:ubuntu22.04

1. 安装ESP-IDF

本节需要ESP-IDF环境,安装开发环境是必要的。

如果你网络环境较差,不方便访问github,查看这篇文章以安装并且启动ESP-IDF环境为后续操作做准备:
Ubuntu下ESP-IDF环境搭建

如果你已经安装好了ESP-IDF,那么请直接直接启动开发环境:

cd ~/esp-idf
. ./export.sh

2. 初始化Micropython仓库

输入以下命令用以获取Micropython仓库,加上 --depth=1 的目的是为了不下载到历史版本,这样速度会更快且不容易失败:

git clone https://github.com/micropython/micropython --depth=1

进入micropython目录:

cd micropython

编译 mpy-cross:

make -C mpy-cross

然后初始化相关仓库:

git submodule init lib/berkeley-db-1.xx
git submodule update

3. 选择ESP-IDF相应版本

先进入micropython/ports/esp32/目录,打开README.md文件查看IDF版本

cd micropython/ports/esp32
vim README.md

然后发现了不,他叫你check out v4.2,你的也有可能不是v4.2,而是一堆乱七八糟的很长的字符,将这串字符替换v4.2输入即可:
在这里插入图片描述所以我们要选取ESP-IDF v4.2版本

现在进入esp-idf目录下拉取对应分支吧:

cd ~/esp-idf
git checkout v4.2
git submodule update --init --recursive

然后执行安装相应模块:

情况1

如果你是在本文第1章照我的教程安装的ESP-IDF开发环境,你应该这么做:
进入esp-tools目录

cd esp-gitee-tools

设置环境变量

export EGT_PATH=$(pwd)

进入esp-idf文件夹

cd ~/esp-idf/

在esp-idf文件夹里使用工具下载子模块

$EGT_PATH/submodule-update.sh

在esp-idf文件夹里使用工具下载工具链

$EGT_PATH/install.sh

启动ESP-IDF虚拟环境

. ./export.sh 

情况2

设置环境变量,执行相应的./install.sh,然后重新启动环境变量就好

cd esp-idf
./install.sh       
source export.sh   

4. 开始编译

至此,你可以开始编译micropyython固件了:
进入micropython目录下的/ports/esp32:

cd micropython/ports/esp32

然后使用make命令开始编译:

make

然后你就会开始编译micropython项目了

编译结束是这样:在这里插入图片描述

5.烧录固件

现在我们可以烧录micropython了,连接USB,输入以下命令查看连接在哪个串口:

ls /dev/ttyUSB?

然后会告输出ESP32连接在哪里:
在这里插入图片描述

输入一下命令开始烧录,确保你在micropython/ports/esp32目录下:

idf.py -p /dev/ttyUSB0 flash

烧录完成!
在这里插入图片描述现在来开始简单使用一下micropython:

idf.py -p /dev/ttyUSB0 monitor

可以看到Micropython已经启动了
在这里插入图片描述

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

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

相关文章

FPGA之手把手教你做多路信号发生器(STM32与FPGA数据互传控制波形生成)

文章目录 博主的念叨一、任务介绍1、本文目标2、设计思路3、设计注意事项 二、设计代码1.顶层文件代码2.波形生成模块3.ROM例化4.PLL例化5.引脚分配 总结 博主的念叨 博主建了一个技术资源分享的群,开源免费,欢迎进来唠嗑280730348 最近趁热打铁做了一…

pandas库的常用操作介绍

目录 1.1.Pandas概述2.Pandas索引结构3.groupby学习5.Pandas数值运算二元统计6.对象操作7.merge合并显示设置9.pivot操作10. 时间操作11.常用操作12.groupby操作13.字符串操作14.索引操作15.pandas绘图操作 1.1.Pandas概述 Python的pandas库是一个数据处理和数据分析库&#x…

javascript基础七:说说你对Javascript中作用域的理解?

一、作用域 作用域,即变量(变量作用域又称上下文)和函数生效(能被访问)的区域或集合 换句话说,作用域决定了代码区块中变量和其他资源的可见性 举个粟子 function myFunction(){let name小爱同学 } undef…

6.2:荷兰国旗问题

文章目录 实现key前面的数都小于等key,key后面的数都大于等于key1:前后指针法:2:挖坑法3:单指针法(左神) 辗转相除法求最大公约数 实现key前面的数都小于等key,key后面的数都大于等于…

【leetCode:剑指 Offer】20. 表示数值的字符串

1.题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 数值(按顺序)可以分成以下几个部分: 若干空格 一个 小数 或者 整数 (可选)一个 e 或 E ,后面跟着一个 …

深入篇【C++】类与对象:详解内部类+匿名对象+编译器对拷贝的优化

这里写目录标题 Ⅰ.内部类【特点】1.天生友元2.直接访问static成员3.访问限制符限制4.外部类的大小 Ⅱ.匿名对象【特点】1.一行生命域2.对象具有常性3.可强行续命 Ⅲ.拷贝对象时编译器的优化 Ⅰ.内部类 概念:一个类定义在另一个类内部,这个内部的类就叫做…

【Unity100个实用小技巧】如何修改UI上材质的Shader

☀️博客主页:CSDN博客主页💨本文由 萌萌的小木屋 原创,首发于 CSDN💢🔥学习专栏推荐:面试汇总❗️游戏框架专栏推荐:游戏实用框架专栏⛅️点赞 👍 收藏 ⭐留言 📝&#…

mysql基本操作1

库的基本操作 1.show variables like character_set_database 查看系统默认的字符集,若是指定数据库下使用该SQL,则查看的是该数据库对应的字符集。 2.show variables like collation_database 查看系统默认的字符集校验规则,指定数据库下使用…

Java 集合 - List 接口

文章目录 1.List 接口介绍2.List 接口常用 API3.ListIterator 迭代器4.ArrayList - 动态数组4.1 ArrayList 概述4.2 手撸动态数组 5.Vector - 动态数组6.LinkedList - 双向链表6.1 链表概述6.2 手撸双链表6.3 链表与动态数组的区别 7.Stack - 栈8.总结 1.List 接口介绍 在 Jav…

Linux:查看主机运行状态的一系列命令:top、df、iostat、sar

Linux:查看主机运行状态的一系列命令:top、df、iostat、sar 命令top监控系统资源: 使用top(回车)命令后,整个控制台会变成任务管理器的形式: 退出可以使用:ctrlc 或 q 第一行补充:表示正在执行的…

高程复习 欧几里得算法和扩展欧几里得算法考试前冲刺简约版

gcd(m,n)gcd(n,m%n) gcd欧几里得算法标准代码求最大公约数 #include <iostream>using namespace std;typedef long long LL; LL gcd(int a,int b) {if(b0)return a;return gcd(b,a%b); } int main() {LL a,b;cin>>a>>b;cout<<gcd(a,b)<<endl;re…

Linux基础:文件权限详细说明(全)

一、前提 我们要知道&#xff0c;Linux系统&#xff0c;一切皆文件的含义。 对于Linux来说&#xff0c;一切皆文件。 我们常涉及到的概念是目录和文件。 权限主要有三种&#xff1a;r(读)w(写)x(执行)。 二、正文 1、修改文件或者目录所属用户和所属组 chown [用户名[:组名…

规则网络构建

规则网络构建 文章目录 规则网络构建[toc]1 规则网络定义2 规则网络的构建3 代码实现 1 规则网络定义 常见规则网络包包括全局耦合网络、最近邻耦合网络和星型耦合网络&#xff0c;三种规则网络定义如下&#xff1a; (1)全局耦合网络&#xff1a;任意两个节点均存在连边的网络…

云原生 HTAP -- PolarDB-IMCI:A Cloud-Native HATP Database

文章目录 0 背景1 IMCI 架构1.1 架构演进的背景1.2 基本架构1.2 基本使用1.4 列索引存储 设计1.5 RW-RO 的数据同步实现1.5.1 CALS1.5.2 2P-COFFER 1.6 计算引擎实现1.7 性能 近期除了本职工作之外想要再跟进一下业界做讨论以及落地的事情&#xff0c;扩宽一下视野&#xff0c;…

算法7.从暴力递归到动态规划0

算法|7.从暴力递归到动态规划0 1.汉诺塔 题意&#xff1a;打印n层汉诺塔从最左边移动到最右边的全部过程 解题思路&#xff1a; 把字母抛掉&#xff0c;变成左中右三个盘子多个盘子能一下到吗&#xff1f;不能&#xff0c;把上边的拿走&#xff0c;最下边的才能放到指位置(…

java汉字转拼音pinyin4j-2.5.0.jar用法

要先下载哦&#xff0c; pinyin4j下载链接 可能会出现Cannot resolve symbol ‘net’&#xff0c;找到上面文件的下载路径&#xff0c;IDEA中File->Project Structure -> Modules->Dependencies import java.util.*; import net.sourceforge.pinyin4j.PinyinHelper;…

算法基础学习笔记——⑬质数\约数

✨博主&#xff1a;命运之光 ✨专栏&#xff1a;算法基础学习 目录 ✨质数 &#x1f353;&#xff08;1&#xff09;质数的判定——试除法 &#x1f353;&#xff08;2&#xff09;分解质因数——试除法 ✨约数 &#x1f353;&#xff08;1&#xff09;试除法求一个数的所…

算法基础学习笔记——⑪拓扑排序\最短路

✨博主&#xff1a;命运之光 ✨专栏&#xff1a;算法基础学习 目录 ✨拓扑排序 &#x1f353;朴素dijkstra算法&#xff1a; &#x1f353;堆优化版dijkstra : &#x1f353;Bellman-Ford算法 &#x1f353;spfa 算法&#xff08;队列优化的Bellman-Ford算法&#xff09; …

操作系统(2.8)--线程的实现

目录 线程的实现方式 1.内核支持线程(KST) 2.用户级线程(ULT) 3.组合方式 线程的实现 1.内核支持线程的实现 2.用户级线程的实现 线程的创建和终止 线程的实现方式 1.内核支持线程(KST) 内核支持线程&#xff0c;与进程相同&#xff0c;是在内核的支持下运行的&#x…

二叉树及其相关题目相关的功能的实现

前言&#xff1a;前面我们简单提及了二叉树的相关初级知识和顺序实现二叉树的相关操作详解&#xff0c;并且由完全二叉树延伸到了堆的相关知识&#xff0c;具体详见二叉树初阶和堆的详解&#xff0c;今天&#xff0c;我们展开二叉树的相关 的链式实现操作和经常考察的二叉树的相…