STR912 wierd interrupt handling
Dear Colleagues,
I have a common interrupt handling issue with a Keil MCBSTR9 eval kit.Everything works fine, but it's just not handling an ISR properly. I'm using vendor given ISR routines, for examplevoid TIM3_IRQHandler(void){ /*write your handler here*/ /* ... */ //blablabla my ISR...// TIM_ClearFlag(TIM3, TIM_FLAG_OC2); /*write any value to VIC0 VAR*/ VIC0->VAR = 0xFF;}
This works fine, but won't return from the ISR after executing it. So at the end I stated to the compiler the __irq directive infont of the ISR function, but then the compiler says that the definition of __irqvoid TIM3_IRQHandler(void)in 91x_it.h isn't correct. So I changed it in 91x_it.h and now it works well.But at the end of the line I don't think that it's common or safe to change the vendor given libraries, so I must be missing here something. Any ideas about this?I am certaing that without the _irq directive the compiler (with my setup) can't tell that 91x_it.c contains ISR routines, and that's the reason that my ISR's aren't handled as such, but I can't tell what am I missing....
#irq-handling-str91x