Перейти к содержанию
    

Средства GCC

Доброго времени суток.

Подскажите, плз.

 

Можно ли из .elf файла получить исполняемый образ?

Так, что бы можно было разместить этот образ в озу и потом, в нужный момент,

поставить на него указатель и он стал выполняться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

из .elf файла получить исполняемый образ?

Так, что бы можно было разместить этот образ в озу

 

Можно, если этот .elf уже для такой работы предназначен (elf - тот же самый hex, только с дополнительной информацией). Перемещаться с тех адресов, для которых его сформировали, уже нельзя. Разве что процессор эту возможность предусматривает.

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вот что имею ввиду.

Когда я запускаю отладчик. То он загружает мой elf файл в память

и стартует программу.

Вот можно этот дамп памяти получить на компьютере в отдельном файле?

И можно ли потом его разместить в памяти (правильно) запустить на исполнение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно, если этот .elf уже для такой работы предназначен (elf - тот же самый hex, только с дополнительной информацией). Перемещаться с тех адресов, для которых его сформировали, уже нельзя. Разве что процессор эту возможность предусматривает.

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

 

Я вот что имею ввиду.

Когда я запускаю отладчик. То он загружает мой elf файл в память

и стартует программу.

Вот можно этот дамп памяти получить на компьютере в отдельном файле?

И можно ли потом его разместить в памяти (правильно) запустить на исполнение?

Грузить elf в озу и запускать несложно. Особенно когда нет внешних зависимостей.

Несложные загрузчики использовались умельцами на телефонах siemens, motorola, sonyericsson. Пример такого загрузчика http://perk11.info/svn/ARM/elfloader/elfloader.cpp

Изменено пользователем den_po

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вот что имею ввиду.

Когда я запускаю отладчик. То он загружает мой elf файл в память

и стартует программу.

Вот можно этот дамп памяти получить на компьютере в отдельном файле?

И можно ли потом его разместить в памяти (правильно) запустить на исполнение?

objcopy?

objcopy -O binary ???.elf ???.bin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот можно этот дамп памяти получить на компьютере в отдельном файле?
Да, программой objcopy.

И можно ли потом его разместить в памяти (правильно) запустить на исполнение?
Вопрос непонятен. Что значит "правильно"?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще уточнение.

Вот я получил из elf файла bin.

Если я загружу его в озу то

как передать ему управление?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще уточнение.

Вот я получил из elf файла bin.

Если я загружу его в озу то

как передать ему управление?

Тем, чем можете загрузить, тем можете и передать.

Что Вы используете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я использую свою программу.

она получает данные. кладет их в память.

по rs232

Добавте команду перехода по указанному адресу в функционал прошивки и своей программы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за помощь.

Проблема решена.

Я делаю из elf bin.

загружаю bin в озу.

и передаю управление через указатель.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...