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 使用示例 |
例程编译方法
参考 添加项目文件夹或文件 章节,将整个
<dsp_sdk>/example/example_xxx
文件夹以及里面的文件添加到工程中。参考 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
DSP 使用说明: /opt/xtensa/XtDevTools/downloads/RI-2021.8/docs
DSP 架构文档 (Call0 ABI): /opt/xtensa/XtDevTools/install/builds/RI-2021.8-linux/HIFI5_PROD_1123_asic_UPG/index.html
DSP 架构文档 (Window ABI): /opt/xtensa/XtDevTools/install/builds/RI-2021.8-linux/HIFI5_PROD_1123_asic_wUPG/index.html
在上面 docs
文件夹中,有下列常用开发文档:
项目 |
文件名 |
---|---|
调试 |
|
仿真 |
|
布局 |
|
iDMA |
|
Crash Dump 分析 |
|