From aa38e5c1f48e31213ee349aa5cd6f06c85bda70d Mon Sep 17 00:00:00 2001
From: android <android@lingyun.com>
Date: Tue, 25 Jun 2024 21:49:39 +0800
Subject: [PATCH] Add GD32F103RCT6 ADC converter board SDK source code

---
 mcu_sdk/gd32f103/rk_eFire/Board/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/transform_tests/rfft_tests.c |   94 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 94 insertions(+), 0 deletions(-)

diff --git a/mcu_sdk/gd32f103/rk_eFire/Board/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/transform_tests/rfft_tests.c b/mcu_sdk/gd32f103/rk_eFire/Board/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/transform_tests/rfft_tests.c
new file mode 100644
index 0000000..6fbc8e6
--- /dev/null
+++ b/mcu_sdk/gd32f103/rk_eFire/Board/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/transform_tests/rfft_tests.c
@@ -0,0 +1,94 @@
+#include "jtest.h"
+#include "ref.h"
+#include "arr_desc.h"
+#include "transform_templates.h"
+#include "transform_test_data.h"
+#include "type_abbrev.h"
+
+/*
+  FFT function test template. Arguments are: function suffix (q7/q15/q31/f32)
+  function configuration suffix (same as function suffix), inverse-transform flag,
+  input and output type (both q7_t/q15_t/q31_t/float32_t)
+*/
+#define RFFT_DEFINE_TEST(suffix, config_suffix,                         \
+                         ifft_flag, input_type, output_type)            \
+    JTEST_DEFINE_TEST(arm_rfft_##suffix##_##config_suffix##_test,       \
+                      arm_rfft_##suffix)                                \
+    {                                                                   \
+        CONCAT(arm_rfft_instance_, suffix) rfft_inst_fut = {0};         \
+        CONCAT(arm_rfft_instance_, suffix) rfft_inst_ref = {0};         \
+                                                                        \
+        /* Go through all arm_rfft lengths */                           \
+        TEMPLATE_DO_ARR_DESC(                                           \
+            fftlen_idx, uint16_t, fftlen, transform_rfft_fftlens        \
+            ,                                                           \
+                                                                        \
+            /* Initialize the RFFT and CFFT Instances */                \
+            arm_rfft_init_##suffix(                                     \
+                &rfft_inst_fut,                                         \
+                (uint32_t) fftlen, ifft_flag, 1U);                      \
+                                                                        \
+            arm_rfft_init_##suffix(                                     \
+                &rfft_inst_ref,                                         \
+                (uint32_t) fftlen, ifft_flag, 1U);                      \
+                                                                        \
+            if (ifft_flag)                                               \
+            {                                                           \
+               TRANSFORM_PREPARE_INVERSE_INPUTS(                        \
+                   transform_fft_##suffix##_inputs,                     \
+                   fftlen, input_type,                                  \
+                   fftlen *                                             \
+                   sizeof(input_type));                                 \
+            }                                                           \
+            else                                                        \
+            {                                                           \
+               TRANSFORM_COPY_INPUTS(                                   \
+                   transform_fft_##suffix##_inputs,                     \
+                   fftlen *                                             \
+                   sizeof(input_type));                                 \
+            }                                                           \
+                                                                        \
+            /* Display parameter values */                              \
+            JTEST_DUMP_STRF("Block Size: %d\n"                          \
+                            "Inverse-transform flag: %d\n",             \
+                         (int)fftlen,                                   \
+                         (int)ifft_flag);                               \
+                                                                        \
+            /* Display cycle count and run test */                      \
+            JTEST_COUNT_CYCLES(                                         \
+                arm_rfft_##suffix(                                      \
+                    &rfft_inst_fut,                                     \
+                    (void *) transform_fft_input_fut,                   \
+                    (void *) transform_fft_output_fut));                \
+                                                                        \
+            ref_rfft_##suffix(                                          \
+                &rfft_inst_ref,                                         \
+                (void *) transform_fft_input_ref,                       \
+                (void *) transform_fft_output_ref);                     \
+                                                                        \
+            /* Test correctness */                                      \
+            TRANSFORM_SNR_COMPARE_INTERFACE(                            \
+                fftlen,                                                 \
+                output_type));                                          \
+                                                                        \
+            return JTEST_TEST_PASSED;                                   \
+    }
+
+RFFT_DEFINE_TEST(q31, forward, 0U, TYPE_FROM_ABBREV(q31), TYPE_FROM_ABBREV(q31));
+RFFT_DEFINE_TEST(q15, forward, 0U, TYPE_FROM_ABBREV(q15), TYPE_FROM_ABBREV(q15));
+//RFFT_DEFINE_TEST(f32, inverse, 1U, TYPE_FROM_ABBREV(f32), TYPE_FROM_ABBREV(f32));
+RFFT_DEFINE_TEST(q31, inverse, 1U, TYPE_FROM_ABBREV(q31), TYPE_FROM_ABBREV(q31));
+RFFT_DEFINE_TEST(q15, inverse, 1U, TYPE_FROM_ABBREV(q15), TYPE_FROM_ABBREV(q15));
+
+/*--------------------------------------------------------------------------------*/
+/* Collect all tests in a group */
+/*--------------------------------------------------------------------------------*/
+
+JTEST_DEFINE_GROUP(rfft_tests)
+{
+    JTEST_TEST_CALL(arm_rfft_q31_forward_test);
+    JTEST_TEST_CALL(arm_rfft_q15_forward_test);
+    //JTEST_TEST_CALL(arm_rfft_f32_inverse_test);
+    JTEST_TEST_CALL(arm_rfft_q31_inverse_test);
+    JTEST_TEST_CALL(arm_rfft_q15_inverse_test);
+}

--
Gitblit v1.9.1