使用ESP-IDF开发时,项目特指一个目录,其中包含了构建可执行应用程序所需的全部文件和配置,以及其他支持型文件,例如分区表、数据/文件系统分区和引导程序。

本文主要讲解esp32中Espressif目录以及Espressif\frameworks\esp-idf-v4.3.2目录的文件结构。

一、esp32项目结构

Espressif\python_env:环境变量

环境变量的作用:设置后可以在其他命令窗口中使用该软件的命令脚本
                注意:1 配置或删除环境变量后,执行命令脚本的客户端工具要关掉,重新打开,否则                               命令脚本不起作用;
                          2 如果不配置环境变量,那么执行命令脚本时就需要把该程序的运行文件.exe文                               件,放到需要执行命令脚本的同意目录下才可以;

里面的文件内容:
          include:C head源文件等
          Lib:C head源文件、python源文件、PYC文件等
          Scripts:主要是应用程序

Espressif\frameworks\esp-idf-v4.3.2\.git:

git的定义:开源的分布式版本控制系统
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
配置git环境:git config --global
参数讲解:
config:参数是用来配置git环境的
--global:长命令表示配置整个git环境

初次使用git需要设置你的用户名以及邮箱,这将作为当前机器git的标识,如果你用它来下载远程仓库一些需要登录权限的仓库会要求登录,
git默认使用配置邮箱以及用户名登入,但会要求你手动输入密码

用户名配置
user代表用户,.name代表配置用户的名称
git config --global user.name "你的用户名"

邮箱配置
user代表用户,.email代表配置用户的邮箱
git config --global user.email "你的邮箱"
不配置也行,当遇到要求登录权限的远程仓库会让你在手动输入用户名、邮箱、以及密码

集中式与分布式的区别
除了git还有svn、cvs这样的版本控制系统,它们的区别在于一个是分布式一个是集中式

集中式就是svn和csv这样的版本控制系统,分布式是git

区别在于集中式的版本控制系统每次在写代码时都需要从服务器中拉取一份下来,并且如果服务器丢失了,那么所有的就都丢失了,你本机客户端仅保存当前的版本信息,换句话说,集中式就是把代码放在一个服务器上集中管理,你的所有回滚等操作都需要服务器的支持。

分布式的区别在于,每个人的电脑都是服务器,当你从主仓库拉取一份代码下来后,你的电脑就是服务器,无需担心主仓库被删或者找不到的情况,你可以自由在本地回滚,提交,当你想把自己的代码提交到主仓库时,只需要合并推送到主仓库就可以了,同时你可以把自己的代码新建一份仓库分享给其它人。

像集中式它们都有一个主版本号,所有的版本迭代都以这个版本号为主,而分布式因为每个客户端都是服务器,git没有固定的版本号,但是有一个由哈希算法算出的id,用来回滚用的,同时也有一个master仓库,这个仓库是一切分支仓库的主仓库,我们可以推送提交到master并合并到主仓库上,主仓库的版本号会迭代一次,我们客户端上的git版本号无论迭代多少次,都跟master无关,只有合并时,master才会迭代一次。

Espressif\frameworks\esp-idf-v4.3.2\.GitHub: 通过 Git 进行 版本控制 的软件 源代码 托管服务平台

基本功能:作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。
如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
GitHub可以托管各种git库,并提供一个web界面,但它与外国的SourceForge、Google Code或中国的coding的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
在GitHub进行分支就像在Myspace(或Facebook)进行交友一样,在社会关系图的节点中不断的连线。
GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。
通过与客户的接洽,开发FamSpam,甚至是开发GitHub本身,GitHub的私有库已经被证明了物有所值。任何希望节省时间并希望和团队其它成员一样远离页面频繁转换之苦的人士都会从GitHub中获得他们真正想要的价值。
在GitHub,用户可以十分轻易地找到海量的开源代码。

Espressif\frameworks\esp-idf-v4.3.2\.gitlab:用于仓库管理系统的开源项目
含义:GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
应用特点:1.Web框架使用RubyonRails。
                 2.基于MIT代码发布协议。
                 3.需要gitolite协同工作。

Espressif\frameworks\esp-idf-v4.3.2\components

组件(components)是ESP-IDF的核心,它将各项功能组件化,方便项目管理

ESP-IDF使用CMake、ninja和python作为工程构建工具,支持用户自定义组件。在ESP-IDF中,自定义组件主要由如下几种文件组成:
CMakeLists.txt文件:必要,用于组件代码组织
component.mk文件:必须,用于指定组件代码如何编译,比如定义编译参数等
Kconfig文件:非必要,用于可视化配置组件

二、分区表的修改

目录:Espressif\frameworks\esp-idf-v4.3.2\components\partition_table.\partitions_singleapp

打开xls工作表之后将右下角原有的1M改成3M就行了

三、flash大小的修改

打开vscode,然后打开文件夹:Espressif\frameworks\esp-idf-v4.3.2\examples\get-started\hello_world

之后左边选择main.hello_world.main.c,再点击下面勾选的按键

然后会来到这个界面

之后在右侧往下翻找到flash并将flash size的大小改为4m并保存,这样就修改完成了

显示屏程序是英文带一个字体库,字体库存了常用汉字的字体数据,而字体库大概有1M大小,因此flash大小和分区表必须得改。

下面是一些其他的项目结构的释义

项目                                                    备注
SDK tool configuration            配置SDK 开发工具链的信息,一般未编译自己工具链时不用修改
Bootloader config                    配置BootLoader 启动时的日志打印级别
Serial flasher config                配置串口下载时使用的端口、波特率、Flash 模式、Flash 频率、                                                      是否压缩上传等
Partition Table                         配置分区信息,可选择默认分区配置或自定义分区配置
Component config组件           配置 包含ESP32的特殊配置、WiFi配置、BLE配置、FreeRTOS配                                                   置、LWIP配置、日志配置、SPI配置、用户程序自定义配置等

esp32项目结构及分区表、flash大小的修改相关推荐

  1. ESP32分区表,flash大小修改

    分区表: 用Excel表格打开分区表文件partitions_singleapp.csv 例如我的路径E:\Espressif\frameworks\esp-idf-v4.3.2\components ...

  2. ESP32学习四-自定义分区表

    1.简介 ESP32-WROOM-32集成了4MB SPI FLASH.对应的,也会对这4MB FLAHS进行分区处理.在编译esp32程序时,通过make menuconfig -> Part ...

  3. 【esp32学习之路6——flash加密】

    在esp-idf中复制出(/esp/esp-idf/examples/security/flash_encryption)demo文件,详细加密描述参考乐鑫文档Flash加密 一.开发模式 在开发过程 ...

  4. ASP.NET Core 2.0 : 三. 项目结构

    ASP.NET Core 2.0 : 三. 项目结构 原文:ASP.NET Core 2.0 : 三. 项目结构 本章我们一起来对比着ASP.NET Framework版本看一下ASP.NET Cor ...

  5. EDP项目结构规范心得

    本文结合最近心得,希望对项目结构方面知识进行归纳,包括两部分 一.目录结构的说明 二.目录结构标准规范(以百度efe团队为例) 下面切入正题: 一.项目目录结构说明: 项目结构具体说明: 1.src目 ...

  6. openjdk8 项目结构_OpenJDK织机和结构化并发

    openjdk8 项目结构 Project Loom是Hotspot Group赞助的项目之一,旨在向JAVA世界提供高吞吐量和轻量级的并发模型. 在撰写本文时,Loom项目仍在积极开发中,其API可 ...

  7. elctron项目_electron项目结构介绍

    #项目结构 my-project ├─ .electron-vue(webpack配置文件)│  └─ build.js(生产环境构建代码) │  └─ dev-client.js(热加载相关) │  ...

  8. apache geode项目结构_使用IntelliJ IDEA+Maven 创建、开发、管理项目

    前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考. 来源:http://1t.click/ag4d # 前言 本篇开发环境 1.操作系统:Windows 10 X642.Java SDK: ...

  9. 快速上手Flask(一) 认识框架Flask、项目结构、开发环境

    文章目录 快速上手Flask(一) 认识框架Flask.项目结构.开发环境 Web开发轻量级框架Flask Flash历史和团队 Pallets 项目 flask运行过程 使用flask的场景 使用P ...

最新文章

  1. 浅谈CruiseControl的部署
  2. 优秀程序员的秘密|宝贵经验分享
  3. [spring mvc]Hello World入门
  4. 2014-07-28 使用Axure RP进行手机端BBS的原型设计
  5. ruby推送示例_Ruby for循环示例
  6. printdocument python_python学习笔记之wxpython打印预览
  7. 10个Python面试常问的问题
  8. 【OpenCV】重映射及仿射变换
  9. python第一个公开发行版_python之基础篇(一)
  10. C++ concurrent_queue::try_pop 方法
  11. 红米6 Pro开启ROOT权限的教程
  12. java bs和cs_BS与CS的区别和联系
  13. Unity 粒子系统参数一
  14. End-to-End Object Detection with Fully Convolutional Network
  15. Windows10系统Qt调试ffmpeg.c
  16. 从零开始学数据分析之——《线性代数》第四章 线性方程组
  17. 颓废的人怎样振奋精神_5个令人振奋的行业,从事数据科学家在科技行业以外的工作...
  18. source_ids += [tokenizer.unk_token_id for x in dfg]
  19. Long monitor contention with owner
  20. 【Java位运算】n1和n>>1含义

热门文章

  1. SPSS均值比较和T检验【004期】
  2. ARCore深度渲染问题分析
  3. ARCore之路:解决 ARCore Install Preview 即时预览APP 中弹出 The device does not support AR
  4. 2022年化工自动化控制仪表考试题库及在线模拟考试
  5. Ubuntu 18.04搭建NFS服务器
  6. 2、如何从ST官网获取标准库及相关芯片资料
  7. Git第一次提交代码到远程仓库流程
  8. 柠檬云登录时显示服务器异常,柠檬云总显示与服务器连接异常
  9. 三星手机能支持鸿蒙系统吗,如果三大运营商的定制机都要求鸿蒙系统,苹果三星会安装使用吗?...
  10. FL Studio 音乐制作编曲软件