since all the tasks are created in RAM, I was asking myself if it is also possible to put functions like Interrupt Handlers into the RAM, too. I found this description in the AT91 lib:
Attribute which defines a function to be located
in memory section .fastrun and called via “long calls”.
See linker-skript and startup-code to see how the
.fastrun-section is handled.
The definition is not only useful for ISRs but since
ISRs should be executed fast the macro is defined in
#define RAMFUNC __attribute__ ((long_call, section (".fastrun")))