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

 
 
> Как исправить ошибку.
Oleg_IT
сообщение Oct 9 2006, 05:45
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Перевожу программы из ATMega32 в ATMega128. Компилятор победил, а линковщик даёт ошибку
Error[e16]: Segment TINY_Z (size: 0x16 align: 0) is too long for segment definition. At least 0x16 more bytes needed. The problem occurred while
processing the segment placement command "-Z(DATA)TINY_I,TINY_Z,TINY_N=_..X_SRAM_TBASE:+_..X_SRAM_TSIZE", where at the moment of
placement the available memory ranges were "DATA:0--1"

Не пойму как исправить.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IgorKossak
сообщение Oct 9 2006, 13:42
Сообщение #2


Шаман
******

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



Цитата(Oleg_IT @ Oct 9 2006, 08:45) *
The problem occurred while processing the segment placement command "-Z(DATA)TINY_I,TINY_Z,TINY_N=_..X_SRAM_TBASE:+_..X_SRAM_TSIZE", where at the moment of
placement the available memory ranges were "DATA:0--1"

Всё дело в том, что память тини в мега128 физически отсутствует, т. к. перекрывается пространством регистров внутренней периферии.
Расположите сегменты TINY_I,TINY_Z,TINY_N не в отдельном диапазоне _..X_SRAM_TBASE:+_..X_SRAM_TSIZE, а вместе с другими сегментами.
Правку придётся делать в xcl файле, а не в настройках среды.
В программе не располагайте переменные в области __tiny.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:15
Рейтинг@Mail.ru


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