 Question: Interrupt service routine: When he enters routine it shows that all interrupts
are zero, the GIE bit is zero (as expected), however pgie is also zero - i.e., when this
interrupt happened the interrupts were not enabled - this doesn't appear to be correct
Answer: What was
happening is that C4x takes interrupt when an instruction that disables GIE is in the
pipeline. hence inside ISR both GIE and old GIE bits are cleared. When ISR returns, the
interrupts will be globally disabled just as you would expect them to be. |