• micropython RP2040/esp32/c3自编译4MB/8MB/16MB固件分享


    micropython RP2040/esp32/c3/s3自编译4MB/8MB/16MB固件分享


    • 固件基于当前版本:MicroPython v1.19.1自编译的,可以根据自己的PI PICOesp32/c3开发板flash容量自行选择其对应的固件进行烧录。

    本文也提供了官方固件资源,例如:PI PICO开发板官方的板子是2MBflash,esp32/c3 4MB的固件资源

    • 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).
    
    • 1
    • 2
    • 3
    • 4
    🚩本固件最适合以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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 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"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    📝ESP32固件烧录

    • 📗esp32分别对应的容量有8MB和16MB的,只提供的是一个bin文件,,也就是boot.bin文件、micropython.binpartition-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"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 🌿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 PSRAMOctal Mode PSRAM
    • 编译型号:GENERIC_S3_SPIRAM,配置的是16MB 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
    
    • 1
    • 2
  • 相关阅读:
    stl算法的使用(函数及谓词)
    C++标注模板库(STL)-deque介绍
    季节优化算法(Seasons optimization algorithm,SOA)附matlab代码
    解决跨域问题的方法 --- CORS
    [文档] torch.distributions.Categorical
    Github工程中的Markdown语言应用
    RuntimeError_ Found dtype Long but expected Float
    [Redis] Spring Boot 使用Redis---StringRedisTemplate
    Spread 16.0 for ASP.NET-WEB-Crack
    python生成CAPTCHA验证码图像实战、生成英文CAPTCHA验证码图像
  • 原文地址:https://blog.csdn.net/weixin_42880082/article/details/126609377