概述
乐鑫提供的 ESP-IDF 开发框架,让开发者更加轻松的开发自己的项目。了解基于 ESP-IDF 的项目结构,可以帮助我们更加高效的管理项目。项目采用 CMake 和 Ninja 实现项目的构建。CMake:是一套开源跨平台的工具,用来构建,测试封装软件。通过配置文件来控制软件的编译过程。Ninja:用于构建项目。
典型项目结构
项目 myProject
文件夹包含以下内容:
CMakeList.txt:包含了整个项目的构建设置,并且每个项目都有一个顶层 CMakeList.txt;
sdkconfig:项目配置文件,文件中保存了项目中所有组件(包括 ESP-IDF 本身)的配置信息。
components:用户自定义组件文件夹,在里面包含了用户自定义的组件 component1,component2...。组件可以当做实现某些功能的函数库,在项目中对它们进行调用。每个组件又包含了自己的 CMakeList.txt,Kconfig 配置文件,实现功能的.c 源文件以及.h 头文件等。
main:该文件夹是一个特殊的组件,它包含项目本身的源代码
build:文件夹用来存放工程编译过程的中间文件以及最终输出的二进制文件,该文件如果没有,会在项目编译过程中自动生成。
典型 ESP-IDF 项目包含:顶层 CMakeList.txt + sdkconfig 文件 + 自定义组件 components(可以没有)+main 文件夹(可认为是特殊组件)+build 文件夹。
ESP-IDF 框架实际上可以简单的理解为包含了许多官方已经定义好的组件,当用户项目用到了某些系统功能,项目在编译过程中自动将 ESP-IDF 中的对应组件添加到用户项目工程中来,并放置于 manged_components 文件夹下。用到了什么功能就自动添加什么组件,这样让 ESP-IDF 和用户项目实现了分离,可以各自改变升级,互不干扰,各自安好。如下图所示,esp-idf 文件下的每个文件夹当成一个组件。
😐 说了又好像没说