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. 微信小游戏开发教程-新建项目

    微信小游戏开发教程-新建项目 1. 新建小游戏项目 我们这回使用空项目,不要勾选使用模板创建. 2. 添加小游戏必要文件 项目创建好以后我们发现缺少一些必要的文件,我们手动添加即可: game.jso ...

  2. 微信小程序-申请正式的appid+开通云开发(新建项目之后界面没有云开发按钮)

    微信公众平台 选择小程序模块,前往注册 注册后进入开发设置,生成小程序密钥即可 这样我们就获得了一个正式的appid,当我们使用测试号时,云开发功能是不能使用的,这也是为什么我们在左上角找不到云开发的 ...

  3. [NXOpen] Siemens NX 二次开发 (c#) 安装,配置,新建项目,调试, 调用程序

    1. 软件版本 坐标德国,目前使用的是由学校给学生免费提供的正版Siemens NX 12.0.2,编程软件的版本是Visual Studio 2019 Community 2. 官方文档 因为工作原 ...

  4. 小程序开发(一)新建/拉取项目,配置远程仓库

    一.前期准备工作及工具 1.工具 微信开发者工具.Git 2.准备工作 相关开发工具的安装和配置工作请自行百度 二.新建或拉取远程项目 1.打开微信开发者工具(扫码登录等验证工作自行操作),选择小程序 ...

  5. 【手把手带你Godot游戏开发】新建Godot项目

    宅家期间倾情巨献:真·手把手Godot游戏开发系列教程 Godot Engine 3.2 stable 点击桌面的Godot Engine图标 进入项目管理器界面,如果是初次运行,你的项目列表应该是空 ...

  6. 【Java开发语言 00】环境搭建(配置java环境+‘javac’不是内部或外部命令,也不是可运行的程序+安装idea+idea基本用法+新建项目+在新项目的src路径下新建包和类+基础调试+路径)

    idea入门 1 idea安装 1.1 官方下载地址 2 Java语言环境的搭建 下载JDK 安装 JDK(安装路径不要有中文或者特殊符号如空格等) 配置环境变量(必须是全英文状态下的字符) clas ...

  7. AndroidStudio_从Eclipse到AndroidStudio开发工具_两者使用的区别_通过向导新建项目和引入module---Android原生开发工作笔记68

    在eclipse中开发Android,新建一个工程以后,如果想引用其他的类库,可独立运行模块之类的,需要再创建一个工程,但是 在androidstudio中,一个工程就包含了所有的内容了,它包含了很多 ...

  8. ESP32开发 -- 试玩ESP32

    前文要测试网络调试助手,手头正好有个ESP32一直没有试过.这次正好拿来试玩一下. 一.ESP32官网查看 官网:ESP32官网 这款最小系统开发板搭载了乐鑫最新的系统级芯片 ESP32, 支持 Wi ...

  9. 乐鑫Esp32学习之旅② 巧用eclipes编辑器,官方教程在Windows下搭建esp32开发环境,打印 “Hello World”。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

最新文章

  1. 如何编译和运行C++程序
  2. 50种Matplotlib科研论文绘图合集,含代码实现
  3. OpenCV hdr成像技术的实例(附完整代码)
  4. C++构造函数调用规则
  5. TPYBoard v102 DIY照相机(视频和制作流程)
  6. C语言写个贪吃蛇游戏
  7. swift5 实现录音App
  8. SLAM系统工程,常用数据集下载链接(TUM KITTI DSO Mono EuRoC)
  9. 处理器的用户态和核心态
  10. 如何使用PowerShell创建简单SQL Server数据库登录对话框
  11. javax maven项目缺少_maven冲突解决流程
  12. 测试“测试”的“测试”
  13. Apache for windows虚拟主机配置方案(安全优化)
  14. 配音鸭 是什么 从哪儿进入 如何使用 手把手指南来了
  15. 对西方国家的智能制造研究综述:过去现在和未来
  16. 联想ts250进bios_联想Think TS250完美安装server 2008 R2 | 涂涂小窝
  17. 试验设计(DOE)方法及其关键工具
  18. Mac系统快捷键大全
  19. 《大众创业做电商——淘宝与微店 开店 运营 推广 一册通》一一1.2 创业者应具备的条件与经验...
  20. 好用的轻量级UI控件库

热门文章

  1. 关于电视剧《狂飙》的一点感悟--贵人相助的重要性
  2. Python OpenCV:利用滚动条移动图片,利用鼠标缩放图片
  3. Extending Air
  4. Android获得手机唯一设备ID号
  5. 华强北airpods三代连接安卓手机没声音_安卓手机体验华强北的顶配AirPods,“翻车”还是真香?...
  6. 说说自己工作中的测试流程
  7. 科思创进博会宣布筹建上海新工厂;碧迪医疗进博会签订总值达2.7亿元合作协议 | 美通社头条...
  8. 视频名词浅析——HDR
  9. 一颗专属于她的圣诞树
  10. 13_Pinia组件库