From 14c49a680e19a8436f9ed1ac4e4380bcd032fa65 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Tue, 17 Feb 2026 14:02:10 +0000 Subject: [PATCH 01/12] Make a copy of the basic mic array example for porting to xCore-400 --- .../CMakeLists.txt | 24 +++++ .../app_mic_array_basic_xcore_400/README.md | 30 ++++++ .../app_mic_array_basic_xcore_400/convert.py | 27 ++++++ .../mic_array_output.bin | Bin 0 -> 128000 bytes .../app_mic_array_basic_xcore_400/output.wav | Bin 0 -> 128044 bytes .../src/XK-EVK-XU316-AIV.xn | 66 +++++++++++++ .../app_mic_array_basic_xcore_400/src/app.c | 89 ++++++++++++++++++ .../src/config.xscope | 18 ++++ .../src/device_pll_ctrl.c | 32 +++++++ .../src/device_pll_ctrl.h | 9 ++ .../app_mic_array_basic_xcore_400/src/main.xc | 25 +++++ 11 files changed, 320 insertions(+) create mode 100644 examples/app_mic_array_basic_xcore_400/CMakeLists.txt create mode 100644 examples/app_mic_array_basic_xcore_400/README.md create mode 100644 examples/app_mic_array_basic_xcore_400/convert.py create mode 100644 examples/app_mic_array_basic_xcore_400/mic_array_output.bin create mode 100644 examples/app_mic_array_basic_xcore_400/output.wav create mode 100644 examples/app_mic_array_basic_xcore_400/src/XK-EVK-XU316-AIV.xn create mode 100644 examples/app_mic_array_basic_xcore_400/src/app.c create mode 100644 examples/app_mic_array_basic_xcore_400/src/config.xscope create mode 100644 examples/app_mic_array_basic_xcore_400/src/device_pll_ctrl.c create mode 100644 examples/app_mic_array_basic_xcore_400/src/device_pll_ctrl.h create mode 100644 examples/app_mic_array_basic_xcore_400/src/main.xc diff --git a/examples/app_mic_array_basic_xcore_400/CMakeLists.txt b/examples/app_mic_array_basic_xcore_400/CMakeLists.txt new file mode 100644 index 00000000..6b7da34d --- /dev/null +++ b/examples/app_mic_array_basic_xcore_400/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.21) +include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake) +project(app_mic_array) + +set(XMOS_SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) + +set(APP_HW_TARGET src/XK-EVK-XU316-AIV.xn) +set(APP_DEPENDENT_MODULES "lib_mic_array") +set(APP_INCLUDES src) + +set(APP_COMPILER_FLAGS + -Os + -g + -report + -Wall + -fxscope + -Wno-xcore-fptrgroup + # Mic array config + -DMIC_ARRAY_CONFIG_SAMPLES_PER_FRAME=320 + -DMIC_ARRAY_CONFIG_MIC_COUNT=1 + -DMIC_ARRAY_CONFIG_USE_PDM_ISR=1 +) + +XMOS_REGISTER_APP() diff --git a/examples/app_mic_array_basic_xcore_400/README.md b/examples/app_mic_array_basic_xcore_400/README.md new file mode 100644 index 00000000..f548144a --- /dev/null +++ b/examples/app_mic_array_basic_xcore_400/README.md @@ -0,0 +1,30 @@ +# Basic Mic Array Example + +## Hardware Required + +- **XK-EVK-XU316-AIV.XN** + +## Compile + +```sh +cmake -G "Unix Makefiles" -B build +xmake -C build +``` + +## Run + +```sh +xrun --xscope bin/app_mic_array.xe +``` + +## Convert Binary Data to WAV + +```sh +python convert.py +``` + +**Output:** + +``` +Converted mic_array_output.bin to output.wav with 1 channels, 16000 Hz sample rate, and 32 bits per sample. +``` diff --git a/examples/app_mic_array_basic_xcore_400/convert.py b/examples/app_mic_array_basic_xcore_400/convert.py new file mode 100644 index 00000000..5dbf499d --- /dev/null +++ b/examples/app_mic_array_basic_xcore_400/convert.py @@ -0,0 +1,27 @@ +# Copyright 2026 XMOS LIMITED. +# This Software is subject to the terms of the XMOS Public Licence: Version 1. + +import numpy as np +import wave +import soundfile as sf + + +def convert_to_wav( + input_file, output_file, num_channels=1, sample_rate=16000, bits_per_sample=32 +): + with open(input_file, "rb") as inp_f: + data = inp_f.read() + data = np.frombuffer(data, dtype=np.int32) + + sf.write(output_file, data, sample_rate, subtype='PCM_32') + print(f"Converted {input_file} to {output_file} with {num_channels} channels, {sample_rate} Hz sample rate, and {bits_per_sample} bits per sample.") + + +if __name__ == "__main__": + convert_to_wav( + input_file="mic_array_output.bin", + output_file="output.wav", + num_channels=1, + sample_rate=16000, + bits_per_sample=32 + ) diff --git a/examples/app_mic_array_basic_xcore_400/mic_array_output.bin b/examples/app_mic_array_basic_xcore_400/mic_array_output.bin new file mode 100644 index 0000000000000000000000000000000000000000..4f69a22cbd732d381785dbac63d5c5ebb1f40a1a GIT binary patch literal 128000 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

%^QT9a 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 literal 0 HcmV?d00001 diff --git a/examples/app_mic_array_basic_xcore_400/output.wav b/examples/app_mic_array_basic_xcore_400/output.wav new file mode 100644 index 0000000000000000000000000000000000000000..dc80920981ba6954ae510e3574d3c39d2e8637c5 GIT binary patch literal 128044 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�mK&35}kJLoO0Fh#r{w=1;1tG~ZN03cfEd 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 literal 0 HcmV?d00001 diff --git a/examples/app_mic_array_basic_xcore_400/src/XK-EVK-XU316-AIV.xn b/examples/app_mic_array_basic_xcore_400/src/XK-EVK-XU316-AIV.xn new file mode 100644 index 00000000..b4eb8fff --- /dev/null +++ b/examples/app_mic_array_basic_xcore_400/src/XK-EVK-XU316-AIV.xn @@ -0,0 +1,66 @@ + + + Board + xcore.ai Vision Development Kit + + + tileref tile[2] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/app_mic_array_basic_xcore_400/src/app.c b/examples/app_mic_array_basic_xcore_400/src/app.c new file mode 100644 index 00000000..b11c25c4 --- /dev/null +++ b/examples/app_mic_array_basic_xcore_400/src/app.c @@ -0,0 +1,89 @@ +// Copyright 2026 XMOS LIMITED. +// This Software is subject to the terms of the XMOS Public Licence: Version 1. +#include +#include +#include + +#include +#include +#include +#include + +#include "mic_array.h" +#include "device_pll_ctrl.h" + +// -------------------- Frecuency and Port definitions -------------------- +#define MIC_ARRAY_CONFIG_MCLK_FREQ (24576000) +#define MIC_ARRAY_CONFIG_PDM_FREQ (3072000) +#define MIC_ARRAY_CONFIG_PORT_MCLK XS1_PORT_1D /* X0D11, J14 - Pin 15, '11' */ +#define MIC_ARRAY_CONFIG_PORT_PDM_CLK PORT_MIC_CLK /* X0D00, J14 - Pin 2, '00' */ +#define MIC_ARRAY_CONFIG_PORT_PDM_DATA PORT_MIC_DATA /* X0D14..X0D21 | J14 - Pin 3,5,12,14 and Pin 6,7,10,11 */ +#define MIC_ARRAY_CONFIG_CLOCK_BLOCK_A XS1_CLKBLK_2 +// ------------------------------------------------------------ + +// App defines +#define APP_N_SAMPLES (320) +#define APP_OUT_FREQ_HZ (16000) +#define APP_SAMPLE_SECONDS (2) +#define APP_N_FRAMES (APP_OUT_FREQ_HZ * APP_SAMPLE_SECONDS / APP_N_SAMPLES) +#define APP_BUFF_SIZE (APP_N_FRAMES * APP_N_SAMPLES) +#define APP_FILENAME ("mic_array_output.bin") + +DECLARE_JOB(user_mic, (chanend_t)); +DECLARE_JOB(user_audio, (chanend_t)); + +static pdm_rx_resources_t pdm_res = PDM_RX_RESOURCES_SDR( + MIC_ARRAY_CONFIG_PORT_MCLK, + MIC_ARRAY_CONFIG_PORT_PDM_CLK, + MIC_ARRAY_CONFIG_PORT_PDM_DATA, + MIC_ARRAY_CONFIG_MCLK_FREQ, + MIC_ARRAY_CONFIG_PDM_FREQ, + MIC_ARRAY_CONFIG_CLOCK_BLOCK_A); + +void user_mic(chanend_t c_mic_audio) +{ + printf("Mic Init\n"); + device_pll_init(); + mic_array_init(&pdm_res, NULL, APP_OUT_FREQ_HZ); + mic_array_start(c_mic_audio); +} + +void user_audio(chanend_t c_mic_audio) +{ + int32_t WORD_ALIGNED tmp_buff[APP_BUFF_SIZE] = {0}; + int32_t *buff_ptr = &tmp_buff[0]; + unsigned frame_counter = APP_N_FRAMES; + while (frame_counter--) + { + ma_frame_rx(buff_ptr, (chanend_t)c_mic_audio, MIC_ARRAY_CONFIG_MIC_COUNT, APP_N_SAMPLES); + buff_ptr += APP_N_SAMPLES; + for (unsigned i = 0; i < APP_N_SAMPLES; i++) + { + tmp_buff[i] <<= 6; + } + } + + // write samples to a binary file + printf("Writing output to %s\n", APP_FILENAME); + FILE *f = fopen(APP_FILENAME, "wb"); + assert(f != NULL); + fwrite(tmp_buff, sizeof(int32_t), APP_BUFF_SIZE, f); + fclose(f); + ma_shutdown(c_mic_audio); + printf("Done\n"); +} + +void main_tile_1(){ + channel_t c_mic_audio = chan_alloc(); + // Parallel Jobs + PAR_JOBS( + PJOB(user_mic, (c_mic_audio.end_a)), + PJOB(user_audio, (c_mic_audio.end_b)) + ); + chan_free(c_mic_audio); +} + +void main_tile_0(){ + // intentionally left empty + return; +} diff --git a/examples/app_mic_array_basic_xcore_400/src/config.xscope b/examples/app_mic_array_basic_xcore_400/src/config.xscope new file mode 100644 index 00000000..d3a3da63 --- /dev/null +++ b/examples/app_mic_array_basic_xcore_400/src/config.xscope @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/examples/app_mic_array_basic_xcore_400/src/device_pll_ctrl.c b/examples/app_mic_array_basic_xcore_400/src/device_pll_ctrl.c new file mode 100644 index 00000000..83b48726 --- /dev/null +++ b/examples/app_mic_array_basic_xcore_400/src/device_pll_ctrl.c @@ -0,0 +1,32 @@ +// Copyright 2022-2026 XMOS LIMITED. +// This Software is subject to the terms of the XMOS Public Licence: Version 1. + +#include +#include +#include +#include +#include "device_pll_ctrl.h" + + +void device_pll_init(void) +{ + unsigned tileid = get_local_tile_id(); + + const unsigned DEVICE_PLL_DISABLE = 0x0201FF04; + const unsigned DEVICE_PLL_DIV_0 = 0x80000004; + + write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_PLL_CTL_NUM, + DEVICE_PLL_DISABLE); + + hwtimer_t tmr = hwtimer_alloc(); + { + xassert(tmr != 0); + hwtimer_delay(tmr, 100000); // 1ms with 100 MHz timer tick + } + hwtimer_free(tmr); + + write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_PLL_CTL_NUM, DEVICE_PLL_CTL_VAL); + write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_PLL_CTL_NUM, DEVICE_PLL_CTL_VAL); + write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_PLL_FRAC_N_DIVIDER_NUM, DEVICE_PLL_FRAC_NOM); + write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_CLK_DIVIDER_NUM, DEVICE_PLL_DIV_0); +} diff --git a/examples/app_mic_array_basic_xcore_400/src/device_pll_ctrl.h b/examples/app_mic_array_basic_xcore_400/src/device_pll_ctrl.h new file mode 100644 index 00000000..7fe002e6 --- /dev/null +++ b/examples/app_mic_array_basic_xcore_400/src/device_pll_ctrl.h @@ -0,0 +1,9 @@ +// Copyright 2022-2026 XMOS LIMITED. +// This Software is subject to the terms of the XMOS Public Licence: Version 1. + +#pragma once + +#define DEVICE_PLL_CTL_VAL 0x0A019803 // Valid for all fractional values +#define DEVICE_PLL_FRAC_NOM 0x800095F9 // 24.576000 MHz + +void device_pll_init(void); diff --git a/examples/app_mic_array_basic_xcore_400/src/main.xc b/examples/app_mic_array_basic_xcore_400/src/main.xc new file mode 100644 index 00000000..2c695375 --- /dev/null +++ b/examples/app_mic_array_basic_xcore_400/src/main.xc @@ -0,0 +1,25 @@ +// Copyright 2023-2026 XMOS LIMITED. +// This Software is subject to the terms of the XMOS Public Licence: Version 1. + +#include +#include +#include +#include + +#include +#include + +extern "C" { + void main_tile_0(); + void main_tile_1(); +} + +int main(void) +{ + // Initialize parallel tasks + par{ + on tile[0]: main_tile_0(); + on tile[1]: main_tile_1(); + } + return 0; +} From e6b8534ada33759f9315493ce8160b8d9ebaf03c Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Thu, 19 Feb 2026 15:40:31 +0000 Subject: [PATCH 02/12] This is a safety commit. These files do not build successfully. device_pll_ctrl.c is known to be incomplete. --- .../CMakeLists.txt | 4 +- .../app_mic_array_basic_xcore_400/README.md | 2 +- .../src/XK-EVK-XU316-AIV.xn | 66 ------------------- .../app_mic_array_basic_xcore_400/src/app.c | 16 ++++- .../src/device_pll_ctrl.c | 41 ++++++++++++ .../app_mic_array_basic_xcore_400/src/main.xc | 25 ------- 6 files changed, 57 insertions(+), 97 deletions(-) delete mode 100644 examples/app_mic_array_basic_xcore_400/src/XK-EVK-XU316-AIV.xn delete mode 100644 examples/app_mic_array_basic_xcore_400/src/main.xc diff --git a/examples/app_mic_array_basic_xcore_400/CMakeLists.txt b/examples/app_mic_array_basic_xcore_400/CMakeLists.txt index 6b7da34d..4d651f96 100644 --- a/examples/app_mic_array_basic_xcore_400/CMakeLists.txt +++ b/examples/app_mic_array_basic_xcore_400/CMakeLists.txt @@ -4,7 +4,7 @@ project(app_mic_array) set(XMOS_SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) -set(APP_HW_TARGET src/XK-EVK-XU316-AIV.xn) +set(APP_HW_TARGET XK-EVK-XU416) set(APP_DEPENDENT_MODULES "lib_mic_array") set(APP_INCLUDES src) @@ -14,7 +14,7 @@ set(APP_COMPILER_FLAGS -report -Wall -fxscope - -Wno-xcore-fptrgroup + # -Wno-xcore-fptrgroup # Mic array config -DMIC_ARRAY_CONFIG_SAMPLES_PER_FRAME=320 -DMIC_ARRAY_CONFIG_MIC_COUNT=1 diff --git a/examples/app_mic_array_basic_xcore_400/README.md b/examples/app_mic_array_basic_xcore_400/README.md index f548144a..3c305b91 100644 --- a/examples/app_mic_array_basic_xcore_400/README.md +++ b/examples/app_mic_array_basic_xcore_400/README.md @@ -2,7 +2,7 @@ ## Hardware Required -- **XK-EVK-XU316-AIV.XN** +- **XMS0016** ## Compile diff --git a/examples/app_mic_array_basic_xcore_400/src/XK-EVK-XU316-AIV.xn b/examples/app_mic_array_basic_xcore_400/src/XK-EVK-XU316-AIV.xn deleted file mode 100644 index b4eb8fff..00000000 --- a/examples/app_mic_array_basic_xcore_400/src/XK-EVK-XU316-AIV.xn +++ /dev/null @@ -1,66 +0,0 @@ - - - Board - xcore.ai Vision Development Kit - - - tileref tile[2] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/app_mic_array_basic_xcore_400/src/app.c b/examples/app_mic_array_basic_xcore_400/src/app.c index b11c25c4..831d29ee 100644 --- a/examples/app_mic_array_basic_xcore_400/src/app.c +++ b/examples/app_mic_array_basic_xcore_400/src/app.c @@ -4,7 +4,12 @@ #include #include +#if defined (__XS3A__) #include +#elif defined (__VX4B__) +#include +#endif + #include #include #include @@ -15,9 +20,9 @@ // -------------------- Frecuency and Port definitions -------------------- #define MIC_ARRAY_CONFIG_MCLK_FREQ (24576000) #define MIC_ARRAY_CONFIG_PDM_FREQ (3072000) -#define MIC_ARRAY_CONFIG_PORT_MCLK XS1_PORT_1D /* X0D11, J14 - Pin 15, '11' */ -#define MIC_ARRAY_CONFIG_PORT_PDM_CLK PORT_MIC_CLK /* X0D00, J14 - Pin 2, '00' */ -#define MIC_ARRAY_CONFIG_PORT_PDM_DATA PORT_MIC_DATA /* X0D14..X0D21 | J14 - Pin 3,5,12,14 and Pin 6,7,10,11 */ +#define MIC_ARRAY_CONFIG_PORT_MCLK XS1_PORT_1D +#define MIC_ARRAY_CONFIG_PORT_PDM_CLK XS1_PORT_1G /* X1D22 */ +#define MIC_ARRAY_CONFIG_PORT_PDM_DATA XS1_PORT_1F /* X1D13 */ #define MIC_ARRAY_CONFIG_CLOCK_BLOCK_A XS1_CLKBLK_2 // ------------------------------------------------------------ @@ -87,3 +92,8 @@ void main_tile_0(){ // intentionally left empty return; } + +NETWORK_MAIN( + TILE_MAIN(main_tile_1, 1, ()), + TILE_MAIN(main_tile_0, 0, ()) +) diff --git a/examples/app_mic_array_basic_xcore_400/src/device_pll_ctrl.c b/examples/app_mic_array_basic_xcore_400/src/device_pll_ctrl.c index 83b48726..233e2911 100644 --- a/examples/app_mic_array_basic_xcore_400/src/device_pll_ctrl.c +++ b/examples/app_mic_array_basic_xcore_400/src/device_pll_ctrl.c @@ -1,8 +1,15 @@ // Copyright 2022-2026 XMOS LIMITED. // This Software is subject to the terms of the XMOS Public Licence: Version 1. +#if defined (__XS3A__) #include #include +#elif defined (__VX4B__) +#include +#include +#include +#endif + #include #include #include "device_pll_ctrl.h" @@ -10,10 +17,43 @@ void device_pll_init(void) { + #if 0 unsigned tileid = get_local_tile_id(); + #if defined (__XS3A__) + // SS_APP_PLL_BYPASS (29:29) = 0b0 = 0x0 + // SS_APP_PLL_INPUT_FROM_SYS_PLL (28:28) = 0b0 = 0x0 + // SS_APP_PLL_ENABLE (27:27) = 0b0 = 0x0 + // Reserved (26:26) = 0b0 = 0x0 + // SS_PLL_CTL_POST_DIVISOR (25:23) = 0b100 = 0x4 + // Reserved (22:21) = 0b00 = 0x0 + // SS_PLL_CTL_FEEDBACK_MUL (20:08) = 0b0000111111111 = 0x01FF + // Reserved (07:06) = 0b00 = 0x0 + // SS_PLL_CTL_INPUT_DIVISOR (05:00) = 0b000100 = 0x04 const unsigned DEVICE_PLL_DISABLE = 0x0201FF04; + + // SS_APP_CLK_FROM_APP_PLL (31:31) = 0b1 = 0x1 + // Reserved (30:17) = 0b00000000000000 = 0x0 + // SS_APP_CLK_DIV_DISABLE (16:16) = 0b0 = 0x0 + // SS_APP_CLK_DIV (15:00) = 0b0000000000000100 = 0x0004 + const unsigned DEVICE_PLL_DIV_0 = 0x80000004; + #elif defined (__VX4B__) + // Reserved (31:31) = 0b0 = 0x0 + // NLOCK (30:30) = 0b0 = 0x0 + // Reserved (29:29) = 0b0 = 0x0 + // BYPASS (28:28) = 0b0 = 0x0 + // Reserved (27:27) = 0b0 = 0x0 + // DISABLE (26:26) = 0b1 = 0x1 + // OD_DIVIDER (25:23) = 0b100 = 0x4 + // Reserved (22:21) = 0b00 = 0x0 + // F_MULTIPLIER (20:08) = 0b0000111111111 = 0x01FF + // Reserved (07:06) = 0b00 = 0x0 + // R_DIVIDER (05:00) = 0b000100 = 0x04 + const unsigned DEVICE_PLL_DISABLE = 0x0601FF04; const unsigned DEVICE_PLL_DIV_0 = 0x80000004; + #else + #error "Unsupported architecture" + #endif write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_PLL_CTL_NUM, DEVICE_PLL_DISABLE); @@ -29,4 +69,5 @@ void device_pll_init(void) write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_PLL_CTL_NUM, DEVICE_PLL_CTL_VAL); write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_PLL_FRAC_N_DIVIDER_NUM, DEVICE_PLL_FRAC_NOM); write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_CLK_DIVIDER_NUM, DEVICE_PLL_DIV_0); +#endif } diff --git a/examples/app_mic_array_basic_xcore_400/src/main.xc b/examples/app_mic_array_basic_xcore_400/src/main.xc deleted file mode 100644 index 2c695375..00000000 --- a/examples/app_mic_array_basic_xcore_400/src/main.xc +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2023-2026 XMOS LIMITED. -// This Software is subject to the terms of the XMOS Public Licence: Version 1. - -#include -#include -#include -#include - -#include -#include - -extern "C" { - void main_tile_0(); - void main_tile_1(); -} - -int main(void) -{ - // Initialize parallel tasks - par{ - on tile[0]: main_tile_0(); - on tile[1]: main_tile_1(); - } - return 0; -} From 249f05322b8cacdf649bb621cc291d638c98ba11 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Fri, 20 Feb 2026 17:13:20 +0000 Subject: [PATCH 03/12] Safety commit --- examples/app_mic_array_basic_xcore_400/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/app_mic_array_basic_xcore_400/CMakeLists.txt b/examples/app_mic_array_basic_xcore_400/CMakeLists.txt index 4d651f96..1956c441 100644 --- a/examples/app_mic_array_basic_xcore_400/CMakeLists.txt +++ b/examples/app_mic_array_basic_xcore_400/CMakeLists.txt @@ -18,7 +18,7 @@ set(APP_COMPILER_FLAGS # Mic array config -DMIC_ARRAY_CONFIG_SAMPLES_PER_FRAME=320 -DMIC_ARRAY_CONFIG_MIC_COUNT=1 - -DMIC_ARRAY_CONFIG_USE_PDM_ISR=1 + -DMIC_ARRAY_CONFIG_USE_PDM_ISR=0 ) XMOS_REGISTER_APP() From ad5eae94ddf0e95ebfc66d6c92f119048ca18397 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Fri, 20 Feb 2026 17:17:01 +0000 Subject: [PATCH 04/12] Safety commit --- lib_mic_array/src/mic_array_task.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/lib_mic_array/src/mic_array_task.cpp b/lib_mic_array/src/mic_array_task.cpp index d7e0ab5c..7f8af8f2 100644 --- a/lib_mic_array/src/mic_array_task.cpp +++ b/lib_mic_array/src/mic_array_task.cpp @@ -19,7 +19,7 @@ bool use_3_stg_decimator = false; // until mic_array_start() completes. mic_array_start() performs shutdown and // then sets g_mics back to nullptr. -#if defined(__XS3A__) || defined(__VX4B__) +#if defined (__XS3A__) || defined (__VX4B__) //////////////////// // Mic array init // //////////////////// @@ -106,6 +106,10 @@ void default_ma_task_start_decimator_3stg(TMicArray_3stg_decimator& mics, chanen #if defined(__XS3A__) #define CLEAR_KEDI() asm volatile("clrsr %0" : : "n"(XS1_SR_KEDI_MASK)); +#elif defined(__VX4B__) +// VX4 processors do not have a dual-issue mode due to VLIW instructions. +// Remove any definition of CLEAR_KEDI so any acciddental use of it will be caught at compile time. +#undef CLEAR_KEDI #else #warning "CLEAR_KEDI not defined for this architecture." #endif @@ -114,7 +118,11 @@ template void start_mics_with_pdm_isr(TMics* mics_ptr, chanend_t c_frames_out) { assert(mics_ptr != nullptr); - CLEAR_KEDI(); + + #if defined(__XS3A__) + CLEAR_KEDI(); // Disable dual-issue mode on XS3A processors. VX4 processors do not have a dual-issue mode. + #endif + mics_ptr->OutputHandler.FrameTx.SetChannel(c_frames_out); mics_ptr->PdmRx.AssertOnDroppedBlock(false); mics_ptr->PdmRx.InstallISR(); @@ -147,7 +155,7 @@ void mic_array_start( PJOB(default_ma_task_start_pdm, (*g_mics)), PJOB(default_ma_task_start_decimator, (*g_mics, c_frames_out))); } -#endif +#endif // MIC_ARRAY_CONFIG_USE_PDM_ISR // shutdown if (use_3_stg_decimator) { g_mics_3stg->~TMicArray_3stg_decimator(); @@ -158,6 +166,7 @@ void mic_array_start( g_mics = nullptr; } } + // Override pdm data port. Only used in tests where a chanend is used as a 'port' for input pdm data. void _mic_array_override_pdm_port(chanend_t c_pdm) { @@ -176,4 +185,4 @@ extern "C" void _mic_array_override_pdm_port_c(chanend_t c_pdm) _mic_array_override_pdm_port(c_pdm); } -#endif // __XS3A__ or __VX4B__ +#endif // __XS3A__ || __VX4B__ From d48735f30ebda0bf02ccd339a5782c2290287376 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Tue, 24 Feb 2026 12:07:28 +0000 Subject: [PATCH 05/12] Safety commit; compiles clean with XTC v15.3.1; fails to compile with Slipgate --- lib_mic_array/src/mic_array_task.c | 92 ++++++++ lib_mic_array/src/mic_array_task.cpp | 223 ++++++++++-------- lib_mic_array/src/mic_array_task_internal.hpp | 90 +++---- 3 files changed, 257 insertions(+), 148 deletions(-) create mode 100644 lib_mic_array/src/mic_array_task.c diff --git a/lib_mic_array/src/mic_array_task.c b/lib_mic_array/src/mic_array_task.c new file mode 100644 index 00000000..d217afc7 --- /dev/null +++ b/lib_mic_array/src/mic_array_task.c @@ -0,0 +1,92 @@ +// Copyright 2026 XMOS LIMITED. +// This Software is subject to the terms of the XMOS Public Licence: Version 1. + +#include +#include +#include +#include + +#include "mic_array.h" +#include "mic_array_task_internal.hpp" + +//////////////////// +// Mic array init // +//////////////////// +void mic_array_init(pdm_rx_resources_t *pdm_res, const unsigned *channel_map, unsigned output_samp_freq) +{ + unsigned stg2_decimation_factor = (pdm_res->pdm_freq/STAGE1_DEC_FACTOR)/output_samp_freq; + assert ((output_samp_freq*STAGE1_DEC_FACTOR*stg2_decimation_factor) == pdm_res->pdm_freq); // assert if it doesn't divide cleanly + // assert if unsupported decimation factor. (for example. when starting with a pdm_freq of 3.072MHz, supported + // output sampling freqs are [48000, 32000, 16000] + assert ((stg2_decimation_factor == 2) || (stg2_decimation_factor == 3) || (stg2_decimation_factor == 6)); + + bool use_3_stg_decimator = false; + init_mic_array_storage(use_3_stg_decimator); + init_mics_default_filter(pdm_res, channel_map, stg2_decimation_factor); +} + +void mic_array_init_custom_filter(pdm_rx_resources_t* pdm_res, mic_array_conf_t* mic_array_conf) +{ + assert(pdm_res); + assert(mic_array_conf); + assert(mic_array_conf->decimator_conf.num_filter_stages == 2 || + mic_array_conf->decimator_conf.num_filter_stages == 3); + + init_mic_array_storage(mic_array_conf->decimator_conf.num_filter_stages == 3); + init_mics_custom_filter(pdm_res, mic_array_conf); + + // Configure and start clocks + const unsigned divide = pdm_res->mclk_freq / pdm_res->pdm_freq; + mic_array_resources_configure(pdm_res, divide); + mic_array_pdm_clock_start(pdm_res); +} + +///////////////////// +// Mic array start // +///////////////////// + +// Parallel jobs for when XUA_PDM_MIC_USE_PDM_ISR == 0, run separate decimator and pdm rx tasks +DECLARE_JOB(default_ma_task_start_pdm, (void)); +void default_ma_task_start_pdm(void) +{ + start_pdm_task(); +} + +DECLARE_JOB(default_ma_task_start_decimator, (chanend_t)); +void default_ma_task_start_decimator(chanend_t c_audio_frames) +{ + start_decimator_task(); +} + +DECLARE_JOB(default_ma_task_start_pdm_3stg, (void)); +void default_ma_task_start_pdm_3stg(void) +{ + start_pdm_task_3stg(); +} + +DECLARE_JOB(default_ma_task_start_decimator_3stg, (chanend_t)); +void default_ma_task_start_decimator_3stg(chanend_t c_audio_frames) +{ + start_decimator_task_3stg(); +} + +void mic_array_start(chanend_t c_frames_out) +{ +#if MIC_ARRAY_CONFIG_USE_PDM_ISR + start_mic_array_pdm_isr(c_frames_out); +#else + set_output_channel(c_frames_out); + bool use_3_stg_decimator = get_decimator_stg_count(); + if (use_3_stg_decimator) { + PAR_JOBS( + PJOB(default_ma_task_start_pdm_3stg, ()), + PJOB(default_ma_task_start_decimator_3stg, ())); + } else { + PAR_JOBS( + PJOB(default_ma_task_start_pdm, ()), + PJOB(default_ma_task_start_decimator, ())); + } +#endif // MIC_ARRAY_CONFIG_USE_PDM_ISR + + shutdown_mic_array(); +} diff --git a/lib_mic_array/src/mic_array_task.cpp b/lib_mic_array/src/mic_array_task.cpp index 46f9beb3..5182d1f3 100644 --- a/lib_mic_array/src/mic_array_task.cpp +++ b/lib_mic_array/src/mic_array_task.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include @@ -12,40 +11,86 @@ #include "mic_array/etc/filters_default.h" #include "mic_array_task_internal.hpp" -TMicArray *g_mics = nullptr; // Global mic array instance. -TMicArray_3stg_decimator *g_mics_3stg = nullptr; -bool use_3_stg_decimator = false; -// NOTE: g_mics must persist (remain non-null and its backing storage valid) +static TMicArray *s_mics = nullptr; +static TMicArray_3stg_decimator *s_mics_3stg = nullptr; +static bool s_use_3_stg_decimator = false; +// NOTE: s_mics or s_mics_3stg must persist (remain non-null with its backing storage valid) // until mic_array_start() completes. mic_array_start() performs shutdown and -// then sets g_mics back to nullptr. +// then sets s_mics or s_mics_3stg back to nullptr. #if defined (__XS3A__) || defined (__VX4B__) +///////////////////////////// +// Static variable getters // +///////////////////////////// +bool get_decimator_stg_count(void) +{ + return s_use_3_stg_decimator; +} + //////////////////// // Mic array init // //////////////////// -void mic_array_init(pdm_rx_resources_t *pdm_res, const unsigned *channel_map, unsigned output_samp_freq) +void init_mics_default_filter(pdm_rx_resources_t* pdm_res, const unsigned* channel_map, unsigned stg2_dec_factor) { - assert(g_mics == nullptr); // Mic array instance already initialised + static int32_t stg1_filter_state[MIC_ARRAY_CONFIG_MIC_COUNT][8]; + mic_array_decimator_conf_t decimator_conf; + memset(&decimator_conf, 0, sizeof(decimator_conf)); + mic_array_filter_conf_t filter_conf[2] = {{0}}; + + // decimator + decimator_conf.filter_conf = &filter_conf[0]; + decimator_conf.num_filter_stages = 2; + //filter stage 1 + filter_conf[0].coef = (int32_t*)stage_1_filter(stg2_dec_factor); + filter_conf[0].num_taps = 256; + filter_conf[0].decimation_factor = 32; + filter_conf[0].shr = 0; + filter_conf[0].state_words_per_channel = filter_conf[0].num_taps/32; + filter_conf[0].state = (int32_t*)stg1_filter_state; + + // filter stage 2 + filter_conf[1].coef = (int32_t*)stage_2_filter(stg2_dec_factor); + filter_conf[1].num_taps = stage_2_num_taps(stg2_dec_factor); + filter_conf[1].decimation_factor = stg2_dec_factor; + filter_conf[1].shr = stage_2_shift(stg2_dec_factor); + filter_conf[1].state_words_per_channel = decimator_conf.filter_conf[1].num_taps; + filter_conf[1].state = stage_2_state_memory(stg2_dec_factor); + + s_mics->Decimator.Init(decimator_conf); + + pdm_rx_conf_t pdm_rx_config; + pdm_rx_config.pdm_out_words_per_channel = stg2_dec_factor; + pdm_rx_config.pdm_out_block = get_pdm_rx_out_block(stg2_dec_factor); + pdm_rx_config.pdm_in_double_buf = get_pdm_rx_out_block_double_buf(stg2_dec_factor); + + s_mics->PdmRx.Init(pdm_res->p_pdm_mics, pdm_rx_config); + + if(channel_map) { + s_mics->PdmRx.MapChannels(channel_map); + } - use_3_stg_decimator = false; + int divide = pdm_res->mclk_freq / pdm_res->pdm_freq; + mic_array_resources_configure(pdm_res, divide); + mic_array_pdm_clock_start(pdm_res); +} - unsigned stg2_decimation_factor = (pdm_res->pdm_freq/STAGE1_DEC_FACTOR)/output_samp_freq; - assert ((output_samp_freq*STAGE1_DEC_FACTOR*stg2_decimation_factor) == pdm_res->pdm_freq); // assert if it doesn't divide cleanly - // assert if unsupported decimation factor. (for example. when starting with a pdm_freq of 3.072MHz, supported - // output sampling freqs are [48000, 32000, 16000] - assert ((stg2_decimation_factor == 2) || (stg2_decimation_factor == 3) || (stg2_decimation_factor == 6)); - static uint8_t __attribute__((aligned(8))) mic_storage[sizeof(TMicArray)]; - g_mics = new (mic_storage) TMicArray(); - init_mics_default_filter(g_mics, pdm_res, channel_map, stg2_decimation_factor); +void init_mic_array_storage(bool use_3_stg_decimator) +{ + assert(s_mics == nullptr && s_mics_3stg == nullptr); // Mic array instance already initialised + s_use_3_stg_decimator = use_3_stg_decimator; + if(s_use_3_stg_decimator) { + static uint8_t __attribute__((aligned(8))) mic_storage[sizeof(TMicArray_3stg_decimator)]; + s_mics_3stg = new (mic_storage) TMicArray_3stg_decimator(); + } else { + static uint8_t __attribute__((aligned(8))) mic_storage[sizeof(TMicArray)]; + s_mics = new (mic_storage) TMicArray(); + } } template -static inline void init_from_conf(TMics*& mics_ptr, - uint8_t* storage, - pdm_rx_resources_t* pdm_res, - mic_array_conf_t* conf) { - mics_ptr = new (storage) TMics(); +static inline void init_from_conf(TMics*& mics_ptr, pdm_rx_resources_t* pdm_res, mic_array_conf_t* conf) +{ mics_ptr->Decimator.Init(conf->decimator_conf); mics_ptr->PdmRx.Init(pdm_res->p_pdm_mics, conf->pdmrx_conf); if (conf->pdmrx_conf.channel_map) { @@ -54,54 +99,43 @@ static inline void init_from_conf(TMics*& mics_ptr, mics_ptr->PdmRx.AssertOnDroppedBlock(false); } -void mic_array_init_custom_filter(pdm_rx_resources_t* pdm_res, - mic_array_conf_t* mic_array_conf) +void init_mics_custom_filter(pdm_rx_resources_t* pdm_res, mic_array_conf_t* mic_array_conf) { - assert(pdm_res); - assert(mic_array_conf); - assert(g_mics == nullptr && g_mics_3stg == nullptr); - static uint8_t __attribute__((aligned(8))) mic_storage[sizeof(UAnyMicArray)]; - - if(mic_array_conf->decimator_conf.num_filter_stages == 2) - { - use_3_stg_decimator = false; - init_from_conf(g_mics, mic_storage, pdm_res, mic_array_conf); - } - else if(mic_array_conf->decimator_conf.num_filter_stages == 3) - { - init_from_conf(g_mics_3stg, mic_storage, pdm_res, mic_array_conf); - use_3_stg_decimator = true; + if(mic_array_conf->decimator_conf.num_filter_stages == 2) { + init_from_conf(s_mics, pdm_res, mic_array_conf); + } else if(mic_array_conf->decimator_conf.num_filter_stages == 3) { + init_from_conf(s_mics_3stg, pdm_res, mic_array_conf); + } else { + assert(false && "Unsupported number of filter stages in mic_array_conf"); } - // Configure and start clocks - const unsigned divide = pdm_res->mclk_freq / pdm_res->pdm_freq; - mic_array_resources_configure(pdm_res, divide); - mic_array_pdm_clock_start(pdm_res); } ///////////////////// // Mic array start // ///////////////////// - -// Parallel jobs for when XUA_PDM_MIC_USE_PDM_ISR == 0, run separate decimator and pdm rx tasks -DECLARE_JOB(default_ma_task_start_pdm, (TMicArray&)); -void default_ma_task_start_pdm(TMicArray& mics){ - mics.PdmRx.ThreadEntry(); -} - -DECLARE_JOB(default_ma_task_start_decimator, (TMicArray&, chanend_t)); -void default_ma_task_start_decimator(TMicArray& mics, chanend_t c_audio_frames){ - mics.ThreadEntry(); +void set_output_channel(chanend_t c_frames_out) +{ + if (s_use_3_stg_decimator) { + assert(s_mics_3stg != nullptr); + s_mics_3stg->OutputHandler.FrameTx.SetChannel(c_frames_out); + } else { + assert(s_mics != nullptr); + s_mics->OutputHandler.FrameTx.SetChannel(c_frames_out); + } } -DECLARE_JOB(default_ma_task_start_pdm_3stg, (TMicArray_3stg_decimator&)); -void default_ma_task_start_pdm_3stg(TMicArray_3stg_decimator& mics){ - mics.PdmRx.ThreadEntry(); -} +void shutdown_mic_array(void) +{ + if (s_use_3_stg_decimator) { + s_mics_3stg->~TMicArray_3stg_decimator(); + } + else { + s_mics->~TMicArray(); + } -DECLARE_JOB(default_ma_task_start_decimator_3stg, (TMicArray_3stg_decimator&, chanend_t)); -void default_ma_task_start_decimator_3stg(TMicArray_3stg_decimator& mics, chanend_t c_audio_frames){ - mics.ThreadEntry(); + s_mics_3stg = nullptr; + s_mics = nullptr; } #if defined(__XS3A__) @@ -111,7 +145,7 @@ void default_ma_task_start_decimator_3stg(TMicArray_3stg_decimator& mics, chanen // Remove any definition of CLEAR_KEDI so any acciddental use of it will be caught at compile time. #undef CLEAR_KEDI #else -#define CLEAR_KEDI() ((void)0) // not defined in !xs3a +#undef CLEAR_KEDI // Catch at compile time if attempting to use CLEAR_KEDI on unsupported architectures. #endif template @@ -130,57 +164,54 @@ void start_mics_with_pdm_isr(TMics* mics_ptr, chanend_t c_frames_out) mics_ptr->ThreadEntry(); } -void mic_array_start( - chanend_t c_frames_out) +void start_mic_array_pdm_isr(chanend_t c_frames_out) { #if MIC_ARRAY_CONFIG_USE_PDM_ISR - if (use_3_stg_decimator) { - start_mics_with_pdm_isr(g_mics_3stg, c_frames_out); + if (s_use_3_stg_decimator) { + start_mics_with_pdm_isr(s_mics_3stg, c_frames_out); } else { - start_mics_with_pdm_isr(g_mics, c_frames_out); - } -#else - if (use_3_stg_decimator) { - assert(g_mics_3stg != nullptr); // Attempting to start mic_array before initialising it - g_mics_3stg->OutputHandler.FrameTx.SetChannel(c_frames_out); - PAR_JOBS( - PJOB(default_ma_task_start_pdm_3stg, (*g_mics_3stg)), - PJOB(default_ma_task_start_decimator_3stg, (*g_mics_3stg, c_frames_out))); - } - else - { - g_mics->OutputHandler.FrameTx.SetChannel(c_frames_out); - PAR_JOBS( - PJOB(default_ma_task_start_pdm, (*g_mics)), - PJOB(default_ma_task_start_decimator, (*g_mics, c_frames_out))); - } -#endif // MIC_ARRAY_CONFIG_USE_PDM_ISR - // shutdown - if (use_3_stg_decimator) { - g_mics_3stg->~TMicArray_3stg_decimator(); - g_mics_3stg = nullptr; - } - else { - g_mics->~TMicArray(); - g_mics = nullptr; + start_mics_with_pdm_isr(s_mics, c_frames_out); } +#endif +} + +// Helper functions for starting separate tasks +void start_pdm_task(void) +{ + s_mics->PdmRx.ThreadEntry(); +} + +void start_decimator_task(void) +{ + s_mics->ThreadEntry(); +} + +void start_pdm_task_3stg(void) +{ + s_mics_3stg->PdmRx.ThreadEntry(); +} + +void start_decimator_task_3stg(void) +{ + s_mics_3stg->ThreadEntry(); } // Override pdm data port. Only used in tests where a chanend is used as a 'port' for input pdm data. void _mic_array_override_pdm_port(chanend_t c_pdm) { - if (use_3_stg_decimator) { - assert(g_mics_3stg != nullptr); - g_mics_3stg->PdmRx.SetPort((port_t)c_pdm); + if (s_use_3_stg_decimator) { + assert(s_mics_3stg != nullptr); + s_mics_3stg->PdmRx.SetPort((port_t)c_pdm); } else { - assert(g_mics != nullptr); - g_mics->PdmRx.SetPort((port_t)c_pdm); + assert(s_mics != nullptr); + s_mics->PdmRx.SetPort((port_t)c_pdm); } } // C wrapper -extern "C" void _mic_array_override_pdm_port_c(chanend_t c_pdm) +MA_C_API +void _mic_array_override_pdm_port_c(chanend_t c_pdm) { _mic_array_override_pdm_port(c_pdm); } diff --git a/lib_mic_array/src/mic_array_task_internal.hpp b/lib_mic_array/src/mic_array_task_internal.hpp index 33386bd8..97536b25 100644 --- a/lib_mic_array/src/mic_array_task_internal.hpp +++ b/lib_mic_array/src/mic_array_task_internal.hpp @@ -6,6 +6,7 @@ #include "mic_array.h" #include "mic_array/etc/filters_default.h" +#ifdef __cplusplus using TMicArray = mic_array::MicArray, mic_array::StandardPdmRxService>; -union UAnyMicArray { - TMicArray m_2stg; - TMicArray_3stg_decimator m_3stg; -}; - union UStg2_filter_state { int32_t filter_state_df_6[MIC_ARRAY_CONFIG_MIC_COUNT][STAGE2_TAP_COUNT]; int32_t filter_state_df_3[MIC_ARRAY_CONFIG_MIC_COUNT][MIC_ARRAY_32K_STAGE_2_TAP_COUNT]; @@ -54,11 +50,9 @@ union UPdmRx_out_block_double_buf { uint32_t __attribute__((aligned (8))) out_block_double_buf_df_2[2][MIC_ARRAY_CONFIG_MIC_IN_COUNT * 2]; }; -extern TMicArray* g_mics; - -UStg2_filter_state stg2_filter_state_mem; -UPdmRx_out_block pdm_rx_out_block; -UPdmRx_out_block_double_buf __attribute__((aligned (8))) pdm_rx_out_block_double_buf; // deinterleave() functions expect dword alignment +union UStg2_filter_state stg2_filter_state_mem; +union UPdmRx_out_block pdm_rx_out_block; +union UPdmRx_out_block_double_buf __attribute__((aligned (8))) pdm_rx_out_block_double_buf; // deinterleave() functions expect dword alignment inline const uint32_t* stage_1_filter(unsigned stg2_dec_factor) { // stg2 decimation factor also seems to affect the stage1 filter used @@ -91,45 +85,37 @@ inline uint32_t* get_pdm_rx_out_block_double_buf(unsigned stg2_dec_factor) { : (uint32_t*)pdm_rx_out_block_double_buf.out_block_double_buf_df_2); } -inline void init_mics_default_filter(TMicArray* m, pdm_rx_resources_t* pdm_res, const unsigned* channel_map, unsigned stg2_dec_factor) { - static int32_t stg1_filter_state[MIC_ARRAY_CONFIG_MIC_COUNT][8]; - mic_array_decimator_conf_t decimator_conf; - memset(&decimator_conf, 0, sizeof(decimator_conf)); - mic_array_filter_conf_t filter_conf[2] = {{0}}; - - // decimator - decimator_conf.filter_conf = &filter_conf[0]; - decimator_conf.num_filter_stages = 2; - //filter stage 1 - filter_conf[0].coef = (int32_t*)stage_1_filter(stg2_dec_factor); - filter_conf[0].num_taps = 256; - filter_conf[0].decimation_factor = 32; - filter_conf[0].shr = 0; - filter_conf[0].state_words_per_channel = filter_conf[0].num_taps/32; - filter_conf[0].state = (int32_t*)stg1_filter_state; - - // filter stage 2 - filter_conf[1].coef = (int32_t*)stage_2_filter(stg2_dec_factor); - filter_conf[1].num_taps = stage_2_num_taps(stg2_dec_factor); - filter_conf[1].decimation_factor = stg2_dec_factor; - filter_conf[1].shr = stage_2_shift(stg2_dec_factor); - filter_conf[1].state_words_per_channel = decimator_conf.filter_conf[1].num_taps; - filter_conf[1].state = stage_2_state_memory(stg2_dec_factor); - - m->Decimator.Init(decimator_conf); - - pdm_rx_conf_t pdm_rx_config; - pdm_rx_config.pdm_out_words_per_channel = stg2_dec_factor; - pdm_rx_config.pdm_out_block = get_pdm_rx_out_block(stg2_dec_factor); - pdm_rx_config.pdm_in_double_buf = get_pdm_rx_out_block_double_buf(stg2_dec_factor); - - - m->PdmRx.Init(pdm_res->p_pdm_mics, pdm_rx_config); - - if(channel_map) { - m->PdmRx.MapChannels(channel_map); - } - int divide = pdm_res->mclk_freq / pdm_res->pdm_freq; - mic_array_resources_configure(pdm_res, divide); - mic_array_pdm_clock_start(pdm_res); -} +#endif // __cplusplus + +MA_C_API +bool get_decimator_stg_count(void); + +MA_C_API +void init_mic_array_storage(bool use_3_stg_decimator); + +MA_C_API +void init_mics_custom_filter(pdm_rx_resources_t* pdm_res, mic_array_conf_t* mic_array_conf); + +MA_C_API +void init_mics_default_filter(pdm_rx_resources_t* pdm_res, const unsigned* channel_map, unsigned stg2_dec_factor); + +MA_C_API +void set_output_channel(chanend_t c_frames_out); + +MA_C_API +void shutdown_mic_array(void); + +MA_C_API +void start_decimator_task(void); + +MA_C_API +void start_decimator_task_3stg(void); + +MA_C_API +void start_mic_array_pdm_isr(chanend_t c_frames_out); + +MA_C_API +void start_pdm_task(void); + +MA_C_API +void start_pdm_task_3stg(void); From 8014a85bcfd154aa70880969198c12e95f691b85 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Tue, 24 Feb 2026 15:31:26 +0000 Subject: [PATCH 06/12] Add definition of pdm_rx_isr_context for the VX4 implementation. Parts of this context are used when running the decimator in a separate thread. All of it is used when running the decimator as an ISR. --- lib_mic_array/src/pdm_rx_isr.S | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib_mic_array/src/pdm_rx_isr.S b/lib_mic_array/src/pdm_rx_isr.S index 6c649f1e..8c0cfaa5 100644 --- a/lib_mic_array/src/pdm_rx_isr.S +++ b/lib_mic_array/src/pdm_rx_isr.S @@ -129,4 +129,18 @@ FUNCTION_NAME: .resource_list_empty FUNCTION_NAME, "tail_callees" .resource_list_empty FUNCTION_NAME, "parallel_callees" +.section .data.pdm_rx_isr_context, "aw" +.p2align 1 +.globl pdm_rx_isr_context + +pdm_rx_isr_context: + .word 0 // .L_port + .word 0 // .L_buffA + .word 0 // .L_buffB + .word 0 // .L_phase1 + .word 0 // .L_phase1_reset + .word 0 // .L_c_out + .word 0 // .L_credit + .word -1 // .L_missed_blocks + #endif // __VX4A__ || __VX4B__ From 29b2d2bbba9138925e005348005d58b923e99f36 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Tue, 24 Feb 2026 15:33:42 +0000 Subject: [PATCH 07/12] Add directives to allow stack size calculation --- lib_mic_array/src/fir_1x16_bit.S | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib_mic_array/src/fir_1x16_bit.S b/lib_mic_array/src/fir_1x16_bit.S index 1033d6a1..833f0ee3 100644 --- a/lib_mic_array/src/fir_1x16_bit.S +++ b/lib_mic_array/src/fir_1x16_bit.S @@ -130,6 +130,12 @@ FUNCTION_NAME: slli a0, a0, 8 xm.retsp NSTACK_BYTES +.size FUNCTION_NAME, . -FUNCTION_NAME +.resource_const FUNCTION_NAME, "stack_frame_bytes", NSTACK_BYTES +.resource_list_empty FUNCTION_NAME, "callees" +.resource_list_empty FUNCTION_NAME, "tail_callees" +.resource_list_empty FUNCTION_NAME, "parallel_callees" + // The order of these coefficients tells us that whatever gets VLMACCR1'ed last is going to be multiplied by // the largest coefficient. Thus, if the bipolar coefficient matrix B[,] has shape 16x32, then B[0,:] must // correspond to the LEAST significant bits of each coefficient From 491c12653f307b0e51cf9f52505352be4f005802 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Tue, 24 Feb 2026 17:20:41 +0000 Subject: [PATCH 08/12] Ad :orphan: to Read Me files to resolve Sphinx warnings --- examples/app_mic_array_basic/README.md | 2 ++ examples/app_mic_array_basic_xcore_400/README.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/examples/app_mic_array_basic/README.md b/examples/app_mic_array_basic/README.md index f548144a..dad8868d 100644 --- a/examples/app_mic_array_basic/README.md +++ b/examples/app_mic_array_basic/README.md @@ -1,3 +1,5 @@ +:orphan: + # Basic Mic Array Example ## Hardware Required diff --git a/examples/app_mic_array_basic_xcore_400/README.md b/examples/app_mic_array_basic_xcore_400/README.md index 3c305b91..596a391b 100644 --- a/examples/app_mic_array_basic_xcore_400/README.md +++ b/examples/app_mic_array_basic_xcore_400/README.md @@ -1,3 +1,5 @@ +:orphan: + # Basic Mic Array Example ## Hardware Required From f3b44ff72c2e5d6f2f5affa88ec0afa071321374 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Tue, 24 Feb 2026 18:00:00 +0000 Subject: [PATCH 09/12] Remove :orphan: directives because they do not have the desired effect in .md files --- examples/app_mic_array_basic/README.md | 2 -- examples/app_mic_array_basic_xcore_400/README.md | 2 -- 2 files changed, 4 deletions(-) diff --git a/examples/app_mic_array_basic/README.md b/examples/app_mic_array_basic/README.md index dad8868d..f548144a 100644 --- a/examples/app_mic_array_basic/README.md +++ b/examples/app_mic_array_basic/README.md @@ -1,5 +1,3 @@ -:orphan: - # Basic Mic Array Example ## Hardware Required diff --git a/examples/app_mic_array_basic_xcore_400/README.md b/examples/app_mic_array_basic_xcore_400/README.md index 596a391b..3c305b91 100644 --- a/examples/app_mic_array_basic_xcore_400/README.md +++ b/examples/app_mic_array_basic_xcore_400/README.md @@ -1,5 +1,3 @@ -:orphan: - # Basic Mic Array Example ## Hardware Required From fb96228a208ad3195acafddc96e11beac86df7bb Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Wed, 25 Feb 2026 11:53:07 +0000 Subject: [PATCH 10/12] Remove unused parameters and switch to LF line endings only --- lib_mic_array/src/mic_array_task.c | 184 ++++++++++++++--------------- 1 file changed, 92 insertions(+), 92 deletions(-) diff --git a/lib_mic_array/src/mic_array_task.c b/lib_mic_array/src/mic_array_task.c index d217afc7..11009e73 100644 --- a/lib_mic_array/src/mic_array_task.c +++ b/lib_mic_array/src/mic_array_task.c @@ -1,92 +1,92 @@ -// Copyright 2026 XMOS LIMITED. -// This Software is subject to the terms of the XMOS Public Licence: Version 1. - -#include -#include -#include -#include - -#include "mic_array.h" -#include "mic_array_task_internal.hpp" - -//////////////////// -// Mic array init // -//////////////////// -void mic_array_init(pdm_rx_resources_t *pdm_res, const unsigned *channel_map, unsigned output_samp_freq) -{ - unsigned stg2_decimation_factor = (pdm_res->pdm_freq/STAGE1_DEC_FACTOR)/output_samp_freq; - assert ((output_samp_freq*STAGE1_DEC_FACTOR*stg2_decimation_factor) == pdm_res->pdm_freq); // assert if it doesn't divide cleanly - // assert if unsupported decimation factor. (for example. when starting with a pdm_freq of 3.072MHz, supported - // output sampling freqs are [48000, 32000, 16000] - assert ((stg2_decimation_factor == 2) || (stg2_decimation_factor == 3) || (stg2_decimation_factor == 6)); - - bool use_3_stg_decimator = false; - init_mic_array_storage(use_3_stg_decimator); - init_mics_default_filter(pdm_res, channel_map, stg2_decimation_factor); -} - -void mic_array_init_custom_filter(pdm_rx_resources_t* pdm_res, mic_array_conf_t* mic_array_conf) -{ - assert(pdm_res); - assert(mic_array_conf); - assert(mic_array_conf->decimator_conf.num_filter_stages == 2 || - mic_array_conf->decimator_conf.num_filter_stages == 3); - - init_mic_array_storage(mic_array_conf->decimator_conf.num_filter_stages == 3); - init_mics_custom_filter(pdm_res, mic_array_conf); - - // Configure and start clocks - const unsigned divide = pdm_res->mclk_freq / pdm_res->pdm_freq; - mic_array_resources_configure(pdm_res, divide); - mic_array_pdm_clock_start(pdm_res); -} - -///////////////////// -// Mic array start // -///////////////////// - -// Parallel jobs for when XUA_PDM_MIC_USE_PDM_ISR == 0, run separate decimator and pdm rx tasks -DECLARE_JOB(default_ma_task_start_pdm, (void)); -void default_ma_task_start_pdm(void) -{ - start_pdm_task(); -} - -DECLARE_JOB(default_ma_task_start_decimator, (chanend_t)); -void default_ma_task_start_decimator(chanend_t c_audio_frames) -{ - start_decimator_task(); -} - -DECLARE_JOB(default_ma_task_start_pdm_3stg, (void)); -void default_ma_task_start_pdm_3stg(void) -{ - start_pdm_task_3stg(); -} - -DECLARE_JOB(default_ma_task_start_decimator_3stg, (chanend_t)); -void default_ma_task_start_decimator_3stg(chanend_t c_audio_frames) -{ - start_decimator_task_3stg(); -} - -void mic_array_start(chanend_t c_frames_out) -{ -#if MIC_ARRAY_CONFIG_USE_PDM_ISR - start_mic_array_pdm_isr(c_frames_out); -#else - set_output_channel(c_frames_out); - bool use_3_stg_decimator = get_decimator_stg_count(); - if (use_3_stg_decimator) { - PAR_JOBS( - PJOB(default_ma_task_start_pdm_3stg, ()), - PJOB(default_ma_task_start_decimator_3stg, ())); - } else { - PAR_JOBS( - PJOB(default_ma_task_start_pdm, ()), - PJOB(default_ma_task_start_decimator, ())); - } -#endif // MIC_ARRAY_CONFIG_USE_PDM_ISR - - shutdown_mic_array(); -} +// Copyright 2026 XMOS LIMITED. +// This Software is subject to the terms of the XMOS Public Licence: Version 1. + +#include +#include +#include +#include + +#include "mic_array.h" +#include "mic_array_task_internal.hpp" + +//////////////////// +// Mic array init // +//////////////////// +void mic_array_init(pdm_rx_resources_t *pdm_res, const unsigned *channel_map, unsigned output_samp_freq) +{ + unsigned stg2_decimation_factor = (pdm_res->pdm_freq/STAGE1_DEC_FACTOR)/output_samp_freq; + assert ((output_samp_freq*STAGE1_DEC_FACTOR*stg2_decimation_factor) == pdm_res->pdm_freq); // assert if it doesn't divide cleanly + // assert if unsupported decimation factor. (for example. when starting with a pdm_freq of 3.072MHz, supported + // output sampling freqs are [48000, 32000, 16000] + assert ((stg2_decimation_factor == 2) || (stg2_decimation_factor == 3) || (stg2_decimation_factor == 6)); + + bool use_3_stg_decimator = false; + init_mic_array_storage(use_3_stg_decimator); + init_mics_default_filter(pdm_res, channel_map, stg2_decimation_factor); +} + +void mic_array_init_custom_filter(pdm_rx_resources_t* pdm_res, mic_array_conf_t* mic_array_conf) +{ + assert(pdm_res); + assert(mic_array_conf); + assert(mic_array_conf->decimator_conf.num_filter_stages == 2 || + mic_array_conf->decimator_conf.num_filter_stages == 3); + + init_mic_array_storage(mic_array_conf->decimator_conf.num_filter_stages == 3); + init_mics_custom_filter(pdm_res, mic_array_conf); + + // Configure and start clocks + const unsigned divide = pdm_res->mclk_freq / pdm_res->pdm_freq; + mic_array_resources_configure(pdm_res, divide); + mic_array_pdm_clock_start(pdm_res); +} + +///////////////////// +// Mic array start // +///////////////////// + +// Parallel jobs for when XUA_PDM_MIC_USE_PDM_ISR == 0, run separate decimator and pdm rx tasks +DECLARE_JOB(default_ma_task_start_pdm, (void)); +void default_ma_task_start_pdm(void) +{ + start_pdm_task(); +} + +DECLARE_JOB(default_ma_task_start_decimator, (void)); +void default_ma_task_start_decimator(void) +{ + start_decimator_task(); +} + +DECLARE_JOB(default_ma_task_start_pdm_3stg, (void)); +void default_ma_task_start_pdm_3stg(void) +{ + start_pdm_task_3stg(); +} + +DECLARE_JOB(default_ma_task_start_decimator_3stg, (void)); +void default_ma_task_start_decimator_3stg(void) +{ + start_decimator_task_3stg(); +} + +void mic_array_start(chanend_t c_frames_out) +{ +#if MIC_ARRAY_CONFIG_USE_PDM_ISR + start_mic_array_pdm_isr(c_frames_out); +#else + set_output_channel(c_frames_out); + bool use_3_stg_decimator = get_decimator_stg_count(); + if (use_3_stg_decimator) { + PAR_JOBS( + PJOB(default_ma_task_start_pdm_3stg, ()), + PJOB(default_ma_task_start_decimator_3stg, ())); + } else { + PAR_JOBS( + PJOB(default_ma_task_start_pdm, ()), + PJOB(default_ma_task_start_decimator, ())); + } +#endif // MIC_ARRAY_CONFIG_USE_PDM_ISR + + shutdown_mic_array(); +} From a24514dfad5f401da5987382a3c7c5ca1e180248 Mon Sep 17 00:00:00 2001 From: Shuchita Khare Date: Wed, 25 Feb 2026 15:04:25 +0000 Subject: [PATCH 11/12] Updates reference mips json and rst files --- tests/signal/profile/mic_array_mips.json | 22 +++++++++---------- tests/signal/profile/mic_array_mips_table.rst | 18 +++++++-------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/signal/profile/mic_array_mips.json b/tests/signal/profile/mic_array_mips.json index 12f472d2..b79b29e2 100644 --- a/tests/signal/profile/mic_array_mips.json +++ b/tests/signal/profile/mic_array_mips.json @@ -1,14 +1,14 @@ { - "1mic_isr_16000fs": 14.1459, + "1mic_isr_16000fs": 14.1458, "1mic_isr_32000fs": 17.2336, - "1mic_isr_48000fs": 21.3055, - "1mic_thread_16000fs": 12.9298, - "1mic_thread_32000fs": 15.9536, - "1mic_thread_48000fs": 19.9614, - "2mic_isr_16000fs": 29.3098, - "2mic_isr_32000fs": 34.6215, - "2mic_isr_48000fs": 41.9335, - "2mic_thread_16000fs": 27.0056, - "2mic_thread_32000fs": 32.2854, - "2mic_thread_48000fs": 39.5335 + "1mic_isr_48000fs": 21.3054, + "1mic_thread_16000fs": 12.8978, + "1mic_thread_32000fs": 15.9857, + "1mic_thread_48000fs": 20.0573, + "2mic_isr_16000fs": 29.3336, + "2mic_isr_32000fs": 34.6533, + "2mic_isr_48000fs": 41.9592, + "2mic_thread_16000fs": 26.8137, + "2mic_thread_32000fs": 32.0934, + "2mic_thread_48000fs": 39.3415 } \ No newline at end of file diff --git a/tests/signal/profile/mic_array_mips_table.rst b/tests/signal/profile/mic_array_mips_table.rst index b5f738ef..b4272514 100644 --- a/tests/signal/profile/mic_array_mips_table.rst +++ b/tests/signal/profile/mic_array_mips_table.rst @@ -23,36 +23,36 @@ * - 1 - THREAD - 16000 - - 12.930 + - 12.898 * - 1 - THREAD - 32000 - - 15.954 + - 15.986 * - 1 - THREAD - 48000 - - 19.961 + - 20.057 * - 2 - ISR - 16000 - - 29.310 + - 29.334 * - 2 - ISR - 32000 - - 34.621 + - 34.653 * - 2 - ISR - 48000 - - 41.934 + - 41.959 * - 2 - THREAD - 16000 - - 27.006 + - 26.814 * - 2 - THREAD - 32000 - - 32.285 + - 32.093 * - 2 - THREAD - 48000 - - 39.533 \ No newline at end of file + - 39.342 \ No newline at end of file From 90f26b413f67ba72a25b49b4a63118b255bf8f3c Mon Sep 17 00:00:00 2001 From: Shuchita Khare Date: Wed, 25 Feb 2026 16:03:05 +0000 Subject: [PATCH 12/12] Update exclude_patterns.inc to exclude app_mic_array_basic_xcore_400/README.md --- doc/exclude_patterns.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/exclude_patterns.inc b/doc/exclude_patterns.inc index 9ddf9cb8..f5a5bea5 100644 --- a/doc/exclude_patterns.inc +++ b/doc/exclude_patterns.inc @@ -7,4 +7,4 @@ LICENSE.rst build.xcore tests/**/.pytest_cache/*.md tests/.pytest_cache/*.md -**/app_mic_array_basic/*.md +**/app_mic_array_basic*/*.md