From 555ab22acac7fe6761d9be48c49ca5ef77b1eb5a Mon Sep 17 00:00:00 2001 From: Mike Bruno Date: Wed, 10 Jan 2018 15:45:33 -0500 Subject: [PATCH 1/3] Add wscript for xwaf --- lib_xua/wscript | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 lib_xua/wscript diff --git a/lib_xua/wscript b/lib_xua/wscript new file mode 100644 index 00000000..d7d30c1b --- /dev/null +++ b/lib_xua/wscript @@ -0,0 +1,35 @@ +def use_module(bld): + bld.env.XCC_FLAGS = bld.env.XCC_FLAGS + [ + '-O3', '-DREF_CLK_FREQ=100', '-fasm-linenum', '-fcomment-asm', + '-fsubword-select', '-DXUD_FULL_PIDTABLE=1' + ] + + source = bld.path.ant_glob( + [ + 'src/**/*.xc', 'src/**/*.c', 'src/**/*.S' + ], + excl=[ + '**/descriptors_2.rst' + ]) + + depends_on = [ + 'lib_logging(>=2.0.0)', 'lib_xassert(>=2.0.0)', 'lib_xud(>=1.0.0)' + ] + + + bld.env['XCC_FLAGS_endpoint0.c'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue'] + bld.env['XCC_FLAGS_dbcalc.xc'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue'] + bld.env['XCC_FLAGS_audiorequests.xc'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue'] + bld.env['XCC_FLAGS_flashlib_user.c'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue'] + bld.env['XCC_FLAGS_audioports.c'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue'] + bld.env['XCC_FLAGS_audioports.xc'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue'] + bld.env['XCC_FLAGS_dfu.xc'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue'] + bld.env['XCC_FLAGS_flash_interface.c'] = bld.env.XCC_FLAGS + ['-Os', '-mno-dual-issue'] + + + bld.module( + source=source, + depends_on=depends_on, + includes=['api'], + optional_headers='xua_conf.h', + version='1.0.0') From f69f25bc48355fe35e8c9168a89f531052c37d43 Mon Sep 17 00:00:00 2001 From: Mike Bruno Date: Wed, 10 Jan 2018 15:46:10 -0500 Subject: [PATCH 2/3] Allow lib_xua to drive its DACs even when there are no output USB channels This makes more sense since the number of DAC output channels is independent of the number of USB output channels --- lib_xua/src/core/audiohub/xua_audiohub.xc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib_xua/src/core/audiohub/xua_audiohub.xc b/lib_xua/src/core/audiohub/xua_audiohub.xc index e18d3c02..9fde1664 100755 --- a/lib_xua/src/core/audiohub/xua_audiohub.xc +++ b/lib_xua/src/core/audiohub/xua_audiohub.xc @@ -761,7 +761,7 @@ unsigned static deliver(chanend ?c_out, chanend ?c_spd_out #pragma xta endpoint "i2s_output_l" -#if (I2S_CHANS_DAC != 0) && (NUM_USB_CHAN_OUT != 0) +#if (I2S_CHANS_DAC != 0) index = 0; #pragma loop unroll /* Output "even" channel to DAC (i.e. left) */ @@ -782,7 +782,7 @@ unsigned static deliver(chanend ?c_out, chanend ?c_spd_out #endif /* (AUD_TO_USB_RATIO > 1) */ p_i2s_dac[index++] <: bitrev(samplesOut[frameCount +i]); } -#endif // (I2S_CHANS_DAC != 0) && (NUM_USB_CHAN_OUT != 0) +#endif // (I2S_CHANS_DAC != 0) #ifndef CODEC_MASTER /* Clock out the LR Clock, the DAC data and Clock in the next sample into ADC */ @@ -915,7 +915,7 @@ unsigned static deliver(chanend ?c_out, chanend ?c_spd_out index = 0; #pragma xta endpoint "i2s_output_r" -#if (I2S_CHANS_DAC != 0) && (NUM_USB_CHAN_OUT != 0) +#if (I2S_CHANS_DAC != 0) /* Output "odd" channel to DAC (i.e. right) */ #pragma loop unroll for(int i = 1; i < I2S_CHANS_DAC; i+=I2S_CHANS_PER_FRAME) @@ -935,7 +935,7 @@ unsigned static deliver(chanend ?c_out, chanend ?c_spd_out #endif /* (AUD_TO_USB_RATIO > 1) */ p_i2s_dac[index++] <: bitrev(samplesOut[frameCount + i]); } -#endif // (I2S_CHANS_DAC != 0) && (NUM_USB_CHAN_OUT != 0) +#endif // (I2S_CHANS_DAC != 0) #ifndef CODEC_MASTER doI2SClocks(divide); From 43c7d53ee147404355afb83aa3cbb8eda7a863d4 Mon Sep 17 00:00:00 2001 From: Mike Bruno Date: Wed, 10 Jan 2018 15:51:07 -0500 Subject: [PATCH 3/3] Parameters in mic_array_conf.h only get set if not already defined This allows the user to specify lib_mic_array parameters in xua_conf.h, overriding the defaults present in the mic_array_conf.h file included in lib_xua. For example, the application may use lib_mic_array independent of lib_xua. This makes that possible. --- lib_xua/src/core/pdm_mics/mic_array_conf.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib_xua/src/core/pdm_mics/mic_array_conf.h b/lib_xua/src/core/pdm_mics/mic_array_conf.h index f65e6da1..e29704d8 100644 --- a/lib_xua/src/core/pdm_mics/mic_array_conf.h +++ b/lib_xua/src/core/pdm_mics/mic_array_conf.h @@ -3,7 +3,12 @@ #include "xua_conf_full.h" +#ifndef MIC_ARRAY_MAX_FRAME_SIZE_LOG2 #define MIC_ARRAY_MAX_FRAME_SIZE_LOG2 0 +#endif + +#ifndef MIC_ARRAY_NUM_MICS #define MIC_ARRAY_NUM_MICS (NUM_PDM_MICS) +#endif #endif /* MIC_ARRAY_CONF_H_ */