ESP32 esp-idf esp-adf环境安装及.a库创建与编译

2024-07-02 15:04

本文主要是介绍ESP32 esp-idf esp-adf环境安装及.a库创建与编译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

ESP32

功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。

ESP-IDF 官方物联网开发框架。

ESP-ADF 官方音频开发框架。

文档参照

https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index.html#get-started-step-by-step

ESP-IDF

windows建议直接安装exe

https://dl.espressif.cn/dl/esp-idf/?idf=4.4

从上面这个网址,下载offline installer的,一般会有3到4个版本,选择一种就行了,这里是建议往下拉,选择4.4版本,它适配的ESP-ADF版本比较多。
esp-idf windows安装包

exe下载完,直接安装,安装后会在桌面或开始菜单中添加 “ESP-IDF 4.4 CMD”, "ESP-IDF 4.4 PowerShell"的图标,
esp-idf安装后快捷图标

直接点击"ESP-IDF 4.4 CMD"会弹出一个cmd窗口,。

会打印类似这种信息, 它会自动配置好python, git , esp-idf的环境。

Setting PYTHONNOUSERSITE, was not set
Using Python in C:\Espressif\python_env\idf4.4_py3.11_env\Scripts\
Python 3.11.2
Using Git in C:\Espressif\tools\idf-git\2.39.2\cmd\
git version 2.39.2.windows.1
Setting IDF_PATH: C:\Espressif\frameworks\esp-idf-v4.4.6

ESP-ADF

安装完ESP-IDF,接下来安装ESP-ADF, 它属于IDF的扩展,要先安装好IDF,再安装ADF。

ESP-IDF与ESP-ADF有对应关系的,版本要对的上,版本对应信息及开发板对应的SDK可以从这个链接查看

https://github.com/espressif/esp-adf/blob/master/README.md#idf-version

安装git bash

要下载源码,需要先安装git bash

官方下载地址:https://www.git-scm.com/download/

选择for windows版本下载,然后安装。

下载ESP-ADF源码

下载ESP-ADF源码,在windows中,打开git bash,输入以下指令进行下载, 这里指定下载到D:\work\c1\,可以根据需要更改

cd D:\work\c1\
git clone --recursive https://gitee.com/EspressifSystems/esp-adf.git

如果出错了,提示timeout , error之类的, 可能是子模块下载失败了。

可以这样解决, 先进入esp-adf目录

cd esp-adf

然后再执行下面这个指令,如果出错,多执行几次

git submodule update --init --recursive

编译示例代码

打开安装IDF后的"ESP-IDF 4.4 CMD",会进入一个cmd命令窗口,

先进入ESP-ADF的源码目录

d:cd D:\work\c1\esp-adf

执行配置adf环境的指令

export.bat

进入播放sdcard音乐的示例目录

cd examples\player\pipeline\_play\_sdcard\_music

指定主板类型,比如esp32s3

idf.py set-target esp32s3

编译示例代码

idf.py build

编译成功后会生成build\play_sdcard_music.bin

烧录

用usb转串口,连接电脑与设备,假设连接后串口为COM3, 默认的波特率为460800

则烧录指令如下

idf.py -p COM3 -b 460800 flash

ESP-ADF创建.a库

进入ESP-ADF的源码,在example创建generate_static_library路径

创建静态库项目hello_world

generate_static_library目录下创建

components\hello_world

CMakeLists.txt

    idf_component_register(SRCS "hello_world.c"INCLUDE_DIRS "./include")

component.mk文件

    ## "main" pseudo-component makefile.## (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.)

hello_world.c

#include <stdio.h>#include "hello_world.h"void hello_world(void)
{printf("hello world!\n");
}

include\hello_world.h

    #ifndef _HELLO_WORLD_H_#define _HELLO_WORLD_H_#include "string.h"#include "stdio.h"#ifdef __cplusplusextern "C"{#endifvoid hello_world(void);#ifdef __cplusplus}#endif#endif

创建调用hellow_world库的工程

generate_static_library目录下创建

CMakeLists.txt test.c component.mk放main/目录

test.c源码, 调用上面hello_world中的函数

#include <stdio.h>#include "hello_world.h"void app_main(void)
{hello_world();
}

CMakeLists.txt

    idf_component_register(SRCS "test.c"INCLUDE_DIRS ".")

component.mk文件

    ## "main" pseudo-component makefile.## (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.)

generate_static_library目录下创建

CMakeLists.txt

# 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(test)

Makefile

    ## This is a project Makefile. It is assumed the directory this Makefile resides in is a# project subdirectory.#PROJECT_NAME := testinclude $(IDF_PATH)/make/project.mk

编译

电脑中打开"ESP-IDF 4.4 CMD",
cd 进入generate_static_library目录,
编译

idf.py build

会生成test.bin在目录examples\generate_static_library\build中,
libhello_world.a也会生成,在目录generate_static_library\build\esp-idf\hello_world中。
生成的.a库
作者:帅得不敢出门 csdn原创谢绝收录转载

这篇关于ESP32 esp-idf esp-adf环境安装及.a库创建与编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090410

相关文章

Window Server2016 AD域的创建的方法步骤

《WindowServer2016AD域的创建的方法步骤》本文主要介绍了WindowServer2016AD域的创建的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、准备条件二、在ServerA服务器中常见AD域管理器:三、创建AD域,域地址为“test.ly”

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

Python在固定文件夹批量创建固定后缀的文件(方法详解)

《Python在固定文件夹批量创建固定后缀的文件(方法详解)》文章讲述了如何使用Python批量创建后缀为.md的文件夹,生成100个,代码中需要修改的路径、前缀和后缀名,并提供了注意事项和代码示例,... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5.

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

Linux(Centos7)安装Mysql/Redis/MinIO方式

《Linux(Centos7)安装Mysql/Redis/MinIO方式》文章总结:介绍了如何安装MySQL和Redis,以及如何配置它们为开机自启,还详细讲解了如何安装MinIO,包括配置Syste... 目录安装mysql安装Redis安装MinIO总结安装Mysql安装Redis搜索Red