diff --git a/examples/README.md b/examples/README.md index deea7e0c0a..633d60b8ef 100644 --- a/examples/README.md +++ b/examples/README.md @@ -94,7 +94,7 @@ make gdb ## Interesting Examples -We have a lot of examples, 178 to be +We have a lot of examples, 189 to be exact, but here are some of our favorite examples for our supported development boards: diff --git a/examples/nucleo_f429zi/cmsis_dsp/class_marks/main.cpp b/examples/nucleo_f429zi/cmsis_dsp/class_marks/main.cpp new file mode 100644 index 0000000000..80f99848e5 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/class_marks/main.cpp @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2019, Niklas Hauser + * + * This file is part of the modm project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +// ---------------------------------------------------------------------------- + +#include +#include + +#define main arm_cmsis_dsp_example +#define std var_std +#define while return ARM_MATH_SUCCESS; void // has no status variable +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_class_marks_example/arm_class_marks_example_f32.c" +#undef while +#undef main +#undef std + +#define example_name "class_marks" +#include "../runner.cpp" diff --git a/examples/nucleo_f429zi/cmsis_dsp/class_marks/project.xml b/examples/nucleo_f429zi/cmsis_dsp/class_marks/project.xml new file mode 100644 index 0000000000..4bfbfa8bdf --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/class_marks/project.xml @@ -0,0 +1,11 @@ + + modm:nucleo-f429zi + + + + + modm:build:scons + modm:cmsis:dsp:matrix + modm:cmsis:dsp:statistics + + diff --git a/examples/nucleo_f429zi/cmsis_dsp/convolution/main.cpp b/examples/nucleo_f429zi/cmsis_dsp/convolution/main.cpp new file mode 100644 index 0000000000..a8309bf6b9 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/convolution/main.cpp @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2019, Niklas Hauser + * + * This file is part of the modm project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +// ---------------------------------------------------------------------------- + +#include +#include + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-compare" +#define main arm_cmsis_dsp_example +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_convolution_example/math_helper.h" +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_convolution_example/math_helper.c" +#define while return status; void +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_convolution_example/arm_convolution_example_f32.c" +#undef while +#undef main +#pragma GCC diagnostic pop + +#define example_name "convolution" +#include "../runner.cpp" diff --git a/examples/nucleo_f429zi/cmsis_dsp/convolution/math_helper.h b/examples/nucleo_f429zi/cmsis_dsp/convolution/math_helper.h new file mode 100644 index 0000000000..3ea1c89439 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/convolution/math_helper.h @@ -0,0 +1 @@ +// Empty file to satisfy CPP diff --git a/examples/nucleo_f429zi/cmsis_dsp/convolution/project.xml b/examples/nucleo_f429zi/cmsis_dsp/convolution/project.xml new file mode 100644 index 0000000000..7f2ac85376 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/convolution/project.xml @@ -0,0 +1,12 @@ + + modm:nucleo-f429zi + + + + + modm:build:scons + modm:cmsis:dsp:transform + modm:cmsis:dsp:support + modm:cmsis:dsp:complex_math + + diff --git a/examples/nucleo_f429zi/cmsis_dsp/dotproduct/main.cpp b/examples/nucleo_f429zi/cmsis_dsp/dotproduct/main.cpp new file mode 100644 index 0000000000..97ee731a63 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/dotproduct/main.cpp @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2019, Niklas Hauser + * + * This file is part of the modm project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +// ---------------------------------------------------------------------------- + +#include +#include + +#define main arm_cmsis_dsp_example +#define while return status; void +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_dotproduct_example/arm_dotproduct_example_f32.c" +#undef while +#undef main + +#define example_name "dotproduct" +#include "../runner.cpp" + diff --git a/examples/nucleo_f429zi/cmsis_dsp/dotproduct/project.xml b/examples/nucleo_f429zi/cmsis_dsp/dotproduct/project.xml new file mode 100644 index 0000000000..6db6e07ea9 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/dotproduct/project.xml @@ -0,0 +1,11 @@ + + modm:nucleo-f429zi + + + + + modm:build:scons + modm:cmsis:dsp:transform + modm:cmsis:dsp:basic_math + + diff --git a/examples/nucleo_f429zi/cmsis_dsp/fft_bin/main.cpp b/examples/nucleo_f429zi/cmsis_dsp/fft_bin/main.cpp new file mode 100644 index 0000000000..19eb0e78ab --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/fft_bin/main.cpp @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2019, Niklas Hauser + * + * This file is part of the modm project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +// ---------------------------------------------------------------------------- + +#include +#include + +#define main arm_cmsis_dsp_example +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_fft_bin_example/arm_fft_bin_data.c" +#define while return status; void +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_fft_bin_example/arm_fft_bin_example_f32.c" +#undef while +#undef main + +#define example_name "fft_bin" +#include "../runner.cpp" diff --git a/examples/nucleo_f429zi/cmsis_dsp/fft_bin/project.xml b/examples/nucleo_f429zi/cmsis_dsp/fft_bin/project.xml new file mode 100644 index 0000000000..720d20b87c --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/fft_bin/project.xml @@ -0,0 +1,12 @@ + + modm:nucleo-f429zi + + + + + modm:build:scons + modm:cmsis:dsp:transform + modm:cmsis:dsp:complex_math + modm:cmsis:dsp:statistics + + diff --git a/examples/nucleo_f429zi/cmsis_dsp/fir/main.cpp b/examples/nucleo_f429zi/cmsis_dsp/fir/main.cpp new file mode 100644 index 0000000000..8029cde16f --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/fir/main.cpp @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2019, Niklas Hauser + * + * This file is part of the modm project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +// ---------------------------------------------------------------------------- + +#include +#include + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-compare" +#define main arm_cmsis_dsp_example +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_fir_example/math_helper.h" +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_fir_example/math_helper.c" +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_fir_example/arm_fir_data.c" +#define while return status; void +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_fir_example/arm_fir_example_f32.c" +#undef while +#undef main +#pragma GCC diagnostic pop + +#define example_name "fir" +#include "../runner.cpp" diff --git a/examples/nucleo_f429zi/cmsis_dsp/fir/math_helper.h b/examples/nucleo_f429zi/cmsis_dsp/fir/math_helper.h new file mode 100644 index 0000000000..3ea1c89439 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/fir/math_helper.h @@ -0,0 +1 @@ +// Empty file to satisfy CPP diff --git a/examples/nucleo_f429zi/cmsis_dsp/fir/project.xml b/examples/nucleo_f429zi/cmsis_dsp/fir/project.xml new file mode 100644 index 0000000000..9cb314f1e2 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/fir/project.xml @@ -0,0 +1,10 @@ + + modm:nucleo-f429zi + + + + + modm:build:scons + modm:cmsis:dsp:filtering + + diff --git a/examples/nucleo_f429zi/cmsis_dsp/graphic_equalizer/main.cpp b/examples/nucleo_f429zi/cmsis_dsp/graphic_equalizer/main.cpp new file mode 100644 index 0000000000..b03585e341 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/graphic_equalizer/main.cpp @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2019, Niklas Hauser + * + * This file is part of the modm project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +// ---------------------------------------------------------------------------- + +#include +#include + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-compare" +#define main arm_cmsis_dsp_example +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_graphic_equalizer_example/math_helper.h" +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_graphic_equalizer_example/math_helper.c" +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_graphic_equalizer_example/arm_graphic_equalizer_data.c" +#define while return status; void +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_graphic_equalizer_example/arm_graphic_equalizer_example_q31.c" +#undef while +#undef main +#pragma GCC diagnostic pop + +#define example_name "graphic_equalizer" +#include "../runner.cpp" diff --git a/examples/nucleo_f429zi/cmsis_dsp/graphic_equalizer/math_helper.h b/examples/nucleo_f429zi/cmsis_dsp/graphic_equalizer/math_helper.h new file mode 100644 index 0000000000..3ea1c89439 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/graphic_equalizer/math_helper.h @@ -0,0 +1 @@ +// Empty file to satisfy CPP diff --git a/examples/nucleo_f429zi/cmsis_dsp/graphic_equalizer/project.xml b/examples/nucleo_f429zi/cmsis_dsp/graphic_equalizer/project.xml new file mode 100644 index 0000000000..6ae108ce9b --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/graphic_equalizer/project.xml @@ -0,0 +1,11 @@ + + modm:nucleo-f429zi + + + + + modm:build:scons + modm:cmsis:dsp:filtering + modm:cmsis:dsp:basic_math + + diff --git a/examples/nucleo_f429zi/cmsis_dsp/linear_interp/main.cpp b/examples/nucleo_f429zi/cmsis_dsp/linear_interp/main.cpp new file mode 100644 index 0000000000..0a01c24aa3 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/linear_interp/main.cpp @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2019, Niklas Hauser + * + * This file is part of the modm project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +// ---------------------------------------------------------------------------- + +#include +#include + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-compare" +#define main arm_cmsis_dsp_example +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_linear_interp_example/math_helper.h" +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_linear_interp_example/math_helper.c" +/* `float arm_linear_interep_table[188495]` is 736kB large and MUST be placed in Flash + * memory NOT SRAM otherwise it won't fit on the device. Since we don't want (=cannot) + * to change the example, we need to take drastic measures... */ +#define float const float +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_linear_interp_example/arm_linear_interp_data.c" +#define while return status; void +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_linear_interp_example/arm_linear_interp_example_f32.c" +#undef while +#undef float +#undef main +#pragma GCC diagnostic pop + +#define example_name "linear_interp" +#include "../runner.cpp" diff --git a/examples/nucleo_f429zi/cmsis_dsp/linear_interp/math_helper.h b/examples/nucleo_f429zi/cmsis_dsp/linear_interp/math_helper.h new file mode 100644 index 0000000000..3ea1c89439 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/linear_interp/math_helper.h @@ -0,0 +1 @@ +// Empty file to satisfy CPP diff --git a/examples/nucleo_f429zi/cmsis_dsp/linear_interp/project.xml b/examples/nucleo_f429zi/cmsis_dsp/linear_interp/project.xml new file mode 100644 index 0000000000..ed2e68edde --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/linear_interp/project.xml @@ -0,0 +1,14 @@ + + modm:nucleo-f429zi + + + + + + -fpermissive + + + modm:build:scons + modm:cmsis:dsp:fast_math + + diff --git a/examples/nucleo_f429zi/cmsis_dsp/matrix/main.cpp b/examples/nucleo_f429zi/cmsis_dsp/matrix/main.cpp new file mode 100644 index 0000000000..44838ebfb3 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/matrix/main.cpp @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2019, Niklas Hauser + * + * This file is part of the modm project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +// ---------------------------------------------------------------------------- + +#include +#include + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-compare" +#define main arm_cmsis_dsp_example +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_matrix_example/math_helper.h" +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_matrix_example/math_helper.c" +#define while return status; void +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_matrix_example/arm_matrix_example_f32.c" +#undef while +#undef main +#pragma GCC diagnostic pop + +#define example_name "matrix" +#include "../runner.cpp" diff --git a/examples/nucleo_f429zi/cmsis_dsp/matrix/math_helper.h b/examples/nucleo_f429zi/cmsis_dsp/matrix/math_helper.h new file mode 100644 index 0000000000..3ea1c89439 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/matrix/math_helper.h @@ -0,0 +1 @@ +// Empty file to satisfy CPP diff --git a/examples/nucleo_f429zi/cmsis_dsp/matrix/project.xml b/examples/nucleo_f429zi/cmsis_dsp/matrix/project.xml new file mode 100644 index 0000000000..3d6c6a3b6d --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/matrix/project.xml @@ -0,0 +1,10 @@ + + modm:nucleo-f429zi + + + + + modm:build:scons + modm:cmsis:dsp:matrix + + diff --git a/examples/nucleo_f429zi/cmsis_dsp/runner.cpp b/examples/nucleo_f429zi/cmsis_dsp/runner.cpp new file mode 100644 index 0000000000..5b3cfe91e4 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/runner.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2019, Niklas Hauser + * + * This file is part of the modm project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +// ---------------------------------------------------------------------------- + +int main() +{ + Board::initialize(); + + const uint32_t start{DWT->CYCCNT}; + const int status = arm_cmsis_dsp_example(); + const uint32_t diff{DWT->CYCCNT - start}; + + if (status != ARM_MATH_TEST_FAILURE) { + MODM_LOG_INFO << "Example '" << example_name << "' passed in ~" << (diff / modm::clock::fcpu_MHz) << "us!" << modm::endl; + } else { + MODM_LOG_ERROR << "Example '" << example_name << "' failed!" << modm::endl; + } + + while(1) { + if (status != ARM_MATH_TEST_FAILURE) { + Board::LedBlue::toggle(); + } else { + Board::LedRed::toggle(); + } + modm::delayMilliseconds(1000); + } + + return 0; +} diff --git a/examples/nucleo_f429zi/cmsis_dsp/signal_converge/main.cpp b/examples/nucleo_f429zi/cmsis_dsp/signal_converge/main.cpp new file mode 100644 index 0000000000..4d3cdc3910 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/signal_converge/main.cpp @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2019, Niklas Hauser + * + * This file is part of the modm project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +// ---------------------------------------------------------------------------- + +#include +#include + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-compare" +#define main arm_cmsis_dsp_example +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_signal_converge_example/math_helper.h" +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_signal_converge_example/math_helper.c" +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_signal_converge_example/arm_signal_converge_data.c" +#define while return status; void +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_signal_converge_example/arm_signal_converge_example_f32.c" +#undef while +#undef main +#pragma GCC diagnostic pop + +#define example_name "signal_converge" +#include "../runner.cpp" diff --git a/examples/nucleo_f429zi/cmsis_dsp/signal_converge/math_helper.h b/examples/nucleo_f429zi/cmsis_dsp/signal_converge/math_helper.h new file mode 100644 index 0000000000..3ea1c89439 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/signal_converge/math_helper.h @@ -0,0 +1 @@ +// Empty file to satisfy CPP diff --git a/examples/nucleo_f429zi/cmsis_dsp/signal_converge/project.xml b/examples/nucleo_f429zi/cmsis_dsp/signal_converge/project.xml new file mode 100644 index 0000000000..b81de0017a --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/signal_converge/project.xml @@ -0,0 +1,12 @@ + + modm:nucleo-f429zi + + + + + modm:build:scons + modm:cmsis:dsp:filtering + modm:cmsis:dsp:basic_math + modm:cmsis:dsp:statistics + + diff --git a/examples/nucleo_f429zi/cmsis_dsp/sin_cos/main.cpp b/examples/nucleo_f429zi/cmsis_dsp/sin_cos/main.cpp new file mode 100644 index 0000000000..f81d89a965 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/sin_cos/main.cpp @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2019, Niklas Hauser + * + * This file is part of the modm project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +// ---------------------------------------------------------------------------- + +#include +#include + +#define main arm_cmsis_dsp_example +#define while return status; void +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_sin_cos_example/arm_sin_cos_example_f32.c" +#undef while +#undef main + +#define example_name "sin_cos" +#include "../runner.cpp" diff --git a/examples/nucleo_f429zi/cmsis_dsp/sin_cos/project.xml b/examples/nucleo_f429zi/cmsis_dsp/sin_cos/project.xml new file mode 100644 index 0000000000..6cbcf3c7e0 --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/sin_cos/project.xml @@ -0,0 +1,11 @@ + + modm:nucleo-f429zi + + + + + modm:build:scons + modm:cmsis:dsp:basic_math + modm:cmsis:dsp:fast_math + + diff --git a/examples/nucleo_f429zi/cmsis_dsp/variance/main.cpp b/examples/nucleo_f429zi/cmsis_dsp/variance/main.cpp new file mode 100644 index 0000000000..a1a10553cc --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/variance/main.cpp @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2019, Niklas Hauser + * + * This file is part of the modm project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +// ---------------------------------------------------------------------------- + +#include +#include + +#define main arm_cmsis_dsp_example +#define while return status; void +#include "../../../../ext/arm/cmsis/CMSIS/DSP/Examples/ARM/arm_variance_example/arm_variance_example_f32.c" +#undef while +#undef main + +#define example_name "variance" +#include "../runner.cpp" diff --git a/examples/nucleo_f429zi/cmsis_dsp/variance/project.xml b/examples/nucleo_f429zi/cmsis_dsp/variance/project.xml new file mode 100644 index 0000000000..15ac691b6c --- /dev/null +++ b/examples/nucleo_f429zi/cmsis_dsp/variance/project.xml @@ -0,0 +1,12 @@ + + modm:nucleo-f429zi + + + + + modm:build:scons + modm:cmsis:dsp:basic_math + modm:cmsis:dsp:fast_math + modm:cmsis:dsp:support + +