搭建ESP32A1S的ADF开发环境

一,获取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,执行以下命令克隆仓库:

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

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

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

esp-sr目录下执行:

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

esp-idf目录下执行:

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

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

  1. [submodule "esp-idf"]
  2. path = esp-idf
  3. url = https://gitclone.com/github.com/espressif/esp-idf
  4. [submodule "components/esp-adf-libs"]
  5. path = components/esp-adf-libs
  6. url = https://gitclone.com/github.com/espressif/esp-adf-libs
  7. [submodule "components/esp-sr"]
  8. path = components/esp-sr
  9. url = 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 添加内容如下:

  1. if (CONFIG_ESP_AI_THINKER_V2_2_BOARD)
  2. message(STATUS "Current board name is " CONFIG_ESP_AI_THINKER_V2_2_BOARD)
  3. list(APPEND COMPONENT_ADD_INCLUDEDIRS ./ai_thinker_audio_kit_v2_2)
  4. set(COMPONENT_SRCS
  5. ./ai_thinker_audio_kit_v2_2/board.c
  6. ./ai_thinker_audio_kit_v2_2/board_pins_config.c
  7. )
  8. endif()

1.2,compoment.mk 添加如下:

  1. ifdef CONFIG_ESP_AI_THINKER_V2_2_BOARD
  2. COMPONENT_ADD_INCLUDEDIRS += ./ai_thinker_audio_kit_v2_2
  3. COMPONENT_SRCDIRS += ./ai_thinker_audio_kit_v2_2
  4. endif

1.3,Kconfig.projbuild 修改如下

  1. choice AUDIO_BOARD
  2. prompt "Ai-Thinker Audio board"
  3. default ESP_AI_THINKER_V2_2_BOARD
  4. help
  5. Select an audio board to use with the ESP-ADF
  6. config AUDIO_BOARD_CUSTOM
  7. bool "Custom audio board"
  8. config ESP_LYRAT_V4_3_BOARD
  9. bool "ESP32-Lyrat V4.3"
  10. config ESP_LYRAT_V4_2_BOARD
  11. bool "ESP32-Lyrat V4.2"
  12. config ESP_LYRATD_MSC_V2_1_BOARD
  13. bool "ESP32-LyraTD-MSC V2.1"
  14. config ESP_LYRATD_MSC_V2_2_BOARD
  15. bool "ESP32-LyraTD-MSC V2.2"
  16. config ESP_LYRAT_MINI_V1_1_BOARD
  17. bool "ESP32-Lyrat-Mini V1.1"
  18. config ESP32_KORVO_DU1906_BOARD
  19. bool "ESP32_KORVO_DU1906"
  20. config ESP32_S2_KALUGA_1_V1_2_BOARD
  21. bool "ESP32-S2-Kaluga-1 v1.2"
  22. config ESP_AI_THINKER_V2_2_BOARD
  23. bool "ESP32-AiThinker-audio V2.2"
  24. endchoice

1.4 下载ai_thinker_audio_kit_v2_2,添加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 添加以下内容:

  1. COMPONENT_ADD_INCLUDEDIRS += ./driver/ac101
  2. 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或者更大的内存。

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

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

原文地址:https://blog.csdn.net/weixin_44821644/article/details/107893487

ESP32 ADF windows开发环境搭建 适配ADF到ESP32A1S(转)的更多相关文章

  1. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  2. ESP32的Linux开发环境搭建

    1. 官网教程地址 https://docs.espressif.com/projects/esp-idf/zh_CN/v4.0.1/get-started/linux-setup.html 2.官网 ...

  3. Python Windows开发环境搭建

    一.下载python安装包 python官网地址:https://www.python.org/,下载windows平台包并安装 二.在Windows设置环境变量 计算机右键,选择属性,在高级系统设置 ...

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

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

  5. esp32(M5STACK) ARDUINO开发环境搭建(ubuntu)

    首先去官网下载arduino https://www.arduino.cc/en/main/software         由于国产链接下载慢的缘故,所以可以采用百度网盘的方式进行下载,具体下载方法 ...

  6. react native windows开发环境搭建(一)

    ReactNative分为服务器端和手机端loader程序,Android版有3种代码:js代码,java代码和c++代码,主要是编写的是js代码,如果框架功能不足就需要编写原生的java代码来扩展, ...

  7. HDFS【hadoop3.1.3 windows开发环境搭建】

    目录 一.配置hadoop3.1.3 windows环境依赖 配置环境变量 添加到path路径 在cmd中测试 二.idea中的配置 创建工程/模块 添加pom.xml依赖 日志添加--配置log4j ...

  8. react native windows开发环境搭建(二)

    上一篇中介绍了本地服务器端环境的安装,使用已经编译好的apk程序,设置ip地址,就可以看到welcome界面,并且可以对程序做出修改以及调试. 为了扩展和发布应用 还需要能编译loader程序,这里介 ...

  9. 基于windows环境VsCode的ESP32开发环境搭建

    1. 基于windows环境VsCode的ESP32开发环境搭建,网上有各类教程,但是我实测却不行. 例如我在vscode内安装的乐鑫插件,扩展配置项是下图这样: 而百度的各类博文却都是这样: 经过网 ...

随机推荐

  1. VirtualBox安装配置CentOS7(含网络连接配置)

    最近需要用到CentOS7,特地在虚拟机上安装一遍,中间走了很多弯路,特地在此处进行记录 前置条件: 1.本地完成Oracle VM VirtualBox,我安装的是6.1版本 2.下载CentOS安 ...

  2. salesforce零基础学习(一百零三)项目中的零碎知识点小总结(五)

    本篇参考:Salesforce Admin篇(四) Security 之Two-Factor Authentication & Single Sign On https://developer ...

  3. GO学习-(16) Go语言基础之文件操作

    Go语言文件操作 本文主要介绍了Go语言中文件读写的相关操作. 文件是什么? 计算机中的文件是存储在外部介质(通常是磁盘)上的数据集合,文件分为文本文件和二进制文件. 打开和关闭文件 os.Open( ...

  4. ADAS可行驶区域道路积水反光区域的识别算法

    ADAS可行驶区域道路积水反光区域的识别算法 Water logging area reflecting recognition algorithm for ADAS 1. 工程概要 1.1  概述: ...

  5. 新版 ZooKeeper 启动时一直报: Starting zookeeper … FAILED TO START

    https://www.pianshen.com/article/74551582443/ 这里引用别人博客,自己验证过,确实如此

  6. java后端知识点梳理——web安全

    跨域 当浏览器执行脚本时会检查是否同源,只有同源的脚本才会执行,如果不同源即为跨域. 这里的同源指访问的协议.域名.端口都相同. 同源策略是由 Netscape 提出的著名安全策略,是浏览器最核心.基 ...

  7. 开源FastGithub

    0 前言 github网站访问慢或访问不了,相信很多人都会遇到过,解决方式大概有两种:一种是使用代理访问:另一种是使用ipaddress.com等域名解析网站查询域名的ip,然后在host文件增加ip ...

  8. 【题解】将军令 Luogu P3942 (未完成)

    历史/落在/赢家/之手 至少/我们/拥有/传说 谁说/败者/无法/不朽 拳头/只能/让人/低头 念头/却能/让人/抬头 抬头/去看/去爱/去追 你心中的梦 将军令 题目描述 又想起了四月. 如果不是省 ...

  9. Scala语言笔记 - 第二篇

    目录 1 Map的基础操作 2 Map生成view和transform解析 ​ 最近研究了下scala语言,这个语言最强大的就是它强大的函数式编程(Function Programming)能力,记录 ...

  10. C#异步迭代 IAsyncEnumerable 应用

    最近用WPF做金税盘开发中有这样一个需求,批量开票每次开票都需要连接一次金税盘. 比如我有发票 a, b ,c ,d e 这五张发票,每次开具发票都需要调用金税盘底层,才能正常开票. 首先,尝试写第一 ...