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

 
 
> не получается объявить сегменты
Василий Зыков
сообщение Mar 20 2007, 15:10
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 11-11-06
Из: Екатеринбург
Пользователь №: 22 191



Пишу в файл линковки:
-Z(CODE)INTVEC,NEAR_F,INITTAB,TINY_ID,NEAR_ID,SWITCH,CODE=0000-1FFE /* Correct */
-Z(CODE)CHECKSUM=1FFF-1FFF /* In this example a two byte checksum */

-Z(DATA)TINY_I,TINY_Z=60-FF
-Z(DATA)NEAR_I,NEAR_Z=60-25F
-Z(DATA)CSTACK=60-25F
-Z(DATA)RSTACK#25F

Линкер выдает следующие ошибки:
Error[e16]: Segment TINY_I (size: 0xb align: 0) is too long for segment definition. At least 0xb more bytes needed.

и т.д... для каждого сегмента, расположенного в RAM. Rак будто бы линкер не понимает, что TINY_I лежит в ОЗУ, а не в ПЗУ...

В чем я могу ошибаться, или что я не делаю, что нужно делать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Freeze Anti
сообщение May 5 2008, 09:03
Сообщение #2


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

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



Разобрался... как раз изменив файл линкера... там оказалось нужно обязательно TINY_I, TINY_Z и TINY_N прописывать по отдельности... на все в сумме вроде места хватает, а почему-то непосредственно для TINY_I - нет...


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 5 2008, 09:30
Сообщение #3


Гуру
******

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



Цитата(Freeze Anti @ May 5 2008, 12:03) *
на все в сумме вроде места хватает, а почему-то непосредственно для TINY_I - нет...
Какие-то чудеса вы рассказываете. Не верю. Попробуйте в старом файле указать размер ОЗУ больше, чем его на самом деле, слинкуйте и посмотрите, сколько места заняли эти сегменты, в каких адресах, и что в них попало. Ищите разницу с вашим теперешним вариантом. Наверняка найдете что-нибудь интересное. На всякий случай: сегменты TINY_... в рабочей программе должны располагаться до адреса 0x100 - при косвенном доступе к ним старший байт адресной пары обнулен.


--------------------
На любой вопрос даю любой ответ
"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



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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 01:48
Рейтинг@Mail.ru


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