|
|
  |
Перемещаемый elf, Возможно ли это? |
|
|
|
May 16 2016, 09:19
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(desh @ May 13 2016, 17:11)  Возможно ли заставить IAR для ARM генерировать перемещаемый (relocatable) elf файл и как это можно сделать? Панелька "Position-independence" в опциях проекта не годится? Цитата(desh @ May 13 2016, 17:11)  Для загрузки и выполнения планирую использовать nuttx. Вы пишете про STM32. А зачем там перемещаемый код? Там код во FLASH обычно находится, а ОЗУ очень мало. Или у Вас уже во FLASH не лезет и Вы в SDRAM грузите?
|
|
|
|
|
May 16 2016, 10:24
|
Частый гость
 
Группа: Свой
Сообщений: 113
Регистрация: 25-10-07
Из: Краснодар
Пользователь №: 31 725

|
Цитата(jcxz @ May 16 2016, 12:19)  Панелька "Position-independence" в опциях проекта не годится? Игрался я с этими опциями. Не получилось то, что надо. Сам файл по прежнему генерируется как ET_EXEC (Executable file), а загрузчик ожидает файл ET_REL (Relocatable file). Я так понимаю за это отвечает линкер. И вроде бы ранних версиях линкер xlink умел это делать (нашел подборку Rst7, в которой IAR генерил elf - ы для мобильных телефонов Siemens), а вот с текущим ilink все как то мутно. Видимо придется писать в поддержку IAR. Цитата(jcxz @ May 16 2016, 12:19)  Вы пишете про STM32. А зачем там перемещаемый код? Там код во FLASH обычно находится, а ОЗУ очень мало. Или у Вас уже во FLASH не лезет и Вы в SDRAM грузите? Да, у меня внешняя SRAM. Хочу разделить прошивку на системную и пользовательскую части. Система меняется редко в отличии от пользовательской части, а при дистанционном обновлении накладно и долго каждый раз перезаливать всю прошивку целиком. Кроме того под одно железо часто имеется несколько вариантов пользовательского кода. Возможно так будет легче сопровождать весь зоопарк.
|
|
|
|
|
May 17 2016, 02:27
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(desh @ May 16 2016, 16:24)  Да, у меня внешняя SRAM. Хочу разделить прошивку на системную и пользовательскую части. Система меняется редко в отличии от пользовательской части, а при дистанционном обновлении накладно и долго каждый раз перезаливать всю прошивку целиком. Кроме того под одно железо часто имеется несколько вариантов пользовательского кода. Возможно так будет легче сопровождать весь зоопарк. И в чём проблема? Эти несколько вариантов пользовательского ПО должны одновременно находиться в памяти? И одновременно выполняться??? Если нет, то проблемы нет: линкуете (обычно, не перемещаемо) Вашу пользовательскую часть ПО в один регион памяти, системную в другой. Если нужно иметь несколько вариантов пользовательского ПО - храните их в разных областях ОЗУ, а тот вариант, который должен выполняться, копируйте в область выполнения, для которой линковали.
|
|
|
|
|
May 17 2016, 05:54
|
Частый гость
 
Группа: Свой
Сообщений: 113
Регистрация: 25-10-07
Из: Краснодар
Пользователь №: 31 725

|
Цитата(jcxz @ May 17 2016, 05:27)  И в чём проблема? Моя проблема описана в первом сообщении  Цитата(jcxz @ May 17 2016, 05:27)  Эти несколько вариантов пользовательского ПО должны одновременно находиться в памяти? И одновременно выполняться??? Если нет, то проблемы нет: линкуете (обычно, не перемещаемо) Вашу пользовательскую часть ПО в один регион памяти, системную в другой. Если нужно иметь несколько вариантов пользовательского ПО - храните их в разных областях ОЗУ, а тот вариант, который должен выполняться, копируйте в область выполнения, для которой линковали. Это все я знаю, умею и люблю, но этот вариант больше подходит для загрузчиков. Я хочу получить систему с загружаемыми модулями на основе общепринятых стандартных решений. Как линукс, только маленький. И что бы IARом собирался (стандарт предприятия). А так, да - спасибо за совет.
|
|
|
|
|
May 17 2016, 07:51
|
Частый гость
 
Группа: Свой
Сообщений: 113
Регистрация: 25-10-07
Из: Краснодар
Пользователь №: 31 725

|
Цитата(scifi @ May 17 2016, 10:28)  Не факт, что яр это вообще умеет. Не факт. Но до смены линковщика умел. Да и сейчас при сборке библиотек умеет. Вот только как этим воспользоваться в данном контексте я не знаю.
|
|
|
|
|
May 17 2016, 10:16
|
Частый гость
 
Группа: Свой
Сообщений: 113
Регистрация: 25-10-07
Из: Краснодар
Пользователь №: 31 725

|
Цитата(AlexandrY @ May 17 2016, 12:22)  У IAR есть такой проект со всеми исходниками - IElfTool Этот тул умеет делать самоперемещаемые образы. Спасибо. Видел его исходники. Дождусь ответа от ТП IAR и если от них ничего интересного не узнаю - буду смотреть в эту сторону.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|