Intel IXC1100 用户手册

下载
页码 568
Intel
®
 IXP42X Product Line of Network Processors and IXC1100 Control Plane Processor
September 2006
DM
Order Number: 252480-006US
143
Intel XScale
®
 Processor—Intel
®
 IXP42X product line and IXC1100 control plane processors
Counter overflow can be dealt with in the IRQ interrupt service routine as shown below:
As an example, assume the following values in CCNT, PMN0, PMN1 and PMNC:
Example 14. Configuring the Performance Monitor
; Configure the performance monitor with the following values:
;
EVTSEL.evtCount0 = 7, EVTSEL.evtCount1 = 0 instruction cache efficiency
;
INTEN.inten = 0x7 set all counters to trigger an interrupt on overflow
;
PMNC.C = 1  reset CCNT register
;
PMNC.P = 1  reset PMN0 and PMN1 registers
;
PMNC.E = 1  enable counting
MOV  R0,#0x700
MCR  P14,0,R0,C8,c1,0
; setup EVTSEL
MOV  R0,#0x7
MCR  P14,0,R0,C4,c1,0
; setup INTEN
MCR  P14,0,R0,C0,c1,0
; setup PMNC, reset counters & enable
; Counting begins
Example 15. Interrupt Handling
IRQ_INTERRUPT_SERVICE_ROUTINE:
; Assume that performance counting interrupts are the only IRQ in the system
MRC  P14,0,R1,C0,c1,0
; read the PMNC register
BIC  R2,R1,#1
  ; clear the enable bit, preserve other bits in PMNC
MCR  P14,0,R2,C0,c1,0
; disable counting
MRC  P14,0,R3,C1,c1,0
; read CCNT register
MRC  P14,0,R4,C0,c2,0
; read PMN0 register
MRC  P14,0,R5,C1,c2,0
; read PMN1 register
<process the results>
SUBS PC,R14,#4
; return from interrupt