Update: so this is definitely a user code problem (i.e. me), not a hardware or esp-idf problem. I added some debug pin wiggling to the timer library and I can see that it's still generating interrupts when my app goes down. I chased back up to my isr callback function and it's still getting to there, so the problem is with me putting a message on the queue and receiving it into the task at the other end. More debugging tomorrow.
Original:
Has anyone run into problems with the timer peripheral on C3? I'm trying to track down a problem with my app which is driven from a timer and (unlikely as it sounds) it looks like the timer just stops generating interrupts. Once it stops I haven't been able to find a way in software
to restart it, even a full timer_deinit/ timer_init sequence isn't enough.
I'll keep digging into the problem, but I thought it was worth seeing if anyone else has already hit this (google didn't turn up anything).
ESP32-C3 timer peripheral problems? (no, user error)
Re: ESP32-C3 timer peripheral problems? (no, user error)
To close this out, the root cause was unsafe access to spi_device_polling_transmit() from multiple tasks, eventually causing that function to hang and block the task driven from the timer interrupts. I miss-interpreted the lack of activity from that task as it not getting triggered when in fact it had just disappeared into an infinite loop.
James
James
Who is online
Users browsing this forum: Bing [Bot], FX2032 and 121 guests