KryoFlux - Fast Interrupts

2009-10-08

Tested all cases of how fast IRQ’s, “FIQ” (Fast Interrupt Request), work and should be set up.

Created a test FIQ server that finally fully works. This took a few hours, especially since the SDK assembly startup routine for the board accidentally disables fast IRQ support, has no FIQ vector set, and the hardware documentation is missing a few tiny details...!

Due to this work we changed/fixed a couple of issues that we noticed in the startup to work properly.

Fast interrupts are important as there are registers that are private to that specific interrupt change, and they don’t need to be saved or restored in the interrupt server - which can take a lot of time if you have a few hundred thousand or million interrupts a second, and a CPU only running at 48 MHz to serve them.

Forced a special case of the compilation on FIQ server, so that the compiler uses only the registers that do not need to be saved in the routine.

Doing “debugging” with two LED’s is still... interesting.