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

 
 
 
Reply to this topicStart new topic
> Сегменты, Ошибка в IAR
dio
сообщение Aug 12 2006, 14:37
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Приветствую!

Иар жалуется на сегменты (Atmega8) следующим образом :

Цитата
Error[e16]: Segment TINY_Z (size: 0x67 align: 0) is too long for segment definition. At least 0x33 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:cc-ff"
Reserved ranges relevant to this placement:
DATA:60-ff TINY_I


Когда устанавливаю memory model на Small, то в IARе все проходит без ошибок, но на чипе работает в каком то безобразном порядке wacko.gif

В list файле с сегментами дело обстоит так:

Цитата
6 bytes in segment ABSOLUTE
2 384 bytes in segment CODE
12 bytes in segment INITTAB
969 bytes in segment NEAR_F
220 bytes in segment SWITCH
108 bytes in segment TINY_I
108 bytes in segment TINY_ID
103 bytes in segment TINY_Z

3 681 bytes of CODE memory (+ 12 bytes shared)
211 bytes of DATA memory (+ 6 bytes shared)

Errors: none
Warnings: 1


Помогите если не трудно! Благодарю зарание !
Go to the top of the page
 
+Quote Post
_Bill
сообщение Aug 12 2006, 17:15
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(dio @ Aug 12 2006, 17:37) *
Когда устанавливаю memory model на Small, то в IARе все проходит без ошибок, но на чипе работает в каком то безобразном порядке wacko.gif

В list файле с сегментами дело обстоит так:

Цитата
6 bytes in segment ABSOLUTE
2 384 bytes in segment CODE
12 bytes in segment INITTAB
969 bytes in segment NEAR_F
220 bytes in segment SWITCH
108 bytes in segment TINY_I
108 bytes in segment TINY_ID
103 bytes in segment TINY_Z

3 681 bytes of CODE memory (+ 12 bytes shared)
211 bytes of DATA memory (+ 6 bytes shared)

Errors: none
Warnings: 1


Помогите если не трудно! Благодарю зарание !

Что значит в "безобразном порядке" и что именно Вас смущает?
Go to the top of the page
 
+Quote Post
dio
сообщение Aug 12 2006, 21:41
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 40
Регистрация: 4-06-06
Пользователь №: 17 766



Цитата(_Bill @ Aug 12 2006, 20:15) *
Что значит в "безобразном порядке" и что именно Вас смущает?


Вообще то хочу осуществить несложное меню с ЖКИ и 4х4 клавиатурой. Алгоритм приблизительно такой :

Код
for(;;)
{
Key=KBD_Pressed(); //

switch(Key)
case 0x01 :  Menu1();
                   break;
case 0x02 :  Menu2();
                   break;
case 0x03 :  Menu3();
                   break;
case 0x04 :  Exit();
                   break;
__delay_cycles(16000);
}


Когда memory model установлено на Tiny, то ругается из за перегрузки сегментов, как я уже говорил, когда же оно стоит на Small , то меню исполняется само по себе в безпорядке, не реагируя на клавиатуру. Всё это длится около 3 сек, пока случайный выбор не упадет на Exit().
Объясните, почему бы так ? huh.gif
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Aug 14 2006, 01:47
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Цитата(dio @ Aug 12 2006, 17:37) *
Error[e16]: Segment TINY_Z (size: 0x67 align: 0) is too long for segment definition. At least 0x33 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:cc-ff"
Reserved ranges relevant to this placement:
DATA:60-ff TINY_I

Нужно уменьшить количество данных в этом сегменте. Скорее всего это глобальные не инициализированные переменные и массивы.
Go to the top of the page
 
+Quote Post
big256
сообщение Aug 14 2006, 09:40
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 9-08-05
Из: Киев-Борисполь
Пользователь №: 7 472



Цитата(dio @ Aug 12 2006, 17:37) *
Приветствую!

Иар жалуется на сегменты (Atmega8) следующим образом :

Цитата
Error[e16]: Segment TINY_Z (size: 0x67 align: 0) is too long for segment definition. At least 0x33 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:cc-ff"
Reserved ranges relevant to this placement:
DATA:60-ff TINY_I


Когда устанавливаю memory model на Small, то в IARе все проходит без ошибок, но на чипе работает в каком то безобразном порядке wacko.gif




Выставьте "правильные значения " _..X_SRAM_TBASE и _..X_SRAM_TSIZE тк в афтоконфиге они выставлены для модели смолл - вот поэтому и ругается .
Go to the top of the page
 
+Quote Post

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

 


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


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