Hello all,
I’m working on a project & come across an issue I hoping someone has a solution to…
My project is uses an Edge Impulse library on a ESP32. Edge impulse supplies the model wrapped in numerous files & folder, including tensorflow. The code linked above is currently compiling & running successfully.
However for better code layout & unit testing I’d like to move this code into /lib. Below I attach a directory structure. My issue is that at the linking stage I get numerous errors:
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `ei::spectral::processing::spectral_power_edges(ei::ei_matrix*, ei::ei_matrix*, ei::ei_matrix*, ei::ei_matrix*, float)':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/dsp/spectral/processing.hpp:318: multiple definition of `ei::spectral::processing::spectral_power_edges(ei::ei_matrix*, ei::ei_matrix*, ei::ei_matrix*, ei::ei_matrix*, float)'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/dsp/spectral/processing.hpp:318: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `ei::spectral::processing::periodogram(ei::ei_matrix*, ei::ei_matrix*, ei::ei_matrix*, float, unsigned short)':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/dsp/spectral/processing.hpp:376: multiple definition of `ei::spectral::processing::periodogram(ei::ei_matrix*, ei::ei_matrix*, ei::ei_matrix*, float, unsigned short)'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/dsp/spectral/processing.hpp:376: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `fill_input_tensor_from_matrix(ei::ei_matrix*, TfLiteTensor*)':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_helper.h:60: multiple definition of `fill_input_tensor_from_matrix(ei::ei_matrix*, TfLiteTensor*)'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_helper.h:60: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `fill_input_tensor_from_signal(ei::ei_signal_t*, TfLiteTensor*)':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_helper.h:114: multiple definition of `fill_input_tensor_from_signal(ei::ei_signal_t*, TfLiteTensor*)'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_helper.h:114: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `fill_output_matrix_from_tensor(TfLiteTensor*, ei::ei_matrix*)':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_helper.h:237: multiple definition of `fill_output_matrix_from_tensor(TfLiteTensor*, ei::ei_matrix*)'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_helper.h:237: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `fill_result_struct_from_output_tensor_tflite(ei_impulse const*, TfLiteTensor*, TfLiteTensor*, TfLiteTensor*, ei_impulse_result_t*, bool)':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_helper.h:293: multiple definition of `fill_result_struct_from_output_tensor_tflite(ei_impulse const*, TfLiteTensor*, TfLiteTensor*, TfLiteTensor*, ei_impulse_result_t*, bool)'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_helper.h:293: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `run_nn_inference_from_dsp(ei_nn_tflite_eon_t const*, ei::ei_signal_t*, ei::ei_matrix*)':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:174: multiple definition of `run_nn_inference_from_dsp(ei_nn_tflite_eon_t const*, ei::ei_signal_t*, ei::ei_matrix*)'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:174: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `run_nn_inference(ei_impulse const*, ei::ei_matrix*, ei_impulse_result_t*, bool)':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:232: multiple definition of `run_nn_inference(ei_impulse const*, ei::ei_matrix*, ei_impulse_result_t*, bool)'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:232: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o):/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-impulse/include/model-parameters/dsp_blocks.h:35: multiple definition of `ei_dsp_blocks'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-impulse/include/model-parameters/dsp_blocks.h:35: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `run_nn_inference_image_quantized(ei_impulse const*, ei::ei_signal_t*, ei_impulse_result_t*, bool)':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:285: multiple definition of `run_nn_inference_image_quantized(ei_impulse const*, ei::ei_signal_t*, ei_impulse_result_t*, bool)'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:285: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `extract_tflite_eon_features(ei::ei_signal_t*, ei::ei_matrix*, void*, float)':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:361: multiple definition of `extract_tflite_eon_features(ei::ei_signal_t*, ei::ei_matrix*, void*, float)'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/inferencing_engines/tflite_eon.h:361: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `run_inference':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:128: multiple definition of `run_inference'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:128: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `process_impulse':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:166: multiple definition of `process_impulse'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:166: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `process_impulse_continuous':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:251: multiple definition of `process_impulse_continuous'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:251: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o):/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-impulse/include/model-parameters/model_variables.h:29: multiple definition of `ei_classifier_inferencing_categories'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-impulse/include/model-parameters/model_variables.h:29: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `ei_construct_impulse':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:428: multiple definition of `ei_construct_impulse'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:428: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `run_classifier_image_quantized':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:594: multiple definition of `run_classifier_image_quantized'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:594: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `run_classifier_init':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:617: multiple definition of `run_classifier_init'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:617: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `run_classifier_deinit':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:658: multiple definition of `run_classifier_deinit'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:658: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `run_classifier_continuous':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:679: multiple definition of `run_classifier_continuous'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:679: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `run_classifier':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:720: multiple definition of `run_classifier'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_run_classifier.h:720: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `ei_classifier_smooth_init(ei_classifier_smooth*, unsigned int, unsigned char, float, float)':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_classifier_smooth.h:48: multiple definition of `ei_classifier_smooth_init(ei_classifier_smooth*, unsigned int, unsigned char, float, float)'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_classifier_smooth.h:48: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `ei_classifier_smooth_update(ei_classifier_smooth*, ei_impulse_result_t*)':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_classifier_smooth.h:66: multiple definition of `ei_classifier_smooth_update(ei_classifier_smooth*, ei_impulse_result_t*)'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_classifier_smooth.h:66: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o): in function `ei_classifier_smooth_free(ei_classifier_smooth*)':
/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_classifier_smooth.h:135: multiple definition of `ei_classifier_smooth_free(ei_classifier_smooth*)'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-eimpulse-sdk-lib/src/edge-impulse-sdk/classifier/ei_classifier_smooth.h:135: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o):/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-impulse/include/model-parameters/model_variables.h:33: multiple definition of `ei_dsp_config_3'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-impulse/include/model-parameters/model_variables.h:33: first defined here
/home/owen/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev-ei/lib7f0/libedge-impulse.a(EdgeImpulse.cpp.o):/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-impulse/include/model-parameters/model_variables.h:31: multiple definition of `ei_dsp_config_3_axes'; .pio/build/esp32dev-ei/src/main.o:/home/projects/ELOC-3.0/eloc610LowPowerPartition/lib/edge-impulse/include/model-parameters/model_variables.h:31: first defined here
collect2: error: ld returned 1 exit status
*** [.pio/build/esp32dev-ei/firmware.elf] Error 1
Perhaps I could manually edit these files to resolve these issues but there a few hundred files & this project is a an intensive development phase. This Edge Impulse library is liable to be updated & changed numerous times.
Would anyone have a solution to this problem?
Thanks,
Owen
Project structure:
├── include
├── lib
│ ├── Accel
│ │ └── src
│ ├── audio_input
│ │ └── src
│ ├── buzzer
│ │ └── src
│ ├── CPPANALOGIO
│ │ ├── include
│ │ │ └── CPPANALOG
│ │ └── src
│ │ └── CPPANALOG
│ ├── CPPI2C
│ │ ├── include
│ │ │ └── CPPI2C
│ │ └── src
│ │ └── CPPI2C
│ ├── edge-eimpulse-sdk-lib
│ │ └── src
│ │ └── edge-impulse-sdk
│ │ ├── anomaly
│ │ ├── classifier
│ │ │ └── inferencing_engines
│ │ ├── cmake
│ │ │ └── zephyr
│ │ ├── CMSIS
│ │ │ ├── Core
│ │ │ │ └── Include
│ │ │ ├── DSP
│ │ │ │ ├── Include
│ │ │ │ │ └── dsp
│ │ │ │ ├── PrivateInclude
│ │ │ │ └── Source
│ │ │ │ ├── BasicMathFunctions
│ │ │ │ ├── BayesFunctions
│ │ │ │ ├── CommonTables
│ │ │ │ ├── ComplexMathFunctions
│ │ │ │ ├── ControllerFunctions
│ │ │ │ ├── DistanceFunctions
│ │ │ │ ├── FastMathFunctions
│ │ │ │ ├── FilteringFunctions
│ │ │ │ ├── InterpolationFunctions
│ │ │ │ ├── MatrixFunctions
│ │ │ │ ├── QuaternionMathFunctions
│ │ │ │ ├── StatisticsFunctions
│ │ │ │ ├── SupportFunctions
│ │ │ │ ├── SVMFunctions
│ │ │ │ └── TransformFunctions
│ │ │ └── NN
│ │ │ ├── Include
│ │ │ └── Source
│ │ │ ├── ActivationFunctions
│ │ │ ├── BasicMathFunctions
│ │ │ ├── ConcatenationFunctions
│ │ │ ├── ConvolutionFunctions
│ │ │ ├── FullyConnectedFunctions
│ │ │ ├── NNSupportFunctions
│ │ │ ├── PoolingFunctions
│ │ │ ├── ReshapeFunctions
│ │ │ ├── SoftmaxFunctions
│ │ │ └── SVDFunctions
│ │ ├── dsp
│ │ │ ├── dct
│ │ │ ├── image
│ │ │ ├── kissfft
│ │ │ ├── spectral
│ │ │ └── speechpy
│ │ ├── porting
│ │ │ ├── arduino
│ │ │ ├── espressif
│ │ │ │ └── ESP-NN
│ │ │ │ ├── include
│ │ │ │ └── src
│ │ │ │ ├── activation_functions
│ │ │ │ ├── basic_math
│ │ │ │ ├── common
│ │ │ │ ├── convolution
│ │ │ │ ├── fully_connected
│ │ │ │ ├── pooling
│ │ │ │ └── softmax
│ │ │ ├── ethos-core-driver
│ │ │ │ ├── include
│ │ │ │ └── src
│ │ │ ├── infineon-psoc62
│ │ │ ├── renesas-ra6m5
│ │ │ └── seeed-vision-ai
│ │ ├── tensorflow
│ │ │ └── lite
│ │ │ ├── c
│ │ │ ├── core
│ │ │ │ └── api
│ │ │ ├── kernels
│ │ │ │ └── internal
│ │ │ │ ├── optimized
│ │ │ │ └── reference
│ │ │ │ └── integer_ops
│ │ │ ├── micro
│ │ │ │ ├── kernels
│ │ │ │ └── memory_planner
│ │ │ └── schema
│ │ └── third_party
│ │ ├── flatbuffers
│ │ │ └── include
│ │ │ └── flatbuffers
│ │ ├── gemmlowp
│ │ │ ├── fixedpoint
│ │ │ └── internal
│ │ └── ruy
│ │ └── ruy
│ │ └── profiler
│ ├── edge-impulse
│ │ ├── include
│ │ │ └── model-parameters
│ │ └── src
│ │ └── tflite-model
│ ├── esp32Time
│ │ └── src
│ ├── IO_expander
│ │ └── src
│ ├── sd_card
│ │ └── src
│ ├── spiffs
│ │ └── src
│ └── wav_file
│ └── src
├── src
│ └── utils
├── test
│ └── test_edge-impulse
└── tools