declare your IRQ function in it.c like this one, don't forget to change it.h : __irq void TIM0_IRQHandler(void) { ''Code'' // VIC re-init TIM_ClearFlag(TIM2, TIM_FLAG_TO); //TimerFlag clear VIC0->VAR = 0 ; //dummy for VIC0 Line VIC1->VAR = 0 ; //dummy for VIC1 Line } in VIC.C you must change the function static void VIC_ISRVectAddConfig(u16 VIC_Source, u16 VIC_Priority, void (*VIC_VectAddress); to: static void VIC_ISRVectAddConfig(u16 VIC_Source, u16 VIC_Priority, void (*VIC_VectAddress)(void)__irq);