Skip to main content
欢迎来到PAWPAW技术文档网站了解更多信息

快速入门

构建系统

XMOS USB音频参考设计软件及其相关库使用XMOS XCOMMON构建系统。XCOMMON构建系统基于GNU Makefile构建系统开发而成,加速了xCORE应用的开发。用户无需在Makefile中显式地表达依赖关系,而是应遵循特定的文件夹结构和命名约定,从中自动推断出依赖关系。

XCOMMON构建系统依赖于专门的工具XMAKE。目前不能与通用的GNU Make版本一起使用。

应用程序和库

sw_usb_audio 文件夹中包含多个应用程序目录,每个目录中都包含Makefile,可以编译为可执行文件。通常情况下,每个硬件平台都会有一个应用程序目录。应用程序及其对应的硬件平台列在图5中。

应用硬件平台
app_usb_aud_xk_316_mcxcore.ai USB Audio 2.0 Multi-channel Audio Board
app_usb_aud_xk_216_mcxcore-200 USB Audio 2.0 Multi-channel Audio Board
app_usb_aud_xk_evk_xu316xcore.ai Evaluation Kit
app_usb_aud

图5:USB音频参考应用程序

代码被分为几个模块(或库)目录,每个目录都有自己的GIT仓库。通过在应用程序的Makefile中将库名称添加到USED_MODULES定义中,可以将这些库的代码包含到构建过程中。

每个库都有一个module_build_info文件,其中列出了它所依赖的其他模块(DEPENDENT_MODULES)。这允许形成依赖树和嵌套。

大部分核心代码都包含在XMOS USB音频库(lib_xua)中。图6显示了核心依赖关系的完整列表。

LibraryDescription
lib_xua用于USB音频应用程序的通用代码
lib_xud低级USB设备库
lib_spdifS/PDIF发送和接收代码
lib_adatADAT发送和接收代码
lib_mic_arrayPDM麦克风接口和抽取器
lib_xassert轻量级断言库

图6:USB音频的核心依赖关系

其中的一些核心依赖关系还会有自己的依赖项,例如lib_mic_array依赖于lib_xassert(参见上文),lib_logging(轻量级打印库)和lib_dsp(DSP库)。

应用程序可能使用其他依赖项来支持硬件平台或添加核心功能以外的功能。例如,XK-AUDIO-316-MC的应用程序使用了图7中列出的额外依赖项:

LibraryDescription
lib_i2cI2C接口,用于配置DAC/ADC等

图7:示例的额外依赖关系

构建配置

由于参考设计软件的灵活性,存在大量的构建选项。例如输入和输出通道数、Audio Class版本、接口类型等。一个"构建配置"是一组构建选项,这些选项结合在一起产生具有特定功能集的二进制文件。

以下命令构建所有支持的配置:

xmake all

应用程序的Makefile中列出了构建配置及其相关选项,可以通过命令行按如下方式构建特定配置:

xmake CONFIG=<config name>

构建完成后,可以在以下位置找到对应配置的二进制文件:

<app name>/bin/<app name>_<config name>.xe

配置命名

每个应用程序都采用一种命名方案,将功能与构建配置/二进制文件关联起来。根据可用的硬件接口,可能会使用同一基本方案的不同变体。

每个相关的构建选项都被分配一个在配置名称中的位置,一个字符表示选项的值(通常使用‘x’表示“关闭”或“禁用”)。

图8中列出了一些示例构建选项。

例如,在该方案中,配置名称为2xsx表示Audio Class 2.0,禁用MIDI,启用S/PDIF输出和禁用S/PDIF输入。

可能还会使用其他字母或数字来表示通道数等信息。有关详细信息,请参阅应用程序Makefile中的注释。

Build Option NameOptions Denoted by
Audio Class Version1 or 2
MIDI on or offm or x
S/PDIF Output on or offs or x
S/PDIF Input on or offs or x

图8:示例构建选项和命名