Jump to content
    

Средства GCC

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

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

 

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

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

Edited by Genadi Zawidowski

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

Можно, если этот .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

Edited by den_po

Share this post


Link to post
Share on other sites

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

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

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

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

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

objcopy?

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

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

по rs232

Share this post


Link to post
Share on other sites

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

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

по rs232

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

Share this post


Link to post
Share on other sites

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

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

Я делаю из elf bin.

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...