How to use esp_intr_alloc_intrstatus to register an ISR on HP core woken up by LP core (IDFGH-14487) #15257
Closed
3 tasks done
Labels
Awaiting Response
awaiting a response from the author
Resolution: Done
Issue is done internally
Status: Done
Issue is done internally
Answers checklist.
General issue report
Dear Espressif Team,
I'm working with the ESP32C6 and ESP-IDF5.4 to read some sensor measurements via the LP I2C.
The LP core is notifying the HP core via
ulp_lp_core_wakeup_main_processor()
when it is done and waits for 1 min.Currently I'm only using light sleep mode.
According to the technical reference manual this should trigger a PMU interrupt that can be routed via the interrupt matrix to a CPU software interrupt.
I'm trying to register an interrupt callback for handling the notification with the following code:
I already verified that the LP-core is running correctly by
esp_pm_light_sleep_register_cbs()
to handle the measurementsMy understanding is that registering an ISR would be more flexible since I can already read measurements before the HP-core actually goes to sleep. Currently with using the light sleep exit callback I see a delay until the first measurement arrives because the HP is still busy with other tasks and doesn't go to sleep immediately.
Is my understanding of
esp_intr_alloc_intrstatus
incorrect or do I need to do some additional steps to enable the interrupt?The programming guide unfortunately does not provide an example for using a software interrupt.
The text was updated successfully, but these errors were encountered: