[an error occurred while processing this directive]
В IAR 1.40 можно было сделать так :
(«Телесистемы»: «Конференция «Микроконтроллеры и их применение»»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Бендер++ 15 апреля 2003 г. 16:02
В ответ на: А как в IAR сделать общий сегмент? отправлено Аскольд 15 апреля 2003 г. 12:10

В каком-нибудь ассемблерном файле объявить сегмент (можно пустой) типа COMMON

COMMON NAME_COMMON_SEGMENT:DATA(0)

Важно, чтобы при линковке данный файл линковался первым. В оболочке IDE для этого достаточно объявить его с первым по алфавиту именем (по сравнению с другими файлами проекта).

В других Си файлах можно было запросто объявлять данные в этом COMMON-сегменте, например, так:

#pragma memory = dataseg(NAME_COMMON_SEGMENT)
int a;
char b;
....
#pragma memory = default

При линковке выдавалось предупреждение о несоответствии типов сегментов, но тип присваивался тот, который линковщик видел в первом линкуемом файле, имеющем сегмент с таким именем. А так как мы уже позаботились о том, чтобы первым линковался файл, имеющий нужный тип сегмента, то все проходило на ура.
Думаю, что тот же фокус пройдет и в новом компиляторе. Если нетрудно будет сообщите о результате.

Составить ответ ||| Конференция ||| Архив

Ответы



Перейти к списку ответов ||| Конференция ||| Архив ||| Главная страница ||| Содержание

E-mail: info@telesys.ru