ESP32开发2——新建项目
ESP32开发2——新建项目
由于之前都是使用keil这种IDE进行开发,很多步骤如创建工程、编译都可以在IDE内完成。因此进行ESP32开发首先要了解它项目的文件结构与编译方式,能够创建一个项目,这样才能进入后续的开发学习。
ESP-IDF框架文件结构
未经编译的项目
在这以例程中的Sample project为例进行展开。
首先在官方例程中找到它 路径:__./esp-idf/examples/get-started/sample_project
可以看到它的文件结构
├──sample_project├── main│ ├── CMakeLists.txt│ ├── component.mk│ └── main.c├── CMakeLists.txt├── Makefile└── README.md
(上述的文件结构中 _CMakelists.txt,Makefile,component.mk_都是编译文件,由此我们也可以看出其实它支持两种编译方式 CMkake和GNU Make。我们通常使用CMake因此只需要关注_CMakelists.txt_文件即可。)
它的文件结构还是较为简单的,顶层文件夹_sample_project_中包含一个mian文件夹(又称为组件)及顶层编译文件CMakelists.txt,而在_main_文件夹中为源代码main.c及组件的编译文件CMakelists.txt 。
- mian文件夹:这个文件夹下主要用于存放源文件,也可以将其成为main组件。main是默认名称,在CMake默认包含此组件。若修改文件名称需要同步更改相应CMake变量
- 顶层CMakelists.txt:包含整个项目的构建设置,包括CMake版本、文件索引等信息
- 源代码main.c:项目的源代码,名称可以任意但同样的若改变文件名需要在组件CMakelists.txt中同步更改
- 组件CMakelists.txt:源文件与相应库链接
编译后项目
项目经过编译后会增加一些文件,文件结构也会有所不同
├──sample_project├── build│ ├── bootloader│ └── ...├── main│ ├── CMakeLists.txt│ ├── component.mk│ └── main.c├── CMakeLists.txt├── Makefile├── README.md └── sdkconfig
相较于未编译的文件,编译后多了build文件夹及sdkconfig文件,这些都是自动创建的无需开发者操作。
- build文件夹:为经过编译器编译后产生的编译文件包括临时目标文件、库文件以及最终输出的二进制文件
- sdkconfig:此文件为项目配置文件,保存项目的配置信息,执行idf,py menuconfig可更新此文件
新建项目
新建项目可以直接使用idf.py creat_project name指令进行创建
不过为了方便我们直接使用现成的项目复制,再对其进行修改。这里以上述的sample_project项目为例。
文件结构如下
├──sample_project├── BSP│ ├── inc│ └── src├── main│ ├── CMakeLists.txt│ └── main.c├── CMakeLists.txt└── README.md
文件结构如图
其中BSP文件夹下存放模块化的驱动文件
首先对顶层CMakelists.txt文件进行编辑
# 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)
project(sample_project)
主要注意最下面的**project(sample_project)**这个用于指定项目名称,因此当文件夹名称改变时也要对此进行编辑
接着对mian文件夹下的CMakelists.txt文件进行编辑
set(my_inc "main.c" "../BSP/src/led.c" )#源文件索引idf_component_register(SRCS "${my_inc}" #源文件列表INCLUDE_DIRS "." #头文件目录"../BSP/inc")
该文件用于设置需要编译的文件,所有引用的源文件都要包含进。由于驱动文件都放置于上级目录下的BSP文件下 因此需要开头加上“…/”表面上一级目录下。
这样一个基础的项目就创建完毕了,之后就可以直接复制该项目进行操作,只要根据实际情况更改两个CMlists.txt文件即可。
ESP32开发2——新建项目相关推荐
- 微信小游戏开发教程-新建项目
微信小游戏开发教程-新建项目 1. 新建小游戏项目 我们这回使用空项目,不要勾选使用模板创建. 2. 添加小游戏必要文件 项目创建好以后我们发现缺少一些必要的文件,我们手动添加即可: game.jso ...
- 微信小程序-申请正式的appid+开通云开发(新建项目之后界面没有云开发按钮)
微信公众平台 选择小程序模块,前往注册 注册后进入开发设置,生成小程序密钥即可 这样我们就获得了一个正式的appid,当我们使用测试号时,云开发功能是不能使用的,这也是为什么我们在左上角找不到云开发的 ...
- [NXOpen] Siemens NX 二次开发 (c#) 安装,配置,新建项目,调试, 调用程序
1. 软件版本 坐标德国,目前使用的是由学校给学生免费提供的正版Siemens NX 12.0.2,编程软件的版本是Visual Studio 2019 Community 2. 官方文档 因为工作原 ...
- 小程序开发(一)新建/拉取项目,配置远程仓库
一.前期准备工作及工具 1.工具 微信开发者工具.Git 2.准备工作 相关开发工具的安装和配置工作请自行百度 二.新建或拉取远程项目 1.打开微信开发者工具(扫码登录等验证工作自行操作),选择小程序 ...
- 【手把手带你Godot游戏开发】新建Godot项目
宅家期间倾情巨献:真·手把手Godot游戏开发系列教程 Godot Engine 3.2 stable 点击桌面的Godot Engine图标 进入项目管理器界面,如果是初次运行,你的项目列表应该是空 ...
- 【Java开发语言 00】环境搭建(配置java环境+‘javac’不是内部或外部命令,也不是可运行的程序+安装idea+idea基本用法+新建项目+在新项目的src路径下新建包和类+基础调试+路径)
idea入门 1 idea安装 1.1 官方下载地址 2 Java语言环境的搭建 下载JDK 安装 JDK(安装路径不要有中文或者特殊符号如空格等) 配置环境变量(必须是全英文状态下的字符) clas ...
- AndroidStudio_从Eclipse到AndroidStudio开发工具_两者使用的区别_通过向导新建项目和引入module---Android原生开发工作笔记68
在eclipse中开发Android,新建一个工程以后,如果想引用其他的类库,可独立运行模块之类的,需要再创建一个工程,但是 在androidstudio中,一个工程就包含了所有的内容了,它包含了很多 ...
- ESP32开发 -- 试玩ESP32
前文要测试网络调试助手,手头正好有个ESP32一直没有试过.这次正好拿来试玩一下. 一.ESP32官网查看 官网:ESP32官网 这款最小系统开发板搭载了乐鑫最新的系统级芯片 ESP32, 支持 Wi ...
- 乐鑫Esp32学习之旅② 巧用eclipes编辑器,官方教程在Windows下搭建esp32开发环境,打印 “Hello World”。
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...
最新文章
- 如何编译和运行C++程序
- 50种Matplotlib科研论文绘图合集,含代码实现
- OpenCV hdr成像技术的实例(附完整代码)
- C++构造函数调用规则
- TPYBoard v102 DIY照相机(视频和制作流程)
- C语言写个贪吃蛇游戏
- swift5 实现录音App
- SLAM系统工程,常用数据集下载链接(TUM KITTI DSO Mono EuRoC)
- 处理器的用户态和核心态
- 如何使用PowerShell创建简单SQL Server数据库登录对话框
- javax maven项目缺少_maven冲突解决流程
- 测试“测试”的“测试”
- Apache for windows虚拟主机配置方案(安全优化)
- 配音鸭 是什么 从哪儿进入 如何使用 手把手指南来了
- 对西方国家的智能制造研究综述:过去现在和未来
- 联想ts250进bios_联想Think TS250完美安装server 2008 R2 | 涂涂小窝
- 试验设计(DOE)方法及其关键工具
- Mac系统快捷键大全
- 《大众创业做电商——淘宝与微店 开店 运营 推广 一册通》一一1.2 创业者应具备的条件与经验...
- 好用的轻量级UI控件库
热门文章
- 关于电视剧《狂飙》的一点感悟--贵人相助的重要性
- Python OpenCV:利用滚动条移动图片,利用鼠标缩放图片
- Extending Air
- Android获得手机唯一设备ID号
- 华强北airpods三代连接安卓手机没声音_安卓手机体验华强北的顶配AirPods,“翻车”还是真香?...
- 说说自己工作中的测试流程
- 科思创进博会宣布筹建上海新工厂;碧迪医疗进博会签订总值达2.7亿元合作协议 | 美通社头条...
- 视频名词浅析——HDR
- 一颗专属于她的圣诞树
- 13_Pinia组件库