configISR_STACK_SIZE parameter

jarielmar wrote on Thursday, March 12, 2009:


How can I select the size of this parameter?

What does it mean?

Have it got any relation with the system stack?

if I use memory manager heap_3, Is it uses by the FreeRTOS?

Thanks in advance.

rtel wrote on Thursday, March 12, 2009:

Assuming you are talking about the PIC32 port…

The PIC32 port includes a separate stack that is used to hold interrupt stack frames.  This is done to prevent each task stack having to be sized adequately to hold the entire ISR stack frame in addition to the task stack frame itself.  The PIC32 stacks can get quite large hence this mechanism is used to vastly reduce the amount of RAM required.

The size required to hold the ISR stack frame is dependent on the interrupt nesting depth of your application.  I think executing the demo app will result in interrupts nesting at least 3 deep.  If you need more than that then you will have to increase the size of configISR_STACK_SIZE.