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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Как сгенерить hex для ARM IAR-ом v4.20A?
adc
сообщение Jan 12 2009, 08:23
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Собственно сабж. Чего только в настройках проекта не делал.. Получается только *.а79 unsure.gif Поиск по форуму к сожалению ничего не дал... Hex нужен для прошивки lpc2103 через mt-link сегером v4.0.
Заранее спасибо за помощь!


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
msalov
сообщение Jan 12 2009, 08:29
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



С EWARM не имел дело, но в EW430 был такой глюк, что если указать линкеру создавать hex-файл - на выходе имели файл с расширением a43, но содержимым в виде hex.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 12 2009, 08:30
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(adc @ Jan 12 2009, 11:23) *
Чего только в настройках проекта не делал.. Получается только *.а79

Ну-ну так укажите ЛЮБОЕ желаемое расширение вместо a79 использующегося для любого формата по умолчанию.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
rvk
сообщение Jan 12 2009, 08:36
Сообщение #4


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

Группа: Свой
Сообщений: 165
Регистрация: 13-05-06
Из: Камышин
Пользователь №: 17 067



Заходите в Project\Option\Linker, ставите галочку в окне Output File, и вписываете расширение hex вместо a79.
Затем там же идете в окно Format, нажимаете на точку Other и выбираете формат intel standard или intel extended
Все, теперь у Вас скомпилируется hex файл по Intel стандарту.

Сообщение отредактировал rvk - Jan 12 2009, 08:37
Go to the top of the page
 
+Quote Post
adc
сообщение Jan 12 2009, 09:10
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(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.
Имеет ли это отношение к вопросу?
Прикрепленные файлы
Прикрепленный файл  LPC_H2103_BLINKING_LED_my_.zip ( 44.98 килобайт ) Кол-во скачиваний: 17
 


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jan 12 2009, 09:43
Сообщение #6


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



adc, в приложенном архиве в папке Release\Exe\ лежит нормальный HEX, только с расширением .a79. Чтобы было нормальное расширение, на первой вкладке линкера поставьте галку в Override default и укажите в имени файла расширение HEX.

А в Debug\Exe\ лежит какой-то покоцанный HEX. Непонятно почему.

Сообщение отредактировал GetSmart - Jan 12 2009, 09:48


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 12 2009, 09:51
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jan 12 2009, 11:09
Сообщение #8


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(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.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
adc
сообщение Jan 13 2009, 08:54
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(GetSmart @ Jan 12 2009, 14:09) *
...Потом удалил конфигурацию Debug и создал её заново. Сразу всё скомпилилось и HEX стал нормальным.
Глюк какой-то....

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

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

Этот файл придется править?.. или ручками в настройке можно выставить...?!


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jan 13 2009, 09:27
Сообщение #10


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



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

Всё правильно. Стандартный XCL содержит именно этот адрес начала флэш. Фиг знает почему. Нужно взять любой (более подходящий) стандартный и подправить в нём адреса. Потом записать в папку проекта и подключить в настройках линкера для Release и Debug. Хотя я обычно для каждой конфигурации делаю свой XCL.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
adc
сообщение Jan 13 2009, 09:50
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(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).


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jan 13 2009, 11:17
Сообщение #12


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(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 удалил пустые строки !?!


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 13 2009, 11:39
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(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 (хотя можно его с одним из ненужных в данный момент стеков объединить), если его используете.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
adc
сообщение Jan 14 2009, 19:56
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Простите за офтоповое сообщение, но почему-то мои сообщения дивным образом пропадают...?! Может быть содержание не устраивает администраторов? Ну вы бы хоть как-то предупредили что ли.. unsure.gif


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 14 2009, 20:11
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(adc @ Jan 15 2009, 00:56) *
Может быть содержание не устраивает администраторов? Ну вы бы хоть как-то предупредили что ли.. unsure.gif
Поскольку служба ЛС пока еще не работает, поясняю как модератор раздела. Ваше сообщение скрыл один из моих сомодераторов. Наивероятная причина - публичное обсуждение программы для взлома проприетарного софта. В следующий раз прежде чем писать, думайте немного, где можно, а где не следует обсуждать такие темы.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th June 2025 - 18:39
Рейтинг@Mail.ru


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