как преобразовать ELF в формат DMA в ARM?

Мне нужно передать изображение ELF в ARM в формат DMA. Все, что у меня сейчас есть, это старый код, делающий это для мощного ПК, но структура эльфов, похоже, другая. Кто-нибудь может указать мне направление? ИЛИ кто-нибудь знает об инструменте с открытым исходным кодом для этого?

== РЕДАКТИРОВАТЬ ==

под форматом dma я имею в виду что-то вроде:

D 0000000000000008 0000000000000000
D 0000000000000010 0000000000000000
D 0000000000000018 0000000000000000
D 0000000000000020 0000000000000000
D 0000000000000028 0000000000000000
D 0000000000000030 0000000000000000
D 0000000000000038 0000000000000000
D 0000000000000040 0000000000000000
D 0000000000000048 0000000000000000
D 0000000000000050 0000000000000000
D 0000000000000058 0000000000000000
D 0000000000000060 0000000000000000
D 0000000000000068 0000000000000000
D 0000000000000070 0000000000000000
D 0000000000000078 0000000000000000
D 0000000000000080 0000000000000000
D 0000000000000088 0000000000000000
D 0000000000000090 0000000000000000
D 0000000000000098 0000000000000000

просто адрес и данные - в данном случае все нули. Спасибо ласка


person WeaselFox    schedule 25.09.2013    source источник


Ответы (2)


Структура эльфов довольно стандартна. Достаточно легко сделать свой собственный парсер. Если вам нужен еще более простой формат для синтаксического анализа, используйте ihex или srec

arm-none-eabi-objcopy hello.elf -O ihex hello.hex

а затем напишите короткую утилиту, чтобы проанализировать это и вывести любой формат, который вы хотите.

person old_timer    schedule 25.09.2013

Если под «форматом DMA» вы имеете в виду простой двоичный файл, тогда вы хотите использовать objcopy (инструменты GNU) или fromelf (инструменты ARM) для преобразования файла ELF в простой двоичный файл:

arm-none-eabi-objcopy -O binary foo.elf foo.bin

or

fromelf --bin foo.elf -o foo.bin

Если вы имеете в виду другое, уточните вопросы.

person scott    schedule 25.09.2013