Is the software stack big enough?

sandervh18 wrote on Thursday, March 03, 2011:

My device: PIC18F4550, software-environment MPLAB IDE

I have a question concerning the software stack size. In the linkerfile there is STACK SIZE=0x60 RAM=BIG_BLOCK, so there are 96 places.
But in the FreeRTOSconfig.h file there is this value  #define configMINIMAL_STACK_SIZE ( 105 )

1. why is the size in the linkerfile smaller than the configminimalstacksize?
2. when i count, how many bytes we need i get this:

i think, probably wrong because thousands of people calculated it before me, the calculation is like this:

3 dummies for debugging
2 for address parameters
1 empty space
16  for WREG,status,intcon, bsr, fsr2L,…, pclath
20 for .tmpdata and math_data
2 for top global data section
3 for the address of the task on the stack
1 for number of return addresses
1 for afterwards topofstack++
±-
49

and if we want to save a whole hardware stack we need 139 bytes for the software stack of 1 task.
So actually i don’t have any clue how the minimal stacksize is 105, but i think you do, would you mind to tell me?

It would be very kind if someone could see to my questions :slight_smile: thanks!

Kind regards,
Sander

sandervh18 wrote on Friday, March 04, 2011:

Mmm i made a mistake, software stack is not the same as the allocated space per task. Still i want to know the answer of the second question, why a configMINIMAL_STACK_SIZE of 105?

Thanks for the replies.