[an error occurred while processing this directive] [an error occurred while processing this directive]
Проблемка с C-компилятором (обновленным) ewavr-cpp-226n (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Беня 23 января 2002 г. 13:13

Без обновления до этой версии все работало нормально. Но вот после обновления выплыл какой-то глюк. У меня есть функция, которая фозвращает тип long и в своем теле она проверяет флаг в регистре SREG. И вот компиляция проходит успешно, а линкер не нее нервничает - говорит "out of bounds". Я эту функцию и перемещал в другое место в том же файле, и выносил в другой файл - ничего не помогает. Но если я делаю функцию не типа long либо убираю проверку SREG - то все идет нормально!
Я уже дошел до маразма - написал отдельную программку ( процессор AT90S8515, модель памяти - small, использую файл lnk1s.xcl при линковке, опция компилятора - "-v1, Max64Kbyte data, 8Kbyte code"):
//-------------------------------------------
#include "io8515.h"
long my_fun( void) { // вот эта подлая функция !!!
if( SREG & 0x80) return 1 ;
return 0 ;
}
long i ;
void main( void) {

i = my_fun() ;
do ; while(1) ;

}
//----------------------------------------

Линкер ругается - out of bounds (0x0-0x0)!!!
Может кто-нибудь у себя этот пример скомпильнет - а вдруг у меня компилятор "криво стал", а на других машинах пойдет!
Может, кто-нибудь что-нибудь подскажет ?

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

Ответы



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

E-mail: info@telesys.ru