Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Линковка бинарного файла в качестве константы
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Legotron
Друзья, помогите плз, куда копать?

У меня Keil 166.
Я хочу поместить любой бинарный файл с компа в итоговый HEX(во флэш как константу).
Это вообще возможно?
Если да то КАК?

Любые обсуждения приветствуются... smile.gif
zltigo
Цитата(Legotron @ Apr 6 2007, 14:19) *
Любые обсуждения приветствуются... smile.gif

Еще больше приветствуются поиск по форуму перед тем, как задавать стандартные вопросы.
В ощем случае вариантов два - бинарнник в текстовый файл с последующей его компиляцией, или изучение линкера на предмет поддержки линковки бинарников.
Legotron
Цитата(zltigo @ Apr 6 2007, 16:55) *
Еще больше приветствуются поиск по форуму перед тем, как задавать стандартные вопросы.

С этим безусловно поспорить трудно!
Но такие фразы не несут информации, поэтому непойму зачем автор их пишет. По делу-то только ниже!

Цитата(zltigo @ Apr 6 2007, 16:55) *
В ощем случае вариантов два - бинарнник в текстовый файл с последующей его компиляцией, или изучение линкера на предмет поддержки линковки бинарников.

Спасибо за помощь!
Собственно разобрался как всегда во всем САМ!

Варианты помещения бинарников (BMP, JPG, WAV...e.t.c) в ROM:

1 - Перевод бинарника в текстовый файл (*.с). Есть очень удобная программа HEX editor для такой цели, сама все приводит к виду константного массива (и думать не надо)

2 - Перевод бинарника в HEX утилитой BIN2HEX от Keil. Далее возможны варианты:

а Соединить этот HEX c програмным hex-ом, затем зашить.
б Залить этот HEX в оперативку через Debuger, затем произвести заливку в ROM.

Если имеются еще варианты - дополняйте!
sergeeff
Прошу прощения. Уважаемый zltigo! Для повышения квалификации не трудно ткнуть в какой либо linker, который умеет подлинковывать bin-файлы?
Legotron
Просьба к знатокам:

Не могли бы вы пролить свет на процесс компиляции С/С++ кода?
Думаю глубокое понимание этого процесса никому не помешает!
zltigo
Цитата(sergeeff @ Apr 10 2007, 18:28) *
...не трудно ткнуть в какой либо linker, который умеет подлинковывать bin-файлы?

xlink IARoвский. Опция что-то вроде image_linking


Цитата(Legotron @ Apr 10 2007, 16:48) *
1 - Перевод бинарника в текстовый файл (*.с). Есть очень удобная программа HEX editor для такой цели, сама все приводит к виду константного массива (и думать не надо)

Потолще ничего не нашлось smile.gif, да как там с командной строкой.....
Andy Great
Цитата(Legotron @ Apr 10 2007, 20:18) *
Просьба к знатокам:

Не могли бы вы пролить свет на процесс компиляции С/С++ кода?
Думаю глубокое понимание этого процесса никому не помешает!

Не знаток, но...
Обычно, сначала проходит препроцессинг, потом синтаксический/семантический анализ, потом кодогенерация. Возможны этапы оптимизации.

А zltigo дал правильный совет, читайте архивы, эта тема (линковка) обсуждалась, и неоднократно.
Legotron
Цитата(Andy Great @ Apr 11 2007, 16:35) *
А zltigo дал правильный совет, читайте архивы, эта тема (линковка) обсуждалась, и неоднократно.

Может быть, но поиском по словам линковка, линк, и.т.д. и.т.п. ничего дельного не нашел. (скажу честно, глубоко не искал).

Для себя я варианты процесса внедрения бинарника уяснил.
Мне не дает покоя еще 1 возможный вариант - т.е. присоединение файла прямо линкером(или еще чем-то). Потому я и задал вопрос к знатокам процесса компиляции.

Хотелось бы поподробнее узнать этот процесс со всеми входны/выходными расширениями файлов(*.с, *.obj, *.lst, *.hex)
Кто чё делает короче? А то может быть это вовсе не задача линкера внедрять бинарник.
Andy Great
Задача линкера - из нужных сегментов создать нужного формата объектник, согласно заданным условиям. Как в нужный сегмент попадет бинарник - есть варианты: либо директивами линкера (если таковые есть), либо как продукт компиляции (ассемблирования). Там опять же два варианта: либо встроенная директива компилятора (ассемблера), либо ручная (автоматизированная, внешними утилитами) вставка данных. Есть еще вариант постобработки слинкованного объектника, вариант загрузки массива на этапе выполнения и т.д. (нужное впишите сами). Выбор, ИМХО, дело вкуса. Если не хотите привязываться к конкретному компилеру - то формирование массива констант утилитой - хороший выбор.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.