Heap allocation on a microcontroller
You misunderstand what the heap is.
The heap is the area where malloc gives you blocks of RAM dynamically at run-time.
Your globally scoped, statically allocated variables &amp; arrays are not 'on the heap'.
If you're not using malloc or any of its variants in your program, you can quite safely set the heap size to 0.