Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: новый линкер иара - новый синтаксис скрипта
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
vova7890
В общем в пятом иаре столкнулся с новым синтаксисом скрипта линкера. Долго думал как портировать старый скрипт на новый - ничего толкового не получилось. В общем вот старый скрипт от 4-го иара
Код
-V(CODE)CODE_A
-V(CODE)DATA_A

-Z(CODE_A)ELFBEGIN,DATA_ID,START,CODE,DATA_C,HEAP,LIB,LIB_C,DIFUNCT,ICODE,INITTAB,DATA
_Z,DATA_N,CONFIG_C=0-0xFFFFFFFF
-Z(DATA_A)DATA_I=0-0xFFFFFFFF


очень надеюсь на вашу помощь smile.gif
vova7890
зы. Блин не заметил тему про иар, перенесите если что smile.gif
Xenia
Цитата(vova7890 @ Nov 20 2010, 02:07) *
В общем в пятом иаре столкнулся с новым синтаксисом скрипта линкера.

Уже вышел шестой иар, так может сразу на него портируем?
vova7890
А че в шестом иаре синтаксис сильно отличается? Мне пятого хватит. Не зачтите меня за нуба, я как видите в первые у вас на форуме, просто ничего не получалось и при поиске инфы наткнулся на этот форум, решил зарегатся smile.gif
skripach
Цитата
я как видите в первые у вас на форуме

Ну так потрудились бы поискать более подходящую ветку для создания темы.
http://electronix.ru/forum/index.php?showforum=137
по теме, смотрите примеры в том же иаре, там жеж не сложно вроде.
vova7890
ну, я как бы спешил, просто нашел тему про арм, запостил и ушёл. Я ж сказал чтоб перенесли smile.gif Я смотрел ироские все скрипты пересмотрел все что мог перепробывал не получается. У меня загрузчик ельфов специфический, таблицу релоков ищет в динамическом сегменте. Если легко так может быть подскажеш? smile.gif
Xenia
Цитата(vova7890 @ Nov 20 2010, 07:28) *
А че в шестом иаре синтаксис сильно отличается? Мне пятого хватит.

На мой взгляд, никак не отличается, но я АРМы не программирую, поэтому подробностей не знаю. Обычно там всякие примочки дополнительно добавляются, а старый синтаксис обычно не трогают. А 5-х ИАРов уже вышло 16 (!) штук версий, тогда как 6-я версия только одна - свеженькая, 12 дней назад вышла.
А вы, как я поняла, все равно с 4-го ИАРа мигрируете и на 5-ом еще не работали. Вот и посоветовала.
vova7890
Цитата(Xenia @ Nov 21 2010, 00:23) *
На мой взгляд, никак не отличается, но я АРМы не программирую, поэтому подробностей не знаю. Обычно там всякие примочки дополнительно добавляются, а старый синтаксис обычно не трогают. А 5-х ИАРов уже вышло 16 (!) штук версий, тогда как 6-я версия только одна - свеженькая, 12 дней назад вышла.
А вы, как я поняла, все равно с 4-го ИАРа мигрируете и на 5-ом еще не работали. Вот и посоветовала.


да я с четвертого мигррирую ис за парочки не приятных багов которые уже достали. В принцыпе мне без разницы на какую версию лижбы выше 4-той. Видимо никто не хочет помочь sad.gif
Xenia
Цитата(vova7890 @ Nov 21 2010, 09:26) *
Видимо никто не хочет помочь sad.gif

На вид скрипт линкера не менялся. А может быть всё дело в том, что это вы по ошибке строку разорвали на две части. Слитно это надо писать:
Код
-Z(CODE_A)ELFBEGIN,DATA_ID,START,CODE,DATA_C,HEAP,LIB,LIB_C,DIFUNCT,ICODE,INITTAB, DATA_Z,DATA_N,CONFIG_C=0-0xFFFFFFFF

Вот линкер и ругается. Или это форум строку разорвал?

Или вообще выкиньте из проекта эти установки линкера - на дефолтных сначала скомпилите. Скорее всего какой-то из сегментов изменил имя, в том и проблема. Поглядите, как выглядит стандарный хидер для линкера. Как там эти сегметы называются. Или скомпилируйте что-нибудь с установками линкера по умолчанию, а потом в листинге поглядите, как он сегменты обзывает.
zltigo
QUOTE (Xenia @ Nov 21 2010, 10:10) *
На вид скрипт линкера не менялся.

smile.gif ничего общего после перехода ARM ветки на binutils скрипты не имеют. Однако, общие принципы миграции толково описаны в Migration Guide из комплекта поставки.
vova7890
Цитата(Xenia @ Nov 21 2010, 10:10) *
На вид скрипт линкера не менялся. А может быть всё дело в том, что это вы по ошибке строку разорвали на две части. Слитно это надо писать:
Код
-Z(CODE_A)ELFBEGIN,DATA_ID,START,CODE,DATA_C,HEAP,LIB,LIB_C,DIFUNCT,ICODE,INITTAB, DATA_Z,DATA_N,CONFIG_C=0-0xFFFFFFFF

Вот линкер и ругается. Или это форум строку разорвал?

Или вообще выкиньте из проекта эти установки линкера - на дефолтных сначала скомпилите. Скорее всего какой-то из сегментов изменил имя, в том и проблема. Поглядите, как выглядит стандарный хидер для линкера. Как там эти сегметы называются. Или скомпилируйте что-нибудь с установками линкера по умолчанию, а потом в листинге поглядите, как он сегменты обзывает.



неа там синтаксис вообще другой полностью.


Цитата(zltigo @ Nov 21 2010, 11:12) *
smile.gif ничего общего после перехода ARM ветки на binutils скрипты не имеют. Однако, общие принципы миграции толково описаны в Migration Guide из комплекта поставки.


вы о чем? При чем тут бинутилсы? Я про иар говорю же :-D Общие принципы читал делал по примерам но оно не пашет! Не находит лоадер в динамическом сегменте таблицу релоков!!!
vova7890
Вот че я напортировал, работает не правильно...

CODE
define symbol __ICFEDIT_intvec_start__ = 0x0;
/*-Memory Regions-*/

define symbol __ICFEDIT_region_RAM_start__ = 0;
define symbol __ICFEDIT_region_RAM_end__ = 0xFFFFFF;

/**** End of ICF editor section. ###ICF###*/


define memory mem with size = 4G;


define region CODE_AREA = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region DATA_AREA = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];

define block CODE { section ELFBEGIN, section START,
section .text, section .rodata, section HEAP,
section .difunct, section .textrw, section .bss,
section .noinit, section CONFIG_C, section CODE, section .iar.init_table, section .dynamic, section .data_init};

define block DATA with alignment = 0, size = 0
{
section .data
};

initialize by copy { readwrite };
do not initialize { section .noinit };

place in CODE_AREA { block CODE };
place in DATA_AREA { block DATA };
ih_
Цитата(vova7890 @ Nov 20 2010, 02:07) *
очень надеюсь на вашу помощь smile.gif
Приведите пример управляющего файла от 4-й версии. А также список ошибок линкера?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.