micropython RP2040/esp32/c3/s3自编译4MB/8MB/16MB固件分享
- 固件基于当前版本:
MicroPython v1.19.1
自编译的,可以根据自己的PI PICO
,esp32/c3
开发板flash
容量自行选择其对应的固件进行烧录。
本文也提供了官方固件资源,例如:
PI PICO
开发板官方的板子是2MB
的flash
,esp32/c34MB
的固件资源
- micropython官方固件下载地址:
https://micropython.org/download/
⛳烧录注意事项
📢烧录前最好是做全片擦除,再写入,特别是对于原来是高容量的flash,写入了低容量的固件的目标板。在重新烧录固件时,这点尤为重要。如果不这样做,在烧录高容量固件时,会找不到文件系统。运行是会报如下错误:
The filesystem appears to be corrupted. If you had important data there, you
may want to make a flash snapshot to try to recover it. Otherwise, perform
factory reprogramming of MicroPython firmware (completely erase flash, followed
by firmware programming).
🚩本固件最适合以RP2040位核心的自主设计的开发板
- 🍂YD-RP2040兼容树莓派核心板RP2 Raspberry Pi Pico Micropython
- 🍓
Raspberry Pi Pico
默认只有2MB
的flash
✅RP2040 自编译调整flash修改位置一共有3处:
1. C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\rootfs\home\arm\micropython\ports\rp2\rp2_flash.c
#ifndef MICROPY_HW_FLASH_STORAGE_BYTES
//2MB flash
//#define MICROPY_HW_FLASH_STORAGE_BYTES (1408 * 1024)
//4MB flash
#define MICROPY_HW_FLASH_STORAGE_BYTES (3 * 1024 * 1024)
//16Mb flash
//#define MICROPY_HW_FLASH_STORAGE_BYTES (7 * 1024 * 1024)
//16Mb flash
//#define MICROPY_HW_FLASH_STORAGE_BYTES (15 * 1024 * 1024)
#endif
2. C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\rootfs\home\arm\micropython\ports\rp2\boards\PICO\mpconfigboard.h
#define MICROPY_HW_BOARD_NAME "Raspberry Pi Pico"
#define MICROPY_HW_FLASH_STORAGE_BYTES (15 * 1024 * 1024)
//默认2MB:1408 * 1024
//4MB:3 * 1024 * 1024
//8MB:7 * 1024 * 1024
//16MB:15 * 1024 * 1024
3. C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\rootfs\home\arm\micropython\lib\pico-sdk\src\boards\include\boards\pico.h
#ifndef PICO_FLASH_SIZE_BYTES
//#define PICO_FLASH_SIZE_BYTES (2 * 1024 * 1024)
//#define PICO_FLASH_SIZE_BYTES (4 * 1024 * 1024)
//#define PICO_FLASH_SIZE_BYTES (8 * 1024 * 1024)
#define PICO_FLASH_SIZE_BYTES (16 * 1024 * 1024)
#endif
16MB
版本信息:MicroPython v1.19.1-339-g9a826e0f2-dirty on 2022-08-30; Raspberry Pi Pico with RP2040
8MB
版本信息:MicroPython v1.19.1-339-g9a826e0f2-dirty on 2022-08-30; Raspberry Pi Pico with RP2040
4MB
版本的容量信息:
官方的RP2040烧录演示
ESP32自编译需要修改的地方有1处
1. C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\rootfs\home\arm\micropython\ports\esp32\boards\sdkconfig.base
- 根据flash容量配置,在
sdkconfig.base
文件中修改下面的对应内容即可:
# For cmake build
# CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-16MiB.csv"
📝ESP32固件烧录
- 📗esp32分别对应的容量有8MB和16MB的,只提供的是一个
bin
文件,,也就是boot.bin
文件、micropython.bin
、partition-table.bin
合并的一个文件。通过Thonny
平台进行烧录。
- 如果是使用乐鑫官方的烧录工具:
flash_download_tool_3.9.3烧录工具
https://www.espressif.com.cn/zh-hans/support/download/other-tools
- 烧录首地址改为
0x1000
🚩ESP32C3只能使用乐鑫官方的烧录工具:flash_download_tool_3.9.3烧录工具
进行烧录
✔因为ESP32C3的烧录地址是从
0x0
地址开始烧录的,而通过Thonny
平台进行烧录的默认烧录地址是从0x1000开始烧录的。
- 分开烧录
- 🎯烧录完,使用
Thonny
检测
- 🍂ESP32C3 16MB容量信息
- ⛳单文件烧录方式
⛳ESP32C3编译16MB说明
- ✨编译16MB的需要选择
OTA
的分区表
# For cmake build
# CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-16MiB-ota.csv"
- 🌿esp32c3 8MB flash
flash模式说明
- 📌SPI_FLASH_SLOWRD 标准SPI,对时钟速度有限制(速率较慢)
- 📌 SPI_FLASH_FASTRD 标准SPI
- 📌SPI_FLASH_DOUT 双线SPI(Dual SPI)只在数据阶段使用两根数据线通信
- 📌 SPI_FLASH_DIO 双线SPI(Dual SPI)地址、数据阶段都使用两根数据线通信
- 📌SPI_FLASH_QOUT 四线SPI(Qual SPI)只在数据阶段使用四根数据线通信
- 📌 SPI_FLASH_QIO 四线SPI(Qual SPI)地址、数据阶段使用四根数据线通信
- 📌SPI_FLASH_OPI_STR 四线SPI(Qual SPI)命令、地址、数据阶段(所有阶段)都使用四根数据线通信,并且一个时钟传输一位
- 📌SPI_FLASH_OPI_DTR 四线SPI(Qual SPI)命令、地址、数据阶段(所有阶段)都使用四根数据线通信,并且一个时钟传输两位
ESP32S3固件说明
- 按照
PSRAM
模式分:Quad Mode PSRAM
和Octal Mode PSRAM
- 编译型号:
GENERIC_S3_SPIRAM
,配置的是16
MB flash,
- 编译采用是4线(Quad)中的
qout
模式flash 8线(Octal)PSRAM配置,速度和flash的频率一样80MHz。官方固件默认是8M flash.
Octal Mode PSRAM
- 80MHz clock speed
⛳固件资源
- 2022年10月8日新增ESP32带PSRAM固件
- 📢esp32c3固件目前只能使用容量为4MB和16MB的,8MB的固件能烧录进去但是识别的容量空间为0,但是程序测试可以读到flash容量,8MB的固件不推荐使用,仅供测试。
链接:https://pan.baidu.com/s/1pHVWWB2ZMINVPyX2wYo7Hg
提取码:dd4v
📘ESP32S3官方固件参考
- ✨针对ESP32S3不同硬件配置的,如果想使用最新的固件,可以参考以下类型:NanoS3、TinyS3、FeatherS3 、ProS3
- 👉具体信息,参考链接:
https://esp32s3.com/
- ⚡烧录固件后,在通讯连接时,需要注意:使用的是USB连接的TypeC接口,进行调试的,而不是串口的TypeC接口。