I debug my code under ccs4.0 with xds100v2 usb simulator on TI8148 EVM.
now, i want to use Timer1 to generate a overflow interrupt event. my code as follows:
; iniitialized interrupt controller
LDR R1, INTCPS_ILR_TIMER1 ; set timer1 irq and priority is 1
STR R0, [R1]
LDR R1, INTCPS_MIR2 ;unmask timer1(67 = 0x43) intterupt,
MOV R0, #0x00
STR R0, [R1]
and clear the irq mask in cpsr register to enable irq
then jump to a c-function to initialize timer1
BL init_timer1 ; init_timer1 is a c-function
void init_timer1(void)
{
TIOCP_CFG1 = 0x02; // 1 The timer runs free, regardless of PINSUSPENDN value.
TLDR1 = 0xffff8000; //overflow value is FFFF FFFFh
TCRR1 = 0xffff8000; // overflow after 1 second
// Timer clock 32768 HZ, Pre = 0,ingroe PTV
IRQSTATUS1 = 0x02; //clear overflow event
IRQSTATUS_SET1 = 0x02; //enable Timer1 overflow interrupt
TCLR1 = 0x03; // Start timer, Auto-reload timer, The divided input pin clocks the counter
}
when i step into TCLR1 = 0x03; timer1 started and the value in timer1 relate registers as follows:
INTCPS_MIR : 0x0000 0000
INTCPS_ITR: 0x0000 0008
INTCPS_PENDING_IRQ: 0x0000 0008
INTCPS_SIR_IRQ : 0x0000 0043
INTCPS_IRQ_PRIORITY: 0x0000 0001
it seems to display that the overflow event has been generated , but actually the ccs didn't run to my isr handler(i have set breakpoint in my isr handler),
it simply run to the symbol '}'.
Are there somthing wrong in my code ?