Página 1 de 1

SDCC 2.1 para 3.5 ERRO

MensagemEnviado: 11 Jun 2015 12:10
por RaioLaser
Boa tarde pessoal!

Eu compilava no SDCC 2.1 para o at89s8253 e não tinha problemas, porém começaram a surgir bugs relacionados a utilização de vetores.
Para resolver isso eu decidi atulizar meu SDCC para o atual.
Mas o SDCC modificou alguns comandos comparados ao SDCC antigo então eu fiz todas a modificações necessárias, "__interrupt" por exemplo que antes era só "interrupt".

Porém eu estou com problemas em uma função que utilizava para escrita e leitura na EEPROM interna.

A função é a seguinte:

cpp code
void ee_put(__xdata char  *loc, char c)
{
EECON|=0x38;
*loc=c;
while((EECON&2)==0);
EECON&=~0x18;
msdelay0(15);
msdelay0(50);
}

char ee_get(__xdata char *loc)
{
char c;
EECON|=0x08;
c=*loc;
EECON&=~0x18;
msdelay0(15);
msdelay0(50);
return c;
}


O erro que não me deixa compilar é:
?ASlink-Error-Could not get 133 consecutive bytes in internal RAM for area DSEG.


E também existe um warning referente a ponteiros toda vez que uma dessas funções é chamada:
4canaisv2.c(1484) : warning 154: converting integral to pointer without a cast from type 'const-int literal' to type 'char xdata* fixed'


Nota-se que eu conseguia gravar tranquilamente no SDCC anterior, não entendo porque esse erro de RAM insuficiente está aparecendo.

Agluém pode me salvar em relação a isso?

Muito obrigado! Desde Já!