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

 
 
> Включение в HEX файл адрессов EEPROM, Почему IAR неможет ?
west329_
сообщение Jan 15 2009, 08:21
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



Подскажите как быть. Решил вместо своих модулей которые работают с еепром памятью контроллера м88, использовать возможности ИАР и неизобретать велосипед. С одной стороны очень удобно, объявляеш как обычную строку только дописываеш __eeprom, и иар сам подставляет все нужные команды.
Код
unsigned char __eeprom mymac[6] = {0xAA,0xBB,0xCC,0xDD,0xEE,0xFF};


при этом компилятор нестал возражать и при сборке добавил строчку XDATA
Код

6 522 bytes of CODE   memory  (+ 50 range fill )
   802 bytes of  DATA   memory (+ 12 absolute )
     22 bytes of XDATA  memory


когда пришло время проверить проект в железе, иар отказался собирать HEX файл.
Цитата
IAR Universal Linker V4.61C/386
Copyright 1987-2008 IAR Systems. All rights reserved.
Error[e133]: The output format intel-standard cannot handle multiple address spaces. Use
format variants (-y -O) to specify which address space is wanted
Error while running Linker

Total number of errors: 1
Total number of warnings: 0


Ещё с таким несталкивался, как я понял он может сохранять в HEX еепром но нехватает ключа, подскажите где ввести этото ключ ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
SergeyTT
сообщение Jan 15 2009, 08:52
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 3-07-06
Из: Харьков
Пользователь №: 18 533



Цитата(west329_ @ Jan 15 2009, 10:21) *
Подскажите как быть. Решил вместо своих модулей которые работают с еепром памятью контроллера м88, использовать возможности ИАР и неизобретать велосипед. С одной стороны очень удобно, объявляеш как обычную строку только дописываеш __eeprom, и иар сам подставляет все нужные команды.
Код
unsigned char __eeprom mymac[6] = {0xAA,0xBB,0xCC,0xDD,0xEE,0xFF};


при этом компилятор нестал возражать и при сборке добавил строчку XDATA
Код

6 522 bytes of CODE   memory  (+ 50 range fill )
   802 bytes of  DATA   memory (+ 12 absolute )
     22 bytes of XDATA  memory


когда пришло время проверить проект в железе, иар отказался собирать HEX файл.


Ещё с таким несталкивался, как я понял он может сохранять в HEX еепром но нехватает ключа, подскажите где ввести этото ключ ?


Project->Options->Linker->Output, установить Format->Other и выбрать Output format - simple. Потом на этот *.raw файл напустить утилиту postlink. Как все это делать описано в документе postlink.htm , который лежит в папке \doc
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение Jan 15 2009, 08:54
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



Цитата(west329_ @ Jan 15 2009, 11:21) *
Подскажите как быть. Решил вместо своих модулей которые работают с еепром памятью контроллера м88, использовать возможности ИАР и неизобретать велосипед. С одной стороны очень удобно, объявляеш как обычную строку только дописываеш __eeprom, и иар сам подставляет все нужные команды.
Код
unsigned char __eeprom mymac[6] = {0xAA,0xBB,0xCC,0xDD,0xEE,0xFF};


при этом компилятор нестал возражать и при сборке добавил строчку XDATA
Код

6 522 bytes of CODE   memory  (+ 50 range fill )
   802 bytes of  DATA   memory (+ 12 absolute )
     22 bytes of XDATA  memory


когда пришло время проверить проект в железе, иар отказался собирать HEX файл.


Ещё с таким несталкивался, как я понял он может сохранять в HEX еепром но нехватает ключа, подскажите где ввести этото ключ ?

Выбирите выходной формат intel-extended и добавьте в настройках линкера в звкладке extra options
командную строчку для формимрования прошивки ЕЕПРОМ
-Ointel-extended,(XDATA)=$EXE_DIR$\$PROJ_FNAME$_data.hex
Go to the top of the page
 
+Quote Post
west329_
сообщение Jan 15 2009, 09:53
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



немного разобрался

пришол к такому решению

-Ointel-standard,(CODE)=.hex
-Ointel-standard,(XDATA)=.eep

ещё такой вопрос, а кроме postlink можно заставить иар собирать CODE и XDATA в один интел hex или это единственное решение ?




Благодарю всех за помощ. Щитаю тему закрытой.

Есть решение

правим cfg1soim.xcl файл


//-Z(XDATA)EEPROM_I,EEPROM_N=0-_..X_EEPROM_END
-Z(CODE)EEPROM_I,EEPROM_N=(_..X_FLASH_END+1)-(_..X_FLASH_END+_..X_EEPROM_END+1)

результат один интел хекс файл который содержит как CODE так и XDATA.

Сообщение отредактировал west329_ - Jan 15 2009, 09:54
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 19:26
Рейтинг@Mail.ru


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