编码规范

  • 板型差异通过 boards/<BOARD>/mpconfigboard.h 与 mpconfigboard.mk 声明,主 Makefile 通过 include $(BOARD_DIR)/mpconfigboard.mk 组合 SDKCONFIG,避免修改核心构建逻辑。

  • 新增 C 层内置模块需在 mpconfigport.h 的 MICROPY_PORT_BUILTIN_MODULES 宏中注册模块名到 mp_obj_module_t 映射,并在 BUILTIN_C 中加入源文件。

  • 驱动源码按功能分目录组织于 drivers/<device>/,并在 Makefile 中以 DRIVERS_SRC_C += $(addprefix drivers/, ...) 方式显式列出参与编译的文件。

  • Python 扩展库统一放置在 file_system/ 下随 VFS 镜像打包,开机脚本 file_system/main.py 通过 from mpython import oled 访问板载资源,保持用户代码与底层实现解耦。

  • 音频子系统采用 Helix 与 libmad 双后端抽象,通过 decoder/helix_mp3_decoder.c 与 decoder/mad_mp3_decoder.c 统一暴露给上层 audio_player.c/url_codec.c。

  • ESP-IDF 组件对象指针(如 mp3 解码结构体)通过 MPYTHON_PORT_ROOT_POINTER 宏声明为全局根指针,确保 GC 能正确追踪这些跨 C/Python 边界的内存。