分类目录归档:None

ESP32 ESP8266 micropython编译

Ubuntu 22.0.4系统下【请先安装python3.10-venv

1.ESP-IDF工具安装

git clone https://github.com/espressif/esp-idf.git
cd esp-idf
# git checkout v5.0.4
git submodule update --init --recursive

apt install python3.10-venv

cd esp-idf
./install.sh
source export.sh

#最后一步在进入编译前都得进行。 python >3.7

2.micropython源代码设置

git clone https://github.com/micropython/micropython.git
cd micropython
git submodule update --init --recursive

cd micropython
make -C mpy-cross
cd ports/esp32
make BOARD=ESP32_GENERIC_S3 clean
make submodules

make BOARD=ESP32_GENERIC_S3 
#make BOARD=ESP32_GENERIC_S3 USER_C_MODULES=../../../../micropython.cmake
#设置外部C编译模块,cmake的话 一个编译只能使用一个,但是可以将多个Cmake文件合成一个cmake就可以了。

注意路径上会多一个 ../ 上述模块其实micropython.cmake 和micropython文件夹同属一个目录
* micropython/ports/esp32 #在该目录执行命令
micropython.cmake
esp-idf

#需要使用的cmake在此处 原则上../../../micropython.cmake是../../../../micropython.cmake

3.添加其他C模块(cmake)编译【st7789 ulab】

#和micropython esp-idf 同级目录
git clone https://github.com/v923z/micropython-ulab.git ulab
git clone https://github.com/russhughes/st7789_mpy.git

#在该处创建micropython.cmake 文件,内容如下
include(${CMAKE_CURRENT_LIST_DIR}/ulab/code/micropython.cmake) include(${CMAKE_CURRENT_LIST_DIR}/st7789_mpy/st7789/micropython.cmake)


#最后的编译命令
make BOARD=ESP32_GENERIC_S3 USER_C_MODULES=../../../../micropython.cmake


ESP32S3 PSRAM

ESP32S3 编译 8MB PSRAM 16MBFlash N16R8

ESP32S3 编译 8MB PSRAM 16MBFlash N16R8

cd esp-idf

命令 进入esp-idf

source export.sh

设置idf.py命令

cd micropython

进入micropython

make -C mpy-cross

开始mpy-cross

cd ports/esp32

进入 ports下的esp32目录

make BOARD=ESP32_GENERIC_S3 clean

清除之前编译的信息

make submodules

预编译

make BOARD=ESP32_GENERIC_S3 USER_C_MODULES=../../../../micropython.cmake

设置编译后的开发板ESP32_GENERIC_S3 并载入C模块micropython.cmake

#

关于相关问题的修改

#

flash 修改文件:

#

boards/ESP32_GENERIC_S3/sdkconfig.board

其中的文件

CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=”partitions-16MiB.csv”

#

PSRAM修改

#

修改文件boards/sdkconfig.spiram_sx

注释掉QUAD,并创建OCT

#CONFIG_SPIRAM_MODE_QUAD=y

CONFIG_SPIRAM_MODE_OCT=y

#

修改文件boards/ESP32_GENERIC_S3/mpconfigboard.cmake

set(IDF_TARGET esp32s3)

set(SDKCONFIG_DEFAULTS
boards/sdkconfig.base
${SDKCONFIG_IDF_VERSION_SPECIFIC}
boards/sdkconfig.usb
boards/sdkconfig.ble
boards/sdkconfig.spiram_sx
#上面选项添加
boards/ESP32_GENERIC_S3/sdkconfig.board
)

#

boards/sdkconfig.spiram_sx
#上面选项添加

#

ESP32s3编译固件 N16R8

cd esp-idf

source export.sh

cd micropython

make -C mpy-cross

cd ports/esp32

make BOARD=ESP32_GENERIC_S3 clean

make submodules

make BOARD=ESP32_GENERIC_S3 USER_C_MODULES=../../../../micropython.cmake

关于相关问题的修改

flash 修改:
boards/ESP32_GENERIC_S3/sdkconfig.board

CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME=”partitions-16MiB.csv”

PSRAM修改
boards/sdkconfig.spiram_sx

#CONFIG_SPIRAM_MODE_QUAD=y
CONFIG_SPIRAM_MODE_OCT=y

boards/ESP32_GENERIC_S3/mpconfigboard.cmake

set(IDF_TARGET esp32s3)

set(SDKCONFIG_DEFAULTS
    boards/sdkconfig.base
    ${SDKCONFIG_IDF_VERSION_SPECIFIC}
    boards/sdkconfig.usb
    boards/sdkconfig.ble
    boards/sdkconfig.spiram_sx
    boards/ESP32_GENERIC_S3/sdkconfig.board
)

esp32s2 lolin/esp32s3 编译 ulab和st7789坑

# ESP-IDF设置
cd esp-idf
./install.sh       # (or install.bat on Windows)
source export.sh   # (or export.bat on Windows)

# ----------------------

make -C mpy-cross

make BOARD=LOLIN_S2_MINI clean

cd micropython/ports/esp32

make submodules

make BOARD=LOLIN_S2_MINI USER_C_MODULES=../../../../st7789_mpy/st7789/micropython.cmake FROZEN_MANIFEST="" FROZEN_MPY_DIR=$UPYDIR/modules 
有且仅能使用一个cmake 但是可以包含
在st7789 和ulab的共同文件夹下创建micropython.cmake

# 里面文件内容:
include(${CMAKE_CURRENT_LIST_DIR}/ulab/code/micropython.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/st7789_mpy/st7789/micropython.cmake)

# 编译命令·
make BOARD=LOLIN_S2_MINI USER_C_MODULES=../../../../micropython.cmake 

解析 USER_C_MODULES=module1/*.c module2/*.c 可以添加多个模块。上面命令添加了ulab和st7789的c模块,但是只能添加一个micropython.cmake文件。破解

在st7789 和ulab的共同文件夹下创建micropython.cmake

include(${CMAKE_CURRENT_LIST_DIR}/ulab/code/micropython.cmake) include(${CMAKE_CURRENT_LIST_DIR}/st7789_mpy/st7789/micropython.cmake)

#ESP32S2 F4R2 LOLIN
make BOARD=LOLIN_S2_MINI USER_C_MODULES=../../../../micropython.cmake 

ESP32S3 PSRAM

make BOARD=ESP32_GENERIC_S3 clean

make submodules
make BOARD=ESP32_GENERIC_S3 USER_C_MODULES=../../../../micropython.cmake