Seguramente te has quedado sin espacio en en el primer bloque de la flash estos micro estan divididos en dos partes, fijate si antes de que te saliese el error estabas proximo al 50%, si es asi puedes probar a usar la instrucción #separe, cuando defines la funcion, y luego tambien cuando uses esa funcion en la ayuda habla de ello, sin embargo un ejemplo serie...
#separate
void RTC_GRABAR(void); // Cuando defines la funcion
#separate
void ENVIA_EEPROM() //Cuando escribes lo que hace esa funcion
{
int dato=0,terminado=0,AUX;
direccion1=0;
while (menu==9)
{
lcd_gotoxy(1,1);
Printf(lcd_putc," Transfiriendo ");
}}
La forma de utiliza la funcion es igual