Encounter error when compiling Arduino code for ESP32 board

Project ID: 191502
Board selected in Arduino IDE: ESP32 Dev Module

Before I add the code “EI_IMPULSE_ERROR res = run_classifier(&signal, &result, false);” (line 47) in my program, the program can be compiled successfully. After add in this line, I am getting the following errors:

sketch\testing.ino.cpp.o:(.literal._ZN2ei8spectral10processingL26butterworth_lowpass_filterEPNS_9ei_matrixEffh+0x28): undefined reference to `ei_calloc(unsigned int, unsigned int)'

sketch\testing.ino.cpp.o:(.literal._ZN2ei8spectral10processingL26butterworth_lowpass_filterEPNS_9ei_matrixEffh+0x3c): undefined reference to `ei_free(void*)'

sketch\testing.ino.cpp.o:(.literal._ZNSt12_Vector_baseIjN2ei7EiAllocIjEEE11_M_allocateEj$isra$115+0x0): undefined reference to `ei_malloc(unsigned int)'

sketch\testing.ino.cpp.o:(.literal._ZN2ei5numpy4rfftEPKfjPfjj[ei::numpy::rfft(float const*, unsigned int, float*, unsigned int, unsigned int)]+0x4): undefined reference to `kiss_fftr_alloc'

sketch\testing.ino.cpp.o:(.literal._ZN2ei5numpy4rfftEPKfjPfjj[ei::numpy::rfft(float const*, unsigned int, float*, unsigned int, unsigned int)]+0x8): undefined reference to `kiss_fftr'

sketch\testing.ino.cpp.o:(.literal._Z44fill_result_struct_from_output_tensor_tflitePK10ei_impulseP12TfLiteTensorS3_S3_P19ei_impulse_result_tb+0x18): undefined reference to `ei_printf_float(float)'

sketch\testing.ino.cpp.o:(.literal._ZL22inference_tflite_setupPK18ei_nn_tflite_eon_tPyPP12TfLiteTensorS5_S5_S5_RSt10unique_ptrIvPFvPvEE$isra$28+0x8): undefined reference to `ei_read_timer_us()'

sketch\testing.ino.cpp.o:(.literal._Z16run_nn_inferencePK10ei_impulsePN2ei9ei_matrixEP19ei_impulse_result_tb+0xc): undefined reference to `ei_run_impulse_check_canceled()'

sketch\testing.ino.cpp.o: In function `ei::spectral::processing::butterworth_lowpass_filter(ei::ei_matrix*, float, float, unsigned char)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

sketch\testing.ino.cpp.o:c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: more undefined references to `ei_calloc(unsigned int, unsigned int)' follow

sketch\testing.ino.cpp.o: In function `ei::spectral::processing::butterworth_lowpass_filter(ei::ei_matrix*, float, float, unsigned char)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

sketch\testing.ino.cpp.o:c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: more undefined references to `ei_free(void*)' follow

sketch\testing.ino.cpp.o: In function `ei::spectral::processing::butterworth_highpass_filter(ei::ei_matrix*, float, float, unsigned char)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

sketch\testing.ino.cpp.o:c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: more undefined references to `ei_calloc(unsigned int, unsigned int)' follow

sketch\testing.ino.cpp.o: In function `ei::spectral::processing::butterworth_highpass_filter(ei::ei_matrix*, float, float, unsigned char)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

sketch\testing.ino.cpp.o:c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: more undefined references to `ei_free(void*)' follow

sketch\testing.ino.cpp.o: In function `(anonymous namespace)::ei_aligned_calloc(unsigned int, unsigned int)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

sketch\testing.ino.cpp.o: In function `ei::EiAlloc<unsigned int>::allocate(unsigned int)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_malloc(unsigned int)'

sketch\testing.ino.cpp.o: In function `ei::ei_matrix::ei_matrix(unsigned int, unsigned int, float*)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

sketch\testing.ino.cpp.o: In function `ei::ei_matrix::~ei_matrix()':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

sketch\testing.ino.cpp.o: In function `ei::numpy::software_rfft(float*, float*, unsigned int, unsigned int)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_malloc(unsigned int)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `kiss_fftr_alloc'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `kiss_fftr'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

sketch\testing.ino.cpp.o: In function `ei::numpy::software_rfft(float*, ei::fft_complex_t*, unsigned int, unsigned int)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `kiss_fftr_alloc'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `kiss_fftr'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

sketch\testing.ino.cpp.o: In function `ei::spectral::processing::periodogram(ei::ei_matrix*, ei::ei_matrix*, ei::ei_matrix*, float, unsigned short)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

sketch\testing.ino.cpp.o:(.rodata+0x90): undefined reference to `trained_model_input(int)'

sketch\testing.ino.cpp.o:(.rodata+0x94): undefined reference to `trained_model_output(int)'

sketch\testing.ino.cpp.o:(.rodata+0x98): undefined reference to `trained_model_init(void* (*)(unsigned int, unsigned int))'

sketch\testing.ino.cpp.o:(.rodata+0x9c): undefined reference to `trained_model_invoke()'

sketch\testing.ino.cpp.o:(.rodata+0xa0): undefined reference to `trained_model_reset(void (*)(void*))'

sketch\testing.ino.cpp.o: In function `ei::numpy::welch_max_hold(float*, unsigned int, float*, unsigned int, unsigned int, unsigned int, bool)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

sketch\testing.ino.cpp.o: In function `ei::EiAlloc<ei::spectral::processing::freq_peak_t>::allocate(unsigned int)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_malloc(unsigned int)'

sketch\testing.ino.cpp.o: In function `ei::EiAlloc<ei::spectral::processing::freq_peak_t>::deallocate(ei::spectral::processing::freq_peak_t*, unsigned int)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

sketch\testing.ino.cpp.o: In function `ei::EiAlloc<float>::deallocate(float*, unsigned int)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

sketch\testing.ino.cpp.o: In function `ei::signal::sosfilt::sosfilt(float const*, float const*, unsigned int)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_calloc(unsigned int, unsigned int)'

sketch\testing.ino.cpp.o: In function `ei::signal::sosfilt::~sosfilt()':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

sketch\testing.ino.cpp.o: In function `ei::EiAlloc<int>::deallocate(int*, unsigned int)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

sketch\testing.ino.cpp.o: In function `ei::EiAlloc<unsigned long>::deallocate(unsigned long*, unsigned int)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

sketch\testing.ino.cpp.o: In function `ei::EiAlloc<unsigned int>::allocate(unsigned int)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_malloc(unsigned int)'

sketch\testing.ino.cpp.o: In function `ei::EiAlloc<float>::deallocate(float*, unsigned int)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_free(void*)'

sketch\testing.ino.cpp.o: In function `fill_result_struct_from_output_tensor_tflite(ei_impulse const*, TfLiteTensor*, TfLiteTensor*, TfLiteTensor*, ei_impulse_result_t*, bool)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_printf_float(float)'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_printf_float(float)'

sketch\testing.ino.cpp.o: In function `_ZL22inference_tflite_setupPK18ei_nn_tflite_eon_tPyPP12TfLiteTensorS5_S5_S5_RSt10unique_ptrIvPFvPvEE$isra$28':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_read_timer_us()'

sketch\testing.ino.cpp.o: In function `run_nn_inference(ei_impulse const*, ei::ei_matrix*, ei_impulse_result_t*, bool)':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_read_timer_us()'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_read_timer_us()'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_run_impulse_check_canceled()'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_read_timer_us()'

sketch\testing.ino.cpp.o: In function `run_inference':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_run_impulse_check_canceled()'

sketch\testing.ino.cpp.o: In function `process_impulse':

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_read_timer_us()'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_run_impulse_check_canceled()'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_read_timer_us()'

c:\users\user\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32-elf-gcc\1.22.0-97-gc752ad5-5.2.0\xtensa-esp32-elf\include\c++\5.2.0/functional:1754: undefined reference to `ei_printf_float(float)'

collect2.exe: error: ld returned 1 exit status

exit status 1

Error compiling for board ESP32 Dev Module.

Here is my program code.

#include <LoadIdentification_inferencing.h>

#define SENSOR 4

float value = 0;
float features[EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE];
size_t feature_ix = 0;


bool flag = 0;
hw_timer_t *My_timer = NULL;

void IRAM_ATTR onTimer() {
  flag = 1;
}



void setup() {
  Serial.begin(230400);
  My_timer = timerBegin(1, 80, true);               //Use timer 1 with the prescaler 80 and the counter to count up
  timerAttachInterrupt(My_timer, &onTimer, true);   
  timerAlarmWrite(My_timer, 1000, true);             //Generate an interrupt every 1ms 
  timerAlarmEnable(My_timer);                       //Enable the timer interrupt
}



void loop() {

  if (feature_ix <= EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE - 1) {
    if (flag) {
      flag = 0;
      value = analogRead(SENSOR);
      features[feature_ix++] = value;
    }
  }
  else {
    timerAlarmDisable(My_timer);  //Disable the timer interrupt

    ei_impulse_result_t result;

    // create signal from features frame
    signal_t signal;
    numpy::signal_from_buffer(features, EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE, &signal);

    EI_IMPULSE_ERROR res = run_classifier(&signal, &result, false);

    ei_printf("%s:\t%.5f\n", result.classification[0].label, result.classification[0].value);
    ei_printf("%s:\t%.5f\n", result.classification[1].label, result.classification[1].value);
    ei_printf("%s:\t%.5f\n", result.classification[2].label, result.classification[2].value);

    feature_ix = 0;             //Reset features frame
    timerWrite(My_timer, 0);    //Reset counter value of the timer to 0
    timerAlarmEnable(My_timer); //Enable generation of timer alarm events again
  }

  }


   void ei_printf(const char *format, ...)
  {
    static char print_buf[1024] = { 0 };

    va_list args;
    va_start(args, format);
    int r = vsnprintf(print_buf, sizeof(print_buf), format, args);
    va_end(args);

    if (r > 0) {
      Serial.write(print_buf);
    }
  }

Please help me out with the error.

Thank you

Check all settings again sometime small mistakes cause big problems.

I checked for few times but still cant find out the mistake. This is my first time to use Edge Impulse.

Hello @Siewping,

Which version of ESP32 boards do you have?
boards

Also, can you make sure:

  • you imported the library correctly (Sketch>Include Library->Add .ZIP Library)
  • you selected the right board
  • you enabled PSRAM

I just tried to compile your code (well with another impulse but it the SDK is the same) and I successfully compiled it:

Best,

Louis

1 Like