如何自己編譯ESP32的MicroPython固件(針對(duì)N32R8V, N16R8V)

大家好,今天想跟大家分享下,如何編譯ESP32-S3-DevKit1C-N32R8v / N16R8v的MicroPython固件。
那為什么要自己編譯這個(gè)固件呢?首先MicroPython實(shí)在是太簡(jiǎn)單易用了。相較于C/C++,雖然對(duì)很多設(shè)備/功能支持還少(劃重點(diǎn)?。?,但如果你想實(shí)現(xiàn)的只是簡(jiǎn)單的IOT(物聯(lián)網(wǎng))項(xiàng)目,那MicroPython絕對(duì)是你最容易上手的方式。C/C++的環(huán)境搭建對(duì)于新手來說,還是太難了。但也因?yàn)楫嫵龅闹攸c(diǎn),有些設(shè)備你是無法在網(wǎng)上直接找到固件(Firmware)的,有些找到的,都不是最新版,缺失一些最新發(fā)布的功能。所以,如果玩的不是熱門硬件的話,還是需要自己來編譯的。
廢話少說,進(jìn)入主題:
1. 搭建環(huán)境
首先,Linux是不可或缺的。有3種主流方式:WSL(Window subsystem for Linux),虛擬機(jī),實(shí)機(jī)安裝。WSL是可以用的,但是你要想辦法把串口接進(jìn)去,這一點(diǎn)我沒能做到,所以我就選擇了另外2種方式。這3種方式所用的代碼基本都是一樣的,無論選那種,都能成功。
系統(tǒng)我選擇的是Ubuntu,如果你是使用其他distro的大佬,請(qǐng)自行修改代碼!
到目前為止,所有你需要的環(huán)境都已經(jīng)安排好了。要注意的是,如果你電腦重啟了,你需要重新在 esp-idf 文件夾下運(yùn)行 source export.sh。
2. 開始編譯
不多BB,直接打碼。


menuconfig 初始為 build。GENERIC_S3_SPIRAM 初始為 GENERIC 。PORT 請(qǐng)更改為你自己連接的串口。具體可以嘗試用?
來尋找接口,實(shí)機(jī)的話一般是 ttyUSB0 或者 ttyACM0 。然后

改完之后
得圖如下:

然后做出如下更改,首先在Serial flasher config里面:

注意Flash size改為你的版本的大小。Flash SPI mode會(huì)自動(dòng)傳喚為OPI。按ESC返回上級(jí)菜單,回車選擇。更改完成后,返回至最上級(jí)菜單,進(jìn)入Partition Table

改為你的版本的大小,注意,32MB以上需要自行提供partition table。按Q然后按Y。

這里會(huì)提示Error,請(qǐng)忽視



如果有錯(cuò)誤/可以改進(jìn)的地方,歡迎大佬們留言!謝謝觀看~