diff --git a/EdgeImpulse.EI-SDK.pdsc b/EdgeImpulse.EI-SDK.pdsc index cd9b2ca..5f8254e 100644 --- a/EdgeImpulse.EI-SDK.pdsc +++ b/EdgeImpulse.EI-SDK.pdsc @@ -5,13 +5,16 @@ EI-SDK LICENSE-apache-2.0.txt Edge Impulse SDK - https://github.com/edgeimpulse/edge-impulse-sdk-pack/releases/download/v1.60.3/ + https://github.com/edgeimpulse/edge-impulse-sdk-pack/releases/download/v1.60.5/ hello@edgeimpulse.com https://github.com/edgeimpulse/edge-impulse-sdk-pack.git - + EI-SDK + + EI-SDK + EI-SDK @@ -98,9 +101,6 @@ EI-SDK - - - EI-SDK @@ -146,7 +146,7 @@ - + Edge Impulse SDK diff --git a/EdgeImpulse.pidx b/EdgeImpulse.pidx index 9d5f315..0ccd986 100644 --- a/EdgeImpulse.pidx +++ b/EdgeImpulse.pidx @@ -2,8 +2,8 @@ EdgeImpulse https://raw.githubusercontent.com/edgeimpulse/edge-impulse-sdk-pack/main/ - 2024-10-14 17:19:34 + 2024-10-16 13:57:27 - + diff --git a/edgeimpulse/edge-impulse-sdk/dsp/dsp_engines/ei_arm_cmsis_dsp.h b/edgeimpulse/edge-impulse-sdk/dsp/dsp_engines/ei_arm_cmsis_dsp.h index 49245c6..c129a9e 100644 --- a/edgeimpulse/edge-impulse-sdk/dsp/dsp_engines/ei_arm_cmsis_dsp.h +++ b/edgeimpulse/edge-impulse-sdk/dsp/dsp_engines/ei_arm_cmsis_dsp.h @@ -194,7 +194,7 @@ static int hw_r2c_fft(const float *input, ei::fft_complex_t *output, size_t n_ff static int hw_r2r_fft(const float *input, float *output, size_t n_fft) { - if(!can_do_fft(n_fft)) { EIDSP_ERR(ei::EIDSP_NOT_SUPPORTED); } + if(!can_do_fft(n_fft)) { return ei::EIDSP_NOT_SUPPORTED; } float *arm_fft_out; auto allocator = EI_MAKE_TRACKED_POINTER(arm_fft_out, n_fft); diff --git a/edgeimpulse/edge-impulse-sdk/dsp/numpy.hpp b/edgeimpulse/edge-impulse-sdk/dsp/numpy.hpp index c4c01b3..e179569 100644 --- a/edgeimpulse/edge-impulse-sdk/dsp/numpy.hpp +++ b/edgeimpulse/edge-impulse-sdk/dsp/numpy.hpp @@ -50,9 +50,21 @@ #elif EIDSP_USE_CMSIS_DSP #include "edge-impulse-sdk/dsp/dsp_engines/ei_arm_cmsis_dsp.h" #else +#define EIDSP_INCLUDE_KISSFFT 1 #include "edge-impulse-sdk/dsp/dsp_engines/ei_no_hw_dsp.h" #endif +// More decisions on kissfft +#ifndef EIDSP_INCLUDE_KISSFFT + +#if defined(EI_CLASSIFIER_NON_STANDARD_FFT_SIZES) && !EI_CLASSIFIER_NON_STANDARD_FFT_SIZES +#define EIDSP_INCLUDE_KISSFFT 0 +#else +#define EIDSP_INCLUDE_KISSFFT 1 +#endif // EI_CLASSIFIER_NON_STANDARD_FFT_SIZES + +#endif // EIDSP_INCLUDE_KISSFFT + // For the following CMSIS includes, we want to use the C fallback, so include whether or not we set the CMSIS flag #include "dsp/statistics_functions.h" @@ -1723,6 +1735,7 @@ class numpy { } static int software_rfft(float *fft_input, float *output, size_t n_fft, size_t n_fft_out_features) { + #if EIDSP_INCLUDE_KISSFFT || !defined(EIDSP_INCLUDE_KISSFFT) kiss_fft_cpx *fft_output = (kiss_fft_cpx*)ei_dsp_malloc(n_fft_out_features * sizeof(kiss_fft_cpx)); if (!fft_output) { EIDSP_ERR(EIDSP_OUT_OF_MEM); @@ -1751,10 +1764,14 @@ class numpy { ei_dsp_free(fft_output, n_fft_out_features * sizeof(kiss_fft_cpx)); return EIDSP_OK; + #else + return EIDSP_NOT_SUPPORTED; + #endif } static int software_rfft(float *fft_input, fft_complex_t *output, size_t n_fft, size_t n_fft_out_features) { + #if EIDSP_INCLUDE_KISSFFT || !defined(EIDSP_INCLUDE_KISSFFT) // create fftr context size_t kiss_fftr_mem_length; @@ -1771,6 +1788,9 @@ class numpy { ei_dsp_free(cfg, kiss_fftr_mem_length); return EIDSP_OK; + #else + return EIDSP_NOT_SUPPORTED; + #endif } static int signal_get_data(const float *in_buffer, size_t offset, size_t length, float *out_ptr)