Добрый день! Столкнулся с проблемой, что линковщик ложит секции в произвольном порядке в область RAM. Это документированно, это нормально. Но не для меня
В скрипте написано так
CODE
place in RAM_region { readwrite,
block CSTACK,
};
По факту, глядя в map я вижу, что после блока CSTACK находится секция .bss.
Я пытался её принудительно прописывать в начало (перед секциеё readwrite). Но это не меняло поведения линковщика. Читая доку, понял что можно секции ложить в блоки, но не понял как. Помогло временно сделать так
CODE
place in RAM_region { readwrite,
block CSTACK };
place at start of RAM_region { zeroinit };
Теперь .bss лежить в начале ОЗУ, а блок CSTACK - последним. Но это временная мера, не гарантирующая ничего. Также в документации не нашёл, что значит
QUOTE
"P2", part 1 of 2:
. Т.е. получается он (линковщик) разбивает процесс укладывания секций на части? Как эти управлять? В общем я маленько в растерянности... Подскажите, пожалуйста, что я упустил в доке? Спасибо!
Выбор.