-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Use esp_intr_alloc to register interrupt handlers #489
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
What is the workaround for this issue until this is fixed? I have no idea to make my interrupt work now :) |
Your interrupt will still cause an exception whenever it happens at time when flash is accessed. A workaround is to mark the ISR with IRAM_ATTR attribute to place it into RAM (instead of flash, where every function goes by default). And make sure all functions you call from ISR also have an IRAM_ATTR. |
I use preferences library to backup some data to flash and have two ISR on two GPIO.
Is it related to this issue ? do you think will be solved short-term at core level, or does we always have to use the attribute IRAM_ATTR ? |
@igrr what is the reason of cause the error? |
@me-no-dev any remaining ISRs not using esp_intr_alloc? |
Discussed on Team meeting. Not relevant now, closing. |
Putting this on the issue list so this doesn't get forgotten...
Currently ISRs are registered manually to hard-coded interrupt numbers.
Interrupt allocator in IDF should be used to register interrupt handlers instead, which will resolve issues with interrupts running while flash cache is disabled (like #488).
The text was updated successfully, but these errors were encountered: