前提
该流程默认已搭建好了ESP32-VScode开发框架,并测试无问题。
ESP创建工程
首先打开VScode软件并使用快捷键 CTRL +SHIFT +P 或者 F1 出现 EP-IDF 新建项目 选择该选项创建新项目,之后出现如下界面:
按照上述顺序依次填写内容,最后点击 Choose Template 进入如下界面,并选择 template-app --》Create project… 后则创建示例工程成功。至此一个最简单的工程模板创建完毕。
工程框架
然后在 工程中 main 文件夹中 创建两个夹 APP、 BSP 并在两个文件夹中依次创建 src、 inc 文件夹,此格式是为了工程做到和硬件相关的BSP初始化文件和APP中的应用文件隔离。
Cmake设置
当添加了文件夹和文件后,需要修改对应级别的Cmake文件,否则无法被外界调用。
1、首先是APP文件夹,需要在同级别的地方创建 CmakeLists.txt文件,用于编译时的Cmake链接。同时Cmake文件需要添加如下内容,
idf_component_register(SRCS "./APP.c" //依次在后边添加所有的.c文件名称 格式为 "./APP.c"
INCLUDE_DIRS "."
"./inc" //表示该文件下inc头文件夹
"/BSP./inc" //表示调用的外部头文件夹(必须添加)
)
说明Cmake内容如下:
其中添加**"/BSP./inc"用途为,APP中的文件调用你了BSP**中的文件,所以需要添加该段。否则会报缺失文件。
2、其次是BSP文件夹,操作同上。其CmakeLists.txt中内容如下:
idf_component_register(SRCS "./src/LED.c"//依次在后边添加所有的.c文件名称 格式为 "./LED.c"
INCLUDE_DIRS "." //表示引用上一级的头文件
"./inc"//表示该文件下inc头文件夹
)
3、 然后时mian文件夹下的Cmake文件内容,由于上述创建了两个二级文件,后期,该文件夹下的main.c文件调用上述文件下的函数时,需要调用的路径。则需要在此处添加上述两个文件夹的声明,便于编译链接。其内容如下;
idf_component_register(SRCS "main.c"
"./APP/src/APP.c"
"./BSP/src/LED.c"
"Test1.c" //和main同级别的.c文件被main.c引用,需要添加此
INCLUDE_DIRS "."
"./APP/inc"
"./BSP/inc"
)
4、最后、该工程下还有一个Cmake文件,此文件修改如下:
For more information about build system see
# https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html
# The following five lines of boilerplate have to be in your project's
# CMakeLists in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.5)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
set(EXTRA_COMPONENT_DIRS ./BSP) //添加链接的路径
set(EXTRA_COMPONENT_DIRS ./APP)
project(LED_Show) //工程文件名
至此,该框架搭建完毕,
整体结构如下;