Windows ESP-IDF V5.1.2 build error

Question/Issue:
[Windows ESP-IDF V5.1.2 build error]

Project ID:
[836220]

Context/Use case:
[Deploying on Windows with ESP-IDF V5.1.2 for ESP32-S3. The compilation keeps failing with an error indicating that the DSP library cannot be found. I have tried importing via C++ packages and porting from Arduino packages to ESP-IDF, but both attempts failed. Please teach me a simple method for deployment. Thank you.]

Steps Taken:

  1. [Step 1]
  2. [Step 2]
  3. [Step 3]

Expected Outcome:
[Describe what you expected to happen]

Actual Outcome:
[Describe what actually happened]

Reproducibility:

  • [ ] Always
  • [ ] Sometimes
  • [ ] Rarely

Environment:

  • Platform: [esp32-s3]
  • Build Environment Details: [esp-idf V5.1.2]
  • OS Version: [Windows 11]
  • Edge Impulse Version (Firmware): [no]
  • To find out Edge Impulse Version:
  • if you have pre-compiled firmware: run edge-impulse-run-impulse --raw and type AT+INFO. Look for Edge Impulse version in the output.
  • if you have a library deployment: inside the unarchived deployment, open model-parameters/model_metadata.h and look for EI_STUDIO_VERSION_MAJOR, EI_STUDIO_VERSION_MINOR, EI_STUDIO_VERSION_PATCH
  • Edge Impulse CLI Version: [no]
  • Project Version: [unclear]
  • Custom Blocks / Impulse Configuration: [Raw data]
    Logs/Attachments:
    [FAILED: hello_world.elf
    cmd.exe /C “cd . && D:\Espressif\512\Espressif\tools\xtensa-esp32-elf\esp-12.2.0_20230208\xtensa-esp32-elf\bin\xtensa-esp32-elf-g++.exe -mlongcalls -Wno-frame-address -Wl,–cref -Wl,–defsym=IDF_TARGET_ESP32=0 -Wl,–Map=D:/xiazhongzhou/edgeimpulse/hello_world/build/hello_world.map -Wl,–no-warn-rwx-segments -fno-rtti -fno-lto -Wl,–gc-sections -Wl,–warn-common -T esp32.peripherals.ld -T esp32.rom.ld -T esp32.rom.api.ld -T esp32.rom.libgcc.ld -T esp32.rom.newlib-data.ld -T esp32.rom.syscalls.ld -T esp32.rom.newlib-funcs.ld -T memory.ld -T sections.ld @CMakeFiles\hello_world.elf.rsp -o hello_world.elf && cd .”
    d:/espressif/512/espressif/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/…/lib/gcc/xtensa-esp32-elf/12.2.0/…/…/…/…/xtensa-esp32-elf/bin/ld.exe: cannot find -lesp-dsp: No such file or directory
    collect2.exe: error: ld returned 1 exit status
    ninja: build stopped: subcommand failed.
  • 终端进程“D:\Espressif\512\Espressif\tools\ninja\1.10.2\ninja.EXE”已终止,退出代码: 1。]

Additional Information:
[Any other information that might be relevant]

Hi, @ZlinkTendaTech !
Please try compiling in WSL or Ubuntu Docker Container.

Hello! thanks for your reply! I have now resolved the compilation issue and can download it to the chip. However, an error occurs during runtime. The condition EI_PORTING_ESPRESSIF=1 is not met, which leads to a memory problem. I am currently working on solving this issue. The file related to this problem is located at: (example-standalone-inferencing-espressif-esp32-main\edge-impulse-sdk\porting\espressif\el_classifier_porting.cpp)

[17:01:15.035]ÊÕ¡û¡ôEdge Impulse standalone inferencing (Espressif ESP32S3)
G
[17:01:15.086]ÊÕ¡û¡ôuru Meditation Error: Core 0 panic’ed (StoreProhibited). Exception was unhandled.

Core 0 register dump:
PC : 0x4037e676 PS : 0x00060d33 A0 : 0x8037e2cb A1 : 0x3fc988c0
A2 : 0x3fc94fb4 A3 : 0x3fc99ee4 A4 : 0x3fc99edc A5 : 0x3fc99edc
A6 : 0x3fc98b40 A7 : 0x00000005 A8 : 0x00000019 A9 : 0x3fc99eec
A10 : 0x3fc99eec A11 : 0x00000008 A12 : 0xf8bbc321 A13 : 0x00000005
A14 : 0xb33fffff A15 : 0xb33fffff SAR : 0x0000001b EXCCAUSE: 0x0000001d
EXCVADDR: 0xf8bbc32d LBEG : 0x40056f5c LEND : 0x40056f72 LCOUNT : 0x00000000

Backtrace: 0x4037e673:0x3fc988c0 0x4037e2c8:0x3fc988e0 0x4037625a:0x3fc98900 0x4037f4a5:0x3fc98920 0x42011a71:0x3fc98940 0x42010eb5:0x3fc98960 0x4200a741:0x3fc98980 0x4200a38c:0x3fc989a0 0x4200a605:0x3fc98a80 0x4200a661:0x3fc98aa0 0x4201feff:0x3fc98b80 0x4037bfe1:0x3fc98bb0

ELF file SHA256: 712743f8cb8961a0

EI_PORTING_ESPRESSIF=1 is not met

that is very unlikely. This condition is set to true whenever esp idf is used here
edge-impulse-sdk/porting/ei_classifier_porting.h

So it’s likely something else. The register dump and raw backtrace are not helpful without having access to your application… If you use esp idf to flash and connect to the board (idf.py build flash monitor) you should get backtrace automatically deciphered. You can paste the deciphered backtrace here.