After reading various sources on this subject, it seems to promise what I am after (used to). Is there a definitive guide/documentation on how to implement this with the latest version of FreeRTOS and a PIC24/32?
Is there a definitive guide/documentation on how to implement this with the latest version of FreeRTOS and a PIC24/32
No, just what is on the website (which I think is quite a lot).
I was hoping to have the default PIC32 low power code implemented before the FreeRTOS V7.3.0 release, but it was not to be. I did however make some changes to the PIC32 port layer to allow application defined implementations.
By default the tick interrupt is generated from a 16 bit timer 0. 16-bits severely limits the maximum obtainable tickless period, so to allow users to override the default timer implementation the following changes were made:
+ The user can define configTICK_INTERRUPT_VECTOR to say which interrupt the tick handler should be installed on. It defaults to _TIMER_1_VECTOR, but can be defined in FreeRTOSConfig.h.
+ The tick interrupt is configured by vApplicationSetupTickTimerInterrupt(), which is now a weakly defined symbol so the application writer can define their own (and then set configTICK_INTERRUPT_VECTOR appropriately for the clock source used). For long tickless periods the timer should be a slow 32 bit timer (two 16 bit timers can be chained).