Closed MartinKliemank closed 11 months ago
Hello @MartinKliemank,
Thank you for this report. We will get back to you as soon as we analyze it further. This may take some time. Thank you for your comprehension.
With regards,
Hello @MartinKliemank,
Unfortunately, there is no plan to update CMSIS DSP library in the short term. I will keep you informed if there are any updates. Please allow me to close this issue.
Thank you in advance for your comprehension.
Best Regards,
Thank you for the update @TOUNSTM . Then, however, I must ask you (or ST in general) to provide a new tutorial to replace the one linked above on how to properly include CMSIS DSP in STM CUBE IDE projects, since the current one relies on the version provided in this repository.
ARM CMSIS DPS libary in this package seems to be outdated:
arm_weighted_sum_f32
can not be found in this version:` __STATIC_FORCEINLINE float32_t arm_linear_interp_f32( arm_linear_interp_instance_f32 S, float32_t x) { float32_t y; float32_t x0, x1; / Nearest input values / float32_t y0, y1; / Nearest output values / float32_t xSpacing = S->xSpacing; / spacing between input values / int32_t i; / Index variable / float32_t pYData = S->pYData; / pointer to output table /
} `
the described workings outside the range only apply once i is more than 1 outside the range, vs the fixed version at https://github.com/ARM-software/CMSIS-DSP/blob/main/Source/InterpolationFunctions/arm_linear_interp_f32.c :
` float32_t arm_linear_interp_f32( arm_linear_interp_instance_f32 S, float32_t x) { float32_t y; float32_t x0, x1; / Nearest input values / float32_t y0, y1; / Nearest output values / float32_t xSpacing = S->xSpacing; / spacing between input values / int32_t i; / Index variable / const float32_t pYData = S->pYData; / pointer to output table /
} `
How To Reproduce
I included the CMSIS DSP library from this repository in STM32 CUBE IDE by following this tutorial: https://community.st.com/t5/stm32-mcus/configuring-dsp-libraries-on-stm32cubeide/ta-p/49637
And used it like this:
#include "arm_math.h" ... arm_linear_interp_instance_f32 S = {k_i[k][1] - k_i[k][0] + 1, f_i[k][0], f_i[k][1] - f_i[k][0], &p_i[k][0]}; for (int j = 0; j < length_f_K; j++){ p_temp[k][j] = arm_linear_interp_f32(&S, f_i[K-1][j]); } ... float sum = arm_weighted_sum_f32(&p_temp2[k][0], helper, length_f_K);
(I hope this is the right place and format for this, most of the template didn't seem applicable)