I am working with Crossworks 2 for ARM, an Olimex 2378 demo board, and FreeRTOS 5.4.0. The demo for ARM7_LPC2368_Rowley would not compile at all, so I started my own simple FreeRTOS project. I eventually got it running, but only when interrupts are disabled (my sole task runs happily forever).
What appears to be happening is that irq_handler in vic_irq_handlers.s expects vNonPreemptiveTick() to exit differently than it does. vNonPreemptiveTick() reloads processor context and ends up in the middle of irq_handler in system mode, which eventually leads to another context reload from garbage and a prefetch abort.
Any advice on how to make this work right? I am new to Crossworks, ARM, and FreeRTOS.