portSAVE_CONTEXT not used in some MPUs

magnuskriel wrote on Tuesday, March 27, 2012:

I am trying to implement the dsPIC port of FreeRTOS. I am using the PIC32 edition Realtime Kernel reference manual as it was the closest to dsPIC33. In the manual they show code listings of interrupts that call the portSAVE_CONTEXT and portRESTORE_CONTEXT upon entering and exiting the ISR respectively. In the demo code for the dsPIC33 the portSAVE_CONTEXT and portRESTORE_CONTEXT are not called in the USART interrupts. The demo code does make use of the taskYield however.

Why is portSAVE_CONTEXT and portRESTORE_CONTEXT not used in the dsPIC33 and other MPU demos and why is it used in other cases
When do I need to use it?

Thanks in advance

rtel wrote on Tuesday, March 27, 2012:

You don’t need to call those macros at all in the PIC24/dsPIC port - the kernel will take care of it.

I recommend reading the “Configuration and Usage” section of the following page:
http://www.freertos.org/portpic24_dspic.html

The demo application should also contain example interrupt service routines (probably for a UART at least) that you can use as a reference, and copy.

Regards.