⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfilter.asm

📁 基于ti tms320c6713下MSBSP、EDMA 配置和简单FIR算法的一个例子
💻 ASM
📖 第 1 页 / 共 5 页
字号:
           ADD     .S1     A0,A5,A0          ; |271| (E) <3,4>  ^ 
||         STW     .D1T1   A6,*A3++          ; |271| (E) <2,5> 
||         STW     .D2T2   B6,*B4++          ; |269| (E) <2,5> 

           STW     .D1T1   A6,*A4++          ; |272| (E) <2,6> 
||         STW     .D2T2   B6,*B5++          ; |270| (E) <2,6> 

           STW     .D1T1   A0,*A3++          ; |271| (E) <3,5> 
||         STW     .D2T2   B6,*B4++          ; |269| (E) <3,5> 

           MVC     .S2     B7,CSR            ; interrupts on
||         STW     .D2T2   B6,*B5++          ; |270| (E) <3,6> 
||         STW     .D1T1   A0,*A4++          ; |272| (E) <3,6> 

           ZERO    .D1     A0                ; |274| 
||         MVKL    .S2     _outbuf-8,B8
||         MVKL    .S1     _inbuf-8,A4

           MVKH    .S2     _outbuf-8,B8
||         MVKH    .S1     _inbuf-8,A4

           MVK     .S1     0x1000,A6
||         MV      .L1X    B8,A5
||         MV      .L2X    A4,B5
||         MVK     .S2     0x1f4,B4          ; |274| 

           MVK     .S1     0x1001,A3
||         MVK     .S2     0x5432,B4
||         SUB     .D2     B4,6,B0

           MVK     .S2     0x5433,B6
           MVC     .S2     CSR,B8
           AND     .S2     -2,B8,B7
           MVC     .S2     B7,CSR            ; interrupts off
           B       .S1     L6                ; |278| (P) <0,1> 
           NOP             1
           B       .S1     L6                ; |278| (P) <1,1> 

           ADD     .D1     A3,A0,A7          ; |277| (P) <0,4>  ^ 
||         ADD     .S1     A6,A0,A4          ; |277| (P) <0,4>  ^ 
||         ADD     .S2X    B4,A0,B7          ; |276| (P) <0,4>  ^ 

;** --------------------------------------------------------------------------*
L6:    ; PIPED LOOP KERNEL

           ADD     .S2X    B6,A0,B7          ; |276| <0,5>  ^ 
||         ADD     .L1     2,A0,A0           ; |278| <0,5>  ^ 
||         STW     .D1T1   A4,*++A5(8)       ; |277| <0,5> 
||         STW     .D2T2   B7,*++B5(8)       ; |276| <0,5> 
|| [ B0]   B       .S1     L6                ; |278| <2,1> 

           STW     .D1T1   A7,*+A5(4)        ; |277| <0,6> 
||         STW     .D2T2   B7,*+B5(4)        ; |276| <0,6> 
||         ADD     .S1     A3,A0,A7          ; |277| <1,4>  ^ 
||         ADD     .L1     A6,A0,A4          ; |277| <1,4>  ^ 
||         ADD     .S2X    B4,A0,B7          ; |276| <1,4>  ^ 
|| [ B0]   SUB     .L2     B0,1,B0           ; |278| <3,0> 

;** --------------------------------------------------------------------------*
L7:    ; PIPED LOOP EPILOG

           ADD     .S1     2,A0,A0           ; |278| (E) <1,5>  ^ 
||         ADD     .S2X    B6,A0,B7          ; |276| (E) <1,5>  ^ 
||         STW     .D2T2   B7,*++B5(8)       ; |276| (E) <1,5> 
||         STW     .D1T1   A4,*++A5(8)       ; |277| (E) <1,5> 

           ADD     .S1     2,A0,A7           ; |278| (E) <2,5>  ^ 
||         ADD     .L1     A6,A0,A4          ; |277| (E) <2,4>  ^ 
||         ADD     .S2X    B4,A0,B7          ; |276| (E) <2,4>  ^ 
||         STW     .D1T1   A7,*+A5(4)        ; |277| (E) <1,6> 
||         STW     .D2T2   B7,*+B5(4)        ; |276| (E) <1,6> 

           ADD     .S1     A6,A7,A4          ; |277| (E) <3,4>  ^ 
||         ADD     .L1     A3,A0,A0          ; |277| (E) <2,4>  ^ 
||         ADD     .S2X    B6,A0,B7          ; |276| (E) <2,5>  ^ 
||         STW     .D2T2   B7,*++B5(8)       ; |276| (E) <2,5> 
||         STW     .D1T1   A4,*++A5(8)       ; |277| (E) <2,5> 

           ADD     .S1     A3,A7,A0          ; |277| (E) <3,4>  ^ 
||         ADD     .S2X    B4,A7,B4          ; |276| (E) <3,4>  ^ 
||         STW     .D1T1   A0,*+A5(4)        ; |277| (E) <2,6> 
||         STW     .D2T2   B7,*+B5(4)        ; |276| (E) <2,6> 

           ADD     .S2X    B6,A7,B4          ; |276| (E) <3,5>  ^ 
||         STW     .D2T2   B4,*++B5(8)       ; |276| (E) <3,5> 
||         STW     .D1T1   A4,*++A5(8)       ; |277| (E) <3,5> 

           MVC     .S2     B8,CSR            ; interrupts on
||         STW     .D1T1   A0,*+A5(4)        ; |277| (E) <3,6> 
||         STW     .D2T2   B4,*+B5(4)        ; |276| (E) <3,6> 

           RET     .S2     B3                ; |280| 
           NOP             5
           ; BRANCH OCCURS                   ; |280| 



	.sect	".text"
	.global	_init_edma

;******************************************************************************
;* FUNCTION NAME: _init_edma                                                  *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,DP,SP                                   *
;*   Local Frame Size  : 0 Args + 0 Auto + 4 Save = 4 byte                    *
;******************************************************************************
_init_edma:
;** --------------------------------------------------------------------------*
;** 196	-----------------------    TI_EDMA_CFG();
;** 197	-----------------------    set_interrupts_edma();
;** 198	-----------------------    *(volatile unsigned *)0x18c0004u = C$1 = SendMcbspDat;
;** 199	-----------------------    *(volatile unsigned *)0x1900004u = C$1;
;** 200	-----------------------    RecvMcbspDat = *(volatile unsigned *)0x18c0000u;
;** 200	-----------------------    return;
           CALL    .S1     _TI_EDMA_CFG      ; |196| 
           STW     .D2T2   B3,*SP--(8)       ; |195| 
           MVKL    .S2     RL14,B3           ; |196| 
           MVKH    .S2     RL14,B3           ; |196| 
           NOP             2
RL14:      ; CALL OCCURS                     ; |196| 
           CALL    .S1     _set_interrupts_edma ; |197| 
           MVKL    .S2     RL15,B3           ; |197| 
           MVKH    .S2     RL15,B3           ; |197| 
           NOP             3
RL15:      ; CALL OCCURS                     ; |197| 
           LDW     .D2T2   *+DP(_SendMcbspDat),B5 ; |198| 
           LDW     .D2T2   *++SP(8),B3       ; |201| 
           MVKL    .S1     0x18c0004,A0      ; |198| 
           MVKH    .S1     0x18c0004,A0      ; |198| 
           MVKL    .S2     0x1900004,B4      ; |199| 

           ZERO    .S1     A0                ; |200| 
||         STW     .D1T2   B5,*A0            ; |198| 
||         MVKH    .S2     0x1900004,B4      ; |199| 

           STW     .D2T2   B5,*B4            ; |199| 
||         MVKH    .S1     0x18c0000,A0      ; |200| 

           RET     .S2     B3                ; |201| 
||         LDW     .D1T1   *A0,A0            ; |200| 

           NOP             4
           STW     .D2T1   A0,*+DP(_RecvMcbspDat) ; |200| 
           ; BRANCH OCCURS                   ; |201| 



	.sect	".text"
	.global	_init_IIR

;******************************************************************************
;* FUNCTION NAME: _init_IIR                                                   *
;*                                                                            *
;*   Regs Modified     : A0,B4,B5,B6,B7,B8                                    *
;*   Regs Used         : A0,B3,B4,B5,B6,B7,B8,DP                              *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************
_init_IIR:
;** --------------------------------------------------------------------------*
;** 30	-----------------------    C$5 = &dlyl_0[0];
;** 30	-----------------------    *C$5 = C$2 = 0.0F;
;** 31	-----------------------    C$4 = &dlyl_1[0];
;** 31	-----------------------    *C$4 = C$2;
;** 32	-----------------------    C$3 = &dlyr_0[0];
;** 32	-----------------------    *C$3 = C$2;
;** 33	-----------------------    C$1 = &dlyr_1[0];
;** 33	-----------------------    *C$1 = C$2;
;** 30	-----------------------    C$5[1] = C$2;
;** 31	-----------------------    C$4[1] = C$2;
;** 32	-----------------------    C$3[1] = C$2;
;** 33	-----------------------    C$1[1] = C$2;
;**  	-----------------------    return;

           MVK     .S1     (_dlyr_0-$bss),A0 ; |32| 
||         MVK     .S2     (_dlyr_1-$bss),B4 ; |33| 

           ZERO    .D2     B4                ; |30| 
||         ADD     .S2X    DP,A0,B5          ; |32| 
||         ADD     .L2     DP,B4,B8          ; |33| 

           STW     .D2T2   B4,*B5            ; |32| 
||         MVK     .S2     (_dlyl_1-$bss),B6 ; |31| 

           STW     .D2T2   B4,*B8            ; |33| 
||         ADD     .S2     DP,B6,B6          ; |31| 

           RET     .S2     B3                ; |35| 
||         STW     .D2T2   B4,*B6            ; |31| 

           STW     .D2T2   B4,*+B6(4)        ; |31| 

           STW     .D2T2   B4,*+B5(4)        ; |32| 
||         MVK     .S1     (_dlyl_0-$bss),A0 ; |30| 

           STW     .D2T2   B4,*+B8(4)        ; |33| 
||         ADD     .S2X    DP,A0,B7          ; |30| 

           STW     .D2T2   B4,*B7            ; |30| 
           STW     .D2T2   B4,*+B7(4)        ; |30| 
           ; BRANCH OCCURS                   ; |35| 


;**	Parameter deleted: pinId == 40960u;

	.sect	".text"

;******************************************************************************
;* FUNCTION NAME: _GPIO_pinEnable                                             *
;*                                                                            *
;*   Regs Modified     : A0,A3,A5,B4,B5,SP                                    *
;*   Regs Used         : A0,A3,A4,A5,B3,B4,B5,SP                              *
;*   Local Frame Size  : 0 Args + 4 Auto + 0 Save = 4 byte                    *
;******************************************************************************
_GPIO_pinEnable:
;** --------------------------------------------------------------------------*
;** 226	-----------------------    C$1 = hGpio->baseAddr;
;** 226	-----------------------    gpen = *(volatile unsigned *)(unsigned)C$1;
;** 227	-----------------------    gpen = hGpio->pinAllocMask&0xa000u|gpen;
;** 228	-----------------------    *(volatile unsigned *)(unsigned)C$1 = *(volatile unsigned *)(unsigned)C$1&0xffff0000u|(unsigned)(unsigned short)gpen;
;** 228	-----------------------    return;
           LDW     .D1T1   *+A4(4),A0        ; |226| 
           LDW     .D1T1   *+A4(8),A3        ; |227| 
           SUB     .D2     SP,8,SP           ; |225| 
           MVKL    .S2     0xa000,B4         ; |227| 
           MVKH    .S2     0xa000,B4         ; |227| 
           LDW     .D1T1   *A0,A5            ; |226| 
           AND     .S2X    B4,A3,B4          ; |227| 
           NOP             3
           STW     .D2T1   A5,*+SP(4)        ; |226| 
           LDW     .D2T2   *+SP(4),B5        ; |227| 
           NOP             4
           OR      .S2     B5,B4,B4          ; |227| 
           STW     .D2T2   B4,*+SP(4)        ; |227| 
           LDW     .D1T1   *A0,A3            ; |228| 
           LDHU    .D2T2   *+SP(4),B4        ; |228| 
           RET     .S2     B3                ; |229| 
           ADD     .D2     8,SP,SP           ; |229| 
           NOP             1
           CLR     .S1     A3,0,15,A3        ; |228| 
           OR      .S2X    B4,A3,B4          ; |228| 
           STW     .D1T2   B4,*A0            ; |228| 
           ; BRANCH OCCURS                   ; |229| 


;**	Parameter deleted: direction == 1u;
;**	Parameter deleted: pinId == 40960u;

	.sect	".text"

;******************************************************************************
;* FUNCTION NAME: _GPIO_pinDirection                                          *
;*                                                                            *
;*   Regs Modified     : A0,A3,A5,B4,B5,SP                                    *
;*   Regs Used         : A0,A3,A4,A5,B3,B4,B5,SP                              *
;*   Local Frame Size  : 0 Args + 4 Auto + 0 Save = 4 byte                    *
;******************************************************************************
_GPIO_pinDirection:
;** --------------------------------------------------------------------------*
;** 240	-----------------------    C$1 = hGpio->baseAddr+4;
;** 240	-----------------------    gpdir = *(volatile unsigned *)(unsigned)C$1;
;** 241	-----------------------    *(volatile unsigned *)(unsigned)C$1 = hGpio->pinAllocMask&0xa000u|gpdir;
;** 244	-----------------------    *(volatile unsigned *)(unsigned)(hGpio->baseAddr+4);
;** 246	-----------------------    return;
           LDW     .D1T1   *+A4(4),A0        ; |240| 
           LDW     .D1T1   *+A4(8),A5        ; |241| 
           SUB     .D2     SP,8,SP           ; |239| 
           MVKL    .S2     0xa000,B4         ; |241| 
           MVKH    .S2     0xa000,B4         ; |241| 
           ADD     .D1     4,A0,A0           ; |240| 
           LDW     .D1T1   *A0,A3            ; |240| 
           AND     .S2X    B4,A5,B4          ; |241| 
           NOP             3
           STW     .D2T1   A3,*+SP(4)        ; |240| 
           LDW     .D2T2   *+SP(4),B5        ; |241| 
           ADD     .D2     8,SP,SP           ; |248| 
           NOP             3
           OR      .S2     B5,B4,B4          ; |241| 
           STW     .D1T2   B4,*A0            ; |241| 
           LDW     .D1T1   *+A4(4),A0        ; |244| 
           NOP             3
           RET     .S2     B3                ; |248| 
           LDW     .D1T1   *+A0(4),A0        ; |244| 
           NOP             4
           ; BRANCH OCCURS                   ; |248| 



	.sect	".text"
	.global	_initGpio

;******************************************************************************
;* FUNCTION NAME: _initGpio                                                   *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,DP,SP                                   *
;*   Local Frame Size  : 0 Args + 0 Auto + 4 Save = 4 byte                    *
;******************************************************************************
_initGpio:
;** --------------------------------------------------------------------------*
;** 124	-----------------------    hGpio = Y$0 = GPIO_open(0, 1u);
;** 125	-----------------------    GPIO_pinEnable(Y$0);
;** 126	-----------------------    GPIO_pinDirection(hGpio);
;** 127	-----------------------    GPIO_pinWrite(hGpio, 40960u, 1u);
;** 280	-----------------------    C$1 = _IRQ_eventTable[4]; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -