Page 2 of 2

Re: High level interrupt (5) and NMI issues

Posted: Wed Aug 21, 2024 4:37 pm
by OSCPUDEV
OK, so who handles the Arduino ESP stuff?

I looked at xtensa_vectors.S code and see how the interrupt handler works... and I can see why it takes 220ns before the high level interrupt routine is called. Can you tell me how I can determine WHERE (memory address) the interrupt table is located? It seems from looking at that code that the _xtos_interrupt_table is where interrupts are registered. Perhaps if I can just change the table entry I can set the address of the NMI ISR? I also need this ability because I have several different interrupt handlers that need to be used based on conditions. I don't want just a single routine pointed to that gets set at compile time. I need to be able to change that.

Thanks!

Re: High level interrupt (5) and NMI issues

Posted: Thu Aug 22, 2024 7:44 pm
by OSCPUDEV
Just a follow-up! The problem with not being able to use NMI is apparently a known bug in the ESP-IDF! This has been reported:

https://github.com/espressif/esp-idf/issues/13629

There is a working around, but is only for v5.2.1 of the ESP-IDF core, not the version that the Arduino core is using:

https://github.com/user-attachments/fil ... 2767.patch

It seems that 5.2.1 broke the ability to add the interrupt at all, and anything prior to v4.4 would not override the weak casting.