我们要在一款芯片上上开发自己的应用,那么必须要指定怎么在它上面添加自己的应用工程,下面来介绍一些如何在ESP32-C3上开发自己的应用。
1、工程目录结构
esp32-c3
├── esp-idf-release4.3 // ESP官方SDK源码目录
└── mydemo // 自己的程目录
├── CMakeLists.txt
├── components //组件目录(必须命名为components)
│ ├── mode1 // 模块1
│ │ ├── CMakeLists.txt
│ │ ├── m1_src1 // 源码1
│ │ │ ├── m1_src1.c
│ │ │ └── m1_src1.h
│ │ └── m1_src2 // 源码2
│ │ ├── m1_src2.c
│ │ └── m1_src2.h
│ └── mode2 // 模块2
│ ├── CMakeLists.txt
│ ├── m2_src1 // 源码1
│ │ ├── m2_src1.c
│ │ └── m2_src1.h
│ └── m2_src2 // 源码1
│ ├── m2_src2.c
│ └── m2_src2.h
└── main // 工程入口
├── CMakeLists.txt
└── main.c
2、CMakelists.txt 的编写
a、mydemo下的CMakelists.txt 编写
cmake_minimum_required(VERSION 3.5) set(EXCLUDE_COMPONENTS "coap" "asio") include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(mydemo_c3_2M_v1.0.0_07151700)
cmake_minimum_required 设置cmake版本要求
include 包含SDK的工程cmake文件
project 设置工程名称
b、 main目录下的 CMakelists.txt 编写
idf_component_register(SRCS "main.c" INCLUDE_DIRS "." REQUIRES mode1 mode2)
SRCS 设置包含源码文件
INCLUDE_DIRS 设置包含头文件所在目录
REQUIRES 设置依赖组件
c、components/mode*目录下的 CMakelists.txt 编写
idf_component_register( SRC_DIRS m1_src1 m1_src2 INCLUDE_DIRS m1_src1 m1_src2 REQUIRES nvs_flash )
SRC_DIRS 设置包含的源码目录下所有的源码
INCLUDE_DIRS 设置包含头文件目录下的所有头文件
REQUIRES 设置源码所依赖的库
3、SDK安装下载组件
cd esp-idf-release4.3
执行:install.sh
4、编译
切换到 mydemo 目录下
执行:
. ../esp-idf-release4.3/export.sh
idf.py menuconfig
idf.py build
5、下载测试
如果使用的是官方的demo板,则可以直接使用下列命令进行下载调试
idf.py -p /dev/ttyS51 -b 1152000 flash monitor
/dev/ttyS51 为对应的串口名称