DSP SDK 简介

SDK 描述

DSP SDK 托管于 GitHub:https://github.com/Ameba-AIoT/ameba-dsp

该基础 SDK 包含了 DSP 开发所需的必要组件以及 Cadence 的官方资源,可以编译生成 DSP 运行固件。 对于一些高阶功能,例如 AI Voice、TensorFlow Lite(tflite) 等,则由其他独立仓库进行托管和维护。

备注

这些高阶功能依赖于基础 SDK,建议在使用时选择官方指定的基础 SDK 版本,而不是直接使用最新的基础 SDK 版本,以确保兼容性和稳定性。

SDK 由以下几个部分组成:

SDK
  ├── bsp                   IPC、GDMA、GPIO、Timer、OTP 等部分外设驱动
  ├── configurations        Windows、Linux 平台的 Call0 ABI 和 Window ABI 的配置包
  ├── example               Aivoice、GDMA、iDMA 等示例
  ├── lib                   FreeRTOS、IPC、HiF5 等库文件
  └── project               DSP 工程的工作区

Project

project 目录是 Xplorer IDE 的工作区,其中包含了主程序入口、链接脚本(LSP)、以及 Image 的工程配置文件等。其包含以下子目录:

project
  ├── auto_build             Linux 命令行编译脚本,以及命令行编译产生的中间文件
  ├── image                  编译生成的最终烧录固件,以及调试阶段使用的反汇编文件
  ├── img_utility            后处理脚本、LSP 修改脚本等
  ├── project_dsp            DSP 工程文件夹,包含主函数入口和 mpu_table 配置文件,以及 Xplorer GUI 编译产生的中间文件
  └── RTK_LSP                链接脚本(LSP)

Example

example 目录包含了 DMA 的使用方法,以及 AI Voice 等高级应用的示例。具体说明请参考每个示例文件夹中的 readme 文件。

例程列表

例程名称

简介

aivoice

使用预录音频的 AI Voice 完整流程(afe+kws+asr)

example_gdma

使用GDMA的单块和多块传输模式

example_idma

此示例使用 iDMA 将数据从 psram 移动到 DTCM

example_idma_nn

使用iDMA 实现 ping-pong 策略,加速 NN 计算

example_voice

获取唯一标识符(Universally Unique Identifier)

tflite_micro

TensorFlow Lite 使用示例

例程编译方法

  1. 参考 添加项目文件夹或文件 章节,将整个 <dsp_sdk>/example/example_xxx 文件夹以及里面的文件添加到工程中。

  2. 参考 DSP 工程编译 章节编译工程。

例程编译策略说明

project/project_dsp/main.c 里面实现了弱符号的 app_example() 函数。 同时,每个 example 文件夹下的 example_xxx/app_example.c 实现了强符号的 app_example() 函数。 编译 example_xxx/app_example.c 文件后,强符号会覆盖 project/project_dsp/main.c 中的弱符号,从而跳转到例程代码。

Library

lib 目录包含 DSP 开发需要用到的组件库和算法库。 这些库提供了不同 ABI 和工具链的编译版本,用户需要根据自己的实际需要链接不同的库。具体库功能说明请参考 DSP 库 章节。

库名称

简介

aivoice

在Realtek SoC上实现语音相关应用的离线AI解决方案,包括 AFE、KWS、VAD等算法模块。

ipc

核间通讯组件库

freertos

为 DSP 移植的 FreeRTOS 系统

hifi5

HiF5 DSP 基础算子库

uuid

获取唯一标识符(Universally Unique Identifier)

tflite_micro

TensorFlow Lite Library

xa_nnlib

Cadence HiFi 5 Neural Network Library

DSP 官方文档列表

这些文档包括:HiFi5 DSP 配置信息、用户手册、编译器连接器使用手册、仿真调试手册等等。 在安装完工具链后,文档就在工具链的安装路径下:

DSP 使用说明: C:\usr\xtensa\XtDevTools\downloads\RI-2021.8\docs

DSP 架构文档 (Call0 ABI): C:\usr\xtensa\XtDevTools\install\builds\RI-2021.8-win32\HIFI5_PROD_1123_asic_UPG\index.html

DSP 架构文档 (Window ABI): C:\usr\xtensa\XtDevTools\install\builds\RI-2021.8-win32\HIFI5_PROD_1123_asic_wUPG\index.html

在上面 docs 文件夹中,有下列常用开发文档:

项目

文件名

调试

xtensa_debug_guide.pdfgnu_gdb_ug.pdf

仿真

  • ISS 仿真方法:inst_set_sim_ug.pdf

  • Profile 结果分析:gnu_profiler_ug.pdf

布局

lsp_rm.pdf

iDMA

sys_sw_rm.pdf Chapter-8: The Integrated DMA Library API

Crash Dump 分析

isa_rm.pdf Table-94: Exception Causes