espressif / esp-dsp

DSP library for ESP-IDF
Apache License 2.0
481 stars 91 forks source link

P4 compile error (DSP-143) #90

Open Jason2866 opened 2 months ago

Jason2866 commented 2 months ago

Answers checklist.

IDF version.

IDF 5.2 latest master

Module or chip used.

Compile try for ESP32-P4

DSP version.

latest master

What is the expected behavior?

Code compiles

What is the actual behavior?

compile error with modules/dotprod/float/dsps_dotprode_f32_arp4.S:52: Error: unrecognized opcode esp.lp.setup 0,a3,.dotprod_loop'

Steps to reproduce.

Just tring to compile fails

Code to reproduce this issue.

Not needed

Debug logs.

See CI run of Arduino Lib Builder https://github.com/Jason2866/esp32-arduino-lib-builder/actions/runs/10341546001/job/28623471052

More Information.

No response

dmitry1945 commented 2 months ago

Hi @Jason2866, Thank you for feedback.

Could you try to switch to latest idf master branch? Then ./install.sh and then . ./export.sh

Now only latest master has a toolchain to support esp32p4 instructions like esp.lp.setup

Please let me know the result. Thank you.

Jason2866 commented 2 months ago

Understood, branch IDF 5.2 is not supported. Can't change to IDF master branch easily, many code changes needed. Will the needed changes backported to IDF 5.3.x and 5.2.x? If not, no drama will exclude DSP lib when compiling for P4 Imho the idf_component.yml should be adopted to reflect the needed versions of IDF

dmitry1945 commented 2 months ago

@Jason2866 I think it's a plans to make a backport. Now, you can just take binutils from latest master, and use them. Yes, I will add restriction to idf_component.yml Thank you.

dmitry1945 commented 2 months ago

@Jason2866 Also, you can now disable optimization for esp-dsp in menuconfig, and you will be able to use the esp-dsp. For floating point operations, you will not lose a lot of performance. And in future will fix the problem.