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
This has already been solved in the duplicate thread: At 3/10/06 1:22:21, Erik Zanen said: "The problem is solved. In the setting there was reserved too little sapce of the SRAM for my program." http://www.keil.com/forum/docs/thread7364.asp