diff --git a/MAINTAINERS.yml b/MAINTAINERS.yml index dc5867e3f5..a1d0b8cc51 100644 --- a/MAINTAINERS.yml +++ b/MAINTAINERS.yml @@ -422,8 +422,9 @@ CMSIS-DSP integration: - stephanosio collaborators: - galak + - XenuIsWatching files: - - modules/cmsis/Kconfig.cmsis_dsp + - modules/cmsis_dsp/ - tests/benchmarks/cmsis_dsp/ - tests/lib/cmsis_dsp/ labels: @@ -2940,11 +2941,21 @@ West: - povergoing files: - modules/cmsis/Kconfig - - modules/cmsis/Kconfig.cmsis_dsp - modules/cmsis/Kconfig.cmsis_nn labels: - "area: ARM" +"West project: cmsis-dsp": + status: maintained + maintainers: + - XenuIsWatching + collaborators: + - stephanosio + files: + - modules/cmsis_dsp/ + labels: + - "area: ARM" + "West project: edtt": status: maintained maintainers: diff --git a/modules/cmsis/Kconfig b/modules/cmsis/Kconfig index 0bbcddd55e..2ef84f0bfc 100644 --- a/modules/cmsis/Kconfig +++ b/modules/cmsis/Kconfig @@ -20,14 +20,6 @@ config HAS_CMSIS_CORE_M endif -menuconfig CMSIS_DSP - bool "CMSIS-DSP Library Support" - select REQUIRES_FULL_LIBC if !ARCH_POSIX - -if CMSIS_DSP -source "modules/cmsis/Kconfig.cmsis_dsp" -endif - menuconfig CMSIS_NN bool "CMSIS-NN Library Support" depends on CPU_CORTEX_M diff --git a/modules/cmsis/Kconfig.cmsis_dsp b/modules/cmsis/Kconfig.cmsis_dsp deleted file mode 100644 index 6b5f936ccc..0000000000 --- a/modules/cmsis/Kconfig.cmsis_dsp +++ /dev/null @@ -1,803 +0,0 @@ -# Copyright (c) 2020 Stephanos Ioannidis -# SPDX-License-Identifier: Apache-2.0 - -comment "Components" - -config CMSIS_DSP_BASICMATH - bool "Basic Math Functions" - default y - help - This option enables the Basic Math Functions, which support the - following operations: - - * Elementwise Clipping - * Vector Absolute Value - * Vector Addition - * Vector Subtraction - * Vector Multiplication - * Vector Dot Product - * Vector Absolute Value - * Vector Negate - * Vector Offset - * Vector Scale - * Vector Shift - * Vector Bitwise AND - * Vector Bitwise OR - * Vector Bitwise Exclusive OR - * Vector Bitwise NOT - -config CMSIS_DSP_COMPLEXMATH - bool "Complex Math Functions" - imply CMSIS_DSP_FASTMATH - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the Complex Math Functions, which support the - following operations: - - * Complex-by-Complex Multiplication - * Complex-by-Real Multiplication - * Complex Dot Product - * Complex Magnitude - * Complex Magnitude Squared - * Complex Conjugate - -config CMSIS_DSP_CONTROLLER - bool "Controller Functions" - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the Controller Functions, which support the - following operations: - - * PID Control - * Vector Clarke Transform - * Vector Inverse Clarke Transform - * Vector Park Transform - * Vector Inverse Park Transform - * Sine-Cosine - - These functions can be used to implement a generic PID controller, as - well as field oriented motor control using Space Vector Modulation - algorithm. - -config CMSIS_DSP_FASTMATH - bool "Fast Math Functions" - select CMSIS_DSP_TABLES - imply CMSIS_DSP_TABLES_ALL_FAST - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the Fast Math Functions, which support the - following operations: - - * Fixed-Point Division - * Sine - * Cosine - * Square Root - -config CMSIS_DSP_FILTERING - bool "Filtering Functions" - imply CMSIS_DSP_FASTMATH - imply CMSIS_DSP_SUPPORT - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the Filtering Functions, which support the - following operations: - - * Convolution - * Partial Convolution - * Correlation - * Levinson-Durbin Algorithm - - The following filter types are supported: - - * FIR (finite impulse response) Filter - * FIR Lattice Filter - * FIR Sparse Filter - * FIR Filter with Decimator - * FIR Filter with Interpolator - * IIR (infinite impulse response) Lattice Filter - * Biquad Cascade IIR Filter, Direct Form I Structure - * Biquad Cascade IIR Filter, Direct Form II Transposed Structure - * High Precision Q31 Biquad Cascade Filter - * LMS (least mean square) Filter - * Normalized LMS Filter - -config CMSIS_DSP_INTERPOLATION - bool "Interpolation Functions" - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the Interpolation Functions, which support the - following operations: - - * Bilinear Interpolation - * Linear Interpolation - * Cubic Spline Interpolation - -config CMSIS_DSP_MATRIX - bool "Matrix Functions" - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the Matrix Functions, which support the following - operations: - - * Matrix Initialization - * Matrix Addition - * Matrix Subtraction - * Matrix Multiplication - * Complex Matrix Multiplication - * Matrix Vector Multiplication - * Matrix Inverse - * Matrix Scale - * Matrix Transpose - * Complex Matrix Transpose - * Cholesky and LDLT Decompositions - -config CMSIS_DSP_QUATERNIONMATH - bool "Quaternion Math Functions" - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the Quaternion Math Functions, which support the - following operations: - - * Quaternion Conversions - * Quaternion Conjugate - * Quaternion Inverse - * Quaternion Norm - * Quaternion Normalization - * Quaternion Product - -config CMSIS_DSP_STATISTICS - bool "Statistics Functions" - imply CMSIS_DSP_BASICMATH - imply CMSIS_DSP_FASTMATH - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the Statistics Functions, which support the - following operations: - - * Minimum - * Absolute Minimum - * Maximum - * Absolute Maximum - * Mean - * Root Mean Square (RMS) - * Variance - * Standard Deviation - * Power - * Entropy - * Kullback-Leibler Divergence - * LogSumExp (LSE) - -config CMSIS_DSP_SUPPORT - bool "Support Functions" - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the Support Functions, which support the - following operations: - - * Vector 8-bit Integer Value Conversion - * Vector 16-bit Integer Value Conversion - * Vector 32-bit Integer Value Conversion - * Vector 16-bit Floating-Point Value Conversion - * Vector 32-bit Floating-Point Value Conversion - * Vector Copy - * Vector Fill - * Vector Sorting - * Weighted Sum - * Barycenter - -config CMSIS_DSP_TRANSFORM - bool "Transform Functions" - select CMSIS_DSP_TABLES - imply CMSIS_DSP_TABLES_ALL_FFT - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the Transform Functions, which support the - following transformations: - - * Real Fast Fourier Transform (RFFT) - * Complex Fast Fourier Transform (CFFT) - * Type IV Discrete Cosine Transform (DCT4) - -config CMSIS_DSP_SVM - bool "Support Vector Machine Functions" - select CMSIS_DSP_TABLES - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the Support Vector Machine Functions, which - support the following algorithms: - - * Linear - * Polynomial - * Sigmoid - * Radial Basis Function (RBF) - -config CMSIS_DSP_BAYES - bool "Bayesian Estimators" - imply CMSIS_DSP_STATISTICS - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the Bayesian Estimator Functions, which - implements the naive gaussian Bayes estimator. - -config CMSIS_DSP_DISTANCE - bool "Distance Functions" - imply CMSIS_DSP_STATISTICS - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the Distance Functions, which support the - following distance computation algorithms: - - * Boolean Vectors - * Hamming - * Jaccard - * Kulsinski - * Rogers-Tanimoto - * Russell-Rao - * Sokal-Michener - * Sokal-Sneath - * Yule - * Dice - - * Floating-Point Vectors - * Canberra - * Chebyshev - * Cityblock - * Correlation - * Cosine - * Euclidean - * Jensen-Shannon - * Minkowski - * Bray-Curtis - -menuconfig CMSIS_DSP_TABLES - bool "Look-up Tables" - depends on CPU_CORTEX || ARCH_POSIX - help - This option enables the static look-up tables used by the DSP - functions to compute results. - -if CMSIS_DSP_TABLES - -config CMSIS_DSP_TABLES_ALL_FAST - bool "Include all fast interpolation tables" - select CMSIS_DSP_TABLES_ARM_COS_F32 - select CMSIS_DSP_TABLES_ARM_COS_Q31 - select CMSIS_DSP_TABLES_ARM_COS_Q15 - select CMSIS_DSP_TABLES_ARM_SIN_F32 - select CMSIS_DSP_TABLES_ARM_SIN_Q31 - select CMSIS_DSP_TABLES_ARM_SIN_Q15 - select CMSIS_DSP_TABLES_ARM_SIN_COS_F32 - select CMSIS_DSP_TABLES_ARM_SIN_COS_Q31 - select CMSIS_DSP_TABLES_ARM_LMS_NORM_Q31 - select CMSIS_DSP_TABLES_ARM_LMS_NORM_Q15 - select CMSIS_DSP_TABLES_ARM_CMPLX_MAG_Q31 - select CMSIS_DSP_TABLES_ARM_CMPLX_MAG_Q15 - -config CMSIS_DSP_TABLES_ALL_FFT - bool "Include all FFT tables" - select CMSIS_DSP_TABLES_CFFT_F64_16 - select CMSIS_DSP_TABLES_CFFT_F64_32 - select CMSIS_DSP_TABLES_CFFT_F64_64 - select CMSIS_DSP_TABLES_CFFT_F64_128 - select CMSIS_DSP_TABLES_CFFT_F64_256 - select CMSIS_DSP_TABLES_CFFT_F64_512 - select CMSIS_DSP_TABLES_CFFT_F64_1024 - select CMSIS_DSP_TABLES_CFFT_F64_2048 - select CMSIS_DSP_TABLES_CFFT_F64_4096 - select CMSIS_DSP_TABLES_CFFT_F32_16 - select CMSIS_DSP_TABLES_CFFT_F32_32 - select CMSIS_DSP_TABLES_CFFT_F32_64 - select CMSIS_DSP_TABLES_CFFT_F32_128 - select CMSIS_DSP_TABLES_CFFT_F32_256 - select CMSIS_DSP_TABLES_CFFT_F32_512 - select CMSIS_DSP_TABLES_CFFT_F32_1024 - select CMSIS_DSP_TABLES_CFFT_F32_2048 - select CMSIS_DSP_TABLES_CFFT_F32_4096 - select CMSIS_DSP_TABLES_CFFT_F16_16 - select CMSIS_DSP_TABLES_CFFT_F16_32 - select CMSIS_DSP_TABLES_CFFT_F16_64 - select CMSIS_DSP_TABLES_CFFT_F16_128 - select CMSIS_DSP_TABLES_CFFT_F16_256 - select CMSIS_DSP_TABLES_CFFT_F16_512 - select CMSIS_DSP_TABLES_CFFT_F16_1024 - select CMSIS_DSP_TABLES_CFFT_F16_2048 - select CMSIS_DSP_TABLES_CFFT_F16_4096 - select CMSIS_DSP_TABLES_CFFT_Q31_16 - select CMSIS_DSP_TABLES_CFFT_Q31_32 - select CMSIS_DSP_TABLES_CFFT_Q31_64 - select CMSIS_DSP_TABLES_CFFT_Q31_128 - select CMSIS_DSP_TABLES_CFFT_Q31_256 - select CMSIS_DSP_TABLES_CFFT_Q31_512 - select CMSIS_DSP_TABLES_CFFT_Q31_1024 - select CMSIS_DSP_TABLES_CFFT_Q31_2048 - select CMSIS_DSP_TABLES_CFFT_Q31_4096 - select CMSIS_DSP_TABLES_CFFT_Q15_16 - select CMSIS_DSP_TABLES_CFFT_Q15_32 - select CMSIS_DSP_TABLES_CFFT_Q15_64 - select CMSIS_DSP_TABLES_CFFT_Q15_128 - select CMSIS_DSP_TABLES_CFFT_Q15_256 - select CMSIS_DSP_TABLES_CFFT_Q15_512 - select CMSIS_DSP_TABLES_CFFT_Q15_1024 - select CMSIS_DSP_TABLES_CFFT_Q15_2048 - select CMSIS_DSP_TABLES_CFFT_Q15_4096 - select CMSIS_DSP_TABLES_RFFT_FAST_F64_32 - select CMSIS_DSP_TABLES_RFFT_FAST_F64_64 - select CMSIS_DSP_TABLES_RFFT_FAST_F64_128 - select CMSIS_DSP_TABLES_RFFT_FAST_F64_256 - select CMSIS_DSP_TABLES_RFFT_FAST_F64_512 - select CMSIS_DSP_TABLES_RFFT_FAST_F64_1024 - select CMSIS_DSP_TABLES_RFFT_FAST_F64_2048 - select CMSIS_DSP_TABLES_RFFT_FAST_F64_4096 - select CMSIS_DSP_TABLES_RFFT_FAST_F32_32 - select CMSIS_DSP_TABLES_RFFT_FAST_F32_64 - select CMSIS_DSP_TABLES_RFFT_FAST_F32_128 - select CMSIS_DSP_TABLES_RFFT_FAST_F32_256 - select CMSIS_DSP_TABLES_RFFT_FAST_F32_512 - select CMSIS_DSP_TABLES_RFFT_FAST_F32_1024 - select CMSIS_DSP_TABLES_RFFT_FAST_F32_2048 - select CMSIS_DSP_TABLES_RFFT_FAST_F32_4096 - select CMSIS_DSP_TABLES_RFFT_FAST_F16_32 - select CMSIS_DSP_TABLES_RFFT_FAST_F16_64 - select CMSIS_DSP_TABLES_RFFT_FAST_F16_128 - select CMSIS_DSP_TABLES_RFFT_FAST_F16_256 - select CMSIS_DSP_TABLES_RFFT_FAST_F16_512 - select CMSIS_DSP_TABLES_RFFT_FAST_F16_1024 - select CMSIS_DSP_TABLES_RFFT_FAST_F16_2048 - select CMSIS_DSP_TABLES_RFFT_FAST_F16_4096 - select CMSIS_DSP_TABLES_RFFT_F32_128 - select CMSIS_DSP_TABLES_RFFT_F32_512 - select CMSIS_DSP_TABLES_RFFT_F32_2048 - select CMSIS_DSP_TABLES_RFFT_F32_8192 - select CMSIS_DSP_TABLES_RFFT_F16_128 - select CMSIS_DSP_TABLES_RFFT_F16_512 - select CMSIS_DSP_TABLES_RFFT_F16_2048 - select CMSIS_DSP_TABLES_RFFT_F16_8192 - select CMSIS_DSP_TABLES_RFFT_Q31_32 - select CMSIS_DSP_TABLES_RFFT_Q31_64 - select CMSIS_DSP_TABLES_RFFT_Q31_128 - select CMSIS_DSP_TABLES_RFFT_Q31_256 - select CMSIS_DSP_TABLES_RFFT_Q31_512 - select CMSIS_DSP_TABLES_RFFT_Q31_1024 - select CMSIS_DSP_TABLES_RFFT_Q31_2048 - select CMSIS_DSP_TABLES_RFFT_Q31_4096 - select CMSIS_DSP_TABLES_RFFT_Q31_8192 - select CMSIS_DSP_TABLES_RFFT_Q15_32 - select CMSIS_DSP_TABLES_RFFT_Q15_64 - select CMSIS_DSP_TABLES_RFFT_Q15_128 - select CMSIS_DSP_TABLES_RFFT_Q15_256 - select CMSIS_DSP_TABLES_RFFT_Q15_512 - select CMSIS_DSP_TABLES_RFFT_Q15_1024 - select CMSIS_DSP_TABLES_RFFT_Q15_2048 - select CMSIS_DSP_TABLES_RFFT_Q15_4096 - select CMSIS_DSP_TABLES_RFFT_Q15_8192 - select CMSIS_DSP_TABLES_DCT4_F32_128 - select CMSIS_DSP_TABLES_DCT4_F32_512 - select CMSIS_DSP_TABLES_DCT4_F32_2048 - select CMSIS_DSP_TABLES_DCT4_F32_8192 - select CMSIS_DSP_TABLES_DCT4_Q31_128 - select CMSIS_DSP_TABLES_DCT4_Q31_512 - select CMSIS_DSP_TABLES_DCT4_Q31_2048 - select CMSIS_DSP_TABLES_DCT4_Q31_8192 - select CMSIS_DSP_TABLES_DCT4_Q15_128 - select CMSIS_DSP_TABLES_DCT4_Q15_512 - select CMSIS_DSP_TABLES_DCT4_Q15_2048 - select CMSIS_DSP_TABLES_DCT4_Q15_8192 - -comment "Interpolation Tables" - -config CMSIS_DSP_TABLES_ARM_COS_F32 - bool "cos f32" - -config CMSIS_DSP_TABLES_ARM_COS_Q31 - bool "cos q31" - -config CMSIS_DSP_TABLES_ARM_COS_Q15 - bool "cos q15" - -config CMSIS_DSP_TABLES_ARM_SIN_F32 - bool "sin f32" - -config CMSIS_DSP_TABLES_ARM_SIN_Q31 - bool "sin q31" - -config CMSIS_DSP_TABLES_ARM_SIN_Q15 - bool "sin q15" - -config CMSIS_DSP_TABLES_ARM_SIN_COS_F32 - bool "sin cos f32" - -config CMSIS_DSP_TABLES_ARM_SIN_COS_Q31 - bool "sin cos q31" - -config CMSIS_DSP_TABLES_ARM_LMS_NORM_Q31 - bool "lms norm q31" - -config CMSIS_DSP_TABLES_ARM_LMS_NORM_Q15 - bool "lms norm q15" - -config CMSIS_DSP_TABLES_ARM_CMPLX_MAG_Q31 - bool "cmplx mag q31" - -config CMSIS_DSP_TABLES_ARM_CMPLX_MAG_Q15 - bool "cmplx mag q15" - -comment "Transformation Tables" - -config CMSIS_DSP_TABLES_CFFT_F64_16 - bool "cfft f64 16" - -config CMSIS_DSP_TABLES_CFFT_F64_32 - bool "cfft f64 32" - -config CMSIS_DSP_TABLES_CFFT_F64_64 - bool "cfft f64 64" - -config CMSIS_DSP_TABLES_CFFT_F64_128 - bool "cfft f64 128" - -config CMSIS_DSP_TABLES_CFFT_F64_256 - bool "cfft f64 256" - -config CMSIS_DSP_TABLES_CFFT_F64_512 - bool "cfft f64 512" - -config CMSIS_DSP_TABLES_CFFT_F64_1024 - bool "cfft f64 1024" - -config CMSIS_DSP_TABLES_CFFT_F64_2048 - bool "cfft f64 2048" - -config CMSIS_DSP_TABLES_CFFT_F64_4096 - bool "cfft f64 4096" - -config CMSIS_DSP_TABLES_CFFT_F32_16 - bool "cfft f32 16" - -config CMSIS_DSP_TABLES_CFFT_F32_32 - bool "cfft f32 32" - -config CMSIS_DSP_TABLES_CFFT_F32_64 - bool "cfft f32 64" - -config CMSIS_DSP_TABLES_CFFT_F32_128 - bool "cfft f32 128" - -config CMSIS_DSP_TABLES_CFFT_F32_256 - bool "cfft f32 256" - -config CMSIS_DSP_TABLES_CFFT_F32_512 - bool "cfft f32 512" - -config CMSIS_DSP_TABLES_CFFT_F32_1024 - bool "cfft f32 1024" - -config CMSIS_DSP_TABLES_CFFT_F32_2048 - bool "cfft f32 2048" - -config CMSIS_DSP_TABLES_CFFT_F32_4096 - bool "cfft f32 4096" - -config CMSIS_DSP_TABLES_CFFT_F16_16 - bool "cfft f16 16" - -config CMSIS_DSP_TABLES_CFFT_F16_32 - bool "cfft f16 32" - -config CMSIS_DSP_TABLES_CFFT_F16_64 - bool "cfft f16 64" - -config CMSIS_DSP_TABLES_CFFT_F16_128 - bool "cfft f16 128" - -config CMSIS_DSP_TABLES_CFFT_F16_256 - bool "cfft f16 256" - -config CMSIS_DSP_TABLES_CFFT_F16_512 - bool "cfft f16 512" - -config CMSIS_DSP_TABLES_CFFT_F16_1024 - bool "cfft f16 1024" - -config CMSIS_DSP_TABLES_CFFT_F16_2048 - bool "cfft f16 2048" - -config CMSIS_DSP_TABLES_CFFT_F16_4096 - bool "cfft f16 4096" - -config CMSIS_DSP_TABLES_CFFT_Q31_16 - bool "cfft q31 16" - -config CMSIS_DSP_TABLES_CFFT_Q31_32 - bool "cfft q31 32" - -config CMSIS_DSP_TABLES_CFFT_Q31_64 - bool "cfft q31 64" - -config CMSIS_DSP_TABLES_CFFT_Q31_128 - bool "cfft q31 128" - -config CMSIS_DSP_TABLES_CFFT_Q31_256 - bool "cfft q31 256" - -config CMSIS_DSP_TABLES_CFFT_Q31_512 - bool "cfft q31 512" - -config CMSIS_DSP_TABLES_CFFT_Q31_1024 - bool "cfft q31 1024" - -config CMSIS_DSP_TABLES_CFFT_Q31_2048 - bool "cfft q31 2048" - -config CMSIS_DSP_TABLES_CFFT_Q31_4096 - bool "cfft q31 4096" - -config CMSIS_DSP_TABLES_CFFT_Q15_16 - bool "cfft q15 16" - -config CMSIS_DSP_TABLES_CFFT_Q15_32 - bool "cfft q15 32" - -config CMSIS_DSP_TABLES_CFFT_Q15_64 - bool "cfft q15 64" - -config CMSIS_DSP_TABLES_CFFT_Q15_128 - bool "cfft q15 128" - -config CMSIS_DSP_TABLES_CFFT_Q15_256 - bool "cfft q15 256" - -config CMSIS_DSP_TABLES_CFFT_Q15_512 - bool "cfft q15 512" - -config CMSIS_DSP_TABLES_CFFT_Q15_1024 - bool "cfft q15 1024" - -config CMSIS_DSP_TABLES_CFFT_Q15_2048 - bool "cfft q15 2048" - -config CMSIS_DSP_TABLES_CFFT_Q15_4096 - bool "cfft q15 4096" - -config CMSIS_DSP_TABLES_CFFT_RADIX4_Q31 - bool "cfft radix4 q31 (deprecated)" - -config CMSIS_DSP_TABLES_CFFT_RADIX4_Q15 - bool "cfft radix4 q15 (deprecated)" - -config CMSIS_DSP_TABLES_CFFT_RADIX2_Q31 - bool "cfft radix2 q31 (deprecated)" - -config CMSIS_DSP_TABLES_CFFT_RADIX2_Q15 - bool "cfft radix2 q15 (deprecated)" - -config CMSIS_DSP_TABLES_RFFT_FAST_F64_32 - bool "rfft fast f64 32" - -config CMSIS_DSP_TABLES_RFFT_FAST_F64_64 - bool "rfft fast f64 64" - -config CMSIS_DSP_TABLES_RFFT_FAST_F64_128 - bool "rfft fast f64 128" - -config CMSIS_DSP_TABLES_RFFT_FAST_F64_256 - bool "rfft fast f64 256" - -config CMSIS_DSP_TABLES_RFFT_FAST_F64_512 - bool "rfft fast f64 512" - -config CMSIS_DSP_TABLES_RFFT_FAST_F64_1024 - bool "rfft fast f64 1024" - -config CMSIS_DSP_TABLES_RFFT_FAST_F64_2048 - bool "rfft fast f64 2048" - -config CMSIS_DSP_TABLES_RFFT_FAST_F64_4096 - bool "rfft fast f64 4096" - -config CMSIS_DSP_TABLES_RFFT_FAST_F32_32 - bool "rfft fast f32 32" - -config CMSIS_DSP_TABLES_RFFT_FAST_F32_64 - bool "rfft fast f32 64" - -config CMSIS_DSP_TABLES_RFFT_FAST_F32_128 - bool "rfft fast f32 128" - -config CMSIS_DSP_TABLES_RFFT_FAST_F32_256 - bool "rfft fast f32 256" - -config CMSIS_DSP_TABLES_RFFT_FAST_F32_512 - bool "rfft fast f32 512" - -config CMSIS_DSP_TABLES_RFFT_FAST_F32_1024 - bool "rfft fast f32 1024" - -config CMSIS_DSP_TABLES_RFFT_FAST_F32_2048 - bool "rfft fast f32 2048" - -config CMSIS_DSP_TABLES_RFFT_FAST_F32_4096 - bool "rfft fast f32 4096" - -config CMSIS_DSP_TABLES_RFFT_FAST_F16_32 - bool "rfft fast f16 32" - -config CMSIS_DSP_TABLES_RFFT_FAST_F16_64 - bool "rfft fast f16 64" - -config CMSIS_DSP_TABLES_RFFT_FAST_F16_128 - bool "rfft fast f16 128" - -config CMSIS_DSP_TABLES_RFFT_FAST_F16_256 - bool "rfft fast f16 256" - -config CMSIS_DSP_TABLES_RFFT_FAST_F16_512 - bool "rfft fast f16 512" - -config CMSIS_DSP_TABLES_RFFT_FAST_F16_1024 - bool "rfft fast f16 1024" - -config CMSIS_DSP_TABLES_RFFT_FAST_F16_2048 - bool "rfft fast f16 2048" - -config CMSIS_DSP_TABLES_RFFT_FAST_F16_4096 - bool "rfft fast f16 4096" - -config CMSIS_DSP_TABLES_RFFT_F32_128 - bool "rfft f32 128" - -config CMSIS_DSP_TABLES_RFFT_F32_512 - bool "rfft f32 512" - -config CMSIS_DSP_TABLES_RFFT_F32_2048 - bool "rfft f32 2048" - -config CMSIS_DSP_TABLES_RFFT_F32_8192 - bool "rfft f32 8192" - -config CMSIS_DSP_TABLES_RFFT_F16_128 - bool "rfft f16 128" - -config CMSIS_DSP_TABLES_RFFT_F16_512 - bool "rfft f16 512" - -config CMSIS_DSP_TABLES_RFFT_F16_2048 - bool "rfft f16 2048" - -config CMSIS_DSP_TABLES_RFFT_F16_8192 - bool "rfft f16 8192" - -config CMSIS_DSP_TABLES_RFFT_Q31_32 - bool "rfft q31 32" - -config CMSIS_DSP_TABLES_RFFT_Q31_64 - bool "rfft q31 64" - -config CMSIS_DSP_TABLES_RFFT_Q31_128 - bool "rfft q31 128" - -config CMSIS_DSP_TABLES_RFFT_Q31_256 - bool "rfft q31 256" - -config CMSIS_DSP_TABLES_RFFT_Q31_512 - bool "rfft q31 512" - -config CMSIS_DSP_TABLES_RFFT_Q31_1024 - bool "rfft q31 1024" - -config CMSIS_DSP_TABLES_RFFT_Q31_2048 - bool "rfft q31 2048" - -config CMSIS_DSP_TABLES_RFFT_Q31_4096 - bool "rfft q31 4096" - -config CMSIS_DSP_TABLES_RFFT_Q31_8192 - bool "rfft q31 8192" - -config CMSIS_DSP_TABLES_RFFT_Q15_32 - bool "rfft q15 32" - -config CMSIS_DSP_TABLES_RFFT_Q15_64 - bool "rfft q15 64" - -config CMSIS_DSP_TABLES_RFFT_Q15_128 - bool "rfft q15 128" - -config CMSIS_DSP_TABLES_RFFT_Q15_256 - bool "rfft q15 256" - -config CMSIS_DSP_TABLES_RFFT_Q15_512 - bool "rfft q15 512" - -config CMSIS_DSP_TABLES_RFFT_Q15_1024 - bool "rfft q15 1024" - -config CMSIS_DSP_TABLES_RFFT_Q15_2048 - bool "rfft q15 2048" - -config CMSIS_DSP_TABLES_RFFT_Q15_4096 - bool "rfft q15 4096" - -config CMSIS_DSP_TABLES_RFFT_Q15_8192 - bool "rfft q15 8192" - -config CMSIS_DSP_TABLES_DCT4_F32_128 - bool "dct4 f32 128" - -config CMSIS_DSP_TABLES_DCT4_F32_512 - bool "dct4 f32 512" - -config CMSIS_DSP_TABLES_DCT4_F32_2048 - bool "dct4 f32 2048" - -config CMSIS_DSP_TABLES_DCT4_F32_8192 - bool "dct4 f32 8192" - -config CMSIS_DSP_TABLES_DCT4_Q31_128 - bool "dct4 q31 128" - -config CMSIS_DSP_TABLES_DCT4_Q31_512 - bool "dct4 q31 512" - -config CMSIS_DSP_TABLES_DCT4_Q31_2048 - bool "dct4 q31 2048" - -config CMSIS_DSP_TABLES_DCT4_Q31_8192 - bool "dct4 q31 8192" - -config CMSIS_DSP_TABLES_DCT4_Q15_128 - bool "dct4 q15 128" - -config CMSIS_DSP_TABLES_DCT4_Q15_512 - bool "dct4 q15 512" - -config CMSIS_DSP_TABLES_DCT4_Q15_2048 - bool "dct4 q15 2048" - -config CMSIS_DSP_TABLES_DCT4_Q15_8192 - bool "dct4 q15 8192" - -endif # CMSIS_DSP_TABLES - -comment "Instruction Set" -# NOTE: These configurations should eventually be derived from the arch ISA and -# FP support configurations. - -config CMSIS_DSP_NEON - bool "Neon Instruction Set" - default y - depends on CPU_CORTEX_A - help - This option enables the NEON Advanced SIMD instruction set, which is - available on most Cortex-A and some Cortex-R processors. - -comment "Features" - -config CMSIS_DSP_LOOPUNROLL - bool "Loop Unrolling" - help - This option enables manual loop unrolling in the DSP functions. - -config CMSIS_DSP_ROUNDING - bool "Rounding" - help - This option enables rounding on the support functions. - -config CMSIS_DSP_MATRIXCHECK - bool "Matrix Check" - help - This option enables validation of the input and output sizes of - matrices. - -config CMSIS_DSP_AUTOVECTORIZE - bool "Auto Vectorize" - help - This option prefers autovectorizable code to one using C intrinsics - in the DSP functions. - -config CMSIS_DSP_FLOAT16 - bool "Half-Precision (16-bit Float) Support" - default y - depends on FP16 - help - This option enables the half-precision (16-bit) floating-point - operations support. diff --git a/modules/cmsis_dsp/CMakeLists.txt b/modules/cmsis_dsp/CMakeLists.txt new file mode 100644 index 0000000000..9afaa32b89 --- /dev/null +++ b/modules/cmsis_dsp/CMakeLists.txt @@ -0,0 +1,931 @@ +# Copyright (c) 2023 Meta Platforms +# SPDX-License-Identifier: Apache-2.0 + +if(CONFIG_CMSIS_DSP) + + set(CMSIS_DSP_DIR ${ZEPHYR_CURRENT_MODULE_DIR}) + set(cmsis_glue_path ${ZEPHYR_CMSIS_MODULE_DIR}) + + zephyr_library() + + zephyr_library_compile_options(-Ofast) + + zephyr_include_directories( + ${CMSIS_DSP_DIR}/Include + ) + + zephyr_library_include_directories( + ${CMSIS_DSP_DIR}/PrivateInclude + ${cmsis_glue_path}/CMSIS/Core/Include + ) + + # Global Feature Definitions + zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_NEON ARM_MATH_NEON) + zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_NEON_EXPERIMENTAL ARM_MATH_NEON_EXPERIMENTAL) + zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_LOOPUNROLL ARM_MATH_LOOPUNROLL) + zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_ROUNDING ARM_MATH_ROUNDING) + zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_MATRIXCHECK ARM_MATH_MATRIX_CHECK) + zephyr_library_compile_definitions_ifndef(CONFIG_CMSIS_DSP_FLOAT16 DISABLEFLOAT16) + zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_AUTOVECTORIZE ARM_MATH_AUTOVECTORIZE) + + # Helium is automatically enabled by CMSIS-DSP if the processor supports it + zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_HELIUM_EXPERIMENTAL ARM_MATH_HELIUM_EXPERIMENTAL) + + zephyr_compile_definitions_ifndef(CONFIG_ARM __GNUC_PYTHON__) + + if (CONFIG_CMSIS_DSP_NEON OR CONFIG_CMSIS_DSP_NEON_EXPERIMENTAL) + zephyr_library_include_directories("${CMSIS_DSP_DIR}/ComputeLibrary/Include") + endif() + + if (CONFIG_ARMV8_1_M_MVEI OR CONFIG_ARMV8_1_M_MVEF) + if (CONFIG_CMSIS_DSP_LAX_VECTOR_CONVERSIONS) + zephyr_library_compile_options($<$:-flax-vector-conversions>) + zephyr_library_compile_options($<$:-flax-vector-conversions=integer>) + else() + zephyr_library_compile_options($<$:-fno-lax-vector-conversions>) + zephyr_library_compile_options($<$:-flax-vector-conversions=none>) + endif() + endif() + + zephyr_library_compile_options(-Ofast) + + zephyr_compile_definitions_ifndef(CONFIG_ARM __GNUC_PYTHON__) + + # BasicMathFunctions + + set(SRCF64 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_abs_f64.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_add_f64.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_dot_prod_f64.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_mult_f64.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_negate_f64.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_offset_f64.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_scale_f64.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_sub_f64.c + ) + + set(SRCF32 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_abs_f32.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_add_f32.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_clip_f32.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_dot_prod_f32.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_mult_f32.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_negate_f32.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_offset_f32.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_scale_f32.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_sub_f32.c + ) + + set(SRCF16 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_abs_f16.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_add_f16.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_clip_f16.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_dot_prod_f16.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_mult_f16.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_negate_f16.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_offset_f16.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_scale_f16.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_sub_f16.c + ) + + set(SRCQ31 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_abs_q31.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_add_q31.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_clip_q31.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_dot_prod_q31.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_mult_q31.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_negate_q31.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_offset_q31.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_scale_q31.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_shift_q31.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_sub_q31.c + ) + + set(SRCQ15 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_abs_q15.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_add_q15.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_clip_q15.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_dot_prod_q15.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_mult_q15.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_negate_q15.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_offset_q15.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_scale_q15.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_shift_q15.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_sub_q15.c + ) + + set(SRCQ7 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_abs_q7.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_add_q7.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_clip_q7.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_dot_prod_q7.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_mult_q7.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_negate_q7.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_offset_q7.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_scale_q7.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_shift_q7.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_sub_q7.c + ) + + set(SRCU32 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_and_u32.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_not_u32.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_or_u32.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_xor_u32.c + ) + + set(SRCU16 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_and_u16.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_not_u16.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_or_u16.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_xor_u16.c + ) + + set(SRCU8 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_and_u8.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_or_u8.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_not_u8.c + ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_xor_u8.c) + + zephyr_library_sources(${SRCF64}) + zephyr_library_sources(${SRCF32}) + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${SRCF16}) + endif() + + zephyr_library_sources(${SRCQ31}) + zephyr_library_sources(${SRCQ15}) + zephyr_library_sources(${SRCQ7}) + + zephyr_library_sources(${SRCU32}) + zephyr_library_sources(${SRCU16}) + zephyr_library_sources(${SRCU8}) + + # BayesFunctions + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/BayesFunctions/arm_gaussian_naive_bayes_predict_f32.c) + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/BayesFunctions/arm_gaussian_naive_bayes_predict_f16.c) + endif() + + # Common Tables + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/CommonTables/arm_common_tables.c + ${CMSIS_DSP_DIR}/Source/CommonTables/arm_common_tables_f16.c) + + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/CommonTables/arm_const_structs.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/CommonTables/arm_const_structs_f16.c) + + + if (CONFIG_CMSIS_DSP_NEON OR CONFIG_CMSIS_DSP_NEON_EXPERIMENTAL) + zephyr_library_sources("${CMSIS_DSP_DIR}/ComputeLibrary/Source/arm_cl_tables.c") + endif() + + if (CONFIG_ARMV8_1_M_MVEI OR CONFIG_ARMV8_1_M_MVEF) + zephyr_library_sources("${CMSIS_DSP_DIR}/Source/CommonTables/arm_mve_tables.c") + zephyr_library_sources("${CMSIS_DSP_DIR}/Source/CommonTables/arm_mve_tables_f16.c") + endif() + + + if (WRAPPER) + target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_BITREV_1024) + target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_TWIDDLECOEF_F32_4096) + target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_TWIDDLECOEF_Q31_4096) + target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_TWIDDLECOEF_Q15_4096) + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096) + endif() + endif() + + # ComplexMathFunctions + # MVE code is using a table for computing the fast sqrt arm_cmplx_mag_q31 + # There is the possibility of not compiling this function and not including + # the table. + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_fast_q15.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c) + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_conj_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_real_f16.c) + endif() + + # Controller Functions + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_pid_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_pid_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_pid_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_pid_reset_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_pid_reset_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_pid_reset_q31.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_sin_cos_f32.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_sin_cos_q31.c) + + # Distance Functions + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_boolean_distance.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_braycurtis_distance_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_canberra_distance_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_chebyshev_distance_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_chebyshev_distance_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_cityblock_distance_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_cityblock_distance_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_correlation_distance_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_cosine_distance_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_cosine_distance_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_dice_distance.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_euclidean_distance_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_euclidean_distance_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_hamming_distance.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_jaccard_distance.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_kulsinski_distance.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_minkowski_distance_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_rogerstanimoto_distance.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_russellrao_distance.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_sokalmichener_distance.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_sokalsneath_distance.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_yule_distance.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_dtw_distance_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_dtw_path_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_dtw_init_window_q7.c) + + + zephyr_library_include_directories("${CMSIS_DSP_DIR}/Source/DistanceFunctions") + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_braycurtis_distance_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_canberra_distance_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_chebyshev_distance_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_cityblock_distance_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_correlation_distance_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_cosine_distance_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_euclidean_distance_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_jensenshannon_distance_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_minkowski_distance_f16.c) + endif() + + # Fast Math Functions + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_cos_f32.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_cos_q15.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_cos_q31.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_sin_f32.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_sin_q15.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_sin_q31.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_sqrt_q31.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_sqrt_q15.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vlog_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vlog_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vexp_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vexp_f64.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vlog_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vlog_q15.c) + + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vlog_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vexp_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vinverse_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_atan2_f16.c) + endif() + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_divide_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_divide_q31.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_atan2_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_atan2_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_atan2_q15.c) + + # Filtering Functions + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_norm_init_q31.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_norm_init_q15.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_fast_opt_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_fast_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_fast_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_opt_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_opt_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_fast_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_fast_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_opt_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_opt_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_fast_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_fast_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_opt_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_opt_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_fast_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_fast_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_init_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_init_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_interpolate_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_interpolate_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_interpolate_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_lattice_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_lattice_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_lattice_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_lattice_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_lattice_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_lattice_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_init_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_iir_lattice_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_iir_lattice_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_iir_lattice_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_iir_lattice_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_iir_lattice_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_iir_lattice_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_norm_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_norm_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_norm_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_norm_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_levinson_durbin_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_levinson_durbin_q31.c) + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_init_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df2T_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_init_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_levinson_durbin_f16.c) + endif() + + # Interpolation Functions + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_bilinear_interp_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_bilinear_interp_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_bilinear_interp_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_bilinear_interp_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_linear_interp_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_linear_interp_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_linear_interp_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_linear_interp_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_spline_interp_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_spline_interp_init_f32.c) + + + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_bilinear_interp_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_linear_interp_f16.c) + endif() + + # Matrix Functions + set(SRCF64 ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cholesky_f64.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_inverse_f64.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_ldlt_f64.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_f64.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_solve_lower_triangular_f64.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_solve_upper_triangular_f64.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_sub_f64.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_trans_f64.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_qr_f64.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_householder_f64.c + ) + + set(SRCF32 ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_add_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cholesky_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_mult_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_trans_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_init_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_inverse_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_ldlt_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_scale_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_solve_lower_triangular_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_solve_upper_triangular_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_sub_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_trans_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_vec_mult_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_qr_f32.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_householder_f32.c + ) + + set(SRCQ31 ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_add_q31.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_mult_q31.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_trans_q31.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_init_q31.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_fast_q31.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_opt_q31.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_q31.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_scale_q31.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_sub_q31.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_trans_q31.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_vec_mult_q31.c + ) + + set(SRCQ15 ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_add_q15.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_mult_q15.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_trans_q15.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_init_q15.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_fast_q15.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_q15.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_scale_q15.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_sub_q15.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_trans_q15.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_vec_mult_q15.c + ) + + set(SRCQ7 ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_q7.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_vec_mult_q7.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_trans_q7.c + ) + + + zephyr_library_sources(${SRCF64}) + zephyr_library_sources(${SRCF32}) + + zephyr_library_sources(${SRCQ31}) + zephyr_library_sources(${SRCQ15}) + zephyr_library_sources(${SRCQ7}) + + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_add_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cholesky_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_mult_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_trans_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_init_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_inverse_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_scale_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_solve_lower_triangular_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_solve_upper_triangular_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_sub_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_trans_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_vec_mult_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_qr_f16.c + ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_householder_f16.c + ) + endif() + + # Quaternion Math Functions + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion_norm_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion_inverse_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion_conjugate_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion_normalize_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion_product_single_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion_product_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion2rotation_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_rotation2quaternion_f32.c) + + # Statistics Functions + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_entropy_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_entropy_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_kullback_leibler_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_kullback_leibler_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_logsumexp_dot_prod_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_logsumexp_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_no_idx_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_no_idx_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_no_idx_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_no_idx_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_no_idx_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_no_idx_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_no_idx_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mean_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mean_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mean_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mean_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mean_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_no_idx_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_no_idx_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_no_idx_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_power_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_power_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_power_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_power_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_power_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_rms_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_rms_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_rms_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_std_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_std_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_std_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_std_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_var_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_var_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_var_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_var_q31.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_q7.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_q7.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_no_idx_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_no_idx_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_no_idx_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_no_idx_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_no_idx_q7.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_no_idx_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_no_idx_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_no_idx_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_no_idx_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_no_idx_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mse_q7.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mse_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mse_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mse_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mse_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mse_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_accumulate_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_accumulate_f32.c) + + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mean_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_power_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_rms_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_std_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_var_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_entropy_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_kullback_leibler_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_logsumexp_dot_prod_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_logsumexp_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_no_idx_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_no_idx_f16.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_no_idx_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_no_idx_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_accumulate_f16.c) + endif() + + # Support Functions + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_barycenter_f32.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_bitonic_sort_f32.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_bubble_sort_f32.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_copy_f32.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_copy_f64.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_copy_q15.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_copy_q31.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_copy_q7.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f16_to_float.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f16_to_q15.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_fill_f32.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_fill_f64.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_fill_q15.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_fill_q31.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_fill_q7.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f64_to_float.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f64_to_q31.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f64_to_q15.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f64_to_q7.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_float_to_f64.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_float_to_q15.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_float_to_q31.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_float_to_q7.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_heap_sort_f32.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_insertion_sort_f32.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_merge_sort_f32.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_merge_sort_init_f32.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q15_to_f64.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q15_to_float.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q15_to_q31.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q15_to_q7.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q31_to_f64.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q31_to_float.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q31_to_q15.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q31_to_q7.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q7_to_f64.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q7_to_float.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q7_to_q15.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q7_to_q31.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_quick_sort_f32.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_selection_sort_f32.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_sort_f32.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_sort_init_f32.c + ${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_weighted_sum_f32.c + ) + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_copy_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_fill_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f16_to_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q15_to_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_float_to_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f16_to_float.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_weighted_sum_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_barycenter_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f16_to_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f64_to_f16.c) + endif() + + # SVM Functions + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_linear_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_rbf_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_linear_predict_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_rbf_predict_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_polynomial_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_sigmoid_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_polynomial_predict_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_sigmoid_predict_f32.c) + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_linear_init_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_rbf_init_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_linear_predict_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_rbf_predict_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_polynomial_init_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_sigmoid_init_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_polynomial_predict_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_sigmoid_predict_f16.c) + endif() + + # Transform Functions + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_bitreversal.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_bitreversal2.c) + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_bitreversal_f16.c) + endif() + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix8_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_f32.c) + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_f16.c) + endif() + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_f16.c) + endif() + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_f64.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_q15.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_q31.c) + + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_dct4_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_dct4_init_f32.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_f32.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_dct4_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_dct4_init_q31.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_q31.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_dct4_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_dct4_q15.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_q15.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_fast_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_fast_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix8_f32.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_fast_f64.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_fast_init_f64.c) + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_fast_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_fast_init_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix8_f16.c) + endif() + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_f32.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_q15.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_q31.c) + + if (WRAPPER) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_init_q31.c) + endif() + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_q31.c) + + + # For scipy or wrappers or benchmarks + if (WRAPPER) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_init_f32.c) + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_init_f16.c) + endif() + endif() + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_init_f32.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_f32.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_init_q31.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_q31.c) + + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_init_q15.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_q15.c) + + if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16)) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_init_f16.c) + zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_f16.c) + endif() + + # Window Functions + set(SRCF64 ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_welch_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_bartlett_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hamming_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hanning_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall3_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall3a_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall3b_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4a_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_blackman_harris_92db_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4b_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4c_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft90d_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft95_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft116d_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft144d_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft169d_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft196d_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft223d_f64.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft248d_f64.c + ) + + set(SRCF32 ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_welch_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_bartlett_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hamming_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hanning_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall3_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall3a_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall3b_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4a_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_blackman_harris_92db_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4b_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4c_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft90d_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft95_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft116d_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft144d_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft169d_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft196d_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft223d_f32.c + ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft248d_f32.c + ) + + zephyr_library_sources(${SRCF64}) + zephyr_library_sources(${SRCF32}) + +endif() diff --git a/modules/cmsis_dsp/Kconfig b/modules/cmsis_dsp/Kconfig new file mode 100644 index 0000000000..2159f1f6c2 --- /dev/null +++ b/modules/cmsis_dsp/Kconfig @@ -0,0 +1,79 @@ +# Copyright (c) 2023 Meta Platforms +# SPDX-License-Identifier: Apache-2.0 + +config ZEPHYR_CMSIS_DSP_MODULE + bool + +menuconfig CMSIS_DSP + bool "CMSIS-DSP Library Support" + help + This option enables the CMSIS-DSP library. + +if CMSIS_DSP + +comment "Instruction Set" +# NOTE: These configurations should eventually be derived from the arch ISA and +# FP support configurations. + +config CMSIS_DSP_NEON + bool "Neon Instruction Set" + default y + depends on CPU_CORTEX_A + help + This option enables the NEON Advanced SIMD instruction set, which is + available on most Cortex-A and some Cortex-R processors. + +config CMSIS_DSP_NEON_EXPERIMENTAL + bool "Neon Instruction Set" + depends on CPU_CORTEX_A + help + This option enables the NEON Advanced SIMD instruction set, which is + available on most Cortex-A and some Cortex-R processors. + +config CMSIS_DSP_HELIUM_EXPERIMENTAL + bool "Helium Instruction Set" + depends on FP_HARDABI && (ARMV8_1_M_MVEI || ARMV8_1_M_MVEF) + help + This option enables the Helium Advanced SIMD instruction set, which is + available on some Cortex-M processors. + +comment "Features" + +config CMSIS_DSP_LOOPUNROLL + bool "Loop Unrolling" + help + This option enables manual loop unrolling in the DSP functions. + +config CMSIS_DSP_ROUNDING + bool "Rounding" + help + This option enables rounding on the support functions. + +config CMSIS_DSP_MATRIXCHECK + bool "Matrix Check" + help + This option enables validation of the input and output sizes of + matrices. + +config CMSIS_DSP_AUTOVECTORIZE + bool "Auto Vectorize" + help + This option prefers autovectorizable code to one using C intrinsics + in the DSP functions. + +config CMSIS_DSP_FLOAT16 + bool "Half-Precision (16-bit Float) Support" + default y + depends on FP16 + help + This option enables the half-precision (16-bit) floating-point + operations support. + +config CMSIS_DSP_LAX_VECTOR_CONVERSIONS + bool "Lax Vector Conversions" + default y + depends on FP_HARDABI && (ARMV8_1_M_MVEI || ARMV8_1_M_MVEF) + help + This option enables lax vector conversions + +endif #CMSIS_DSP diff --git a/tests/benchmarks/cmsis_dsp/basicmath/prj.conf b/tests/benchmarks/cmsis_dsp/basicmath/prj.conf index ad76c3a269..75aa99c488 100644 --- a/tests/benchmarks/cmsis_dsp/basicmath/prj.conf +++ b/tests/benchmarks/cmsis_dsp/basicmath/prj.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_BASICMATH=y diff --git a/tests/lib/cmsis_dsp/bayes/prj.conf b/tests/lib/cmsis_dsp/bayes/prj.conf index 4699ae06e0..75aa99c488 100644 --- a/tests/lib/cmsis_dsp/bayes/prj.conf +++ b/tests/lib/cmsis_dsp/bayes/prj.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_BAYES=y diff --git a/tests/lib/cmsis_dsp/complexmath/prj.conf b/tests/lib/cmsis_dsp/complexmath/prj.conf index c9ccc0fc0d..75aa99c488 100644 --- a/tests/lib/cmsis_dsp/complexmath/prj.conf +++ b/tests/lib/cmsis_dsp/complexmath/prj.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_COMPLEXMATH=y diff --git a/tests/lib/cmsis_dsp/distance/prj.conf b/tests/lib/cmsis_dsp/distance/prj.conf index 4ac4431074..75aa99c488 100644 --- a/tests/lib/cmsis_dsp/distance/prj.conf +++ b/tests/lib/cmsis_dsp/distance/prj.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_DISTANCE=y diff --git a/tests/lib/cmsis_dsp/fastmath/prj.conf b/tests/lib/cmsis_dsp/fastmath/prj.conf index c47d04656b..75aa99c488 100644 --- a/tests/lib/cmsis_dsp/fastmath/prj.conf +++ b/tests/lib/cmsis_dsp/fastmath/prj.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_FASTMATH=y diff --git a/tests/lib/cmsis_dsp/filtering/prj.conf b/tests/lib/cmsis_dsp/filtering/prj.conf index e7885f018d..b40c98d36e 100644 --- a/tests/lib/cmsis_dsp/filtering/prj.conf +++ b/tests/lib/cmsis_dsp/filtering/prj.conf @@ -2,7 +2,6 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_FILTERING=y # Test Options CONFIG_CMSIS_DSP_TEST_FILTERING_BIQUAD=y diff --git a/tests/lib/cmsis_dsp/filtering/prj_base.conf b/tests/lib/cmsis_dsp/filtering/prj_base.conf index 48cde7ba86..75aa99c488 100644 --- a/tests/lib/cmsis_dsp/filtering/prj_base.conf +++ b/tests/lib/cmsis_dsp/filtering/prj_base.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_FILTERING=y diff --git a/tests/lib/cmsis_dsp/interpolation/prj.conf b/tests/lib/cmsis_dsp/interpolation/prj.conf index 0fbd97dded..75aa99c488 100644 --- a/tests/lib/cmsis_dsp/interpolation/prj.conf +++ b/tests/lib/cmsis_dsp/interpolation/prj.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_INTERPOLATION=y diff --git a/tests/lib/cmsis_dsp/matrix/prj.conf b/tests/lib/cmsis_dsp/matrix/prj.conf index f3cf8bc423..744d8f3d75 100644 --- a/tests/lib/cmsis_dsp/matrix/prj.conf +++ b/tests/lib/cmsis_dsp/matrix/prj.conf @@ -2,7 +2,6 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_MATRIX=y # Test Options CONFIG_CMSIS_DSP_TEST_MATRIX_UNARY_Q7=y diff --git a/tests/lib/cmsis_dsp/matrix/prj_base.conf b/tests/lib/cmsis_dsp/matrix/prj_base.conf index a4c8db100f..75aa99c488 100644 --- a/tests/lib/cmsis_dsp/matrix/prj_base.conf +++ b/tests/lib/cmsis_dsp/matrix/prj_base.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_MATRIX=y diff --git a/tests/lib/cmsis_dsp/quaternionmath/prj.conf b/tests/lib/cmsis_dsp/quaternionmath/prj.conf index 8de8c52d3c..75aa99c488 100644 --- a/tests/lib/cmsis_dsp/quaternionmath/prj.conf +++ b/tests/lib/cmsis_dsp/quaternionmath/prj.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_QUATERNIONMATH=y diff --git a/tests/lib/cmsis_dsp/statistics/prj.conf b/tests/lib/cmsis_dsp/statistics/prj.conf index 2eb1011afe..75aa99c488 100644 --- a/tests/lib/cmsis_dsp/statistics/prj.conf +++ b/tests/lib/cmsis_dsp/statistics/prj.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_STATISTICS=y diff --git a/tests/lib/cmsis_dsp/support/prj.conf b/tests/lib/cmsis_dsp/support/prj.conf index 80c8923b3a..75aa99c488 100644 --- a/tests/lib/cmsis_dsp/support/prj.conf +++ b/tests/lib/cmsis_dsp/support/prj.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_SUPPORT=y diff --git a/tests/lib/cmsis_dsp/svm/prj.conf b/tests/lib/cmsis_dsp/svm/prj.conf index 18b34694a5..75aa99c488 100644 --- a/tests/lib/cmsis_dsp/svm/prj.conf +++ b/tests/lib/cmsis_dsp/svm/prj.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_SVM=y diff --git a/tests/lib/cmsis_dsp/transform/prj.conf b/tests/lib/cmsis_dsp/transform/prj.conf index 9889f3b9ae..219f62788d 100644 --- a/tests/lib/cmsis_dsp/transform/prj.conf +++ b/tests/lib/cmsis_dsp/transform/prj.conf @@ -2,7 +2,6 @@ CONFIG_ZTEST=y CONFIG_NEWLIB_LIBC=y CONFIG_ZTEST_NEW_API=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_TRANSFORM=y # Test Options CONFIG_CMSIS_DSP_TEST_TRANSFORM_CQ15=y diff --git a/tests/lib/cmsis_dsp/transform/prj_base.conf b/tests/lib/cmsis_dsp/transform/prj_base.conf index 40e0627c4f..75aa99c488 100644 --- a/tests/lib/cmsis_dsp/transform/prj_base.conf +++ b/tests/lib/cmsis_dsp/transform/prj_base.conf @@ -2,4 +2,3 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_TRANSFORM=y diff --git a/tests/subsys/dsp/basicmath/prj.conf b/tests/subsys/dsp/basicmath/prj.conf index 912a703fd9..4e2cb0cae1 100644 --- a/tests/subsys/dsp/basicmath/prj.conf +++ b/tests/subsys/dsp/basicmath/prj.conf @@ -3,5 +3,4 @@ CONFIG_ZTEST_NEW_API=y CONFIG_NEWLIB_LIBC=y CONFIG_DSP=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_BASICMATH=y CONFIG_DSP_BACKEND_CMSIS=y diff --git a/tests/subsys/dsp/basicmath/prj_arc.conf b/tests/subsys/dsp/basicmath/prj_arc.conf index c84bec1f3d..865604bbd2 100644 --- a/tests/subsys/dsp/basicmath/prj_arc.conf +++ b/tests/subsys/dsp/basicmath/prj_arc.conf @@ -4,5 +4,4 @@ CONFIG_ARCMWDT_LIBC=y CONFIG_CPLUSPLUS=y CONFIG_DSP=y CONFIG_CMSIS_DSP=y -CONFIG_CMSIS_DSP_BASICMATH=y CONFIG_DSP_BACKEND_ARCMWDT=y diff --git a/west.yml b/west.yml index 0bb013112d..21c70feebc 100644 --- a/west.yml +++ b/west.yml @@ -126,6 +126,9 @@ manifest: path: modules/hal/cmsis groups: - hal + - name: cmsis-dsp + revision: ff7b5fd1ea5f094665c090c343ec44e74dc0b193 + path: modules/lib/cmsis-dsp - name: edtt revision: 64e5105ad82390164fb73fc654be3f73a608209a path: tools/edtt