Commit Graph

144 Commits

Author SHA1 Message Date
Ryan McClelland
104ea2ccca modules: cmsis-dsp: add cmsis-dsp module
Use CMSIS-DSP from its new realm. This also changes change how you
initialize FFT tables as well to use arm_cfft_init_64_f32 if you
know the FFT size in advance rather than the generic initialization
arm_cfft_init_f32.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2023-09-25 09:46:33 +02:00
Ryan McClelland
8ea58fc43b tests: lib: cmsis_dsp: binary: fix double-promotion warning
Double promotion warnings are generated with the flag -Wdouble-promotion

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2023-09-08 16:38:52 +02:00
Ryan McClelland
ffe8815c8c tests: lib: cmsis_dsp: matrix: fix double-promotion warning
Double promotion warnings are generated with the flag -Wdouble-promotion

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2023-09-08 16:38:52 +02:00
Gerard Marull-Paretas
93b63df762 samples, tests: convert string-based twister lists to YAML lists
Twister now supports using YAML lists for all fields that were written
as space-separated lists. Used twister_to_list.py script. Some artifacts
on string length are due to how ruamel dumps content.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2023-05-10 09:52:37 +02:00
Patryk Kuniecki
3707014f20 tests: lib: cmis_dsp matrix_unary_f64 requires more than 64KB of RAM
Increase the min ram configuration when running
libraries.cmsis_dsp.matrix.unary_f64 testcase
This should have been included in #51883 but was skipped for some reason.

Signed-off-by: Patryk Kuniecki <patryk.kuniecki@intel.com>
2023-04-21 09:09:54 -05:00
Fabio Baltieri
7db1d17ee3 yamllint: fix all yamllint line-length errors
Fix all line-length errors detected by yamllint:

yamllint -f parsable -c .yamllint $( find -regex '.*\.y[a]*ml' ) | \
  grep '(line-length)'

Using a limit is set to 100 columns, not touching the commandlines in
GitHub workflows (at least for now).

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2023-01-04 01:16:45 +09:00
Yuval Peress
0433965982 dsp: move cmsis_dsp basicmath tests
Move the tests to tests/subsys/dsp/ as they'll be a part of the Zephyr
dsp subsystem.

Signed-off-by: Yuval Peress <peress@google.com>
2022-12-02 20:15:55 +01:00
Francois Ramu
e7a071f43c tests: lib: cmis_dsp transform requires more than 128KB of RAM
Increase the min ram configuration when running the
libraries.cmsis_dsp.transform.cf64 testcase of the
tests/lib/cmsis_dsp/transform/
Fixes https://github.com/zephyrproject-rtos/zephyr/issues/52284

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2022-11-17 11:17:53 +01:00
Stephanos Ioannidis
3bdbc3f8a4 tests: cmsis_dsp: transform: Remove MPS2 AN521 from intg. platforms
This commit removes the `mps2_an521_remote` board from the integration
platform list of the CMSIS-DSP transform tests because this board no
longer has a sufficient code memory (FLASH) to fit these tests after
the resizing done in the PR #52052 for TF-M compatibility.

Consider adding `mps2_an386` as an integration platform for these tests
once the support for it is added to Zephyr (refer to the issue #45319).

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
2022-11-09 23:20:06 +09:00
Francois Ramu
b5d235022a tests: lib: cmsis_dsp testcases with min ram for execution
Since the new  CONFIG_ZTEST_NEW_API the ram fr execution
must be adjusted (higher)
to avoid buffer allocation failure s with some target board.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2022-11-03 09:07:20 +00:00
Stephanos Ioannidis
30c5e0222b tests: cmsis_dsp: MVE correlate out-of-bounds access workaround
The MVE `arm_correlate_f32` and `arm_correlate_q31` implementations may
write to negative indices of the output buffer (refer to the upstream
CMSIS-DSP bug ARM-software/CMSIS-DSP#59).

This commit adds a workaround for the above bug by overallocating the
output buffer memory and offsetting the output buffer supplied to the
function.

Revert this commit when this bug is fixed.

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
2022-10-20 22:12:42 +09:00
Stephanos Ioannidis
44be5c941a tests: cmsis_dsp: Remove invalid mps3_an547 integration platform spec
This commit removes the `mps3_an547` board from the integration
platform list for the tests whose minimum flash size requirement exceed
the size of the flash available on the board.

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
2022-10-18 17:52:48 +09:00
Enjia Mai
ca5d698563 tests: lib: move the cmsis_dsp transform test to new ztest API
Migrate the testsuite tests/lib/cmsis_dsp/transform to the new
ztest API.

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2022-09-14 07:22:09 -04:00
Enjia Mai
ccb3927233 tests: lib: move the cmsis_dsp matrix test to new ztest API
Migrate the testsuite tests/lib/cmsis_dsp/matrix to the new
ztest API.

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2022-09-14 07:22:09 -04:00
Enjia Mai
26b816cb5a tests: lib: move the cmsis_dsp filtering test to new ztest API
Migrate the testsuite tests/lib/cmsis_dsp/filtering to the new
ztest API.

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2022-09-14 07:22:09 -04:00
Enjia Mai
082e598f84 tests: lib: move the cmsis_dsp interpolation test to new ztest API
Migrate the testsuite tests/lib/cmsis_dsp/interpolation to the new
ztest API.

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2022-09-14 07:22:09 -04:00
Enjia Mai
63105256f7 tests: lib: move the cmsis_dsp statistics test to new ztest API
Migrate the testsuite tests/lib/cmsis_dsp/statistics to the new
ztest API.

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2022-09-14 07:22:09 -04:00
Enjia Mai
3e2fe17fa8 tests: lib: move the cmsis_dsp support test to new ztest API
Migrate the testsuite tests/lib/cmsis_dsp/support to the new
ztest API.

Signed-off-by: Enjia Mai <enjia.mai@intel.com>
2022-09-14 07:22:09 -04:00
Gerard Marull-Paretas
79e6b0e0f6 includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h>
As of today <zephyr/zephyr.h> is 100% equivalent to <zephyr/kernel.h>.
This patch proposes to then include <zephyr/kernel.h> instead of
<zephyr/zephyr.h> since it is more clear that you are including the
Kernel APIs and (probably) nothing else. <zephyr/zephyr.h> sounds like a
catch-all header that may be confusing. Most applications need to
include a bunch of other things to compile, e.g. driver headers or
subsystem headers like BT, logging, etc.

The idea of a catch-all header in Zephyr is probably not feasible
anyway. Reason is that Zephyr is not a library, like it could be for
example `libpython`. Zephyr provides many utilities nowadays: a kernel,
drivers, subsystems, etc and things will likely grow. A catch-all header
would be massive, difficult to keep up-to-date. It is also likely that
an application will only build a small subset. Note that subsystem-level
headers may use a catch-all approach to make things easier, though.

NOTE: This patch is **NOT** removing the header, just removing its usage
in-tree. I'd advocate for its deprecation (add a #warning on it), but I
understand many people will have concerns.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-09-05 16:31:47 +02:00
li biao
ff6bf25632 tests: lib: cmsis_dsp: move svm to new ztest API
Move test svm to use new ztest API.

Signed-off-by: li biao <biao1x.li@intel.com>
2022-08-17 12:04:38 +02:00
Fabio Baltieri
def230187b test: fix more legacy #include paths
Add a bunch of missing "zephyr/" prefixes to #include statements in
various test and test framework files.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2022-08-02 16:41:41 +01:00
Chen Peng1
687e5a7158 tests: cmsis_dsp: bayes: set unique testcase name.
the testcase source file f16.c and f32.c might be
compiled into the final binary at the same time,
so need to set unique testcase name for each test.

Signed-off-by: Chen Peng1 <peng1.chen@intel.com>
2022-07-30 00:08:15 +09:00
Chen Peng1
cf9e548248 tests: cmsis_dsp: distance: set unique test names
the testcase source file f16.c and f32.c might be
compiled into the final binary at the same time,
so need to set unique test names for each test,
otherwise, it will report build failures "multiple
definitions".

Signed-off-by: Chen Peng1 <peng1.chen@intel.com>
2022-07-30 00:08:15 +09:00
li biao
d233b40bf1 tests: lib: cmsis_dsp: move quaternionmath to new ztest API
Move test lib/cmsis_dsp/quaternionmath to use new ztest API.

Signed-off-by: li biao <biao1x.li@intel.com>
2022-07-15 15:35:15 +02:00
Gerard Marull-Paretas
ade7ccb918 tests: migrate includes to <zephyr/...>
In order to bring consistency in-tree, migrate all tests to the new
prefix <zephyr/...>. Note that the conversion has been scripted, refer
to #45388 for more details.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-05-06 20:02:14 +02:00
Stephanos Ioannidis
6a35a793b5 tests: cmsis_dsp: Add mps3_an547 as integration platform for FPU tests
This commit adds the `mps3_an547` board, a Cortex-M55 platform, as an
integration platform for all CMSIS-DSP FPU test cases so that the
M-Profile Vector Extension (MVE) vector function implementations are
tested in the CI.

With this change the FPU-enabled test coverage is as follows:

* mps2_an521_remote (Cortex-M33) tests FPU/DSP-enabled scalar function
  implementations.

* mps3_an547 (Cortex-M55) tests FPU/DSP-enabled MVE vector function
  implementations.

This also has a side effect of comprehensively exercising the M-Profile
Vector Extension support in the ARM architecture port, thereby ensuring
the arch-level FPU/DSP/MVE support is not broken.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-05-05 11:58:11 +09:00
Stephanos Ioannidis
5790c5923f Revert "tests: lib: cmsis_dsp: Disable testing on mps3_an547"
This reverts commit 96c7f6ab75.

Zephyr SDK 0.14.1 now includes QEMU 6.2, which supports the emulation
of the MVE instructions.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-05-05 11:58:11 +09:00
Stephanos Ioannidis
8c160e0d5a tests: lib: cmsis_dsp: filtering: Test vector FIR functions
This commit adds support for testing the vector implementation of the
FIR filter functions when the MVE is enabled.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-05-05 11:58:11 +09:00
Stephanos Ioannidis
4e379f9215 tests: lib: cmsis_dsp: filtering: Test vector Biquad functions
This commit adds support for testing the vector implementation of the
Biquad filter functions when the MVE is enabled.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-05-05 11:58:11 +09:00
Stephanos Ioannidis
db56091560 tests: lib: cmsis_dsp: statistics: Adjust error threshold for MVE
The MVE vector version of the statistics functions are slightly less
accurate than the scalar equivalents, so allow a higher relative error
threshold when the MVE is enabled.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-05-05 11:58:11 +09:00
Stephanos Ioannidis
f560eebd86 tests: lib: cmsis_dsp: fastmath: Adjust error threshold for MVE
The MVE vector version of the `vinverse` function is slightly less
accurate than the scalar version, so allow a higher relative error
threshold when the MVE is enabled.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-05-05 11:58:11 +09:00
Tristan Honscheid
2abb2389a1 ztest API Migration: lib/cmsis_dsp
Migrate some of the unit tests at `lib/cmsis_dsp`
to the new ztest API:

  * lib/cmsis_dsp/basicmath
  * lib/cmsis_dsp/bayes
  * lib/cmsis_dsp/complexmath
  * lib/cmsis_dsp/distance
  * lib/cmsis_dsp/fastmath

`lib/cmsis_dsp/common/test_common.h` has been adapted to use the new
ztest API for the test variant macros, when enabled.

Signed-off-by: Tristan Honscheid <honscheid@google.com>
2022-04-26 08:41:11 -04:00
Stephanos Ioannidis
d75f00a513 tests: cmsis_dsp: matrix: Disable FP16 tests for POSIX arch
This commit disables the half-precision floating-point (FP16) tests for
the POSIX arch, because the `__fp16` type is not supported on the x86
host, which is the most common host type for the POSIX arch.

Note that the FP16 tests can technically run on the POSIX arch if the
host type is AArch64; but, since we do not have a proper configuration
scheme to resolve the host type for the POSIX arch at this time, we
simply disable these tests completely for the POSIX arch.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-16 07:32:19 -04:00
Stephanos Ioannidis
5040255cf9 tests: cmsis_dsp: transform: Disable FP16 tests for POSIX arch
This commit disables the half-precision floating-point (FP16) tests for
the POSIX arch, because the `__fp16` type is not supported on the x86
host, which is the most common host type for the POSIX arch.

Note that the FP16 tests can technically run on the POSIX arch if the
host type is AArch64; but, since we do not have a proper configuration
scheme to resolve the host type for the POSIX arch at this time, we
simply disable these tests completely for the POSIX arch.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-16 07:32:19 -04:00
Bradley Bolen
c0dd594d4d arch: arm: aarch32: Change CPU_CORTEX_R kconfig option
Change the CPU_CORTEX_R kconfig option to CPU_AARCH32_CORTEX_R to
distinguish the armv7 version from the armv8 version of Cortex-R.

Signed-off-by: Bradley Bolen <bbolen@lexmark.com>
2022-02-23 08:14:15 -06:00
Ryan McClelland
a000acca5f tests: fix double promotion warning
With -Wdouble-promotion added to the warning base, fix warnings given
by the compiler.

Signed-off-by: Ryan McClelland <ryanmcclelland@fb.com>
2021-11-24 17:14:25 -05:00
Erwan Gouriou
2e4eb781f9 tests/lib/cmsis_dsp: matrix: Limit f16 tc execution on ram => 144
binary_f16 and binary_f16.fpu test cases fail when target
SRAM size is below 140k.
Update test case requirements to set min_ram to 144.

Additionally, remove the platform_exclude hich is now useless
(frdm_kw41z ram is 128k).

Fixes #38826

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2021-09-27 11:35:43 -04:00
Stephanos Ioannidis
96c7f6ab75 tests: lib: cmsis_dsp: Disable testing on mps3_an547
This commit disables running the CMSIS-DSP tests on the mps3_an547
board because the QEMU, which is default emulation platform for it,
does not currently support the emulation of the MVE instructions.

Refer to the issue #37694 for more details.

Revert this commit once QEMU 6.2 is released and integrated into the
Zephyr SDK.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-30 18:17:47 +02:00
Stephanos Ioannidis
f27dcd9ae5 tests: lib: cmsis_dsp: quaternionmath: Add F32 tests for 1.9.0
This commit adds the quaternionmath F32 test patterns and
implementations for the CMSIS-DSP 1.9.0.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-30 18:17:47 +02:00
Stephanos Ioannidis
8b5af6fefc tests: lib: cmsis_dsp: interpolation: Add F16 tests for 1.9.0
This commit adds the interpolation F16 test patterns and
implementations for the CMSIS-DSP 1.9.0.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-30 18:17:47 +02:00
Stephanos Ioannidis
4193c5a1be tests: lib: cmsis_dsp: interpolation: Add F32 tests for 1.9.0
This commit adds the interpolation F32 test patterns and
implementations for the CMSIS-DSP 1.9.0.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-30 18:17:47 +02:00
Stephanos Ioannidis
e3b9a5b894 tests: lib: cmsis_dsp: interpolation: Add Q31 tests for 1.9.0
This commit adds the interpolation Q31 test patterns and
implementations for the CMSIS-DSP 1.9.0.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-30 18:17:47 +02:00
Stephanos Ioannidis
1efe2de925 tests: lib: cmsis_dsp: interpolation: Add Q15 tests for 1.9.0
This commit adds the interpolation Q15 test patterns and
implementations for the CMSIS-DSP 1.9.0.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-30 18:17:47 +02:00
Stephanos Ioannidis
c93a089288 tests: lib: cmsis_dsp: interpolation: Add Q7 tests for 1.9.0
This commit adds the interpolation Q7 test patterns and implementations
for the CMSIS-DSP 1.9.0.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-30 18:17:47 +02:00
Stephanos Ioannidis
6547025bc1 tests: lib: cmsis_dsp: transform: Add CF16 tests for 1.9.0
This commit adds the transform CF16 test patterns and implementations
for the CMSIS-DSP 1.9.0.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-30 18:17:47 +02:00
Stephanos Ioannidis
600ca01464 tests: lib: cmsis_dsp: transform: Add RF16 tests for 1.9.0
This commit adds the transform RF16 test patterns and implementations
for the CMSIS-DSP 1.9.0.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-30 18:17:47 +02:00
Stephanos Ioannidis
5600e4d3d3 tests: lib: cmsis_dsp: transform: Update CF64 tests for 1.9.0
This commit updates the transform CF64 test patterns and
implementations for the CMSIS-DSP 1.9.0.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-30 18:17:47 +02:00
Stephanos Ioannidis
86445c7075 tests: lib: cmsis_dsp: transform: Update CF32 tests for 1.9.0
This commit updates the transform CF32 test patterns and
implementations for the CMSIS-DSP 1.9.0.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-30 18:17:47 +02:00
Stephanos Ioannidis
8c3d8db6d8 tests: lib: cmsis_dsp: transform: Update CQ31 tests for 1.9.0
This commit updates the transform CQ31 test patterns and
implementations for the CMSIS-DSP 1.9.0.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-30 18:17:47 +02:00
Stephanos Ioannidis
d32aea8a7a tests: lib: cmsis_dsp: transform: Update CQ15 tests for 1.9.0
This commit updates the transform CQ15 test patterns and
implementations for the CMSIS-DSP 1.9.0.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-08-30 18:17:47 +02:00