Hello, I have the following code. It initializes the interrupts and CPU Timer 0, then it is stuck in a forever loop until CPU Timer 0 counts down to 0 and the system interrupts.
asm(" CLRC INTM, DBGM");
PieCtrlRegs.PIECTRL.bit.ENPIE = 1;
PieCtrlRegs.PIEACK.all = 0xFFFF;
PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
IER |= 0x0001;
CpuTimer0Regs.TCR.bit.TIF = 1;
CpuTimer0Regs.TCR.bit.TIE = 1;
CpuTimer0Regs.TCR.bit.TRB = 1;
for(;;);
If I run the code completely, I end up in the interrupt function below. But if I single step the code, all it does it keeps resetting CPU Timer 0 even though the flags have been triggered. Why is there a difference between when I run the code normally vs. single stepping it? What is the code waiting on?
interrupt void ISR_ILLEGAL(void) // Illegal operation TRAP
{
// Insert ISR Code here
// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
asm(" ESTOP0");
for(;;);
}
Finally, I understand that asm(" CLRC INTM") allows for global interrupts, but what does asm(" CLRC INTM, DBGM"); do? What is DBGM?
Thanks,
Matthew