本文章 来自原创专栏《ESP32教学专栏 (基于ESP-IDF)》,讲解如何使用 ESP-IDF 构建 ESP32 程序,发布文章并会持续为已发布文章添加新内容! 每篇文章都经过了精打细磨!
↓↓↓通过下方对话框进入专栏目录页↓↓↓
优快云 请求进入目录 _ O x
是否进入ESP32教学导航(基于ESP-IDF)?
确定
文章目录
1、IDF工程简介
一个 ESP-IDF 项目可以看作是多个不同组件的集合
,例如一个显示当前湿度的网页服务器会包含以下组件
:
-
ESP-IDF 基础库,包括 libc、ROM bindings 等
-
Wi-Fi 驱动
-
TCP/IP 协议栈
-
FreeRTOS 操作系统
-
网页服务器
-
湿度传感器的驱动
-
负责将上述组件整合到一起的主程序
在ESP-IDF借助CMake的可自定义性,独创了“组件”式的工程。
整个工程是由若干个组件构成。可以理解成每个组件都是一块积木。含有用户应用程序入口函数的组件称为“main”组件。组件之间的关系以依赖关系为主。每个组件可以有单独的配置。
ESP-IDF 可以显式地指定和配置每个组件。在构建项目的时候,构建系统会前往 ESP-IDF 目录、项目目录和用户自定义组件目录(可选)中查找所有组件,允许用户通过文本菜单系统配置 ESP-IDF 项目中用到的每个组件。在所有组件配置结束后,构建系统开始编译整个项目。
ESP32工程有如下重要概念:
-
项目 (Project)
特指一个目录,其中包含了构建可执行应用程序所需的全部文件和配置,以及其他支持型文件,例如分区表、数据/文件系统分区和引导程序。 -
项目配置
保存在项目根目录下名为sdkconfig
的文件中,可以通过idf.py menuconfig
进行修改,且一个项目只能包含一个项目配置。 -
应用程序
是由 ESP-IDF 构建得到的可执行文件
。一个项目通常会构建两个应用程序:项目应用程序(可执行的主文件,即用户自定义的固件)和引导程序(启动并初始化项目应用程序)。 -
组件 (Components)
是模块化且独立的代码,会被编译成静态库(.a 文件
)并链接到应用程序。部分组件由 ESP-IDF 官方提供,其他组件则来源于其它开源项目。 -
目标 (Target)
特指运行构建后应用程序的硬件设备。ESP-I