Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: User segments + __ramfunc
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
KAlex
Как в определенном мною сегменте разместить __ramfunc.
Сегмент определен
-DROMMYSTART=00000000
-DROMMYEND=00002FFF
Там же "Startup code and exception routines"

Пробую так:
-Z(DATA)CODE_I=RAMSTART-RAMEND
-Z(CONST)CODE_ID=ROMMYSTART-ROMMYEND
-QCODE_I=CODE_ID

Компиллер говорит:
Error[Ta004]: Function "........" cannot have __ramfunc attribute and be located

Что делать?(с)
KAlex
Сегмент я определил.
Код и данные ложаться туда нормально.
Не могу положить __ramfunc
Компиллер говорит:
Error[Ta004]: Function "........" cannot have __ramfunc attribute and be located
Шаманство с xcl не помогает.
Вопрос: как?
KRS
Цитата(KAlex @ Oct 15 2008, 11:12) *
Как в определенном мною сегменте разместить __ramfunc.


Если вы указываете __ramfunc компилер сам размещает ее в нужном сегменте и при инициализации копирует этот сегмент.
Если вы хотите в своем сегменте, вам надо только указать линкеру -Q и ручками скопировать сегмент в рам и __ramfunc просто ставить не надо.
Alechek
Мало данных. Что за функция?

У меня как-то были проблемы на стадии линковки. ASM функция никак не хотела быть RAM, пока не сделал пустую __ramfunc в *.с файле
KRS
Цитата(Alechek @ Oct 16 2008, 10:30) *
У меня как-то были проблемы на стадии линковки. ASM функция никак не хотела быть RAM, пока не сделал пустую __ramfunc в *.с файле

Конечно не работало, потому что у вас не было специалных данных в сегменте INITTAB, который используется стандартным стартапом.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.