Как связать объектные файлы в сырой двоичный файл с помощью gcc / ld? - PullRequest
0 голосов
/ 16 октября 2019

У меня проблемы с цепочкой инструментов m68k-elf. Я хочу перевести простой файл 68k-сборки source.s следующим образом:

    .text 
    move.w %d0,%d1

в объектный файл, а затем использовать скрипт компоновщика memmap.ldscript:

SECTIONS 
{
    rawcode : AT(0x05)
    {
        *(.text*)
    }
}

OUTPUT_FORMAT(binary)

чтобы связать этот объектный файл в необработанный двоичный файл. Конечный файл должен выглядеть следующим образом (при просмотре в шестнадцатеричном редакторе):

00 00 00 00 00 30 10

Если я создаю его следующим образом

m68k-elf-as -o source.o source.s 
m68k-elf-ld -T memmap.ldscript -o final.rom source.o 

Тогда final.rom содержит только:

30 01

Таким образом, код раздела помещается в 0x00 вместо 0x05.

Мне нужен «сырой» машинный код для записи на E (E) PROM. Но я хотел бы использовать компоновщик и скрипт компоновщика, чтобы иметь возможность собирать секции из нескольких исходных файлов в файлы объектов, а затем связывать их в одно окончательное ПЗУ с размещением секций, контролируемым скриптом компоновщика. Возможно ли это с m68k-elf?

Я знаю, что другие наборы инструментов, такие как cc65, способны на это, но я не могу понять это с m68k-elf.

...