【ESP32】ESP-IDF构建系统

参考https://docs.espressif.com/projects/esp-idf/zh_CN/v4.2/esp32/api-guides/build-system.html

概述

ESP-IDF 可以显式地指定和配置每个组件。在构建项目的时候,构建系统会前往 ESP-IDF 目录、项目目录和用户自定义目录(可选)中查找所有组件,允许用户通过文本菜单系统配置 ESP-IDF 项目中用到的每个组件。在所有组件配置结束后,构建系统开始编译整个项目。

构建需要知道的概念

项目:包含构建可执行应用程序所需的全部文件和配置,以及其他支持型文件(分区表、数据/文件系统分区和引导程序)的目录。
项目配置:项目目录下的sdkconfig
应用程序:可执行文件,包括固件和引导程序
组件:独立的模块,被编译成.a静态库,链接到应用程序。
目标:硬件平台,如esp32

构建工具

idf.py menuconfig:配置项目
idf.py build:构建当前目录找到的项目,增量式构建,没有修改过的文件不需要再次编译
idf.py clean:清理构建目录, 不删除CMake配置输出和其它文件
idf.py fullclean:清理构建目录,包括CMake配置和其它文件
idf.py flash:下载程序到ESP32
idf.py monitor:打开串口监视器
idf.py -p PORT erase_flash:擦除整个esp32的flash
idf.py reconfigure:重新运行CMake,用在源码树增加/删除文件或修改CMake cache时
可以一次使用多条命令,如:

idf.py -p COM4 clean flash monitor

示例项目

示例项目的结构如下:

 - myProject/
             - CMakeLists.txt
             - sdkconfig
             - components/ - component1/ - CMakeLists.txt
                                         - Kconfig
                                         - src1.c
                           - component2/ - CMakeLists.txt
                                         - Kconfig
                                         - src1.c
                                         - include/ - component2.h
             - main/       - src1.c
                           - src2.c
             - build/
  • 顶层CMakeList.txt设置全局的CMake变量,会导入/tools/cmake/project.cmake,此后的构建由它完成。
  • sdkconfig:项目配置文件
  • 组件:独立的模块,添加到CMake 变量 COMPONENT_DIRS中,可以在顶层 CMakeLists.txt 中设置 EXTRA_COMPONENT_DIRS 变量以查找其他指定位置处的组件,每个组件有一个CMakeList.txt文件,含有控制构建过程的变量。

猜你喜欢

转载自blog.csdn.net/weixin_43810563/article/details/121425277