Typically, a TriCore application has the following types of stacks:
The user stack demand for a single function is calculated by the C compiler. Furthermore, the C compiler generates information for the call graph generation. The call graph is generated by the linker and shows the stack usage for each function and the stack usage of all callees of that function. When recursive functions are used, the stack demand of the application can be higher than the calculated one. This is because the linker cannot determine any details about the maximum number of recursive function calls.
The interrupt stack is used similarly to the user stack when an interrupt service routine is active.
For more information, see the section 7.9.12. Stack Size Estimation in the TriCore user guide.