or is it's size dynamic, extending into the free memory pool as I call functions etc.
I want to define a circular buffer (at compile time) as large as possible
The stack and dynamically allocated memory use the same space. One from the top, one from the bottom.QuoteI want to define a circular buffer (at compile time) as large as possibleWhy?
The project (an Arduino logic analyzer) sounds exciting. I agree with Graynomad that you could basically malloc as much memory as you can, less a hundred or so bytes for the stack (used when you call functions).However 2000 or so bytes won't capture many data points, especially if you are recording changes and need to save the time along with each change (say, 4 bytes each change).You can get external SPI-based RAM chips, that could give you a fair bit more.Or another approach might be a CPLD (logic array) which might be able to simultaneously capture changes and write them to external RAM.