ESP-IDF教程1

ESP-IDF教程1介绍了项目结构,包括概念如项目、项目配置、应用程序和组件。项目配置保存在sdkconfig文件中,应用程序由ESP-IDF构建,组件是模块化代码。ESP-IDF本身和交叉编译工具链不属于项目组成部分。示例项目展示了目录结构,包括Makefile、组件和main目录。每个项目有一个Makefile设置构建参数,组件有自己的Makefile控制构建过程。通过menuconfig可以配置项目和组件的选项。

esp-idf使用教程
概念
项目 特指一个目录,其中包含了构建可执行文件的所有源文件和配置,还有其他的支持型输出文件,比如分区表、数据/文件系统分区和引导程序。

项目配置 保存在项目根目录下名为 sdkconfig 的文件中,它可以通过 make menuconfig 进行修改,且一个项目只能包含一个项目配置。

应用程序 是由 ESP-IDF 构建得到的可执行文件。一个项目通常会构建两个应用程序:项目应用程序(主可执行文件,即用户自定义的固件)和引导程序(启动并初始化项目应用程序的引导程序)。

组件 是模块化的、独立的代码,它们被编译成静态库(.a 文件)后再链接成应用程序,有些组件是 ESP-IDF 官方提供的,有些则可能来自其它项目。

以下内容并不是项目的组成部分:

ESP-IDF 并不是项目的一部分,相反,它是独立的,并通过 IDF_PATH 环境变量链接到项目中,这样做就可以使 IDF 框架与您的项目分离,其中 IDF_PATH 变量保存了 ESP-IDF 目录的路径。

交叉编译工具链并不是项目的组成部分,它应该被安装在系统 PATH 环境变量中,或者可以在项目配置中显式指定工具链的前缀为本地的安装路径。
示例项目
示例项目的目录树结构可能如下所示:

  • myProject/
    - Makefile
    - sdkconfig
    - components/ - component1/ - component.mk
    - Kconfig
    - src1.c
    - component2/ - component.mk
    - Kconfig
    - src1.c
    - include/ - component2.h
    - main/ - src1.c
    - src2.c
    - component.mk

           - build/
    

该示例项目 myProject 包含以下组成部分:

项目顶层 Makefile,该 Makefile 设置了 PROJECT_NAME 变量,还可以定义作用于整个项目的其它 make 变量(可选)。顶层 Makefile 会导入核心 Makefile 文件 $(IDF_PATH)/make/project.mk ,由它负责实现 ESP-IDF 构建系统的剩余部分。

项目配置文件 sdkconfig,执行 make menuconfig 后会创建或更新此文件,该文件中保存了项目中所有组件的配置信息(包括 ESP-IDF 本身)。sdkconfig 文件可能会也可能不会被添加到项目的源代码管理系统中。

可选的组件目录中包含了属于项目一部分的自定义组件,不是每一个项目都需要它,但它有助于构建可重用代码或者导入第三方组件。

main 目录是一个特殊的 伪组件,它包含项目本身的源代码。main 是默认名称,Makefile 变量 COMPONENT_DIRS 默认会导入此组件,但您也可以修改此变量(或者设置 EXTRA_COMPONENT_DIRS )以查找其他位置的组件。

build 目录在项目构建的时候创建或者更新,里面包含有构建生成的临时目标文件和库以及最终输出的二进制文件。此目录通常不会被添加到项目的源代码管理系统中,也不会随着项目源代码被发布。

组件目录中会包含组件自己的 Makefile 文件 component.mk ,里面会定义一些变量来控制该组件的构建过程,以及它与整个项目的集成。更多详细信息请参考 组件 Makefiles。

每个组件还可以包含一个 Kconfig 文件,它用于定义 menuconfig 时展示的组件配置信息的选项规则。某些组件还可能还会包含 Kconfig.projbuild 和 Makefile.projbuild 特殊文件,他们可以用来覆盖项目的部分配置。

项目 Makefiles
每个项目都有一个 Makefile ,它包含整个项目的构建设置。默认情况下,项目 Makefile 可以非常小。

最小 Makefile 示例
PROJECT_NAME := myProject

include $(IDF_PATH)/make/project.mk
必须设置的项目变量
PROJECT_NAME: 项目名称,最终输出的二进制文件也使用该名称,即 myProject.bin,myProject.elf 。

可选的项目变量
以下这些变量都有默认值,用户可以重写这些变量以自定义构建行为。查看 make/project.mk 文件可以获得所有的实现细节。

PROJE

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值