📄 3d_dmac_isr_asm.src
字号:
;
; Copyright(C) Renesas Technology Corp. 2004-. All rights reserved.
;
; NK Kernel for ITS-DS7 Ver.1.0.0
;
; FILE : 3d_dmac_isr_asm.src
; CREATED : 2004.10.05
; MODIFIED :
; AUTHOR : Renesas Technology Corp.
; HARDWARE : RENESAS ITS-DS7
; HISTORY :
; 2004.10.05
; - Created release code.
.include "kxshx.h"
.include "sh4a.inc"
.include "oalintr.inc"
.include "platform.inc"
.include "sh7770.inc"
.import _wNumInterrupts
.import _dwSPC
.import _dwIsrTime1
.import _fIntrTime
LEAF_ENTRY __3D_DMAC_ISR
;-------------------------------------------------------
; DEBUG LED
;
; mov.l #h'52, r2 ; 'R'
; mov.l #LED_ALPHA, r3
; mov.b r2, @r3
; add #LED_ALPHA_STRIDE, r3
; mov.b r2, @r3
; add #LED_ALPHA_STRIDE, r3
; mov.b r2, @r3
; add #LED_ALPHA_STRIDE, r3
; mov.b r2, @r3
;-------------------------------------------------------
;-------------------------------------------------------
; Check for IntrTime measurements (COMMON)
;
mov #_fIntrTime, r1 ; (r1) = ptr to fIntrTime gate
mov @r1, r6 ; (r6) = fIntrTime
tst r6, r6
bt skip_isrtime1
;-------------------------------------------------------
; Get ISR latency and saved program counter (INTRTIME)
;
mov #SH7770_TMU012_REGBASE, r2
mov.l @(TMU_TCOR0_OFFSET, r2), r0 ; (r0) = Timer 0 constant
mov.l @(TMU_TCNT0_OFFSET, r2), r2 ; (r2) = Timer 0 count
sub r2, r0 ; (r0) = Constant - count (ticks elapsed)
mov #_dwIsrTime1, r1
mov r0, @r1 ; dwIsrTime1 = (r0)
stc spc, r0
mov #_dwSPC, r1
mov.l r0, @r1 ; Save Program Counter
mov #_wNumInterrupts, r0 ; (r0) = addr of interrupt counter
mov @r0, r1 ; (r1) = interrupt counter
add #1, r1 ; Increment counter
mov r1, @r0 ; Save interrupt counter
skip_isrtime1:
mov.l #INTC2MSKRG, r0
mov.l #INTC2MSKRG_3D, r1
mov.l r1, @r0
mov.l @r0, r1 ; Coherency measures
rts
mov #SYSINTR_3DG_DMAC, r0
ENTRY_END
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -