Интеграция другого двоичного файла


8

Я строю двоичный файл для ARM, используя GCC и Crossworks. У меня есть вторичное двоичное изображение, которое должно быть загружено в другую микросхему во время запуска.

Мне нравится интегрировать этот двоичный файл в мою цепочку инструментов, другими словами, я делаю этот двоичный файл частью своего образа, и каждый раз, когда я собираю этот двоичный файл, он интегрируется в окончательный двоичный файл, который будет загружен в ЦП. Какова лучшая практика для этого?

Спасибо

Ответы:


3

Вы можете использовать objcopyдля преобразования двоичного изображения в объектный файл. Объектный файл будет содержать символы, к которым можно получить доступ из кода Си. Затем попросите GCC связать объектный файл, и вы сможете получить доступ к символам в объектном файле, используя их externдля загрузки данных в другую ИС.

Вот хорошее руководство о том, как связать в двоичном двоичном объекте, в том числе о том, как отфильтровать параметры, которые необходимо передать для objcopyиспользования objdump.

И, конечно, objcopyсправочная страница и objdumpсправочная страница .


супер ответ .. мне потребовалось всего 5 минут, чтобы сделать эту работу ..
— Ktc

Дополнительный вопрос Файл obj работает хорошо, однако набор инструментов помещает его в оперативную память, что становится проблемой из-за размера файла. Как я могу заставить этот объект быть помещенным во Flash?
— Ktc

решил это .. в основном, objcopy -I бинарный -O elf32-littlearm -B arm --rename-section .data = .rodata, alloc, load, readonly, data, content fpga.bin fpga.o это все и делает. Родата и линкер размещаются правильно на флеш.
— Ktc

objcopyимеет огромное количество вариантов. Вероятно, он может делать все что угодно. Просто нужно много пялиться на эту справочную страницу. Спасибо, что поделились своим решением, так как я уверен, что это будет общий вопрос для людей, которые хотят делать то, что вы делаете.
— embedded.kyle
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.