My understanding is that AVR compilers that are not avr-gcc use two stacks,
one for data and one for return addresses.
When divvying up SRAM, said compilers lump the heap with one of the stacks.
The pair have a combined memory allocation and corresponding size limit.
The other stack has a size limit of its own.
That would make sense if both stacks had to grow down,
but they do not.
The data stack can grow upward and the heap often has size zero.
To me, it would make the most sense to give the stacks the combined allocation.
Am I missing some constraint?
If not, is there a compiler that lumps the two stacks?
Edit: To be clear, this has no immediate application for me.
I'm just curious about something that seems strange to me.