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

📄 mainfilter.asm

📁 基于ti tms320c6713下MSBSP、EDMA 配置和简单FIR算法的一个例子
💻 ASM
📖 第 1 页 / 共 5 页
字号:

           STW     .D1T1   A6,*+A0(8)        ; |296| 
||         LDW     .D2T2   *+DP(_mcbspCfg0+28),B5 ; |294| 

           STW     .D1T1   A5,*+A0(12)       ; |297| 
           STW     .D1T1   A3,*+A0(16)       ; |298| 
           STW     .D1T2   B7,*+A0(20)       ; |299| 
           STW     .D1T2   B8,*+A0(24)       ; |300| 
           STW     .D1T2   B9,*+A0(28)       ; |301| 
           STW     .D1T2   B6,*+A0(32)       ; |302| 
           STW     .D1T2   B5,*+A0(36)       ; |303| 

           MVC     .S2     CSR,B5            ; |276| 
||         STW     .D1T2   B0,*+A0(8)        ; |304| 

           AND     .S2     -2,B5,B5          ; |276| 
||         AND     .L2     1,B4,B4           ; |276| 

           OR      .S2     B4,B5,B4          ; |276| 
           MVC     .S2     B4,CSR            ; |276| 
           MVKL    .S1     _MCBSP_start,A0   ; |171| 
           MVKH    .S1     _MCBSP_start,A0   ; |171| 
           CALLRET .S2X    A0                ; |171| 
           LDW     .D2T2   *++SP(8),B3       ; |173| 
           MVK     .S1     0xdc,A6           ; |171| 
           MVK     .S2     0xf,B4            ; |171| 
           NOP             2
RL11:      ; CALL OCCURS                     ; |173| ; bypass _iis0_init upon return



	.sect	".text"
	.global	_iis1_init

;******************************************************************************
;* FUNCTION NAME: _iis1_init                                                  *
;*                                                                            *
;*   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                    *
;******************************************************************************
_iis1_init:
;** --------------------------------------------------------------------------*
;** 176	-----------------------    hMcbsp1 = Y$0 = MCBSP_open(1, 1u);
;** 280	-----------------------    base = Y$0->baseAddr;  // [13]
;** 270	-----------------------    gie = CSR&1u;  // [5]
;** 271	-----------------------    CSR = CSR&0xfffffffeu;  // [5]
;** 287	-----------------------    x0 = mcbspCfg1.spcr;  // [13]
;** 288	-----------------------    x1 = mcbspCfg1.rcr;  // [13]
;** 289	-----------------------    x2 = mcbspCfg1.xcr;  // [13]
;** 290	-----------------------    x3 = mcbspCfg1.srgr;  // [13]
;** 291	-----------------------    x4 = mcbspCfg1.mcr;  // [13]
;** 292	-----------------------    x5 = mcbspCfg1.rcer;  // [13]
;** 293	-----------------------    x6 = mcbspCfg1.xcer;  // [13]
;** 294	-----------------------    x7 = mcbspCfg1.pcr;  // [13]
;** 296	-----------------------    base[2] = 0u;  // [13]
;** 297	-----------------------    base[3] = x1;  // [13]
;** 298	-----------------------    base[4] = x2;  // [13]
;** 299	-----------------------    base[5] = x3;  // [13]
;** 300	-----------------------    base[6] = x4;  // [13]
;** 301	-----------------------    base[7] = x5;  // [13]
;** 302	-----------------------    base[8] = x6;  // [13]
;** 303	-----------------------    base[9] = x7;  // [13]
;** 304	-----------------------    base[2] = x0;  // [13]
;** 276	-----------------------    CSR = CSR&0xfffffffeu|gie&1u;  // [6]
;** 178	-----------------------    MCBSP_start(Y$0, 15u, 220u);
;** 178	-----------------------    return;
           MVKL    .S1     _MCBSP_open,A0    ; |176| 
           MVKH    .S1     _MCBSP_open,A0    ; |176| 
           CALL    .S2X    A0                ; |176| 
           STW     .D2T2   B3,*SP--(8)       ; |175| 
           MVKL    .S2     RL12,B3           ; |176| 
           MVK     .S2     0x1,B4            ; |176| 
           MVKH    .S2     RL12,B3           ; |176| 
           MVK     .S1     0x1,A4            ; |176| 
RL12:      ; CALL OCCURS                     ; |176| 
           LDW     .D1T1   *+A4(12),A0       ; |280| 
           NOP             3

           MVC     .S2     CSR,B4            ; |270| 
||         STW     .D2T1   A4,*+DP(_hMcbsp1) ; |176| 

           MVC     .S2     CSR,B5            ; |271| 
||         AND     .L2     1,B4,B4           ; |270| 

           AND     .S2     -2,B5,B5          ; |271| 
           MVC     .S2     B5,CSR            ; |271| 
           LDW     .D2T1   *+DP(_mcbspCfg1+4),A5 ; |288| 
           LDW     .D2T1   *+DP(_mcbspCfg1+8),A3 ; |289| 
           LDW     .D2T2   *+DP(_mcbspCfg1+12),B7 ; |290| 
           LDW     .D2T2   *+DP(_mcbspCfg1+16),B8 ; |291| 
           LDW     .D2T2   *+DP(_mcbspCfg1+20),B9 ; |292| 
           LDW     .D2T2   *+DP(_mcbspCfg1+24),B6 ; |293| 

           LDW     .D2T2   *+DP(_mcbspCfg1),B0 ; |287| 
||         ZERO    .D1     A6                ; |296| 

           STW     .D1T1   A6,*+A0(8)        ; |296| 
||         LDW     .D2T2   *+DP(_mcbspCfg1+28),B5 ; |294| 

           STW     .D1T1   A5,*+A0(12)       ; |297| 
           STW     .D1T1   A3,*+A0(16)       ; |298| 
           STW     .D1T2   B7,*+A0(20)       ; |299| 
           STW     .D1T2   B8,*+A0(24)       ; |300| 
           STW     .D1T2   B9,*+A0(28)       ; |301| 
           STW     .D1T2   B6,*+A0(32)       ; |302| 
           STW     .D1T2   B5,*+A0(36)       ; |303| 

           MVC     .S2     CSR,B5            ; |276| 
||         STW     .D1T2   B0,*+A0(8)        ; |304| 

           AND     .S2     -2,B5,B5          ; |276| 
||         AND     .L2     1,B4,B4           ; |276| 

           OR      .S2     B4,B5,B4          ; |276| 
           MVC     .S2     B4,CSR            ; |276| 
           MVKL    .S1     _MCBSP_start,A0   ; |178| 
           MVKH    .S1     _MCBSP_start,A0   ; |178| 
           CALLRET .S2X    A0                ; |178| 
           LDW     .D2T2   *++SP(8),B3       ; |180| 
           MVK     .S1     0xdc,A6           ; |178| 
           MVK     .S2     0xf,B4            ; |178| 
           NOP             2
RL13:      ; CALL OCCURS                     ; |180| ; bypass _iis1_init upon return



	.sect	".text"
	.global	_initrecsendbuf

;******************************************************************************
;* FUNCTION NAME: _initrecsendbuf                                             *
;*                                                                            *
;*   Regs Modified     : A0,A3,A4,A5,A6,A7,B0,B4,B5,B6,B7,B8                  *
;*   Regs Used         : A0,A3,A4,A5,A6,A7,B0,B3,B4,B5,B6,B7,B8,DP,SP         *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************
_initrecsendbuf:
;** --------------------------------------------------------------------------*
;**  	-----------------------    K$2 = 0;
;**  	-----------------------    K$13 = 0xaaaa5555u;
;** 268	-----------------------    L$1 = 256;
;**  	-----------------------    U$22 = &gBufferXmtPong[0];
;**  	-----------------------    U$18 = &gBufferXmtPing[0];
;**  	-----------------------    U$11 = &gBufferRcvPong[0];
;**  	-----------------------    U$7 = &gBufferRcvPing[0];
;** 268	-----------------------    i = 0u;
;**  	-----------------------    #pragma MUST_ITERATE(256, 256, 256)
;**  	-----------------------    #pragma LOOP_FLAGS(4096u)
;**	-----------------------g2:
;** 269	-----------------------    *U$7++ = K$2;
;** 270	-----------------------    *U$11++ = K$2;
;** 271	-----------------------    *U$18++ = C$1 = i+K$13;
;** 272	-----------------------    *U$22++ = C$1;
;** 273	-----------------------    ++i;
;** 273	-----------------------    if ( --L$1 ) goto g2;
           MVK     .S1     (_gBufferXmtPong-$bss),A4
           MVKL    .S1     0xaaaa5555,A0

           MVK     .S2     (_gBufferRcvPing-$bss),B4
||         MVK     .S1     (_gBufferXmtPing-$bss),A3

           ZERO    .D2     B6
||         MVK     .S2     0x100,B5          ; |268| 
||         MVK     .S1     (_gBufferRcvPong-$bss),A5
||         ADD     .L2     DP,B4,B4
||         ADD     .L1X    DP,A3,A3

           ZERO    .D1     A6                ; |268| 
||         SUB     .D2     B5,6,B0
||         ADD     .L1X    DP,A4,A4
||         ADD     .L2X    DP,A5,B5
||         MVKH    .S1     0xaaaa5555,A0
||         MVC     .S2     CSR,B7

           AND     .S2     -2,B7,B8
           MVC     .S2     B8,CSR            ; interrupts off
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 268
;*      Loop opening brace source line   : 269
;*      Loop closing brace source line   : 273
;*      Known Minimum Trip Count         : 256
;*      Known Maximum Trip Count         : 256
;*      Known Max Trip Count Factor      : 256
;*      Loop Carried Dependency Bound(^) : 1
;*      Unpartitioned Resource Bound     : 2
;*      Partitioned Resource Bound(*)    : 2
;*      Resource Partition:
;*                                A-side   B-side
;*      .L units                     0        0     
;*      .S units                     0        1     
;*      .D units                     2*       2*    
;*      .M units                     0        0     
;*      .X cross paths               0        0     
;*      .T address paths             2*       2*    
;*      Long read paths              2*       2*    
;*      Long write paths             0        0     
;*      Logical  ops (.LS)           0        0     (.L or .S unit)
;*      Addition ops (.LSD)          2        1     (.L or .S or .D unit)
;*      Bound(.L .S .LS)             0        1     
;*      Bound(.L .S .D .LS .LSD)     2*       2*    
;*
;*      Searching for software pipeline schedule at ...
;*         ii = 2  Schedule found with 4 iterations in parallel
;*      Done
;*
;*      Epilog not removed
;*      Collapsed epilog stages     : 0
;*
;*      Prolog not removed
;*      Collapsed prolog stages     : 0
;*
;*      Minimum required memory pad : 0 bytes
;*
;*      Minimum safe trip count     : 4
;*----------------------------------------------------------------------------*
L3:    ; PIPED LOOP PROLOG
           B       .S2     L4                ; |273| (P) <0,1> 
           NOP             1
           B       .S2     L4                ; |273| (P) <1,1> 
           ADD     .D1     A0,A6,A5          ; |271| (P) <0,4>  ^ 
;** --------------------------------------------------------------------------*
L4:    ; PIPED LOOP KERNEL

           STW     .D2T2   B6,*B4++          ; |269| <0,5> 
||         ADD     .S1     1,A6,A6           ; |273| <0,5>  ^ 
||         STW     .D1T1   A5,*A3++          ; |271| <0,5> 
|| [ B0]   B       .S2     L4                ; |273| <2,1> 

           STW     .D2T2   B6,*B5++          ; |270| <0,6> 
||         STW     .D1T1   A5,*A4++          ; |272| <0,6> 
||         ADD     .S1     A0,A6,A5          ; |271| <1,4>  ^ 
|| [ B0]   SUB     .S2     B0,1,B0           ; |273| <3,0> 

;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 274
;*      Loop opening brace source line   : 275
;*      Loop closing brace source line   : 278
;*      Loop Unroll Multiple             : 2x
;*      Known Minimum Trip Count         : 500
;*      Known Maximum Trip Count         : 500
;*      Known Max Trip Count Factor      : 500
;*      Loop Carried Dependency Bound(^) : 1
;*      Unpartitioned Resource Bound     : 2
;*      Partitioned Resource Bound(*)    : 2
;*      Resource Partition:
;*                                A-side   B-side
;*      .L units                     0        0     
;*      .S units                     1        0     
;*      .D units                     2*       2*    
;*      .M units                     0        0     
;*      .X cross paths               0        2*    
;*      .T address paths             2*       2*    
;*      Long read paths              2*       2*    
;*      Long write paths             0        0     
;*      Logical  ops (.LS)           0        2     (.L or .S unit)
;*      Addition ops (.LSD)          3        1     (.L or .S or .D unit)
;*      Bound(.L .S .LS)             1        1     
;*      Bound(.L .S .D .LS .LSD)     2*       2*    
;*
;*      Searching for software pipeline schedule at ...
;*         ii = 2  Schedule found with 4 iterations in parallel
;*      Done
;*
;*      Epilog not removed
;*      Collapsed epilog stages     : 0
;*
;*      Prolog not removed
;*      Collapsed prolog stages     : 0
;*
;*      Minimum required memory pad : 0 bytes
;*
;*      Minimum safe trip count     : 4 (after unrolling)
;*----------------------------------------------------------------------------*
L5:    ; PIPED LOOP EPILOG AND PROLOG
;** 274	-----------------------    // LOOP BELOW UNROLLED BY FACTOR(2)
;**  	-----------------------    K$29 = 21554u;
;**  	-----------------------    K$36 = 4096u;
;**  	-----------------------    K$43 = 21555u;
;**  	-----------------------    K$49 = 4097u;
;** 274	-----------------------    L$2 = 500;
;**  	-----------------------    U$41 = &outbuf[-2];
;**  	-----------------------    U$34 = &inbuf[-2];
;** 274	-----------------------    i = 0u;
;**  	-----------------------    #pragma MUST_ITERATE(500, 500, 500)
;**  	-----------------------    #pragma LOOP_FLAGS(4098u)
;**	-----------------------g5:
;** 276	-----------------------    *(U$34 += 2) = (int)i+(int)K$29;
;** 277	-----------------------    *(U$41 += 2) = (int)i+(int)K$36;
;** 276	-----------------------    U$34[1] = (int)i+(int)K$43;
;** 277	-----------------------    U$41[1] = (int)i+(int)K$49;
;** 278	-----------------------    i += 2u;
;** 278	-----------------------    if ( --L$2 ) goto g5;
;**  	-----------------------    return;

           ADD     .S1     1,A6,A6           ; |273| (E) <1,5>  ^ 
||         STW     .D1T1   A5,*A3++          ; |271| (E) <1,5> 
||         STW     .D2T2   B6,*B4++          ; |269| (E) <1,5> 

           ADD     .S1     1,A6,A5           ; |273| (E) <2,5>  ^ 
||         ADD     .L1     A0,A6,A6          ; |271| (E) <2,4>  ^ 
||         STW     .D1T1   A5,*A4++          ; |272| (E) <1,6> 
||         STW     .D2T2   B6,*B5++          ; |270| (E) <1,6> 

⌨️ 快捷键说明

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