【ESP32】学习笔记04.工程架构、组件
学习笔记ESP32笔记内容04.工程架构、组件日期2026年3月22日参考视频视频1视频2从25:00开始讲工程架构 目录一、工程架构二、ESP-IDF 的核心组件分层从底层到应用三、一、工程架构your_project/# 工程根目录├── CMakeLists.txt# 工程级构建配置核心├── sdkconfig# 工程配置文件由menuconfig生成├── components/# 自定义组件目录可选│ └── my_component/# 自己写的组件│ ├── CMakeLists.txt# 组件级构建配置│ ├── led.c# 组件源文件│ ├── led.h# 组件头文件│ ├── key.c# 组件源文件│ └── key.h# 组件头文件├── main/# 主程序目录必须│ ├── CMakeLists.txt# 主组件构建配置│ └── main.c# 程序入口app_main函数├── build/# 编译输出目录自动生成└── README.md# 工程说明可选my_component/CMakeLists.txtidf_component_register(SRCSled.ckey.cINCLUDE_DIRS.)二、ESP-IDF 的核心组件分层从底层到应用层级核心组件 / 功能作用硬件抽象层HALhal/ 目录如 esp32/hal/gpio_hal.h直接操作硬件寄存器与芯片型号强绑定为上层提供统一硬件接口驱动层Driverdriver/ 目录如 gpio.h、uart.h基于 HAL 封装提供外设GPIO/UART/SPI/I2C的通用操作 API系统层Systemfreertos/、esp_system/、esp_event/核心FreeRTOS 实时操作系统提供任务管理、内存管理、事件驱动等基础能力中间件层Middlewarewifi/、bt/、mqtt/、http/、nvs_flash/物联网核心能力WiFi/Bluetooth 协议栈、MQTT/HTTP 通信、非易失存储等应用层Application自定义代码main/ 或 components/业务逻辑开发调用上层 API 实现功能–––三、#bsp 文件夹中的 CMakeList.txt #源文件目录set(src_dirs led # 第一个目录 key # 第二个目录)#头文件路径set(include_dirs led #注释 key #注释)#依赖的组件ESP-IDF 内置组件/自定义组件set(requires driver # 外设驱动基础依赖)工程根目录的 CMakeList.txt# 项目根目录的 CMake # 有关构建系统的更多信息请参阅 # https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html # 以下五行样板代码必须包含在您的项目中 # 必须严格按照此顺序编写 CMakeLists以确保 cmake 正常工作 #1.指定 CMake 最低版本ESP-IDF 要求需与 SDK 匹配v5.x 推荐3.24及以上cmake_minimum_required(VERSION3.5)#参照正点原子 #添加额外的组件目录 #set(EXTRA_COMPONENT_DIRS # ${CMAKE_SOURCE_DIR}/components/Middlewares #)#参照正点原子 #关于编译器的设置当发现警告或者错误时带上颜色显示更明显的看见add_compile_options(-fdiagnostics-coloralways)#4.引入 ESP-IDF 的构建脚本核心指令必须有 # 该指令会加载 ESP-IDF 的所有编译规则和组件include($ENV{IDF_PATH}/tools/cmake/project.cmake)#2.设置项目名称和使用的编程语言必须是 C/CXXESP-IDF 核心是 C # PROJECT_NAME 是自定义的项目名比如esp_hello_worldproject(01_Led)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2440128.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!