📄 mcbsp_ad535.asm
字号:
NOP 4
B .S2 B3 ; |134|
NOP 5
; BRANCH OCCURS ; |134|
.endfunc 134,000080000h,8
.sect ".text"
.global _chanIsr
.sym _chanIsr,_chanIsr, 32, 2, 0
.func 144
;******************************************************************************
;* FUNCTION NAME: _chanIsr *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;* B6,B7,B8,B9,SP *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;* B6,B7,B8,B9,DP,SP *
;* Local Frame Size : 0 Args + 0 Auto + 8 Save = 8 byte *
;******************************************************************************
_chanIsr:
;** --------------------------------------------------------------------------*
.sym _chan,4, 14, 17, 32
.sym C$2,16, 144, 4, 32
.sym C$3,4, 14, 4, 32
.sym C$4,20, 24, 4, 32, _drv_state
.sym C$5,16, 144, 4, 32
.sym C$6,20, 24, 4, 32, _drv_state
.sym C$7,20, 24, 4, 32, _drv_state
.sym C$8,20, 24, 4, 32, _drv_state
.sym C$9,20, 24, 4, 32, _drv_state
.sym C$10,0, 24, 4, 32, _drv_state
.sym C$11,20, 24, 4, 32, _drv_state
.sym C$12,21, 24, 4, 32, _drv_state
.sym C$13,20, 24, 4, 32, _drv_state
.sym C$14,21, 24, 4, 32, _drv_state
.sym C$15,21, 24, 4, 32, _drv_state
.sym _chan,10, 14, 4, 32
.sym R$1,20, 14, 4, 32
;** 147 ----------------------- if ( !(chan*44+&chans)->currentPtr ) goto g19;
STW .D2T2 B3,*SP--(8) ; |144|
STW .D2T1 A10,*+SP(4) ; |144|
.line 2
MV .L1 A4,A10 ; |145|
.line 4
MVK .S1 44,A3 ; |147|
MPYLHU .M1 A3,A10,A0 ; |147|
MPYU .M1 A3,A10,A3 ; |147|
SHL .S1 A0,16,A0 ; |147|
|| MVK .S2 (_chans+12-$bss),B4 ; |147|
ADD .L1 A3,A0,A0 ; |147|
|| ADD .L2 DP,B4,B4 ; |147|
ADD .L2X B4,A0,B4 ; |147|
LDW .D2T2 *B4,B0 ; |147|
NOP 4
[!B0] B .S1 L8 ; |147|
NOP 5
; BRANCH OCCURS ; |147|
;** --------------------------------------------------------------------------*
;** 162 ----------------------- switch ( chan ) {...};
.line 19
MV .L1 A10,A1 ;
[!A1] B .S1 L2 ; |162|
CMPEQ .L1 A10,1,A2 ;
NOP 4
; BRANCH OCCURS ; |162|
;** --------------------------------------------------------------------------*
[ A2] B .S1 L1 ; |162|
NOP 5
; BRANCH OCCURS ; |162|
;** --------------------------------------------------------------------------*
;** -----------------------g2:
;** 162 ----------------------- SYS_abort("mcbsp_code: bad channel number");
;** 162 ----------------------- goto g5;
B .S1 _SYS_abort ; |162|
MVKL .S1 SL1+0,A4 ; |162|
MVKL .S2 RL4,B3 ; |162|
MVKH .S1 SL1+0,A4 ; |162|
MVKH .S2 RL4,B3 ; |162|
NOP 1
RL4: ; CALL OCCURS ; |162|
B .S1 L3 ; |162|
NOP 5
; BRANCH OCCURS ; |162|
;** --------------------------------------------------------------------------*
L1:
;** -----------------------g3:
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ENTERING MCBSP_Write()
;** 157 ----------------------- *(hMcbsp->BaseAddr+4) = _extu((unsigned)*(unsigned short *)(chan*44+&chans)->currentPtr, 16u...
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< LEAVING MCBSP_Write()
;** 157 ----------------------- goto g5;
.line 14
MVK .S1 44,A3 ; |157|
MPYLHU .M1 A3,A10,A0 ; |157|
MPYU .M1 A3,A10,A3 ; |157|
SHL .S1 A0,16,A0 ; |157|
|| MVK .S2 (_chans+12-$bss),B4 ; |157|
ADD .L1 A3,A0,A0 ; |157|
|| ADD .L2 DP,B4,B4 ; |157|
ADD .L2X B4,A0,B4 ; |157|
LDW .D2T2 *B4,B4 ; |157|
LDW .D2T2 *+DP(_hMcbsp),B5 ; |157|
NOP 3
LDHU .D2T2 *B4,B4 ; |157|
LDW .D2T2 *+B5(12),B5 ; |157|
NOP 3
EXTU .S2 B4,16,17,B4 ; |157|
SHL .S2 B4,1,B4 ; |157|
STW .D2T2 B4,*+B5(4) ; |157|
B .S1 L3 ; |157|
NOP 5
; BRANCH OCCURS ; |157|
;** --------------------------------------------------------------------------*
L2:
;** -----------------------g4:
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ENTERING MCBSP_Read()
;** 153 ----------------------- R$1 = *hMcbsp->BaseAddr;
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< LEAVING MCBSP_Read()
;** 153 ----------------------- *(unsigned short *)(chan*44+&chans)->currentPtr = R$1;
.line 10
LDW .D2T2 *+DP(_hMcbsp),B4 ; |153|
NOP 4
LDW .D2T2 *+B4(12),B4 ; |153|
NOP 4
LDW .D2T2 *B4,B4 ; |153|
MVK .S1 44,A0 ; |153|
MPYLHU .M1 A0,A10,A3 ; |153|
MPYU .M1 A0,A10,A0 ; |153|
SHL .S1 A3,16,A3 ; |153|
|| MVK .S2 (_chans+12-$bss),B5 ; |153|
ADD .L1 A0,A3,A0 ; |153|
|| ADD .L2 DP,B5,B5 ; |153|
ADD .L1X B5,A0,A0 ; |153|
LDW .D1T1 *A0,A0 ; |153|
NOP 4
STH .D1T2 B4,*A0 ; |153|
;** --------------------------------------------------------------------------*
L3:
;** -----------------------g5:
;** 165 ----------------------- C$15 = &chans[0];
;** 165 ----------------------- C$13 = &C$15[chan];
;** 165 ----------------------- C$13->currentPtr = C$13->currentPtr+2u;
;** 166 ----------------------- C$13->currentCount = C$13->currentCount-1u;
;** 168 ----------------------- C$14 = &C$15[chan+2u];
;** 168 ----------------------- C$14->currentPtr = C$14->currentPtr+2u;
;** 169 ----------------------- C$14->currentCount = C$14->currentCount-1u;
;** 171 ----------------------- if ( C$13->currentCount ) goto g19;
.line 22
MVK .S2 (_chans-$bss),B4 ; |165|
ADD .L2 DP,B4,B5 ;
MVK .S2 44,B6 ; |165|
MPYLHU .M2X B6,A10,B4 ; |165|
MPYU .M2X B6,A10,B6 ; |165|
SHL .S2 B4,16,B4 ; |165|
ADD .L2 B6,B4,B4 ; |165|
ADD .L2 B5,B4,B4 ; |165|
LDW .D2T2 *+B4(12),B6 ; |165|
NOP 4
ADD .L2 2,B6,B6 ; |165|
STW .D2T2 B6,*+B4(12) ; |165|
.line 23
LDW .D2T2 *+B4(16),B6 ; |166|
NOP 4
SUB .L2 B6,1,B6 ; |166|
STW .D2T2 B6,*+B4(16) ; |166|
.line 25
MVK .S1 44,A3 ; |168|
MPYLHU .M1 A3,A10,A0 ; |168|
MPYU .M1 A3,A10,A3 ; |168|
SHL .S1 A0,16,A0 ; |168|
ADD .L1 A3,A0,A0 ; |168|
ADD .L2X B5,A0,B5 ; |168|
ADDAW .D2 B5,22,B5 ; |168|
LDW .D2T2 *+B5(12),B6 ; |168|
NOP 4
ADD .L2 2,B6,B6 ; |168|
STW .D2T2 B6,*+B5(12) ; |168|
.line 26
LDW .D2T2 *+B5(16),B6 ; |169|
NOP 4
SUB .L2 B6,1,B6 ; |169|
STW .D2T2 B6,*+B5(16) ; |169|
.line 28
LDW .D2T2 *+B4(16),B0 ; |171|
NOP 4
[ B0] B .S1 L8 ; |171|
NOP 5
; BRANCH OCCURS ; |171|
;** --------------------------------------------------------------------------*
;** 174 ----------------------- if ( !C$13->fullBuffer ) goto g9;
.line 31
LDW .D2T2 *+B4(20),B0 ; |174|
NOP 4
[!B0] B .S1 L4 ; |174|
NOP 5
; BRANCH OCCURS ; |174|
;** --------------------------------------------------------------------------*
;** 175 ----------------------- if ( TRC_query(49152u) ) goto g9;
.line 32
B .S1 _TRC_query ; |175|
MVKL .S2 RL6,B3 ; |175|
ZERO .L1 A0 ; |175|
MVKH .S2 RL6,B3 ; |175|
SET .S1 A0,0xe,0xf,A4 ; |175|
NOP 1
RL6: ; CALL OCCURS ; |175|
MV .L1 A4,A1 ; |175|
[ A1] B .S1 L4 ; |175|
NOP 5
; BRANCH OCCURS ; |175|
;** --------------------------------------------------------------------------*
;** 175 ----------------------- LOG_event(LOG_D_system, 0, (int)"HELP!!! Dropped buffer!!", 8);
B .S1 _LOG_event ; |175|
LDW .D2T1 *+DP(_LOG_D_system),A4 ; |175|
MVKL .S2 RL8,B3 ; |175|
MVK .S2 0x8,B6 ; |175|
MVKL .S1 SL2+0,A6 ; |175|
MVKH .S1 SL2+0,A6 ; |175|
|| MVKH .S2 RL8,B3 ; |175|
|| ZERO .L2 B4 ; |175|
RL8: ; CALL OCCURS ; |175|
;** --------------------------------------------------------------------------*
L4:
;** -----------------------g9:
;** 179 ----------------------- C$12 = &chans[0];
;** 179 ----------------------- C$10 = &C$12[chan];
;** 179 ----------------------- C$10->fullBuffer = C$10->currentBuffer;
;** 181 ----------------------- C$10->fullSize = C$10->currentSize;
;** 184 ----------------------- C$11 = &C$12[chan+2u];
;** 184 ----------------------- C$11->fullBuffer = C$11->currentBuffer;
;** 186 ----------------------- C$11->fullSize = C$11->currentSize;
;** 188 ----------------------- if ( C$10->nextBuffer ) goto g11;
;** 190 ----------------------- C$10->currentBuffer = NULL;
;** 192 ----------------------- C$10->currentPtr = 0u;
;** 193 ----------------------- goto g12;
.line 36
MVK .S2 (_chans-$bss),B4 ; |179|
ADD .L2 DP,B4,B5 ;
MVK .S2 44,B6 ; |179|
MPYLHU .M2X B6,A10,B4 ; |179|
MPYU .M1X B6,A10,A0 ; |179|
SHL .S2 B4,16,B4 ; |179|
ADD .L1X A0,B4,A0 ; |179|
ADD .L1X B5,A0,A0 ; |179|
LDW .D1T1 *+A0(4),A3 ; |179|
NOP 4
STW .D1T1 A3,*+A0(20) ; |179|
.line 38
LDW .D1T1 *+A0(8),A3 ; |181|
NOP 4
STW .D1T1 A3,*+A0(24) ; |181|
.line 41
MVK .S1 44,A4 ; |184|
MPYLHU .M1 A4,A10,A3 ; |184|
MPYU .M1 A4,A10,A4 ; |184|
SHL .S1 A3,16,A3 ; |184|
ADD .L1 A4,A3,A3 ; |184|
ADD .L2X B5,A3,B4 ; |184|
ADDAW .D2 B4,22,B4 ; |184|
LDW .D2T2 *+B4(4),B5 ; |184|
NOP 4
STW .D2T2 B5,*+B4(20) ; |184|
.line 43
LDW .D2T2 *+B4(8),B5 ; |186|
NOP 4
STW .D2T2 B5,*+B4(24) ; |186|
.line 45
LDW .D1T1 *+A0(28),A1 ; |188|
NOP 4
.line 47
[!A1] ZERO .L1 A3 ; |190|
[!A1] STW .D1T1 A3,*+A0(4) ; |190|
.line 49
[!A1] ZERO .L1 A3 ; |192|
[!A1] STW .D1T1 A3,*+A0(12) ; |192|
.line 50
[!A1] B .S1 L5 ; |193|
NOP 5
; BRANCH OCCURS ; |193|
;** --------------------------------------------------------------------------*
;** -----------------------g11:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -