Skip to content

Commit

Permalink
Add support for XCommon CMake
Browse files Browse the repository at this point in the history
  • Loading branch information
danielpieczko committed Nov 10, 2023
1 parent 252de6a commit 0e0c7c0
Show file tree
Hide file tree
Showing 13 changed files with 382 additions and 0 deletions.
8 changes: 8 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
cmake_minimum_required(VERSION 3.21)
include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake)
project(sw_usb_audio)

add_subdirectory(app_usb_aud_xk_316_mc)
add_subdirectory(app_usb_aud_xk_216_mc)
add_subdirectory(app_usb_aud_xk_evk_xu316)
add_subdirectory(app_usb_aud_xk_evk_xu316_extrai2s)
43 changes: 43 additions & 0 deletions app_usb_aud_xk_216_mc/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
cmake_minimum_required(VERSION 3.21)
include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake)
project(app_usb_aud_xk_216_mc)

set(APP_HW_TARGET xk-audio-216-mc.xn)
include(${CMAKE_CURRENT_LIST_DIR}/../deps.cmake)
set(APP_PCA_ENABLE ON)
set(SW_USB_AUDIO_FLAGS ${EXTRA_BUILD_FLAGS} -O3
-report
-lquadflash
-g
-fxscope
-DUSB_TILE=tile[1]
-DADAT_TX_USE_SHARED_BUFF=1
-DQUAD_SPI_FLASH=1)


set(APP_COMPILER_FLAGS_1AMi2o2xxxxxx ${SW_USB_AUDIO_FLAGS} -DAUDIO_CLASS=1)

set(APP_COMPILER_FLAGS_2AMi10o10xssxxx ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_TX_EN=1
-DXUA_SPDIF_RX_EN=1)

set(APP_COMPILER_FLAGS_2ASi10o10xssxxx ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_TX_EN=1
-DXUA_SPDIF_RX_EN=1
-DCODEC_MASTER=1)

set(APP_COMPILER_FLAGS_2ASi16o16xxxxxx_tdm8 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_ADC=16
-DI2S_CHANS_DAC=16
-DNUM_USB_CHAN_IN=16
-DNUM_USB_CHAN_OUT=16
-DXUA_PCM_FORMAT=XUA_PCM_FORMAT_TDM
-DMAX_FREQ=96000
-DCODEC_MASTER=1
-DOUT_VOLUME_IN_MIXER=0)

include(${CMAKE_CURRENT_LIST_DIR}/configs_partial.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/configs_build.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/configs_test.cmake)

set(APP_INCLUDES src src/core src/extensions)
set(XMOS_DEPS_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)

XMOS_REGISTER_APP()
46 changes: 46 additions & 0 deletions app_usb_aud_xk_216_mc/configs_build.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#
# Configs that have only had their build process tested
#
if(BUILD_TESTED_CONFIGS)

set(APP_COMPILER_FLAGS_1AMi8o2xxxxxx ${SW_USB_AUDIO_FLAGS} -DAUDIO_CLASS=1
-DNUM_USB_CHAN_IN_FS=6
-DMAX_FREQ_FS=44100
-DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=16)

set(APP_COMPILER_FLAGS_2AXi0o2xxsxxx ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_TX_EN=1
-DI2S_CHANS_ADC=0
-DI2S_CHANS_DAC=0)

set(APP_COMPILER_FLAGS_2AMi32o32xxxxxx_tdm8 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_ADC=32
-DI2S_CHANS_DAC=32
-DNUM_USB_CHAN_IN=32
-DNUM_USB_CHAN_OUT=32
-DXUA_PCM_FORMAT=XUA_PCM_FORMAT_TDM
-DMAX_FREQ=48000)

set(APP_COMPILER_FLAGS_2ASi0o8xxxxxx_tdm8 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_ADC=0
-DXUA_PCM_FORMAT=XUA_PCM_FORMAT_TDM
-DMAX_FREQ=96000
-DCODEC_MASTER=1)

set(APP_COMPILER_FLAGS_2AMi16o16xxxxxx_tdm8 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=16
-DI2S_CHANS_ADC=16
-DNUM_USB_CHAN_IN=16
-DNUM_USB_CHAN_OUT=16
-DXUA_PCM_FORMAT=XUA_PCM_FORMAT_TDM
-DMAX_FREQ=96000)

set(APP_COMPILER_FLAGS_2AMi32o32xxsxxx_tdm8 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_ADC=32
-DI2S_CHANS_DAC=32
-DNUM_USB_CHAN_IN=32
-DNUM_USB_CHAN_OUT=16
-DXUA_PCM_FORMAT=XUA_PCM_FORMAT_TDM
-DMAX_FREQ=48000
-DXUA_SPDIF_TX_EN=1
-DSPDIF_TX_INDEX=0)

set(APP_COMPILER_FLAGS_2AMi8o8xxxxxx_tdm8 ${SW_USB_AUDIO_FLAGS} -DXUA_PCM_FORMAT=XUA_PCM_FORMAT_TDM
-DMAX_FREQ=96000)

endif()
46 changes: 46 additions & 0 deletions app_usb_aud_xk_216_mc/configs_partial.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#
# Configs that have been partially tested.
#

# Enabling "build" test configs implicitly enables "partial" test configs
if(BUILD_TESTED_CONFIGS)
set(PARTIAL_TESTED_CONFIGS TRUE)
endif()


if(PARTIAL_TESTED_CONFIGS)

set(APP_COMPILER_FLAGS_2AMi8o8xxxxxx ${SW_USB_AUDIO_FLAGS})

set(APP_COMPILER_FLAGS_2ASi8o8xxxxxx_tdm8 ${SW_USB_AUDIO_FLAGS} -DXUA_PCM_FORMAT=XUA_PCM_FORMAT_TDM
-DMAX_FREQ=96000 -DCODEC_MASTER=1
-DOUT_VOLUME_IN_MIXER=0)

set(APP_COMPILER_FLAGS_2ASi8o8xxxxxx ${SW_USB_AUDIO_FLAGS} -DCODEC_MASTER=1)

set(APP_COMPILER_FLAGS_2AMi8o10xxsxxx ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_TX_EN=1)

set(APP_COMPILER_FLAGS_2AMi8o10mxsxxx ${SW_USB_AUDIO_FLAGS} -DMIDI=1
-DXUA_SPDIF_TX_EN=1)

set(APP_COMPILER_FLAGS_2AMi8o8xxxxxd ${SW_USB_AUDIO_FLAGS} -DDSD_CHANS_DAC=2)

set(APP_COMPILER_FLAGS_2AMi8o10xxsxxx_mix8 ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_TX_EN=1
-DMAX_MIX_COUNT=8)

set(APP_COMPILER_FLAGS_2AMi8o10xxsxxd ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_TX_EN=1
-DDSD_CHANS_DAC=2)

set(APP_COMPILER_FLAGS_2AMi16o8xxxaxx ${SW_USB_AUDIO_FLAGS} -DXUA_ADAT_RX_EN=1
-DMAX_FREQ=96000)

set(APP_COMPILER_FLAGS_2SMi8o8xxxxxx ${SW_USB_AUDIO_FLAGS} -DXUA_SYNCMODE=XUA_SYNCMODE_SYNC)

set(APP_COMPILER_FLAGS_2AMi8o16xxxxax ${SW_USB_AUDIO_FLAGS} -DXUA_ADAT_TX_EN=1
-DMAX_FREQ=96000)

set(APP_COMPILER_FLAGS_2AMi16o16xxxaax ${SW_USB_AUDIO_FLAGS} -DXUA_ADAT_RX_EN=1
-DXUA_ADAT_TX_EN=1
-DMAX_FREQ=96000)

endif()
15 changes: 15 additions & 0 deletions app_usb_aud_xk_216_mc/configs_test.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#
# Configs that are exclusively used for testing
#
if(TEST_SUPPORT_CONFIGS)

# DFU upgrade/downgrade testing uses configs built with different version numbers
set(APP_COMPILER_FLAGS_upgrade1 ${SW_USB_AUDIO_FLAGS} -DBCD_DEVICE_J=0x99
-DBCD_DEVICE_M=0x0
-DBCD_DEVICE_N=0x1)

set(APP_COMPILER_FLAGS_upgrade2 ${SW_USB_AUDIO_FLAGS} -DBCD_DEVICE_J=0x99
-DBCD_DEVICE_M=0x0
-DBCD_DEVICE_N=0x2)

endif()
56 changes: 56 additions & 0 deletions app_usb_aud_xk_316_mc/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
cmake_minimum_required(VERSION 3.21)
include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake)
project(app_usb_aud_xk_316_mc)

set(APP_HW_TARGET xk-audio-316-mc.xn)
include(${CMAKE_CURRENT_LIST_DIR}/../deps.cmake)
set(APP_PCA_ENABLE ON)
set(SW_USB_AUDIO_FLAGS ${EXTRA_BUILD_FLAGS} -O3
-report
-lquadflash
-g
-fxscope
-DUSB_TILE=tile[0]
-DADAT_TX_USE_SHARED_BUFF=1
-DQUAD_SPI_FLASH=1)


set(APP_COMPILER_FLAGS_1AMi2o2xxxxxx ${SW_USB_AUDIO_FLAGS} -DAUDIO_CLASS=1)

set(APP_COMPILER_FLAGS_2AMi2o2xxxxxx ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
-DI2S_CHANS_ADC=2)

set(APP_COMPILER_FLAGS_2AMi8o8xxxxxx ${SW_USB_AUDIO_FLAGS})

set(APP_COMPILER_FLAGS_2AMi8o8xxxxxx_mix8 ${SW_USB_AUDIO_FLAGS} -DMAX_MIX_COUNT=8)

set(APP_COMPILER_FLAGS_2AMi8o8xxxxxx_tdm8 ${SW_USB_AUDIO_FLAGS} -DXUA_PCM_FORMAT=XUA_PCM_FORMAT_TDM
-DMAX_FREQ=96000)

set(APP_COMPILER_FLAGS_2ASi8o8xxxxxx_tdm8 ${SW_USB_AUDIO_FLAGS} -DCODEC_MASTER=1
-DXUA_PCM_FORMAT=XUA_PCM_FORMAT_TDM
-DMAX_FREQ=96000)

set(APP_COMPILER_FLAGS_2AMi10o10xssxxx ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_TX_EN=1
-DXUA_SPDIF_RX_EN=1)

set(APP_COMPILER_FLAGS_2AMi16o8xxxaxx ${SW_USB_AUDIO_FLAGS} -DXUA_ADAT_RX_EN=1)

set(APP_COMPILER_FLAGS_2AMi8o16xxxxax ${SW_USB_AUDIO_FLAGS} -DXUA_ADAT_TX_EN=1)

set(APP_COMPILER_FLAGS_1SMi2o2xxxxxx ${SW_USB_AUDIO_FLAGS} -DAUDIO_CLASS=1
-DXUA_SYNCMODE=XUA_SYNCMODE_SYNC)

set(APP_COMPILER_FLAGS_2SMi8o8xxxxxx ${SW_USB_AUDIO_FLAGS} -DXUA_SYNCMODE=XUA_SYNCMODE_SYNC)

set(APP_COMPILER_FLAGS_2SSi8o8xxxxxx ${SW_USB_AUDIO_FLAGS} -DXUA_SYNCMODE=XUA_SYNCMODE_SYNC
-DCODEC_MASTER=1)

include(${CMAKE_CURRENT_LIST_DIR}/configs_partial.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/configs_build.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/configs_test.cmake)

set(APP_INCLUDES src src/core src/extensions)
set(XMOS_DEPS_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)

XMOS_REGISTER_APP()
30 changes: 30 additions & 0 deletions app_usb_aud_xk_316_mc/configs_build.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#
# Configs that have only had their build process tested
#
if(BUILD_TESTED_CONFIGS)

# Audio Class 2, Sync, I2S Master, 10xInput, 10xOutput, TDM
# (1024x Mclk required for 192/176 TDM)
set(APP_COMPILER_FLAGS_2SMi10o10xxxxxx_tdm8 ${SW_USB_AUDIO_FLAGS} -DXUA_PCM_FORMAT=XUA_PCM_FORMAT_TDM
-DXUA_SYNCMODE=XUA_SYNCMODE_SYNC
-DMCLK_48=1024*48000
-DMCLK_441=1024*44100)

# Audio Class 1, Adaptive, I2S Master, 8xInput, 8xOutput, TDM
set(APP_COMPILER_FLAGS_1DMi8o8xxxxxx ${SW_USB_AUDIO_FLAGS} -DXUA_PCM_FORMAT=XUA_PCM_FORMAT_TDM
-DXUA_SYNCMODE=XUA_SYNCMODE_ADAPT
-DAUDIO_CLASS=1)

# Audio Class 2, Async, I2S Master, 8xInput, 8xOutput, Mixer (mixer does volume processing after mix)
set(APP_COMPILER_FLAGS_2AMi8o8xxxxxx_mix8_vol_after ${SW_USB_AUDIO_FLAGS} -DMAX_MIX_COUNT=8
-DOUT_VOLUME_IN_MIXER=1
-DIN_VOLUME_IN_MIXER=1)


# Audio Class 2, Async, I2S Master, 8xInput, 8xOutput, Mixer (mixer does volume processing before mix)
set(APP_COMPILER_FLAGS_2AMi8o8xxxxxx_mix8_vol_before ${SW_USB_AUDIO_FLAGS} -DMAX_MIX_COUNT=8
-DOUT_VOLUME_IN_MIXER=1
-DIN_VOLUME_IN_MIXER=1
-DOUT_VOLUME_AFTER_MIX=0
-DIN_VOLUME_AFTER_MIX=0)
endif()
42 changes: 42 additions & 0 deletions app_usb_aud_xk_316_mc/configs_partial.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#
# Configs that are partially tested
#

# Enabling "build" test configs implicitly enables "partial" test configs
if(BUILD_TESTED_CONFIGS)
set(PARTIAL_TESTED_CONFIGS TRUE)
endif()


if(PARTIAL_TESTED_CONFIGS)

# Audio Class 2, Async, I2S Slave, 8xInput, 8xOutput
set(APP_COMPILER_FLAGS_2ASi8o8xxxxxx ${SW_USB_AUDIO_FLAGS} -DCODEC_MASTER=1)

# Audio Class 2, Async, I2S Master, 32xInput, 32xOutput, TDM
set(APP_COMPILER_FLAGS_2AMi32o32xxxxxx_tdm8 ${SW_USB_AUDIO_FLAGS} -DXUA_PCM_FORMAT=XUA_PCM_FORMAT_TDM
-DNUM_USB_CHAN_OUT=32
-DI2S_CHANS_DAC=32
-DNUM_USB_CHAN_IN=32
-DI2S_CHANS_ADC=32
-DMAX_FREQ=48000)

# Audio Class 2, Async, I2S Master, 8xInput, 10xOutput, S/PDIF Tx
set(APP_COMPILER_FLAGS_2AMi8o10xxsxxx ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_TX_EN=1)

# Audio Class 2, Async, I2S Master, 8xInput, 8xOutput, MIDI
set(APP_COMPILER_FLAGS_2AMi8o8mxxxxx ${SW_USB_AUDIO_FLAGS} -DMIDI=1)

# Audio Class 2, Async, I2S Slave, 10xInput, 10xOutput, S/PDIF Tx, S/PDIF Rx
set(APP_COMPILER_FLAGS_2ASi10o10xssxxx ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_TX_EN=1
-DXUA_SPDIF_RX_EN=1
-DCODEC_MASTER=1)

# Audio Class 2, Async, I2S Master, 10xInput, 8xOutput, S/PDIF Rx
set(APP_COMPILER_FLAGS_2AMi10o8xsxxxx ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_RX_EN=1)

# Audio Class 2, Async, I2S Master, 8xInput, 10xOutput, S/PDIF Tx (8 mixes)
set(APP_COMPILER_FLAGS_2AMi8o10xxsxxx_mix8 ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_TX_EN=1
-DMAX_MIX_COUNT=8)

endif()
18 changes: 18 additions & 0 deletions app_usb_aud_xk_316_mc/configs_test.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#
# Configs that are exclusively used for testing
#
if(TEST_SUPPORT_CONFIGS)

# DFU upgrade/downgrade testing uses configs built with different version numbers
set(APP_COMPILER_FLAGS_upgrade1 ${SW_USB_AUDIO_FLAGS} -DBCD_DEVICE_J=0x99
-DBCD_DEVICE_M=0x0
-DBCD_DEVICE_N=0x1)

set(APP_COMPILER_FLAGS_upgrade2 ${SW_USB_AUDIO_FLAGS} -DBCD_DEVICE_J=0x99
-DBCD_DEVICE_M=0x0
-DBCD_DEVICE_N=0x2)

# Windows testing with the built-in driver relies on using product IDs that the Thesycon driver won't bind to
set(APP_COMPILER_FLAGS_2AMi8o8xxxxxx_winbuiltin ${SW_USB_AUDIO_FLAGS} -DPID_AUDIO_2=0x001a)

endif()
30 changes: 30 additions & 0 deletions app_usb_aud_xk_evk_xu316/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
cmake_minimum_required(VERSION 3.21)
include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake)
project(app_usb_aud_xk_evk_xu316)

set(APP_HW_TARGET XK-EVK-XU316)
include(${CMAKE_CURRENT_LIST_DIR}/../deps.cmake)
set(APP_PCA_ENABLE ON)
set(SW_USB_AUDIO_FLAGS ${EXTRA_BUILD_FLAGS} -fcomment-asm
-Wall
-O3
-report
-lquadflash
-g
-fxscope
-DUSB_TILE=tile[0]
-DADAT_TX_USE_SHARED_BUFF=1
-DQUAD_SPI_FLASH=1
-DXSCOPE
-DUAC_FORCE_FEEDBACK=1)

set(APP_COMPILER_FLAGS_1AMi2o2xxxxxx ${SW_USB_AUDIO_FLAGS} -DAUDIO_CLASS=1)

set(APP_COMPILER_FLAGS_2AMi2o2xxxxxx ${SW_USB_AUDIO_FLAGS})

include(${CMAKE_CURRENT_LIST_DIR}/configs_test.cmake)

set(APP_INCLUDES src src/core src/extensions)
set(XMOS_DEPS_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)

XMOS_REGISTER_APP()
15 changes: 15 additions & 0 deletions app_usb_aud_xk_evk_xu316/configs_test.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#
# Configs that are exclusively used for testing
#
if(TEST_SUPPORT_CONFIGS)

# DFU upgrade/downgrade testing uses configs built with different version numbers
set(APP_COMPILER_FLAGS_upgrade1 ${SW_USB_AUDIO_FLAGS} -DBCD_DEVICE_J=0x99
-DBCD_DEVICE_M=0x0
-DBCD_DEVICE_N=0x1)

set(APP_COMPILER_FLAGS_upgrade2 ${SW_USB_AUDIO_FLAGS} -DBCD_DEVICE_J=0x99
-DBCD_DEVICE_M=0x0
-DBCD_DEVICE_N=0x2)

endif()
31 changes: 31 additions & 0 deletions app_usb_aud_xk_evk_xu316_extrai2s/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
cmake_minimum_required(VERSION 3.21)
include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake)
project(app_usb_aud_xk_evk_xu316_extrai2s)

set(APP_HW_TARGET XK-EVK-XU316)
include(${CMAKE_CURRENT_LIST_DIR}/../deps.cmake)
list(APPEND APP_DEPENDENT_MODULES "lib_xud"
"lib_i2s")
set(APP_PCA_ENABLE ON)
set(SW_USB_AUDIO_FLAGS ${EXTRA_BUILD_FLAGS} -fcomment-asm
-Wall
-O3
-report
-lquadflash
-g
-fxscope
-DUSB_TILE=tile[0]
-DADAT_TX_USE_SHARED_BUFF=1
-DQUAD_SPI_FLASH=1
-DXSCOPE
-DUAC_FORCE_FEEDBACK=1)

set(APP_COMPILER_FLAGS_1AMi2o2xxxxxx ${SW_USB_AUDIO_FLAGS} -DAUDIO_CLASS=1)

set(APP_COMPILER_FLAGS_2AMi2o2xxxxxx ${SW_USB_AUDIO_FLAGS})


set(APP_INCLUDES src src/core src/extensions)
set(XMOS_DEPS_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)

XMOS_REGISTER_APP()
2 changes: 2 additions & 0 deletions deps.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
set(APP_DEPENDENT_MODULES "lib_xua"
"lib_i2c")

0 comments on commit 0e0c7c0

Please sign in to comment.