ESP32: Creación de proyectos y análisis de estructura de proyectos

1. Creación de proyectos

Método 1: Crear basado en ejemplos de IDF
Hay una biblioteca de ejemplos de ejemplo en ESP-IDF, use uno de los ejemplos como plantilla para crear un proyecto.

1. Abra la vista de la biblioteca de ejemplos
- panel de comandos (también puede mantener presionadas las teclas Ctrl+Shift+P o F1)
inserte la descripción de la imagen aquí
e ingrese mostrar ejemplos de proyectos

inserte la descripción de la imagen aquí
2. Use el ejemplo hello_word como plantilla para crear un proyecto
inserte la descripción de la imagen aquí
Método 2: Cree un proyecto directamente

Nota: Crear un proyecto directamente en una carpeta

1. Abre una carpeta con Vscode

Archivo: abra la carpeta, aquí hemos seleccionado la carpeta "prueba" donde ponemos el ejemplo ahora mismo
inserte la descripción de la imagen aquí
2. Comience a crear

Ver - Paleta de comandos (también puede mantener presionadas las teclas Ctrl+Shift+P o F1)

Ingrese Crear proyecto a partir de una plantilla de extensión para crear una plantilla de proyecto 
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
Elemento 1: coloque el proyecto en la carpeta de prueba actual. Segundo elemento: seleccione otra carpeta para colocar el elemento.

Seleccione "template-app"
inserte la descripción de la imagen aquí
2. Estructura del proyecto
inserte la descripción de la imagen aquí
Este es el proyecto más básico de hello-world. Un proyecto contiene muchos archivos y directorios.

Directorio .vscode:

Este directorio se utiliza para almacenar contenido de configuración, como:

settingg.json: se utiliza para controlar la configuración de muchos elementos de trabajo. Tales como: configuración del espacio de trabajo, configuración de formato de código, configuración de complementos.

task.json: un módulo para asistir en la compilación de programas. Solo necesitamos operar en la interfaz gráfica para generar archivos ejecutables y realizar operaciones similares a ingresar el comando "gcc hello.c -o hello" en la línea de comandos en su nombre.

launch.json: archivo de configuración para la depuración, como especificar la configuración regional de depuración, especificar el tipo de depuración, etc.

c_cpp_properties.json: se usa para configurar el entorno del compilador, incluido el código de inicio, la cantidad de bits (estos son personalizados), las opciones de compilación, la configuración de inicio, el modo de compilación, etc.

directorio de compilación:

Este directorio se utiliza para almacenar el resultado de la compilación. Si no existe dicho directorio, idf.py se creará automáticamente al compilar. Después de que CMake configure el proyecto, se generarán archivos temporales en este directorio. Este directorio generalmente no se agrega al sistema de control de código fuente del proyecto, ni se distribuye con el código fuente del proyecto.

directorio principal:

Este directorio contiene el código fuente del propio proyecto, y main es un nombre predeterminado, es decir, el directorio principal.

CMakelists.txt

Este archivo establece las variables globales del proyecto, y el CMakelists.txt general se divide en capas de nivel superior y otras. El CMakelists.txt de nivel superior importa el archivo esp-idf/tools/cmake/project.cmake, que implementa el resto del sistema de compilación. El archivo termina con el establecimiento del nombre del proyecto y define el proyecto. En pocas palabras, es el archivo de configuración de CMake. Es muy importante especificar las reglas desde el código fuente hasta el archivo de destino. Se puede decir que donde hay código, está él.

Makefile

(Debido a que CMake se usa para compilar, no es necesario usar Makefile aquí, se puede eliminar)

La herramienta makefile se utiliza para automatizar la compilación. Incluyendo: si solo se modifican unos pocos archivos de origen, solo se volverán a compilar estos pocos archivos de origen; si se modifica un determinado archivo de encabezado, se volverán a compilar todos los archivos de origen que contengan el archivo de encabezado. Aprovechar esta compilación automática simplifica enormemente el desarrollo y evita recompilaciones innecesarias.

sdkconfig

Al compilar con CMake, la información de configuración del proyecto se carga desde el archivo sdkconfig para generar archivos sdkconfig.cmake y sdkconfig.h, que se usan para definir elementos de configuración en CMake y C/C++ respectivamente. Si la configuración del proyecto cambia, CMake se volverá a ejecutar automáticamente, regenerará los dos archivos anteriores y luego volverá a configurar el proyecto. Los elementos de configuración se pueden modificar a través de idf.py menuconfig.

LÉAME.md

Descripción del proyecto, documento de descuento. Además de los directorios mencionados anteriormente, algunos archivos se crean más tarde, pero se usan con frecuencia.

componente

El directorio contiene algunos componentes personalizados del proyecto. No todos los proyectos necesitan tales componentes personalizados, pero ayuda a crear código reutilizable o importar componentes de terceros (que no forman parte de ESP-IDF). El componente más básico contiene un archivo .c y el archivo .h correspondiente, y un CMakelists.txt.

inserte la descripción de la imagen aquí
Ejemplo, CMakelists.txt

Después de la versión 4.0, esp-idf usa cmake para construir proyectos.En proyectos generales, cmake se divide en la capa más externa (capa superior) y la capa interna (otras capas). Analicemos brevemente el código en cmake con cmake en nuestro proyecto mínimo helloworld.

Abra el directorio raíz del proyecto para compilar el script CMakeLists.txt, puede ver la declaración que marqué en azul en la figura a continuación, donde IDF_PATH es la ruta de instalación de ESP-IDF en esta máquina, por ejemplo, mi ruta de instalación es así : "IDF_PATH": "E:/Espressif/esp-idf".

Análisis más externo
inserte la descripción de la imagen aquí
En cmake, el signo de libra # significa un comentario, lo que equivale a // en lenguaje C.

cmake_minimum_required se refiere a la versión mínima requerida por cmake, lo que indica que la versión cmake requiere 3.5

include significa que se necesita importar un archivo cmake en esp-idf.La función de este archivo es poner todas las bibliotecas en esp-idf en nuestro proyecto.Solo de esta manera podemos llamar a las funciones en la biblioteca esp-idf en el proyecto

proyecto Aquí está el nombre del proyecto, este nombre puede ser elegido por usted mismo

El CMakelists.txt más externo generalmente no necesita ser modificado

Análisis de capa interna
inserte la descripción de la imagen aquí
idf_component_register Esta función es del archivo importado de la capa externa, usamos esta función para agregar nuestros propios archivos al proyecto.

SRCS es para agregar el archivo .c, e INCLUDE_DIRS se usa para agregar la carpeta donde se encuentra el archivo .h.Aquí, agregue .para indicar su propia ruta.

Dado que la modificación del nombre del archivo .c en el proyecto debe modificarse sincrónicamente en cmakelists.txt, usamos directamente la función de archivo para enumerar todos los archivos .c en nuestra propia ruta y asignarlos a la variable SOURCES, y los introducimos en SRCS, para que podamos guardar Vaya a los pasos para modificar el nombre .c en cmakelists.txt.

Plantilla universal CMakelists.txt

Capa más externa:
cmake_minimum_required (VERSIÓN 3.5)

include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(project_name)
其他层:
file(GLOB_RECURSE SOURCES *.c)
idf_component_register(SRCS ${SOURCES}
INCLUDE_DIRS “.”)

Supongo que te gusta

Origin blog.csdn.net/qizhi321123/article/details/130880121
Recomendado
Clasificación