Может и у меня что-то подобное. Но я не использую динамическое распределение памяти.
Линковщику всё указано верно:
Код
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__ = 0x20001FFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x400;
define symbol __ICFEDIT_size_heap__ = 0x400;
/**** End of ICF editor section. ###ICF###*/
Посмотрел еще раз map-файл. Там действительно всё есть, просто сортировано по имени переменных - что ОЧЕНЬ неудобно в данном случае.
Загнал эту часть в excel и увидел пропуски по 100 и больше байт.
И ещё. На cstack и heap - линковщик отвел по 1 Кбайту. Для моей программы - очевидно много. Хочу подрезать.
Правильно ли я понимаю, что cstack - это стек (т.е. туда пишутся регистры, при вызове функций, текущий адрес при вызовах функций и пр. - т.е. это стек микроконтроллера ? А heap - это та область, где хранятся локальные переменные, где выделяется память malloc-ами и пр.