Files
esp-idf/examples/system/ulp/lp_core/interrupt
Frantisek Hrbata 1c92945f59 change(examples): switch examples to use a minimal build
Currently, several example dependencies rely on the fact that all
registered components are added to the build, along with components
specified in common requirements. This results in longer build times
because even unused components must be built. Switch all examples to use
idf_minimal_build to compile only the components actually required by
the example.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-11-20 20:14:40 +01:00
..

Supported Targets ESP32-C5 ESP32-C6 ESP32-P4

LP-Core example with interrupt triggered from HP-Core:

This example demonstrates how to program the ULP coprocessor to receive an interrupt triggered by the HP-Core

ULP program written in C can be found across lp_core/main.c. The build system compiles and links this program, converts it into binary format, and embeds it into the .rodata section of the ESP-IDF application.

At runtime, the application running inside the main CPU loads ULP program into the RTC_SLOW_MEM memory region using ulp_lp_core_load_binary function. The main code then configures the ULP and starts the coprocessor by using ulp_lp_core_run. Once the ULP program is started, it runs continuously, waiting for interrupts. The main program will periodically trigger interrupts on the LP-Core.

After triggering a certain amount of interrupts, the main core will read and print the number of interrupts received as reported by the LP-Core.

Example output

LP core loaded with firmware and running successfully
Triggered 10 interrupts on the LP-Core, LP-Core received 10 interrupts