Цитата
И не надо, просто скажите ему какими областями памяти он может распоряжаться. Однако, насколько я могу догадываться, Вы хотите динамически выделять память, к этому линкер, как я уже писал, вообще отношения не имеет - этим занимается менеджер памяти ВО ВРЕМЯ РАБОТЫ ПРИЛОЖЕНИЯ.
Ну я уже понял, что глобальным и статическим переменным адреса выделяются в секциях .data и .bss (надеюсь, что правильно понял), а выделение памяти в куче происходит посредством выполнения оператора 'operator new'. А вот выделение памяти под локальные переменные, либо не статические члены класса происходит в стеке. И следующий момент, который нужно отметить - инициализация внешней памяти происходит внутри программы, то есть до этой инициализации никто туда не должен лезть, значит секции .data и .bss должны быть расположены во внутренней оперативке.
Ситуация, значит, вырисовывается такая: поскольку on-chip RAM всего 64KB, а внешняя оперативка несравнимо больше, и к тому же данные, которые требуются хранить довольно громоздкие, то их объявление как глобальных, и таким образом запись либо в секцию .data, либо в секцию .bss является плохим решением. Значит эти данные нужно объявить как локальные (либо не статическими членами класса). Это можно сделать двумя способами:
1) Объявить их в стеке;
2) Объявить их в куче посредством "new".
В первом случае не надо копать "operator new", второй более предпочтителен, но нужно разобрать "operator new". Но в обоих случаях нужно указать линковщику, что есть еще дополнительная оперативка, чего я пока не знаю(.
Надеюсь приведенные рассуждения правильные, если где- то ошибка, попрошу поправить.
И было бы замечательно, если кто - нибудь приведет пример указанию линковщику нескольких диапазонов оперативной памяти.