This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

*** ERROR L107: ADDRESS SPACE

Hi all,







I have a program for my STR710 MCU that is running fine. I added the following function:
void Initialisation_INT(void)<
EIC_FIQConfig(DISABLE);

EIC_IER0 &= 0x0000;

/**Disable all unused IRQ interruptsin the EIC_ICR reg****/







/***vullen van SIR reg*****/



EIC->SIR[T0TIMI_IRQChannel] = ((u16)T0TIMI_IRQHandler << 16);<
EIC->SIR[FLASH_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[RCCU_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[RTC_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[WDG_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[XTI_IRQChannel] = ((u16)XTI_IRQHandler << 16);



EIC->SIR[I2C0ITERR_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);
EIC->SIR[I2C1ITERR_IRQChannel]= ((u16)DEFAULT_IRQHandler << 16;
EIC->SIR[UART0_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[UART1_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[UART2_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[UART3_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[SPI0_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[SPI1_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[I2C0_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[I2C1_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[CAN_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[ADC_IRQChannel] = ((u16)ADC12_IRQHandler << 16);<
EIC->SIR[T1TIMI_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[T2TIMI_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[T3TIMI_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[HDLC_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[USBLP_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
IC->SIR[T0TOI_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC->SIR[T0OC1_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);
EIC->SIR[T0OC2_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<




/**Configure and enable IRQ for A/D Converter**/<
//EIC->SIR[ADC_IRQChannel] = ((u16)ADC12_IRQHandler << 16);<
EIC_IRQChannelConfig(ADC_IRQChannel, ENABLE);<
EIC_IRQChannelPriorityConfig(ADC_IRQChannel, 2);<
/****Configure and enable IRQ for Timer 0**/<
EIC->IVR = (u32)T0TIMI_IRQHandler;<
EIC_IRQChannelConfig(T0TIMI_IRQChannel, ENABLE);<
EIC_IRQChannelPriorityConfig(T0TIMI_IRQChannel, 1);<
/******Configure and enable IRQ for XTI*****/<
//EIC configuration



EIC_IRQChannelPriorityConfig(XTI_IRQChannel,1);<
EIC_IRQChannelConfig(XTI_IRQChannel,ENABLE);



}
No problem till now. But when I added code to the function. The new function is:
void Initialisation_INT(void)
{
EIC_FIQConfig(DISABLE);

EIC_IER0 &= 0x0000;

/**Disable all unused IRQ interruptsin the EIC_ICR reg*****/<
/**vullen van SIR reg*******/



EIC->SIR[T0TIMI_IRQChannel] = ((u16)T0TIMI_IRQHandler << 16);<
EIC->SIR[FLASH_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC_IRQChannelPriorityConfig(FLASH_IRQChannel, 0);



EIC->SIR[RCCU_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC_IRQChannelPriorityConfig(RCCU_IRQChannel, 0);



EIC->SIR[RTC_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC_IRQChannelPriorityConfig(RTC_IRQChannel, 0);



EIC->SIR[WDG_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);<
EIC_IRQChannelPriorityConfig(WDG_IRQChannel, 0);<
EIC->SIR[XTI_IRQChannel] = ((u16)XTI_IRQHandler << 16);<

/***removed some code, form limited to 7500 char**/
EIC_IRQChannelPriorityConfig(T0TOI_IRQChannel, 0);



EIC->SIR[T0OC1_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);



EIC_IRQChannelPriorityConfig(T0OC1_IRQChannel, 0);



EIC->SIR[T0OC2_IRQChannel] = ((u16)DEFAULT_IRQHandler << 16);



EIC_IRQChannelPriorityConfig(T0OC2_IRQChannel, 0);



/***Configure and enable IRQ for A/D Converter****/



//EIC->SIR[ADC_IRQChannel] = ((u16)ADC12_IRQHandler << 16);



EIC_IRQChannelConfig(ADC_IRQChannel, ENABLE);



EIC_IRQChannelPriorityConfig(ADC_IRQChannel, 2);



/****Configure and enable IRQ for Timer 0****/



EIC->IVR = (u32)T0TIMI_IRQHandler;



EIC_IRQChannelConfig(T0TIMI_IRQChannel, ENABLE);



EIC_IRQChannelPriorityConfig(T0TIMI_IRQChannel, 1);



/****Configure and enable IRQ for XTI*****/



//EIC configuration



EIC_IRQChannelPriorityConfig(XTI_IRQChannel,1);



EIC_IRQChannelConfig(XTI_IRQChannel,ENABLE);



}







After added this code I receive a error while compiling.<

The error:
compiling GVPFILL.C...



linking...



*** ERROR L107: ADDRESS SPACE OVERFLOW



SPACE: CODE



SEGMENT: ?PR?C?SDIV



LENGTH: 00000060H



*** ERROR L138: CODE GENERATION: PROBLEM WHEN PROCESSING INSTRUCTIONS



CAUSE: Target is out of Range
SEGMENT: ?PR?ghw_setptr?T?GHWINIT
ADDRESS: 02000400CH



Program Size: data=9483 const=9914 code=31044



Target not created







If I limit the number of function calls in this function by 1/3 then I do not receive the errors any more. It makes no difference if I limit the code by deleting the upper, middle or lower 1/3 part of the code in this function. It works in all cases.





Does somebody have an idea what the problem could be?







regards Erik