Calculadora de Tamaño de Pila Gratis
Estima el tamaño de pila necesario para sistemas embebidos según profundidad de llamadas e interrupciones.
Deepest function call nesting
Return address + saved registers + locals
Recommended Stack Size
480 bytes
Recommended Stack Size vs Max Call Depth
Fórmula
## Estimating Stack Size for Embedded Systems Stack overflow is a common and dangerous bug in embedded systems. Proper sizing prevents crashes. ### Formula **Base Stack = Max Call Depth x Avg Frame Size** **ISR Stack = Interrupt Levels x ISR Frame Size** **Recommended = (Base + ISR) x (1 + Safety Margin)** The safety margin accounts for worst-case alignment, compiler-generated temporaries, and unforeseen call paths. A 25% margin is typical for production systems.
Ejemplo Resuelto
8-deep call stack, 32-byte frames, 2 interrupt levels at 64 bytes each, 25% safety.
- 01Base stack: 8 x 32 = 256 bytes
- 02ISR stack: 2 x 64 = 128 bytes
- 03Total raw: 256 + 128 = 384 bytes
- 04With 25% margin: 384 x 1.25 = 480 bytes
Preguntas Frecuentes
How do I measure actual stack usage?
Fill the stack with a known pattern (e.g., 0xDEADBEEF) and check after running to see how far the pattern was overwritten.
What happens on stack overflow?
The stack corrupts adjacent memory, causing unpredictable behavior, hard faults, or silent data corruption.
Should I use a separate stack for ISRs?
Some architectures (ARM Cortex-M) have a separate MSP for interrupts. If available, use it to isolate ISR stack from task stacks.
Aprender