ESP32 MicroPython固件编译1

背景

平常开发中,使用官方提供的MicroPython固件版本就可以了.但是目前遇到了一个问题,需要使用一个温度和压力一体的传感器,官方提供的是c语言的demo.要使用此模块,我就得micropython调用c接口.通过了解micropython调用c,需要编译micrpython中的模块,于是踏上了编译固件的学习之旅.

步骤

1.下载MicroPython源码

源码
切换到合适的分支,master分支更新太频繁,不适合作为产品
以v1.22-release为例

git clone https://github.com/micropython/micropython
# 切换到v1.22-release
git checkout -b v1.22-release origin/v1.22-release

2. 构建esp-idf

查看 ports_esp32.yml(这个应该是自动构建工具脚本)和ci.sh脚本

之前网上看了很多教程,跟着做都是不行. 根据官方的自动化构建脚本来做大概率是没问题的.

在micropython目录下运行

# 构建合适版本的esp_idf 
source tools/ci.sh && ci_esp32_idf_setup

会自动将合适版本的esp-idf下载到micropython路径下

2.1 出现的问题

  1. esp_idf代码拉不下来
    执行source tools/ci.sh && ci_esp32_idf_setup,git clone 无反应
    我通过其他地方下载,并切换esp_idf到 ci.sh里指定的分支后,重新运行source tools/ci.sh && ci_esp32_idf_setup

3. 构建固件

在micropython目录下运行

# 构建合适的板子固件(下面这个指令是s3和c3的)
source tools/ci.sh && ci_esp32_build_s3_c3

运行了 ci_esp32_build_s3_c3
就可以构建出固件firmware.bin
在这里插入图片描述

其他固件编译的方法

查看micropythond对应分支对应ports下的README.md, 如esp32对应的 READM.md

烧入固件

固件有好几种烧入方式:
1.thonny烧入
2.flash_download_tool烧入
3.esptool烧入方式

我当前使用thonny开发,所有采用thonny烧入,无论用什么方法,在对flash进行操作前,要保证芯片进入固件下载模式.
我的是ESP32-S3芯片,需要在断电情况下先按住boot按键,然后再接通usb(否则一直失败 No serial data received.),然后即可松开boot案件进行烧入.

烧入成功后,断电重新插入即可.

后话

编译固件时,还有一些其他配置,可以参考 https://github.com/micropython/micropython/blob/master/ports/esp32/README.md

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值