Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Средства GCC
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
zuuuuk
Доброго времени суток.
Подскажите, плз.

Можно ли из .elf файла получить исполняемый образ?
Так, что бы можно было разместить этот образ в озу и потом, в нужный момент,
поставить на него указатель и он стал выполняться.
Genadi Zawidowski
Цитата(zuuuuk @ May 26 2014, 16:56) *
из .elf файла получить исполняемый образ?
Так, что бы можно было разместить этот образ в озу


Можно, если этот .elf уже для такой работы предназначен (elf - тот же самый hex, только с дополнительной информацией). Перемещаться с тех адресов, для которых его сформировали, уже нельзя. Разве что процессор эту возможность предусматривает.
zuuuuk
Я вот что имею ввиду.
Когда я запускаю отладчик. То он загружает мой elf файл в память
и стартует программу.
Вот можно этот дамп памяти получить на компьютере в отдельном файле?
И можно ли потом его разместить в памяти (правильно) запустить на исполнение?
den_po
Цитата(Genadi Zawidowski @ May 27 2014, 00:34) *
Можно, если этот .elf уже для такой работы предназначен (elf - тот же самый hex, только с дополнительной информацией). Перемещаться с тех адресов, для которых его сформировали, уже нельзя. Разве что процессор эту возможность предусматривает.

В elf бывает информация для перемещения, см. http://www.skyfree.org/linux/references/ELF_Format.pdf 1-21

Цитата(zuuuuk @ May 27 2014, 09:23) *
Я вот что имею ввиду.
Когда я запускаю отладчик. То он загружает мой elf файл в память
и стартует программу.
Вот можно этот дамп памяти получить на компьютере в отдельном файле?
И можно ли потом его разместить в памяти (правильно) запустить на исполнение?

Грузить elf в озу и запускать несложно. Особенно когда нет внешних зависимостей.
Несложные загрузчики использовались умельцами на телефонах siemens, motorola, sonyericsson. Пример такого загрузчика http://perk11.info/svn/ARM/elfloader/elfloader.cpp
adnega
Цитата(zuuuuk @ May 27 2014, 09:23) *
Я вот что имею ввиду.
Когда я запускаю отладчик. То он загружает мой elf файл в память
и стартует программу.
Вот можно этот дамп памяти получить на компьютере в отдельном файле?
И можно ли потом его разместить в памяти (правильно) запустить на исполнение?

objcopy?
Цитата
objcopy -O binary ???.elf ???.bin
Сергей Борщ
Цитата(zuuuuk @ May 27 2014, 08:23) *
Вот можно этот дамп памяти получить на компьютере в отдельном файле?
Да, программой objcopy.
Цитата(zuuuuk @ May 27 2014, 08:23) *
И можно ли потом его разместить в памяти (правильно) запустить на исполнение?
Вопрос непонятен. Что значит "правильно"?
zuuuuk
Еще уточнение.
Вот я получил из elf файла bin.
Если я загружу его в озу то
как передать ему управление?
adnega
Цитата(zuuuuk @ May 27 2014, 11:00) *
Еще уточнение.
Вот я получил из elf файла bin.
Если я загружу его в озу то
как передать ему управление?

Тем, чем можете загрузить, тем можете и передать.
Что Вы используете?
zuuuuk
я использую свою программу.
она получает данные. кладет их в память.
по rs232
adnega
Цитата(zuuuuk @ May 27 2014, 12:17) *
я использую свою программу.
она получает данные. кладет их в память.
по rs232

Добавте команду перехода по указанному адресу в функционал прошивки и своей программы.
zuuuuk
Спасибо за помощь.
Проблема решена.
Я делаю из elf bin.
загружаю bin в озу.
и передаю управление через указатель.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.