Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как сгенерить hex для ARM IAR-ом v4.20A?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
adc
Собственно сабж. Чего только в настройках проекта не делал.. Получается только *.а79 unsure.gif Поиск по форуму к сожалению ничего не дал... Hex нужен для прошивки lpc2103 через mt-link сегером v4.0.
Заранее спасибо за помощь!
msalov
С EWARM не имел дело, но в EW430 был такой глюк, что если указать линкеру создавать hex-файл - на выходе имели файл с расширением a43, но содержимым в виде hex.
zltigo
Цитата(adc @ Jan 12 2009, 11:23) *
Чего только в настройках проекта не делал.. Получается только *.а79

Ну-ну так укажите ЛЮБОЕ желаемое расширение вместо a79 использующегося для любого формата по умолчанию.
rvk
Заходите в Project\Option\Linker, ставите галочку в окне Output File, и вписываете расширение hex вместо a79.
Затем там же идете в окно Format, нажимаете на точку Other и выбираете формат intel standard или intel extended
Все, теперь у Вас скомпилируется hex файл по Intel стандарту.
adc
Цитата(rvk @ Jan 12 2009, 11:36) *
Заходите в Project\Option\Linker, ставите галочку в окне Output File, и вписываете расширение hex вместо a79.
Затем там же идете в окно Format, нажимаете на точку Other и выбираете формат intel standard или intel extended
Все, теперь у Вас скомпилируется hex файл по Intel стандарту.

Эти операции проделывал... Hex то получается... только какой то корявый... Не воспринимается он сегером...
Добавлю проект.. может кто посмотрит.
(Программирование на С только начинаю.. и с IAR-ом.. только знакомлюсь...)


Цитата(zltigo @ Jan 12 2009, 11:30) *
Ну-ну так укажите ЛЮБОЕ желаемое расширение вместо a79 использующегося для любого формата по умолчанию.

При установки птички "override default" и изменении расширения файла на hex выдает сообщение при компиляции:
Код
Fatal Error[e62]: File name "D:\Programm\arm\LPC_H2103_BLINKING_LED(my)\Debug\Exe\
LPC_H2103_BLINKING_LED(my).hex" used for multiple files

Вы где то писали, непомню в какой ветке, что возможно надо выбрать другой файл в конфиге линкера?! у меня неактивная строчка $TOOLKIT_DIR$\config\lnkarm.xcl.
Имеет ли это отношение к вопросу?
GetSmart
adc, в приложенном архиве в папке Release\Exe\ лежит нормальный HEX, только с расширением .a79. Чтобы было нормальное расширение, на первой вкладке линкера поставьте галку в Override default и укажите в имени файла расширение HEX.

А в Debug\Exe\ лежит какой-то покоцанный HEX. Непонятно почему.
zltigo
Цитата(adc @ Jan 12 2009, 12:10) *
При установки птички "override default" и изменении расширения файла на hex выдает сообщение при компиляции:
Код
Fatal Error[e62]: File name "D:\Programm\arm\LPC_H2103_BLINKING_LED(my)\Debug\Exe\
LPC_H2103_BLINKING_LED(my).hex" used for multiple files

Значит где-то еще галочки болтаются после экспериментов. А Intel формат развивался и Вам надо 32bit-Extended выбрать, как наиболее "совершенный" и понимаемый в том числе и segger.
Цитата
Вы где то писали, непомню в какой ветке, что возможно надо выбрать другой файл в конфиге линкера?!

Я не знаю, что там по умолчанию - всегда пользуюсь индивидуальным а в нем соответственно согласно документации на линкер форматов можно заказать зараз два вагона в том числе и HEX
Код
// Additional HEX File generation...
-Ointel-extended,(CODE)=.hex
GetSmart
Цитата(adc @ Jan 12 2009, 15:10) *
При установки птички "override default" и изменении расширения файла на hex выдает сообщение при компиляции:
Код
Fatal Error[e62]: File name "D:\Programm\arm\LPC_H2103_BLINKING_LED(my)\Debug\Exe\
LPC_H2103_BLINKING_LED(my).hex" used for multiple files

Вы где то писали, непомню в какой ветке, что возможно надо выбрать другой файл в конфиге линкера?! у меня неактивная строчка $TOOLKIT_DIR$\config\lnkarm.xcl.
Имеет ли это отношение к вопросу?

Ошибка потому что на второй вкладке линкера стоит такое же имя файла. Достаточно на первой вкладке поставить расширение HEX, а создание второго файла (на второй вкладке) выключить.

Я попытался скомпилить этот проект и тоже HEX получился пустым. Даже в отладчике пустой код. Перепробовал все галки в опциях - не помогло. Потом удалил конфигурацию Debug и создал её заново. Сразу всё скомпилилось и HEX стал нормальным.
Глюк какой-то. При желании можно текст в файлах проекта почитать, там должо быть что-то лишнее или наоборот чего-то нехватать. У меня раз был такой глюк в CrossWorks 1.6.
adc
Цитата(GetSmart @ Jan 12 2009, 14:09) *
...Потом удалил конфигурацию Debug и создал её заново. Сразу всё скомпилилось и HEX стал нормальным.
Глюк какой-то....

Ага.. тоже получил HEX, только при открытии его в Segger J-Flash обнаружилось что адрес записываемый во флеш начинается с 0х8000?!

2 zltigo:
Цитата
Вы где то писали, непомню в какой ветке, что возможно надо выбрать другой файл в конфиге линкера?! у меня неактивная строчка $TOOLKIT_DIR$\config\lnkarm.xcl.

Этот файл придется править?.. или ручками в настройке можно выставить...?!
GetSmart
Цитата(adc @ Jan 13 2009, 14:54) *
Ага.. тоже получил HEX, только при открытии его в Segger J-Flash обнаружилось что адрес записываемый во флеш начинается с 0х8000?!

Всё правильно. Стандартный XCL содержит именно этот адрес начала флэш. Фиг знает почему. Нужно взять любой (более подходящий) стандартный и подправить в нём адреса. Потом записать в папку проекта и подключить в настройках линкера для Release и Debug. Хотя я обычно для каждой конфигурации делаю свой XCL.
adc
Цитата(GetSmart @ Jan 13 2009, 12:27) *
Всё правильно. Стандартный XCL содержит именно этот адрес начала флэш. Фиг знает почему. Нужно взять любой (более подходящий) стандартный и подправить в нём адреса. Потом записать в папку проекта и подключить в настройках линкера для Release и Debug. Хотя я обычно для каждой конфигурации делаю свой XCL.

хм..?! мдя.. что же.. разработчики IAR-а поленились сразу сделать нормальные адреса.. Это по меньшей мере странно. smile3046.gif
Попытался сам из IAR-а поправить.. при установке значений ром 0000-7FFF пишет
Цитата
Range must not overlap other ranges in other regions

Если есть возможность, поделитесь примером конфигурации линкера(для lpc2103).
GetSmart
Цитата(adc @ Jan 13 2009, 15:50) *
Если есть возможность, поделитесь примером конфигурации линкера(для lpc2103).

100% рабочий, но нет в мире совершенства. zltigo в нём как обычно найдёт недостатки smile.gif Размеры там сами подправите под себя.
CODE
-carm

-DROMSTART=00000000
-DROMEND=00007fff

-Z(CODE)INTVEC=00000000-0000003f
-Z(CODE)ICODE,DIFUNCT=ROMSTART-ROMEND
-Z(CODE)SWITAB=ROMSTART-ROMEND
-Z(CONST)INITTAB,DATA_ID,DATA_C=ROMSTART-ROMEND
-Z(CODE)CODE=ROMSTART-ROMEND
-Z(CONST)CODE_ID=ROMSTART-ROMEND
-Z(CONST)CHECKSUM=ROMSTART-ROMEND

-DRAMSTART=40000000
-DRAMEND=40001fff

-Z(DATA)DATA_I,DATA_Z,DATA_N=RAMSTART-RAMEND
-Z(DATA)CODE_I=RAMSTART-RAMEND

-QCODE_I=CODE_ID

-D_CSTACK_SIZE=400
-D_SVC_STACK_SIZE=10
-D_IRQ_STACK_SIZE=200
-D_HEAP_SIZE=800
-D_FIQ_STACK_SIZE=0

-Z(DATA)FIQ_STACK+_FIQ_STACK_SIZE=RAMSTART-RAMEND
-Z(DATA)IRQ_STACK+_IRQ_STACK_SIZE=RAMSTART-RAMEND
-Z(DATA)CSTACK+_CSTACK_SIZE=RAMSTART-RAMEND
-Z(DATA)SVC_STACK+_SVC_STACK_SIZE=RAMSTART-RAMEND

ЗЫ. Файлы прикреплять к сообщению всё ещё не сделали sad.gif

ЗЗЫ. codebox удалил пустые строки !?!
zltigo
Цитата(GetSmart @ Jan 13 2009, 14:17) *
100% рабочий, но нет в мире совершенства. zltigo в нём как обычно найдёт недостатки smile.gif

Какая проницательность smile.gif!!! То, что в глаза бросилось -
Стеки (если Heap не используется - а если не используется, то зачем задавать HEAP_SIZE...) разумнее цеплять к концу RAM так:
Код
-Z(DATA)XXX_STACK+_XXX_STACK_SIZE#RAMSTART-RAMEND

дабы не оставлять ненужных пустот при этом подумав о их порядке, дабы стек рабочего режима был побольше..... И не забыть про 64 байта в конце для IAP (хотя можно его с одним из ненужных в данный момент стеков объединить), если его используете.
adc
Простите за офтоповое сообщение, но почему-то мои сообщения дивным образом пропадают...?! Может быть содержание не устраивает администраторов? Ну вы бы хоть как-то предупредили что ли.. unsure.gif
rezident
Цитата(adc @ Jan 15 2009, 00:56) *
Может быть содержание не устраивает администраторов? Ну вы бы хоть как-то предупредили что ли.. unsure.gif
Поскольку служба ЛС пока еще не работает, поясняю как модератор раздела. Ваше сообщение скрыл один из моих сомодераторов. Наивероятная причина - публичное обсуждение программы для взлома проприетарного софта. В следующий раз прежде чем писать, думайте немного, где можно, а где не следует обсуждать такие темы.
zltigo
Цитата(adc @ Jan 14 2009, 22:56) *
Простите за офтоповое сообщение, но почему-то мои сообщения дивным образом пропадают...?! Может быть содержание не устраивает администраторов? Ну вы бы хоть как-то предупредили что ли.. unsure.gif

Moderator:
Личные сообщения на форуме на данный момент не работают sad.gif. По поводу упорных поисков crack висит явное предупреждение. Тем не менее, информации на форуме более, чем достаточно и совершенно незачем каждый раз поднимать очередную волну скользких вопросов.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.