Posts 为 ESP32-S3-N16R8 开发板编译 16M 闪存版本的 MicroPython-1.22.0
Post
Cancel

为 ESP32-S3-N16R8 开发板编译 16M 闪存版本的 MicroPython-1.22.0

由于官方提供的 ESP32-S3 的 MicroPython 固件是 8M 闪存版本,而 ESP32-S3-N16R8 开发板是 16M 闪存,所以需要自己编译 16M 闪存版本的 MicroPython 固件。

系统环境

操作系统:ubuntu-23.04-server-amd64 Python 版本:3.11 ESP-IDF 版本:v5.1.2 MicroPython 版本:v1.22.0 开发板:ESP32-S3-N16R8

准备编译环境

安装编译工具

1
2
3
4
sudo apt update
sudo apt install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 -y
sudo apt install build-essential gcc-arm-none-eabi -y

克隆 esp-idf

1
2
3
4
5
6
7
8
mkdir -p ~/esp
cd ~/esp
git clone -b v5.1.2 --recursive https://github.com/espressif/esp-idf.git
# 为了确保文件都下载完整,再次执行下面的命令确认
cd ~/esp/esp-idf
# 可多次执行,直到不报错为止
git submodule update --init --recursive

克隆 micropython

1
2
3
4
5
6
7
8
cd ~/esp
# 目前最新的 release 版本是1.22.0,如果不加版本号可能是预览版,所以最好是指定个稳定版本
git clone -b v1.22.0 --recursive https://github.com/micropython/micropython.git
# 为了确保文件都下载完整,再次执行下面的命令确认
cd ~/esp/micropython
# 可多次执行,直到不报错为止
git submodule update --init --recursive

ESP-IDF 安装及配置

1
2
3
4
5
6
cd ~/esp/esp-idf
# 国内下载加速
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh esp32s3
# 配置环境变量
. $HOME/esp/esp-idf/export.sh

修改闪存容量为 16M

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# ~/esp/micropython/ports/esp32/boards/ESP32_GENERIC_S3/sdkconfig.board
# 默认是下面的内容
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
CONFIG_ESPTOOLPY_AFTER_NORESET=y

CONFIG_ESPTOOLPY_FLASHSIZE_4MB=
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-8MiB.csv"

# 修改为
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
CONFIG_ESPTOOLPY_AFTER_NORESET=y

CONFIG_ESPTOOLPY_FLASHSIZE_4MB=
CONFIG_ESPTOOLPY_FLASHSIZE_8MB= 
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions-8MiB.csv"

编译 micropython

1
2
3
4
5
6
cd ~/esp/micropython
make -C mpy-cross
cd ~/esp/micropython/ports/esp32
make submodules
make BOARD=ESP32_GENERIC_S3 BOARD_VARIANT=SPIRAM_OCT

编译完成

最终固件文件在路径 ~/esp/micropython/ports/esp32/build-ESP32_GENERIC_S3-SPIRAM_OCT/下面,注意不是 micropython.bin而是 firmware.bin

烧录

先擦除

1
2
# 其中 /dev/cu.usbmodem141101 改成自己的端口
esptool.py --chip esp32s3 --port /dev/cu.usbmodem141101 erase_flash

再写入

1
2
# 其中 /dev/cu.usbmodem141101 改成自己的端口
esptool.py --chip esp32s3 --port /dev/cu.usbmodem141101 write_flash -z 0 /path/firmware.bin

通过 Thonny的控制台通过下面代码确认闪存容量

1
2
3
import esp
esp.flash_size()/1024/1024
# 16.0

下载地址

链接: https://pan.baidu.com/s/1-yWRxM_y4bxgSDHrZ0OtwA?pwd=ehrb

提取码: ehrb


邀请您关注我的公众号,我将会不时地为您推送独家原创的技术内容分享。
This post is licensed under CC BY 4.0 by the author.

AI 项目推荐: 文字转语音 edge-tts 使用指南 (白嫖)

llamafile 使用指南 - 一键运行的开源AI大模型,支持OpenAI API和Chatbox,跨平台兼容

Trending Tags