📟micropython 编译esp32-c3固件

 
😀
将自己的函数编译进固件里,方便批量烧录。新版本不太一样了
notion image

前情提要:UBUNTU 20.04 LTSC,VPS(解决网络问题)

具体流程
更新源列表

python配置 将默认python版本改为python3
查看当前系统默认python版本
查看python3
删除原有python2的软连接
新建python3的软连接
安装pip
安装virtualenv!!

安装必备软件
Git:
资源库中,有一个名为 build-essential 的包,它包含 GCC 和其他各种编译器,如 g++ 和 make来安装:
cmake:

基于ARM内核编译的工具链:(可选的)


Git克隆 #网络环境
esp-idf克隆:注意 esp-idf版本!!
若esp-idf已经存在,请更新模块

MICROPYTHON源码克隆:


micropython固件编译的安装

ESP-IDF 配置好编译环境

编译 MICROPYTHON

必须先构建 MicroPython 交叉编译器,这将用于 预编译(冻结)内置 Python 代码。这个交叉编译器是构建的,并且 使用以下命令在主机上运行:
生成的固件为:firmware.bin ..build-ESP32_GENERIC/
如果是编译esp32c3,在make后缀加型号:

定义自定义 ESP32 开发板

默认的 ESP-IDF 配置设置由目录中的 board 定义提供。对于自定义配置 您可以定义自己的 Board 目录。通过以下方式开始新的电路板配置 复制现有的(如)并修改它以适合您的开发板。ESP32_GENERICboards/ESP32_GENERICESP32_GENERIC
特定于 MicroPython 的配置值在特定于主板的文件中定义,该文件包含在 中。附加 设置被放入 ,包括配置 ESP-IDF 设置的文件列表。一些标准文件是 在目录中提供,例如 .您可以 此外,在 Board 目录中定义自定义的。mpconfigboard.h mpconfigport.h mpconfigboard.cmake sdkconfig boards/boards/sdkconfig.ble

如何在micropython固件中加入自己的py库
mpy的源码结构在不断更新
目前只需要找到对应的port文件夹下的modules就可以了,往里面直接扔py文件就会自动被编译到固件了
原理也不难,当前的manifest.py自动freeze了modules这个文件夹
比如esp32
就是ports\esp32\moduels

Raspberry RP2040
必须先构建 MicroPython 交叉编译器,这将用于 预编译(冻结)内置 Python 代码。这个交叉编译器是构建的,并且 使用以下命令在主机上运行:
此命令应从此存储库的根目录执行。 下面的所有其他命令都应该从 ports/rp2/ 目录执行。
RP2 固件的构建完全使用 CMake 完成,尽管简单 为了方便起见,还提供了 Makefile。要构建固件,请运行(从 此目录):
如果你使用的是Rasoberry Pi Pico以外的其他板,那么你应该 将开发板名称传递给构建;例如,对于Raspberry Pi Pico W:

参考资料:
[2]github.micropython rp2
[4]csdn.wsl代理
 

没有找到文章