代码框架结构
目录简介
目录 | 子目录 | 子目录2 | 子目录3 | 内容梗概 |
---|---|---|---|---|
assets | 资源文件 | |||
projects | 工程文件, 每个文件夹一个工程 | |||
tools | 工具 | |||
components | ┐ | 组件 | ||
└-boards | 板级代码 | |||
└-drivers | 驱动 | |||
└-micropython | ┐ | micropython 相关代码 | ||
└-core | micropython 源码 | |||
└-port | ┐ | maixpy 自定义部分源码 | ||
└-builtin_py | maixpy 默认内置类 | |||
└-include | 移植部分头文件 | |||
└-src | 功能模块源码 | |||
└-spiffs | SPIFFS 文件系统 | |||
└-utils | 工具类(函数) |
现在的代码因为历史遗留原因在
components/micropython/port/src
目录下代码结构不是很好,以后的代码尽量按照现在的框架做到层次分明
添加代码
工程使用 CMake
进行组织, 并且工程支持多个可配置选项(Kconfig
)
- 如果不添加文件夹和配置项,可以在现有的文件夹内添加文件编译即可
- 如果需要添加模块,可以修改
CMakeLists.txt
来添加内容, 可以参考内容更少的c_cpp_project_framework - 如果需要添加配置项, 可以通过修改
Kconfig
文件来达到目的,所有配置项在编译时会生成宏定义添加到global_config.h
(生成的文件)中去, 而且在CmakeLists.txt
文件中都可以使用该宏定义。
比如在 Kconfig 中定义
config BOARD_M5STICK
, 在 CMakeLists.txt 中可以通过判断CONFIG_BOARD_M5STICK 是否为真来决定是否编译特定的代码。 编译时就可以通过python3 project.py menuconfig
来选择是否勾选了