Спасаем стек

Продолжим тему о микроконтроллерах с малым объёмом памяти. Я обычно подразумеваю под таковыми те, у которых ОЗУ 512-1К. Есть, конечно и со 128, и 256 байтами, но там уже не до СИ. При использовании ОС, которая умеет в переключение нитей, возникает проблема памяти для стека, тем более, что у каждой нити он свой. Стек расходуется в основном на две вещи (помимо контекста при переключении нитей): сохранение регистров и выделение фрейма при вызове функций. Соответственно, чем глубже вложенность вызовов, тем больше расходуется стек. Неприятные сюрпризы могут вылезти при использовании библиотечных функций, таких как printf (лол, никогда не знаешь, что там внутри, хотя, можно и посмотреть для интереса).


Читать дальше