Можно ли передать аргументы командной строки в GNU LD, чтобы создать раздел, определить размер и поместить его в определенную память?

Я хочу создать раздел в оперативной памяти, выделить определенный размер и разместить его по адресу? Можно ли выполнить все эти операции без передачи «файла» сценария компоновщика или без изменения существующего сценария компоновщика?

.myspace :
{
        . = 0x10000;
        . = . + STACK_SIZE;
} > ram

Можно ли выполнить всю операцию, выполняемую скриптом компоновщика, в командной строке с помощью GNU LD/GCC?


person ted    schedule 11.06.2014    source источник


Ответы (1)


Похоже на устаревший ответ, но в любом случае.

Невозможно зарезервировать размер раздела с помощью параметров командной строки ld, но если следующий раздел начинается в конце вашего специального раздела, вы можете попробовать что-то вроде этого:

ld --section-start=.myspace=0x10000 -Ttext=0x11000 ...
person Iron Bug    schedule 25.05.2018
comment
Как насчет --defsym=symbol=expression ? - person benathon; 26.05.2018
comment
Насколько я понимаю, --defsym работает, только если символ был объявлен с проверкой на DEFINED(symbol). А в дефолтном скрипте ld это не так для разделов и многого другого. В любом случае, если есть возможность переопределить некоторые символы, их можно использовать. - person Iron Bug; 26.05.2018