ISR problem

After booting I get a message which does not mean anything to me:

ISR not in IRAM!
User exception(panic/abort/assert)
Abort called

This is the first time this message popped up.

What is going wrong?

Comments

Yeah, interrupts have to be

Yeah, interrupts have to be forced to stay resident in ICACHE memory so that they respond quickly without having to transfer their code from the flash chip. The linker needs to know about that, and that's the purpose of that macro. Without it the chip would have to initiate a new flash transfer to get the function to execute it, and that not only takes time, but it can collide with other transfers, since only one transfer can be happening at a time - and that causes crashes to happen.

That does, of course, limit the combined size of all interrupt routines (both yours and system ones) to 32kB, since that is the size of the instruction cache RAM.

Pages