数字信号处理(DSP)
DSP API 提供了一种与架构无关的信号处理方式。目前,该 API 可在任何架构上运行,但可能未针对具体架构进行优化。各架构的状态如下:
架构 |
状态 |
|---|---|
ARC |
已优化 |
ARM |
已优化 |
ARM64 |
已优化 |
MIPS |
未优化 |
POSIX |
未优化 |
RISCV |
未优化 |
RISCV64 |
未优化 |
SPARC |
未优化 |
X86 |
未优化 |
XTENSA |
未优化 |
使用 zDSP
zDSP 提供多种后端选项,这些选项会为应用自动选择。默认情况下,包含 CMSIS 模块将使所有架构都能使用 zDSP API。可以通过以下设置完成:
CONFIG_CMSIS_DSP=y
如果你的应用需要一些额外的自定义,可以启用 CONFIG_DSP_BACKEND_CUSTOM,这意味着应用负责提供 zDSP 库的实现。
针对你的架构进行优化
如果你的架构显示为 Unoptimized,可以添加一个新的 zDSP 后端来更好地支持它。为此,需要向 subsys/dsp/Kconfig 添加一个新的 Kconfig 选项,同时添加所需的依赖项,并为 DSP_BACKEND Kconfig 选择项设置 default。
接下来,应在 subsys/dsp/<backend>/ 处添加实现,并在 subsys/dsp/CMakeLists.txt 中将其链接进来。要添加架构特定的属性,应将其对应的 Kconfig 选项添加到 subsys/dsp/Kconfig,并使用这些属性更新 include/zephyr/dsp/dsp.h 中的 DSP_DATA 和 DSP_STATIC_DATA。