RE: ADuC 70xx timer interupt problem
A few points that may help you.
You don't state it explicitly but I am assuming you are using a
GNU ARM compiler.
void IRQ_Handler (void) __attribute__ ((interrupt("IRQ_Handler")));
IRQ, FIQ, SWI, ABORT and UNDEF are the only valid parameters to the
interrupt function attribute.
I have seem problems with the code that arm-uclibc-gcc v3.3.1
generates for a function using an invalid function parameter like
this. The return from interrupt instruction – sub pc, r14,#14
– was omitted completely and control just flowed into the next
function. It may be a problem with the gcc version you are using as
well. No warning is given by the compiler.
The start-up code sets up the IRQ vector location. Does it point
to your handler? The interrupt function attribute does not update the
vector location to point to your function. (The C51 compiler
You should also ensure that the handler in compiled in ARM mode
and not in THUMB mode for obvious reasons.