Delayed FreeRTOS failure

tamirmichael wrote on Friday, August 24, 2012:


I have a LPC2478 running 14 FreeRTOS tasks without issues.
However, once I add one task (the 15th) the scheduler starts up, and them, during context switch the second context switch, the most innocent looking instruction (NOP…) will branch the processor to some address. If I disable a background interrupt (1000 Hz) that has a higher priority than the kernel and runs while the scheduler starts up the system will start up normally. If I enable that interrupt source but empty the ISR the systems starts up correctly. If I insert a slight delay (30 NOPs) into the ISR - the system will fail with 15 tasks! I don’t see how an empty ISR can corrupt the kernel, unless there is some kind of timing issue at hand.
I have enough heap and stack, and I’m out of ideas…
Any comments are welcome!

Thanks in advance.

rtel wrote on Friday, August 24, 2012:

The ARM7 port does not support interrupt nesting, so I’m not sure the priority of the interrupt is that relevant - presuming you have not changed the FreeRTOS code.

Is your high priority interrupt using the FIQ, or IRQ?