Понял. Не надо ее extern объявлять. Я обычно так делаю
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Bill 12 марта 2005 г. 23:31
В ответ на: Ответ: Судя по всему дело не в объединении, а в типе __io отправлено ДМ 12 марта 2005 г. 22:09


//
// Global register variables
//
__no_init __regvar volatile char IntFlags @ 15; // Various interrupt flags
__no_init __regvar unsigned ScaleFct @ 12; // Frequency scale factor
//
// Global EEPROM variables
//
__no_init __eeprom unsigned long eFreq0 @8; // FREG0 saved in EEPROM
__no_init __eeprom unsigned long eFreq1 @12; // FREG1 saved in EEPROM
__no_init __eeprom unsigned ePhase0 @16; // FREG0 saved in EEPROM
__no_init __eeprom unsigned ePhase1 @16; // FREG1 saved in EEPROM

//
// Global SRAM variables
//
extern
unsigned Freq0, // Frequency values
Freq1; //
extern
unsigned Phase0, // Phase values
Phase1; //


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

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

Ответы



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

E-mail: info@telesys.ru