реклама на сайте
подробности

 
 
> Перемещаемый elf, Возможно ли это?
desh
сообщение May 13 2016, 11:11
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 113
Регистрация: 25-10-07
Из: Краснодар
Пользователь №: 31 725



Возможно ли заставить IAR для ARM генерировать перемещаемый (relocatable) elf файл и как это можно сделать?
Для загрузки и выполнения планирую использовать nuttx.
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
desh
сообщение May 16 2016, 10:24
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 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. Хочу разделить прошивку на системную и пользовательскую части.
Система меняется редко в отличии от пользовательской части, а при дистанционном обновлении накладно и долго каждый раз перезаливать всю прошивку целиком.
Кроме того под одно железо часто имеется несколько вариантов пользовательского кода. Возможно так будет легче сопровождать весь зоопарк.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 17 2016, 02:27
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(desh @ May 16 2016, 16:24) *
Да, у меня внешняя SRAM. Хочу разделить прошивку на системную и пользовательскую части.
Система меняется редко в отличии от пользовательской части, а при дистанционном обновлении накладно и долго каждый раз перезаливать всю прошивку целиком.
Кроме того под одно железо часто имеется несколько вариантов пользовательского кода. Возможно так будет легче сопровождать весь зоопарк.

И в чём проблема?
Эти несколько вариантов пользовательского ПО должны одновременно находиться в памяти? И одновременно выполняться???
Если нет, то проблемы нет: линкуете (обычно, не перемещаемо) Вашу пользовательскую часть ПО в один регион памяти, системную в другой.
Если нужно иметь несколько вариантов пользовательского ПО - храните их в разных областях ОЗУ, а тот вариант, который должен выполняться, копируйте в область выполнения, для которой линковали.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01499 секунд с 7
ELECTRONIX ©2004-2016