ESP-IDF v3.3 Doesn't seem to work with ULP
Posted: Mon Sep 09, 2019 6:12 am
Hi,
I’ve been trying to get a ULP project running for a while and have failed to get a build to get past the ULP assemply step.
So I cloned one of the examples on github, at https://github.com/krzychb/ulp-loop. This sample does not require any external hardware so I thought it would be the ideal sample to test my build setup. I would have expected it to build without error. I installed ESP-IDF v3.3 a few days ago after it was labeled ‘stable’ as well at the ULP build tools, v2.28.51-esp-20190801 (which I’m guessing was released on 9/1/2019, which would make it about a week old), set up the PATH and COMPONENT_PATH environment variables to point to the right directories etc. That turned out to be a problem as many if not all the tools in that ULP tools update had new file names. For instance, ‘esp32ulp-elf-as.exe’ was now ‘esp32s2ulp-elf-as.exe’. Necessary files were not found with the new file names. It’s nice to see you planning for the new chip, but this update just does not work with the idf v3.3 tools. The error messages are pretty weird too. So I installed the previous release of ULP tools, and the only other one I could find on githum, v2.28.51-esp32ulp-20180809 with the expectation that all would be well.
Without modifying krzychb’s ulp-loop or its make files in any way, It fails to build in exactly the same way with exactly the same error messages as my project. (My main component in C, consisting of several files but without ULP hooks, compiles and runs without error.)
Below are excerpts from a log of my build run with https://github.com/krzychb/ulp-loop. This time the build failed in a new way at the same place.
After running ‘make menuconfig’, I get:
I cannot find a /bin/sh directory anywhere in the msys32 directory tree with the ESP_IDF and ULP tool chains installed per directions. Further, there is a warning that assembler version 2.28.51.20170517 was expected, a version more than a year older than oldest version that I can find on github.
When I continue the build to see what will happen, I get:
.
. a lot more apparently successful compiles… until...
.
The call to esp32ulp-elf-as looks like the call to assemble the ULP component, and esp32ulp-elf-as.exe is not found. Could that also be the result of changes in file names or directory structure from the previous 2017 version of the ULP build tools? It appears that making sure that the ULP capability fell through the cracks in the release of the stable v3.3. Or am I doing something wrong. I would expect that a ULP example on github would build and run without error, so it's quite possible that, being new to this, I've missed something along the way. If so, can you shed some light on this for me?
I’ve been trying to get a ULP project running for a while and have failed to get a build to get past the ULP assemply step.
So I cloned one of the examples on github, at https://github.com/krzychb/ulp-loop. This sample does not require any external hardware so I thought it would be the ideal sample to test my build setup. I would have expected it to build without error. I installed ESP-IDF v3.3 a few days ago after it was labeled ‘stable’ as well at the ULP build tools, v2.28.51-esp-20190801 (which I’m guessing was released on 9/1/2019, which would make it about a week old), set up the PATH and COMPONENT_PATH environment variables to point to the right directories etc. That turned out to be a problem as many if not all the tools in that ULP tools update had new file names. For instance, ‘esp32ulp-elf-as.exe’ was now ‘esp32s2ulp-elf-as.exe’. Necessary files were not found with the new file names. It’s nice to see you planning for the new chip, but this update just does not work with the idf v3.3 tools. The error messages are pretty weird too. So I installed the previous release of ULP tools, and the only other one I could find on githum, v2.28.51-esp32ulp-20180809 with the expectation that all would be well.
Without modifying krzychb’s ulp-loop or its make files in any way, It fails to build in exactly the same way with exactly the same error messages as my project. (My main component in C, consisting of several files but without ULP hooks, compiles and runs without error.)
Below are excerpts from a log of my build run with https://github.com/krzychb/ulp-loop. This time the build failed in a new way at the same place.
After running ‘make menuconfig’, I get:
Code: Select all
GENCONFIG
/bin/sh: esp32ulp-elf-as: command not found
Building ULP app ulp_main
ULP assembler version:
WARNING: ULP assembler version is not supported.
Expected to see version: 2.28.51.20170517
Please check ESP-IDF ULP setup instructions and update the toolchain, or proceed at your own risk.
App "ulp-example" version: 67e0e1e
When I continue the build to see what will happen, I get:
Code: Select all
$ make app
Toolchain path: /opt/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Toolchain version: crosstool-ng-1.22.0-80-g6c4433a5
Compiler version: 5.2.0
CC build/app_trace/app_trace.o
CC build/app_trace/host_file_io.o
. a lot more apparently successful compiles… until...
.
Code: Select all
CC build/lwip/port/esp32/netif/wlanif.o
CC build/lwip/port/esp32/debug/lwip_debug.o
AR build/lwip/liblwip.a
/bin/sh: esp32ulp-elf-as: command not found
Building ULP app ulp_main
ULP assembler version:
WARNING: ULP assembler version is not supported.
Expected to see version: 2.28.51.20170517
Please check ESP-IDF ULP setup instructions and update the toolchain, or proceed at your own risk.
CPP main/ulp/loop_blink.S
ULP_AS build/main/loop_blink.ulp.o
make[1]: esp32ulp-elf-as: Command not found
make[1]: *** [/home/Steve/esp/esp-idf/components/ulp/component_ulp_common.mk:54: loop_blink.ulp.o] Error 127
make: *** [c:/msys32/home/Steve/esp/esp-idf/make/project.mk:552: component-main-build] Error 2