从头自己研究编译esp32的micropython固件

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

直接复制粘贴即可,建议全程上梯子,不然真的网速感人 5.安装esp-idf

mkdir -p ~/esp
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git

就是建立了个esp的文件夹并git 6.设置工具,继续照搬:

cd ~/esp/esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh

7.设置环境变量:

. $HOME/esp/esp-idf/export.sh

8.后面用的是这个链接的教程: 每步都是照着来的,不赘述了 固件编译后的 firmware.bin 文件产生在 port/esp32/build 文件夹 9.目前已经成功学会如何make固件了,但是要如何把lvgl加入进去呢,继续研究,去git lv_micropython,去官网就可以看到链接,发现目录结构跟git的microopython基本一样,如法炮制,直接进入portsesp32 然后make,报错了,查了下原因,是说必须跟esp-idf的版本对应,在readme.md中找到了解决方法:

$ cd ports/esp32
$ make ESPIDF=  # This will print the supported hashes, copy the one you want.
$ export ESPIDF=$HOME/src/github.com/espressif/esp-idf  # Or any path you like.
$ mkdir -p $ESPIDF
$ cd $ESPIDF
$ git clone https://github.com/espressif/esp-idf.git $ESPIDF
$ git checkout <Current supported ESP-IDF commit hash>
$ git submodule update --init --recursive

说白了就是把esp-idf的版本更换一下 10.继续到portsesp32中去 make,如果都设置好了的话,就可以正常编译了,最后赶紧把bin文件烧录到esp32中跑了一下,可以运行,并且终于有lvgl库了,但是报错如下:

E (886) spiram: SPI RAM enabled but initialization failed. Bailing out.
E (23) spiram: SPI RAM not initialized

估计是做固件的时候没有考虑SPI RAM的问题,小问题,可以说至此固件完成了,有空我会将编译好的固件上传供大家使用。

经验分享 程序员 微信小程序 职场和发展