rtel wrote on Tuesday, January 11, 2005:
The areas of global memory used by the compiler are saved as part of the task context so you need not worry about these directly - only to ensure that the correct number of bytes are stored as per the WEB documentation.
There are some library functions that are very rarely reentrant. malloc(), free(), strtok() for example. Also anything that uses errno if that is of concern to you. You always need to take care when using these. If in doubt you can suspend and resume the scheduler around a function call - this will allow interrupts to be processed but guarantee that a context switch does not occur.
sprintf may struggle on a PIC as it normally uses a fair amount of stack.
The section from the manual you quote seems to refer to your own function parameters and the C standard use of the static modifier. The problem with the C18 is it’s use of memory when performing simple routines like adding two integers.
I am going to get the latest C18 version and see how things are different.