6 years, 1 month 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

5 years, 4 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().