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

 
 
> error[e133], The output format intel-extended cannot handle multiple address spaces
Freeze Anti
сообщение May 5 2008, 09:59
Сообщение #1


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

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



Вот теперь такой сабж... самое интересное, что в справке описание ишбок заканчивается 125-ой кажется... в общем в справке этой ошибки нет...

я так понял, что линкеру не нравится, что я некоторые константы заношу в EEPROM... нашел полно предложений, как устранить эту ошибку для IAR 4.x... я использую 2.31... там описанных вкладок просто нет... (чего-то там для C-SPY)... может кто сталкивался и знает, как решать...

самое смешное... прошелся по всему проекту... ни в одном файле не упоминается __eeprom...

Сообщение отредактировал Freeze Anti - May 5 2008, 10:23


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
IgorKossak
сообщение May 5 2008, 11:03
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Freeze Anti @ May 5 2008, 12:59) *
Вот теперь такой сабж...

Почитайте здесь.
Посмотрите отчёт линкера (map файл) на предмет того, какие сегменты и какие адресные пространства используются.
По умолчанию в IAR для констант (определённых через const, а не через #define) используется внешняя eeprom, возможно в этом проблема.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 5 2008, 11:05
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Freeze Anti @ May 5 2008, 12:59) *
самое смешное... прошелся по всему проекту... ни в одном файле не упоминается __eeprom...
может где-то явно указано размещение в один из сегментов eeprom. Нету лишних вкладок - допишите опции -О в файл .xcl:
Код
-Ointel-extended,(CODE)=.hex
-Ointel-extended,(XDATA)=.eep
а на вкладке выбора формата укажите debug information for c-spy или что-то подобное.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Freeze Anti
сообщение May 5 2008, 11:35
Сообщение #4


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

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



У меня IAR версии 2.31, там нету debug information for C-SPY.
в map файле фактически только дубликат этой ошибки...
опции -O дописываю... без толку...

А не может он как-то путать SRAM и flash... как указывается явно размещение в SRAM?.. и еще... у меня используются модификаторы __flash... не надо и их объявлять __no_init?.. все __tiny объявил __no_init - не помогло...

Сообщение отредактировал Freeze Anti - May 5 2008, 11:37


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 5 2008, 13:20
Сообщение #5


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Если до map файла дело не доходит, то информацию о сегментах можно посмотреть в lst файлах.
Информация для линкера задаёте xcl файлом или в настройках проекта. Если первое - выложите этот файл, если второе - выложите map файл (если в нём есть заголовок, в котором приведены все настройки, а не только код ошибки).
Go to the top of the page
 
+Quote Post
Freeze Anti
сообщение May 6 2008, 07:49
Сообщение #6


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

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



Код
-! Определение сегментов для ATmega103 -!

-! Определяем семейство процессоров -!

-ca90
-! -Fintel-extended -!
-Ointel-extended,(CODE)=.hex
-! -Y0 -!
-xms

-l _release\code.map
-Ic:\creator\avriarew22\A90\LIB\

-! Хотя стек возвратов и расположен в ISRAM мы используем эту -!
-! директиву для разрешения доступа ESRAM с ожиданием -!
-! -e?RSTACK_IN_EXTERNAL_RAM=?C_STARTUP -!

-! Адресное пространство памяти программ -!
-Z(CODE)INTVEC=0-FF
-Z(CODE)RCODE,CDATA0,CDATA1,CCSTR,SWITCH,FLASH,CODE,INITTAB=100-1FFFF
-Z(CODE)TINY_ID,NEAR_ID=0-1FFF

-! Адресное пространство данных (internal EEPROM) -!
-! Регистры общего назначения: 0-1F -!
-! Пространство адресов портов ввода/вывода: 20-5F -!
-Z(DATA)NEAR_I=7E-A4
-Z(DATA)NEAR_Z=400-6E0
-Z(DATA)NEAR_F=6E0-1FFF
-Z(DATA)TINY_I=0-27
-Z(DATA)TINY_Z=28-7A
-Z(DATA)TINY_N=7A-7D
-! -Z(DATA)IDATA0,UDATA0=60-FF -!
-Z(DATA)RSTACK+100=100-1FF
-Z(DATA)CSTACK+200=200-3FF
-! -Z(DATA)UDATA1=400-0FFF -!
-! -Z(DATA)IDATA1,ECSTR=1000-7FFF -!

-! Адресное пространство данных (external EEPROM) -!
-Z(DATA)NO_INIT=8000-8FFF

-! Адресное пространство данных (external PROM) -!
-Z(DATA)CSTR,CONST=9000-FFFF

-e_small_write=_formatted_write
-e_small_write_P=_formatted_write_P

-e_small_read=_formatted_read
-e_small_read_P=_formatted_read_P



-! Suppress one warning which is not relevant for this processor -!
-w29

-!  Now load the 'C' library -!

-! -C cl3s -!

вот файл линкера...


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 6 2008, 08:04
Сообщение #7


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Очевидно, что в сегментах внешней памяти NO_INIT, CSTR, CONST компилятор и линкер пытаются разместить информацию.
Если это так, то эта информация не может быть в одном hex файле с программой, отсюда и ошибка.
Добавьте в xcl файл строки
Код
-Ointel-extended,(CODE)=.hex
-Ointel-extended,(DATA)=.eep
, а в настройках проекта (линкера) в качестве формата выходного файла выберите debug или ubrof.
Если же у Вас нет внешней памяти или Вам не нужно, чтобы в указанные сегменты что-либо заносилось, то Вам надо выяснить в каком программном модуле это делается (см. файлы lst) и попытаться такие моменты исключить настройками либо в программе.
Дальше посмотрим.
Кстати слово __eeprom относится к внутренней eeprom, а у Вас скорее всего имеется в виду внешняя (сегменты NO_INIT, CSTR, CONST).
Go to the top of the page
 
+Quote Post

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

 


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


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