当前位置: 首页 > 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做交叉编译太方便了!

http://www.lryc.cn/news/500890.html

相关文章:

  • 【开源免费】基于SpringBoot+Vue.JS大创管理系统(JAVA毕业设计)
  • mysql 和 tidb的区别
  • 传输层5——TCP可靠传输的实现(重点!!)
  • 基于Python实现web网页内容爬取
  • Centos7和9安装mysql5.7和mysql8.0详细教程(超详细)
  • 星闪WS63E开发板的OpenHarmony环境构建
  • MongoDB数据建模小案例
  • MySQL(库的操作)
  • 【55 Pandas+Pyecharts | 实习僧网Python岗位招聘数据分析可视化】
  • java中23种设计模式的优缺点
  • 【JavaEE】多线程(7)
  • 如何高效的向AI大模型提问? - 提示工程Prompt Engineering
  • 4K高清壁纸网站推荐
  • EasyExcel注解使用
  • Visual Basic 6 关于应用的类库 - 开源研究系列文章
  • C#泛型
  • go语言的成神之路-标准库篇-fmt标准库
  • React Native的router解析
  • Linux update-alternatives 命令详解
  • 【踩坑】修复报错libcurl.so.4、LIBFFI_BASE_7.0、libssl.so.3
  • python网络爬虫基础:html基础概念与遍历文档树
  • 【已解决】MacOS上VMware Fusion虚拟机打不开的解决方法
  • 经典视觉神经网络1 CNN
  • 一些硬件知识【2024/12/6】
  • 网络安全法-网络安全支持与促进
  • 【Docker】如何在Docker中配置防火墙规则?
  • Cesium 问题: 添加billboard后移动或缩放地球,标记点位置会左右偏移
  • 使用Python3 连接操作 OceanBase数据库
  • SpringBoot该怎么使用Neo4j - 优化篇
  • Flutter如何调用java接口如何导入java包