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/inc/intrinsics_tests/intrinsics_templates.h | 166 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 166 insertions(+), 0 deletions(-) diff --git a/mcu_sdk/gd32f103/rk_eFire/Board/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/intrinsics_tests/intrinsics_templates.h b/mcu_sdk/gd32f103/rk_eFire/Board/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/intrinsics_tests/intrinsics_templates.h new file mode 100644 index 0000000..5872fe9 --- /dev/null +++ b/mcu_sdk/gd32f103/rk_eFire/Board/CMSIS/DSP/DSP_Lib_TestSuite/Common/inc/intrinsics_tests/intrinsics_templates.h @@ -0,0 +1,166 @@ +#ifndef _INTRINSICS_TEMPLATES_H_ +#define _INTRINSICS_TEMPLATES_H_ + +/*--------------------------------------------------------------------------------*/ +/* Includes */ +/*--------------------------------------------------------------------------------*/ + +#include "test_templates.h" +#include <string.h> /* memcpy() */ + +/*--------------------------------------------------------------------------------*/ +/* Group Specific Templates */ +/*--------------------------------------------------------------------------------*/ + +/** +* Comparison SNR thresholds for the data types used in transform_tests. +*/ +#define INTRINSICS_SNR_THRESHOLD_q63_t 120 +#define INTRINSICS_SNR_THRESHOLD_q31_t 95 + +/** +* Compare the outputs from the function under test and the reference +* function using SNR. +*/ +#define INTRINSICS_SNR_COMPARE_INTERFACE(block_size, \ + output_type) \ + do \ + { \ + TEST_CONVERT_AND_ASSERT_SNR( \ + intrinsics_output_f32_ref, \ + (output_type##_t *) intrinsics_output_ref, \ + intrinsics_output_f32_fut, \ + (output_type##_t *) intrinsics_output_fut, \ + block_size, \ + output_type, \ + INTRINSICS_SNR_THRESHOLD_##output_type##_t \ + ); \ + } while (0) + + +/*--------------------------------------------------------------------------------*/ +/* TEST Templates */ +/*--------------------------------------------------------------------------------*/ + +#define INTRINSICS_TEST_TEMPLATE_ELT1(functionName, dataType) \ + \ + JTEST_DEFINE_TEST(functionName##_test, functionName) \ + { \ + uint32_t i; \ + \ + JTEST_COUNT_CYCLES( \ + for(i=0;i<INTRINSICS_MAX_LEN;i++) \ + { \ + *((dataType##_t*)intrinsics_output_fut + i) = \ + functionName( \ + (dataType##_t)intrinsics_##dataType##_inputs[i]); \ + }); \ + \ + for(i=0;i<INTRINSICS_MAX_LEN;i++) \ + { \ + *((dataType##_t*)intrinsics_output_ref + i) = \ + ref##functionName( \ + (dataType##_t)intrinsics_##dataType##_inputs[i]); \ + } \ + \ + INTRINSICS_SNR_COMPARE_INTERFACE( \ + INTRINSICS_MAX_LEN, \ + dataType); \ + \ + return JTEST_TEST_PASSED; \ + } + +#define INTRINSICS_TEST_TEMPLATE_ELT2(functionName, dataType) \ + \ + JTEST_DEFINE_TEST(functionName##_test, functionName) \ + { \ + uint32_t i; \ + \ + JTEST_COUNT_CYCLES( \ + for(i=0;i<INTRINSICS_MAX_LEN;i++) \ + { \ + *((dataType##_t*)intrinsics_output_fut + i) = \ + functionName( \ + (dataType##_t)intrinsics_##dataType##_inputs[i] \ + ,(dataType##_t)intrinsics_##dataType##_inputs[i]); \ + }); \ + \ + for(i=0;i<INTRINSICS_MAX_LEN;i++) \ + { \ + *((dataType##_t*)intrinsics_output_ref + i) = \ + ref##functionName( \ + (dataType##_t)intrinsics_##dataType##_inputs[i] \ + ,(dataType##_t)intrinsics_##dataType##_inputs[i]); \ + } \ + \ + INTRINSICS_SNR_COMPARE_INTERFACE( \ + INTRINSICS_MAX_LEN, \ + dataType); \ + \ + return JTEST_TEST_PASSED; \ + } + +#define INTRINSICS_TEST_TEMPLATE_ELT3(functionName, dataType) \ + \ + JTEST_DEFINE_TEST(functionName##_test, functionName) \ + { \ + uint32_t i; \ + \ + JTEST_COUNT_CYCLES( \ + for(i=0;i<INTRINSICS_MAX_LEN;i++) \ + { \ + *((dataType##_t*)intrinsics_output_fut + i) = \ + functionName( \ + (dataType##_t)intrinsics_##dataType##_inputs[i] \ + ,(dataType##_t)intrinsics_##dataType##_inputs[i] \ + ,(dataType##_t)intrinsics_##dataType##_inputs[i]); \ + }); \ + \ + for(i=0;i<INTRINSICS_MAX_LEN;i++) \ + { \ + *((dataType##_t*)intrinsics_output_ref + i) = \ + ref##functionName( \ + (dataType##_t)intrinsics_##dataType##_inputs[i] \ + ,(dataType##_t)intrinsics_##dataType##_inputs[i] \ + ,(dataType##_t)intrinsics_##dataType##_inputs[i]); \ + } \ + \ + INTRINSICS_SNR_COMPARE_INTERFACE( \ + INTRINSICS_MAX_LEN, \ + dataType); \ + \ + return JTEST_TEST_PASSED; \ + } + +#define INTRINSICS_TEST_TEMPLATE_ELT4(functionName, dataType, dataType2) \ + JTEST_DEFINE_TEST(functionName##_test, functionName) \ + { \ + uint32_t i; \ + \ + JTEST_COUNT_CYCLES( \ + for(i=0;i<INTRINSICS_MAX_LEN;i++) \ + { \ + *((dataType2##_t*)intrinsics_output_fut + i) = \ + functionName( \ + (dataType##_t)intrinsics_##dataType##_inputs[i] \ + ,(dataType##_t)intrinsics_##dataType##_inputs[i] \ + ,(dataType2##_t)intrinsics_##dataType2##_inputs[i]); \ + }); \ + \ + for(i=0;i<INTRINSICS_MAX_LEN;i++) \ + { \ + *((dataType2##_t*)intrinsics_output_ref + i) = \ + ref##functionName( \ + (dataType##_t)intrinsics_##dataType##_inputs[i] \ + ,(dataType##_t)intrinsics_##dataType##_inputs[i] \ + ,(dataType2##_t)intrinsics_##dataType2##_inputs[i]); \ + } \ + \ + INTRINSICS_SNR_COMPARE_INTERFACE( \ + INTRINSICS_MAX_LEN, \ + dataType2); \ + \ + return JTEST_TEST_PASSED; \ + } + +#endif /* _INTRINSICS_TEMPLATES_H_ */ -- Gitblit v1.9.1