架构设计
本模块是 MicroPython 在 ESP32 上的 port,以 Makefile 为构建入口,通过 BOARD=mpython|labplus-experiment-box-2024|labplus_1956|... 选择板型,每个板型目录含 main.c、mpconfigboard.h、mpconfigboard.mk 及可选 modules/。
内部分层清晰:
mpconfigport.h集中定义 MicroPython 编译开关(VFS、BLE、uSSL、machine 系列等),并通过MICROPY_PORT_BUILTIN_MODULES宏注册 C 层内置模块;qstrdefsport.h管理 qstr。builtins/存放编译进固件的 C 扩展(modmachine.c、modmusic.c、modcodec.c、modrfid.c、esp32_nvs.c等),通过BUILTIN_C变量加入链接,暴露machine、music、audio、radio、NVS等 Python 接口。drivers/提供底层外设驱动:codec/(Helix MP3 + libmad + ES8388 音频编解码)、mpu6050/(Invensense eMPL/DMP 姿态解算)、rgbLED5x5/(5×5 RGB 点阵图形库)、rfid/mfrc522、startup/(OLED 启动画面、I2C master)。file_system/作为 VFS 根文件系统镜像内容,由make_lfs.py打包成 LFS2 镜像,main.py为开机脚本,lib/、modules/下为运行时加载的 Python 扩展(siot、yeelight、xunfei、smartcamera、microbit、blynklib 等第三方集成)。boards/下各板型通过mpconfigboard.mk叠加sdkconfig.base、sdkconfig.ble、sdkconfig.spiram等片段配置 IDF Kconfig,并可选择性包含自身modules/中的 Python 包(如mpython/modules/mpython/educore、v81、k210)。依赖方向自顶向下:
boards/*→builtins/*→drivers/*→ ESP-IDF components;Python 层仅通过import调用 C 暴露的模块或同层.py文件,不反向依赖 C。构建产物经
release.py合并 bootloader.bin、partitions.bin、application.bin、vfs.bin 生成完整固件镜像,deploy目标通过 esptool 烧录至 0x1000 偏移。