9 years, 8 months ago.

Memory Model for multiple stacks

Without an MMU (and thus without virtual memory), how are stacks from multiple threads/processes laid out in memory? The basic description of the memory model only describes how a single stack grows from high to low addresses. With multiple stacks, is a fixed portion of RAM pre-allocated for each stack? How, in that case, is overflow/collision detected?

Question relating to:

1 Answer

8 years, 11 months ago.

I solely have experience of working with FreeRTOS. However, I think it shares the same characteristics. In FreeRTOS, the stack of tasks created inside the main() function is located within the heap of main().