zoukankan      html  css  js  c++  java
  • ESP32 ADF windows开发环境搭建 适配ADF到ESP32A1S(转)

    搭建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:ESPidf3.3examplesget-startedhello_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目录下的.gitsubmodules文件,可以看到该目录下有三个子模块仓库:
    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
    
    • 1

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

    [submodule "esp-idf"]
    	path = esp-idf
    	url = https://gitclone.com/github.com/espressif/esp-idf
    [submodule "components/esp-adf-libs"]
    	path = components/esp-adf-libs
    	url = https://gitclone.com/github.com/espressif/esp-adf-libs
    [submodule "components/esp-sr"]
    	path = components/esp-sr
    	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:ESPesp-adf,(路径不要有空格
    或者在ESP.espressif目录下添加该语句,如图,一劳永逸:
    在这里插入图片描述

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

    三,适配ADF到ESP32A1S

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

    1,首先修改esp-adfcomponentsaudio_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_BOARD
        prompt "Ai-Thinker Audio board"
        default ESP_AI_THINKER_V2_2_BOARD
        help
            Select an audio board to use with the ESP-ADF
    config AUDIO_BOARD_CUSTOM
        bool "Custom audio board"
    config ESP_LYRAT_V4_3_BOARD
        bool "ESP32-Lyrat V4.3"
    config ESP_LYRAT_V4_2_BOARD
        bool "ESP32-Lyrat V4.2"
    config ESP_LYRATD_MSC_V2_1_BOARD
        bool "ESP32-LyraTD-MSC V2.1"
    config ESP_LYRATD_MSC_V2_2_BOARD
        bool "ESP32-LyraTD-MSC V2.2"
    config ESP_LYRAT_MINI_V1_1_BOARD
        bool "ESP32-Lyrat-Mini V1.1"
    config ESP32_KORVO_DU1906_BOARD
        bool "ESP32_KORVO_DU1906"
    config ESP32_S2_KALUGA_1_V1_2_BOARD
        bool "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,添加ai_thinker_audio_kit_v2_2文件夹到esp-adfcomponentsaudio_board目录下,board.c是板子的初始化代码,board_def.h是对板子IO口的定义, board_pins_config.c是配置iis和iic的IO
    引脚的代码。

    2,添加音频驱动文件,修改esp-adfcomponentsaudio_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安装指南

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

  • 相关阅读:
    多线程与MySQL(十)
    多进程与多线程(九)
    异常处理与网络编程(八)
    面向对象,绑定方法与异常处理(七)
    模块与对象(六)
    包与模块(五)
    迭代器与函数Python学习(四)
    函数与装饰器Python学习(三)
    数据库
    并发编程
  • 原文地址:https://www.cnblogs.com/kerwincui/p/13796019.html
Copyright © 2011-2022 走看看