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

Micropython编译ESP32C3开发板版本过程详细步骤步骤

一、环境说明

开发板:合宙ESP32-C3

工作机器CPU:AMD64

操作系统:Windows10 2004(19041.508)

使用WSL2安装Linux系统

Linux:Ubuntu 24.04.1 LTS

python:python 3.12.3(Windows和Linux保持同步)

Micropython:v1.24

二、安装步骤

工作目录:/root/

1.配置工具库

 
apt updateapt install git wget libncurses-dev flex bison gperf python3 python3-pip python3-setuptools python3-serial python3-click python3-cryptography python3-future python3-pyparsing python3-pyelftools cmake ninja-build ccache libffi-dev libssl-dev python-is-python3 

2.下载代码


mkdir -p ~/esp
cd ~/esp
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
git clone https://gitee.com/EspressifSystems/esp-idf.git
git clone https://github.com/micropython/micropython.git

3.使用esp_gitee-tools.git编译esp-idf

首先需要将esp-idf切换到Micropython支持的版本,根据micropython/ports/esp32/README.md中的描述,v1.24版本的Micropython支持v5.0.4, v5.0.5, v5.1.2, v5.2.0, v5.2.2,但是经过尝试,只有v5.1.2版本的esp-idf版本能够编译成功,少走弯路,直接用这个版本

cd esp-idf
git checkout v5.1.2

按照esp-idf官方的REDME编译会失败,需要使用esp-gitee-tools来进行编译

cd ~/esp/esp-gitee-tools
./jihu-mirror.sh set
./submodule-update.sh ~/esp/esp-idf/
./install.sh ~/esp/esp-idf/

编译过程中提示缺少python3.13-venv库,apt安装一下就好,安装完后继续编译

 sudo apt install python3.13-venv
./install.sh ~/esp/esp-idf/

安装成功后提示:

All done! You can now run:

. /root/esp/esp-idf/export.sh

但是执行. /home/yle/esp/esp-idf/export.sh后报缺少libusb库,同样,apt安装一下

apt install libusb-1.0-0-dev
. /root/esp/esp-idf/export.sh

成功了,提示 idf.py 可用了。

4.编译micropython

cd ~/esp/micropython
git submodule update --init --recursive
make -C mpy-cross
cd ports/esp32
make BOARD=ESP32_GENERIC_C3

最后一步make的参数,根据自己的ESP型号填写board目录下对于的型号文件夹。

编译成功后,生成 micropython/ports/esp32/build-ESP32_GENERIC_C3/firmware.bin文件,这就是用来烧录Flash的固件了。

到此Micropython编译成功!

5.烧录ESP32C3

使用esptool进行烧录比较简单,先用pip安装esptool,这一步在Windows下进行

python -m pip install esptool
esptool.exe write_flash 0 ./firmware.bin

最后想说一下,在Windows上用WSL做交叉编译太方便了!

相关文章:

Micropython编译ESP32C3开发板版本过程详细步骤步骤

一、环境说明 开发板:合宙ESP32-C3 工作机器CPU:AMD64 操作系统:Windows10 2004(19041.508) 使用WSL2安装Linux系统 Linux:Ubuntu 24.04.1 LTS python:python 3.12.3(Windows和…...

【开源免费】基于SpringBoot+Vue.JS大创管理系统(JAVA毕业设计)

博主说明:本文项目编号 T 081 ,文末自助获取源码 \color{red}{T081,文末自助获取源码} T081,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...

mysql 和 tidb的区别

MySQL 和 TiDB 是两种常见的关系型数据库管理系统,但它们的设计理念和适用场景有显著区别。以下从架构、性能、扩展性、适用场景等方面进行对比: 架构设计 MySQL 单机架构为主,可通过主从复制实现读写分离或高可用。分布式支持依赖外部组件&…...

传输层5——TCP可靠传输的实现(重点!!)

TCP协议如何实现可靠传输?确保接收方收到数据? 需要依靠几个结构: 以字节为单位的滑动窗口 这其中包括发送方的发送窗口和接收方的接收窗口 下面的描述,我们指定A为发送端口,B为接收端口 TCP的可靠传输就是靠着滑动窗口…...

基于Python实现web网页内容爬取

文章目录 1. 网页分析2. 获取网页信息2.1 使用默认的urllib.request库2.2 使用requests库1.3 urllib.request 和 requests库区别 2. 更改用户代理3. BeautifulSoup库筛选数据3.1 soup.find()和soup.find_all() 函数 4. 抓取分页链接参考资料 在日常学习和工作中,我们…...

Centos7和9安装mysql5.7和mysql8.0详细教程(超详细)

目录 一、简介 1.1 什么是数据库 1.2 什么是数据库管理系统(DBMS) 1.3 数据库的作用 二、安装MySQL 1.1 国内yum源安装MySQL5.7(centos7) (1)安装4个软件包 (2)找到4个软件包…...

星闪WS63E开发板的OpenHarmony环境构建

目录 引言 关于SDK 安装步骤 1. 更新并安装基本依赖 2. 设置 Python 3.8 为默认版本 3. 安装 Python 依赖 4. 安装有冲突的包 5. 设置工作目录 6. 设置环境变量 7. 下载预构建文件以及安装编译工具 8. 编译工程 nearlink_dk_3863 设置编译产品 编译 制品存放路径…...

MongoDB数据建模小案例

MongoDB数据建模小案例 朋友圈评论内容管理 需求 社交类的APP需求,一般都会引入“朋友圈”功能,这个产品特性有一个非常重要的功能就是评论体系。 先整理下需求: 这个APP希望点赞和评论信息都要包含头像信息: 点赞列表,点赞用户的昵称,头像;评论列表,评论用户的昵称…...

MySQL(库的操作)

目录 1. 创建数据库 2. 删除数据库 3. 查看数据库 4. 修改数据库 5. 备份和恢复 6. 查看连接情况 1. 创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] 1. 大写的是关键字 2. [ ]可带可不带 3. db_name 数据…...

【55 Pandas+Pyecharts | 实习僧网Python岗位招聘数据分析可视化】

文章目录 🏳️‍🌈 1. 导入模块🏳️‍🌈 2. Pandas数据处理2.1 读取数据2.2 查看数据信息2.3 去除重复数据2.4 调整部分城市名称 🏳️‍🌈 3. Pyecharts数据可视化3.1 招聘数量前20岗位3.2 各城市招聘数量3…...

java中23种设计模式的优缺点

文兴一言 设计模式分为创建型模式、结构型模式和行为型模式。以下是每种设计模式及其优缺点的详细介绍: 一、创建型模式 简单工厂模式 优点:通过一个共同的工厂类来创建对象,将对象的创建逻辑封装在一个地方,客户端只需要与工厂…...

【JavaEE】多线程(7)

一、JUC的常见类 JUC→java.util.concurrent,放了和多线程相关的组件 1.1 Callable 接口 看以下从计算从1加到1000的代码: public class Demo {public static int sum;public static void main(String[] args) throws InterruptedException {Thread …...

如何高效的向AI大模型提问? - 提示工程Prompt Engineering

大模型的输入,决定了大模型的输出,所以一个符合要求的提问Prompt起到关键作用。 以下是关于提示工程Prompt Engineering主要方法的详细表格,包括每种方法的优点、缺点、应用场景以及具体示例: 主要方法优点缺点应用场景示例明确性…...

4K高清壁纸网站推荐

1. Awesome Wallpapers 官网: https://4kwallpapers.com/ 主题: 创意、摄影、人物、动漫、绘画、视觉 分辨率: 4K Awesome Wallpapers 提供了丰富的高质量图片,分为通用、动漫、人物三大类,可以按屏幕比例和分辨率检索,满足你对壁纸的各种…...

EasyExcel注解使用

上接《Springboot下导入导出excel》,本篇详细介绍 EasyExcel 注解使用。 1. ExcelProperty value:指定写入的列头,如果不指定则使用成员变量的名字作为列头;如果要设置复杂的头,可以为value指定多个值order&#xff…...

Visual Basic 6 关于应用的类库 - 开源研究系列文章

上次整理VB6的原来写的代码,然后遇到了关于应用窗体的显示问题。VB6不比C#,能够直接反射调用里面的方法,判断是否显示关于窗体然后显示。以前写过一个VB6插件的例子,不过那个源码不在,所以就找了度娘,能够象…...

C#泛型

泛型是一种非常强大的特性,它允许程序员编写灵活的代码,同时保持类型安全。泛型的核心思想是允许类或方法在定义时不指定具体的数据类型,而是在实际使用时指定。这意味着你可以创建一个可以与任何数据类型一起工作的类或方法 泛型类通过在类…...

go语言的成神之路-标准库篇-fmt标准库

目录 一、三种类型的输出 print: println: printf: 总结: 代码展示: 二、格式化占位符 %s:用于格式化字符串。 %d:用于格式化整数。 %f:用于格式化浮点数。 %v&#xff1…...

React Native的router解析

写在前面 React Native(简称RN)是一个由Facebook开发的开源框架,用于构建跨平台的移动应用程序。在RN中,路由(router)是非常重要的概念,它允许我们在不同的屏幕之间进行导航和切换。 以下是RN…...

Linux update-alternatives 命令详解

1、查看所有候选项 sudo update-alternatives --list (java筛选​​​​​​​sudo update-alternatives --list java) 2、​​​​​​​更换候选项 sudo update-alternatives --config java 3、自动选择优先级最高的作为默认项 sudo update-alterna…...

京东自动评价工具:3分钟解决购物评价难题的智能助手

京东自动评价工具:3分钟解决购物评价难题的智能助手 【免费下载链接】jd_AutoComment 自动评价,仅供交流学习之用 项目地址: https://gitcode.com/gh_mirrors/jd/jd_AutoComment 还在为购物后的评价烦恼吗?每次收到京东的"待评价"提醒&…...

喜马拉雅音频本地化实战:绕过xm格式,直接获取mp3文件的两种方法对比

喜马拉雅音频本地化实战:两种高效获取MP3文件的技术方案深度评测 作为国内领先的音频分享平台,喜马拉雅拥有海量优质内容,但其特有的XM格式却给用户跨平台使用带来了困扰。许多技术爱好者尝试过各种转换工具,却发现市面上几乎没有…...

深入解析91160-cli医疗挂号自动化系统:架构设计与实战部署指南

深入解析91160-cli医疗挂号自动化系统:架构设计与实战部署指南 【免费下载链接】91160-cli 健康160全自动挂号脚本,捡漏神器 项目地址: https://gitcode.com/gh_mirrors/91/91160-cli 在当今医疗资源紧张的环境下,医院挂号难已成为普遍…...

【独家首发】Sora 2正式版未公开能力清单:原生支持3D空间锚点+时间轴语义编辑+版权水印嵌入(附OpenAI内部文档节选)

更多请点击: https://intelliparadigm.com 第一章:Sora 2正式版核心能力全景概览 多模态时序理解与生成一体化 Sora 2正式版突破性地将文本、图像、音频及物理运动参数统一编码至共享时空潜空间,支持长达120秒、1080p分辨率的连贯视频生成。…...

复杂技术决策如何避免“竞选广告”陷阱?工程师必备的4项流程变革

1. 从一场“选举广告”引发的思考:工程师如何审视复杂系统设计午餐时看新闻,每个广告时段都被政治竞选广告塞满,内容无一例外都在攻击对手,却对自身主张闭口不谈。这场景让我这个在电子设计自动化(EDA)和半…...

从零到一:OWASP ZAP实战渗透测试全流程解析

1. OWASP ZAP入门:渗透测试的瑞士军刀 第一次接触OWASP ZAP时,我完全被它复杂的界面吓到了。但用了三个月后,我发现这简直是Web安全测试的"瑞士军刀"——功能强大但需要正确打开方式。简单来说,ZAP就是个会自动帮你找网…...

别再乱打包了!手把手教你用Kali Linux和Metasploit生成免杀后门(附实战演示)

Kali Linux高级免杀技术实战:从原理到绕过Windows Defender 在渗透测试和红队演练中,后门程序的免杀能力直接决定了行动的成败。许多初学者在使用Metasploit生成基础payload后,常常发现它们被主流杀毒软件轻易拦截。本文将深入探讨免杀技术的…...

SatGate-Proxy:开源反向代理与隧道工具部署与实战指南

1. 项目概述与核心价值最近在折腾一些需要跨地域、跨网络环境访问的应用时,遇到了一个老生常谈的痛点:如何稳定、高效地访问那些因为网络策略限制而无法直接触达的服务。这不仅仅是个人用户的需求,很多中小团队在部署混合云、进行远程办公或访…...

用o1-preview构建端到端水质分类系统

1. 项目概述:用 o1-preview 构建端到端水质分类系统的真实复现手记 我做机器学习项目快十年了,从最早手动调参、写 Makefile 编译模型,到后来用 MLflow 跟踪实验、用 Flask 封装 API,再到如今用 Docker 打包上云——整个流程早已刻…...

终极SQLC资源管理指南:轻松优化内存、CPU和磁盘使用的7个实用策略

终极SQLC资源管理指南:轻松优化内存、CPU和磁盘使用的7个实用策略 【免费下载链接】sqlc Generate type-safe code from SQL 项目地址: https://gitcode.com/gh_mirrors/sq/sqlc sqlc是一个强大的工具,能够从SQL生成类型安全的代码,帮…...