I’m working on a project which uses FreeRTOS. It is working, but we want to service devices (in addition to the PIT, which is used for the timer tick) which are part of the SYSC, and, therefore all share the AT91C_ID_SYS IRQ.
In the GCC/ARM7_AT91SAM7S port, vPreemptiveTick (or vNonPreemptiveTick, as the case may be) is registered directly to the SYS interupt. That’s fine, since that’s the only SYSC device that raises them. I need to also handle the RSTC interrupt, which requires me to change that. I pretty much know how I can do that, but am concerned that if I do, we’ll lose the ability to directly update those files when a new version of FreeRTOS comes out.
If there is a plan to allow other SYSC devices to have interrupts serviced, I’d rather go with that than to hack it locally and try to keep everything in sync when the GCC/ARM7_AT91SAM7S port of FreeRTOS changes.
It is easily conceivable that the ability to do this sort of thing may be of broad interest (on the SAM7 platform). It would allow one to use the DBGU UART, for instance.