搭建ESP32A1S的ADF开发环境

文章目录

  • 搭建ESP32A1S的ADF开发环境
  • 一,获取IDF和IDF-TOOL
  • 二,安装ADF
  • 三,适配ADF到ESP32A1S
  • 四,使用asr语音识别例程

一,获取IDF和IDF-TOOL

adf是乐鑫的音频开发框架,里面有许多乐鑫的音频开发API,同时ADF是基于IDF的。
这一部分可以按照官网的教程一步一步来。
官网教程地址:ADF安装指南
首先下载esp-idf,如果是第一次使用idf,可以在官网下载一个idf工具安装器,通过这个安装器直接安装idf,同时还可以安装编译工具链。下载的速度也还可以接受。大概三十分钟就可以搞定。

本安装器可为您安装所需的交叉编译器、OpenOCD、cmake 和 Ninja 编译工具,以及一款 mconf-idf 配置工具。此外,本安装器还可在有需要时下载、运行 Python 3.7 和 Git For Windows 的安装器。本安装器还可用于下载任意 ESP-IDF 发布版本。

下载完安装器后直接运行如下(安装器运行时需要python3和git的支持):


选择要安装的idf的3.3版本,记住路径不要有空格。使用ADF开发时最好用3.3的idf,比较稳定不会出错

接下来是选择idf-tool的安装路径:

等个半小时左右安装完成。测试工具链能不能正常工作。我们的桌面会生成这一个cmd
双击运行后它会自动为我们设置idf_path等编译需要的环境变量,我们直接cd到idf里examples里一个工程,例如:
D:\ESP\idf3.3\examples\get-started\hello_world
然后执行idf.py build
如果编译成功的话就说明编译工具和idf安装成功。

二,安装ADF

乐鑫把ADF放在了github,仓库地址是:https://github.com/espressif/esp-adf;
这是一个带子模块的仓库,如何加速下载请参考博客提升github下载速度里带子模块的下载。
步骤:创建ESP文件夹,然后cmd,执行以下命令克隆仓库:

git clone https://gitclone.com/github.com/espressif/esp-adf.git

等待clone完成后,再打开esp-adf目录下的.gitmodules文件,可以看到该目录下有三个子模块仓库:
idf模块,esp-adf-libs模块:adf音频库,esp-sr:识别语音库

esp-adf-libs目录下执行:

git clone https://gitclone.com/github.com/espressif/esp-adf-libs

esp-sr目录下执行:

git clone https://gitclone.com/github.com/espressif/esp-sr.git

esp-idf目录下执行:

git clone https://gitclone.com/github.com/espressif/esp-idf

以上仓库下载完成后,修改adf目录下.gitmodules的内容如下:

[submodule "esp-idf"]path = esp-idfurl = https://gitclone.com/github.com/espressif/esp-idf
[submodule "components/esp-adf-libs"]path = components/esp-adf-libsurl = https://gitclone.com/github.com/espressif/esp-adf-libs
[submodule "components/esp-sr"]path = components/esp-srurl = https://gitclone.com/github.com/espressif/esp-sr.git

当两个仓库下载完成后 在adf目录下cmd执行git submodule update --init这一步将两个子模块切换到当前ADF要求的版本。至此ADF已经完成安装,这时要测试一下ADF是否能编译成功。打开之前的桌面cmd,需要注意的是,在每次打开cmd之前要设置ADF_PATH
在cmd执行set ADF_PATH=你的ADF目录例如我的是:set ADF_PATH=D:\ESP\esp-adf,(路径不要有空格
或者在ESP\.espressif目录下添加该语句,如图,一劳永逸:

然后cd到随便ADF目录下examples下随意一个工程,与之前一样idf.py build测试能否成功通过编译。

三,适配ADF到ESP32A1S

由于ADF里是没有ESP32A1S的初始化代码的,所以需要自己添加进去。

1,首先修改esp-adf\components\audio_board目录下的三个配置文件,如下:

1.1,CMakeLists.txt 添加内容如下:

if (CONFIG_ESP_AI_THINKER_V2_2_BOARD)
message(STATUS "Current board name is " CONFIG_ESP_AI_THINKER_V2_2_BOARD)
list(APPEND COMPONENT_ADD_INCLUDEDIRS ./ai_thinker_audio_kit_v2_2)
set(COMPONENT_SRCS
./ai_thinker_audio_kit_v2_2/board.c
./ai_thinker_audio_kit_v2_2/board_pins_config.c
)
endif()

1.2,compoment.mk 添加如下:

ifdef CONFIG_ESP_AI_THINKER_V2_2_BOARD
COMPONENT_ADD_INCLUDEDIRS += ./ai_thinker_audio_kit_v2_2
COMPONENT_SRCDIRS += ./ai_thinker_audio_kit_v2_2
endif

1.3,Kconfig.projbuild 修改如下

choice AUDIO_BOARDprompt "Ai-Thinker Audio board"default ESP_AI_THINKER_V2_2_BOARDhelpSelect an audio board to use with the ESP-ADF
config AUDIO_BOARD_CUSTOMbool "Custom audio board"
config ESP_LYRAT_V4_3_BOARDbool "ESP32-Lyrat V4.3"
config ESP_LYRAT_V4_2_BOARDbool "ESP32-Lyrat V4.2"
config ESP_LYRATD_MSC_V2_1_BOARDbool "ESP32-LyraTD-MSC V2.1"
config ESP_LYRATD_MSC_V2_2_BOARDbool "ESP32-LyraTD-MSC V2.2"
config ESP_LYRAT_MINI_V1_1_BOARDbool "ESP32-Lyrat-Mini V1.1"
config ESP32_KORVO_DU1906_BOARDbool "ESP32_KORVO_DU1906"
config ESP32_S2_KALUGA_1_V1_2_BOARDbool "ESP32-S2-Kaluga-1 v1.2"
config ESP_AI_THINKER_V2_2_BOARD   bool "ESP32-AiThinker-audio V2.2"
endchoice

1.4 下载ai_thinker_audio_kit_v2_2,提取码:kill

添加ai_thinker_audio_kit_v2_2文件夹到esp-adf\components\audio_board目录下,board.c是板子的初始化代码,board_def.h是对板子IO口的定义, board_pins_config.c是配置iis和iic的IO
引脚的代码。

2,添加音频驱动文件,修改esp-adf\components\audio_hal文件夹下的CMakeLists.txt和compoment.mk

2.1 CMakeLists.txt 修改后如下

2.2 compoment.mk 添加以下内容:

COMPONENT_ADD_INCLUDEDIRS += ./driver/ac101
COMPONENT_SRCDIRS += ./driver/ac101

2.3 在driver文件夹下新建ac101文件夹,并添加ac101.c和ac101.h驱动文件。ac101驱动下载
至此,移植完成!接下来就是测试了。老套路打开cmd,设置ADF_PATH,然后cd到测试项目,先执行idf.py menuconfig叫出配置菜单来切换A1S开发板。在Audio HAL选项中选择安信可的板子,然后save保存配置,最后idf.py build.(第一次编译大概5分钟把)

出现以下画面时就是编译通过:

最后进行烧录,插入开发板,查看开发板的端口号 例如我的是COM4,接着执行idf.py -p COM4 flash monitor烧录进开发板的同时开启了串口监视器,可以看到串口打印

四,使用asr语音识别例程

由于asr例程的app固件大于2M,所以需要修改项目分区表使app固件在flash有足够的内存空间,否则烧录后会出现以下错误:

步骤:
1,首先设置menuconfig->Serial Flash config,配置如下:

2,设置项目使用本地分区表:
menuconfig->Partition Table->,如下

3,修改项目根目录下的partitions.csv,如下
修改factory的size为2M或者更大的内存。

# Espressif ESP32 Partition Table
# Name,   Type, SubType, Offset,  Size
nvs,      data, nvs,     0x9000,  0x6000,
phy_init, data, phy,     0xf000,  0x1000,
factory,  app,  factory, 0x10000, 0x200000,

参考文章:
esp32-a1s 音频开发板移植最新 esp-adf 音频框架
ADF安装指南

ESP32 ADF windows开发环境搭建 适配ADF到ESP32A1S相关推荐

  1. 2.2 Trino Windows开发环境搭建—源码修改篇

    1. 前言 在上一篇中,介绍了在Windows上搭建Trino开发环境所需要的组件.本篇文章,主要介绍通过修改源码,让Trino在Idea中运行起来. 2. 步骤 1)配置文件 Trino的配置文件位 ...

  2. ODOO13 开发教程二 Windows开发环境搭建

    这篇文章写给刚接触odoo开发的朋友,在这篇文章中,主要介绍Windows下,odoo开发环境的搭建方法. 本文的推荐开发环境搭建使用 PyCharm.Python3.7.odoo13社区版 Wind ...

  3. .NET6入门:1.Windows开发环境搭建

    作为.NET的最新版本.NET6长期支持版已经发布,.NET6宣称是迄今为止最快的.NET.那当然不能落下时代的潮流,就让我们跟着文章进入.NET6的世界吧. 1. .NET6SDK下载 Downlo ...

  4. nRF Connect SDK(NCS)-Windows开发环境搭建

    目录 安装nRF Connet for Desktop 安装nRF Command Line Tools 安装nRF Connect SDK 1.打开nRF Connet for Desktop,安装 ...

  5. ESP32 ESP-IDF CMake Windows开发环境搭建

    简介 ESP-IDF 是 ESP32 芯片的官方开发框架 GUN Make和CMake的对比 GUN Make在Linux和Mac OS很容易构建一个工程,但Windows使用GUN需要使用MinGW ...

  6. react-native for android windows开发环境搭建详细记录

    先说说整个环境搭建的过程.上周开始要在windows上搭建react-native for android环境,当时按照找的教程,从git上clone master分支的代码,然后下载了node,安装 ...

  7. redmine二次开发实战--windows开发环境搭建

    目录 目录 前言 一.安装redmine 1.下载安装包 2.安装程序 二.开发工具 总结 目录 前言 redmine是基于ruby on rails架构的一款项目管理软件,虽然ruby在window ...

  8. ffmpeg教程java_ffmpeg Windows开发环境搭建

    一.在windows上搭建基于ffmpeg解决方案的开发环境 系统 : Windows 10 x86_64系统  i5 4核cpu 8gb内存 工具: Visual Studio Community ...

  9. Windows开发环境搭建(安装 VS2010, VS2013, VS2015 Community, Windows Server 2008 R2)

    1. 安装VS2010 1.1 安装步骤 1. 注意安装的时候,选择自定义安装,将不需要的VB.net去掉. 2. 看一下C++下的x64选项是否选择了,如果没选,将其选上. 3. 一定要将 Micr ...

最新文章

  1. solr 函数使用之map
  2. C#_细说Cookie_Json Helper_Cookies封装
  3. scanf从文件中读入,printf写入到文件
  4. c语言指针详解(概念示例)
  5. Atlas Unknown Error
  6. wsimport将wsdl生成java 调用时碰到的一个问题Could not initialize Service
  7. linux常见基础服务,常用的linux命令的基本使用(一)
  8. UIcollectionView 加入尾部视图
  9. 在虚拟机上安装Kali Linux的简易指南
  10. phabricator客户端使用(windows)
  11. 【iCore1S 双核心板_ARM】例程七:通用定时器实验——定时点亮LED
  12. delphixe10linux,减小Delphi XE 以上版 编译出来的程序体积
  13. Java图书管理系统(代码及详解)
  14. 【预测模型】BP神经网络的预测
  15. 全国计算机三级过关要求,谈三级pc技术——我的30天过关经验
  16. python3 sorted自定义排序的函数
  17. 怎么隐藏电脑桌面的计算机图标,怎么隐藏电脑桌面右下角图标
  18. 【主流Nivida显卡深度学习/强化学习/AI算力汇总】
  19. Largest prime factor
  20. linux 建立http连接失败,【linux】http请求建立连接的时候为啥是tcp三次握手,而不是二次或者四次?...

热门文章

  1. Unity案例课程 - 涂鸦跳跳 Day 1
  2. torch.prob
  3. 台式计算机开关电源的电压规格,台式计算机ATX开关电源检修技巧
  4. 计算机程序无法启动,应用程序无法正常启动,教您电脑应用程序无法正常启动0xc000007b怎么解决...
  5. 记录一下手把手教您做电商网站
  6. 品西游之馒头引起的血案(上)
  7. rails 代码结构详解
  8. 大学可以这样读——我的心路历程和一点思考
  9. hdu-5976 Detachment 解题报告(乘法逆元、贪心?)
  10. 白色用rgba怎么设置html,转换RGB到RGBA的白色