I have a bit of a request for FreeRTOS. I'm currently working on a project which requires the use of 3 UARTS, the SAM7 has 3 uarts on board, 2 normal and 1 debug uart which has reduced functionality, but for our particular application we do not require anything other than the standard 8-N-1 settings on the port.
I have my own UART abstraction layer which we have used on the SAM7 before which just requires me to add a low level driver for the uart, however, there's a bit of an issue with the sam7 port out of the box.
The system interrupt vector which you install assumes that the only time it will ever be called is because the system tick has "gone off", however, the DBGU on the SAM7 shares the system interrupt with the PIT timer.
Now, modifying the port code is obviously trivial, but what I like to do when you release a new version of FreeRTOS is to just drop it into my project and replace the existing freertos distribution, rebuild and bobs you uncle. However, if I make changes to the port file then they will obviously be lost.
So, what I'm asking (proposing) is would it be possible to provide a define which allows a user routine (or macro) to be called if the PIT was not the source of the interrupt, I have attached an example premptive tick. (this is code that I use)
If you don't use the option, then the code will compile as is, but if you do use the option, you have to supply the sam7systemirq_dispacher routine which the user supplies to locate the source and then handle the interrupt.
Example tick for sam7 with changes
This was potentially updated - but in any case refers to what is now a very old port.