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

📄 dsk_app.asm

📁 详细的OFDM设计过程
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;** --------------------------------------------------------------------------*
           NOP             2
           MV      .S1X    B7,A6
           MVC     .S2     B3,CSR            ; interrupts on
           MV      .S1X    B5,A5
	.line	16

           LDW     .D1T1   *A10++,A3         ; |893| 
||         LDW     .D2T2   *B10++,B4         ; |893| 
||         ADDSP   .L1     A6,A4,A4          ; |893| 

           NOP             3
           ADDSP   .L1     A5,A4,A4          ; |893| 
           NOP             2

           MPYSP   .M1     A12,A3,A3         ; |893| 
||         MPYSP   .M2     B11,B4,B4         ; |893| 

           ADDSP   .L1     A0,A4,A0          ; |893| 
           NOP             3
           ADDSP   .L1X    B4,A0,A0          ; |893| 
           NOP             3
           ADDSP   .L1     A3,A0,A0          ; |893| 
           NOP             3
           CMPGTSP .S1     A0,A9,A1          ; |893| 
	.line	17
   [ A1]   MV      .D1     A0,A9             ; |894| 
	.line	18
   [ A1]   MV      .D1     A8,A11            ; |895| 
	.line	20

           ADD     .D1     1,A8,A8           ; |897| 
||         ADD     .D2     4,B9,B9           ; |897| 
||         SUB     .S2     B2,1,B2           ; |897| 

   [ B2]   B       .S2     L1                ; |897| 
           NOP             5
           ; BRANCH OCCURS                   ; |897| 
;** --------------------------------------------------------------------------*
	.line	21
           MV      .D1     A11,A4            ; |898| 
	.line	22
           LDW     .D2T2   *+SP(20),B3       ; |899| 
           MV      .S1X    SP,A9             ; |899| 
           LDW     .D1T1   *+A9(4),A12       ; |899| 
           LDW     .D1T1   *+A9(16),A13      ; |899| 
           NOP             1

           RET     .S2     B3                ; |899| 
||         LDDW    .D2T2   *+SP(24),B11:B10  ; |899| 

           LDW     .D2T2   *++SP(32),B12     ; |899| 
||         LDDW    .D1T1   *+A9(8),A11:A10   ; |899| 

           NOP             4
           ; BRANCH OCCURS                   ; |899| 
	.endfunc	899,01c083c00h,32



	.sect	".text"
	.global	_trainingRun
	.sym	_trainingRun,_trainingRun, 32, 2, 0
	.func	803

;******************************************************************************
;* FUNCTION NAME: _trainingRun                                                *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;*                           B6,B7,B8,B9,B10,B11,SP                           *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;*                           B6,B7,B8,B9,B10,B11,DP,SP                        *
;*   Local Frame Size  : 0 Args + 0 Auto + 16 Save = 16 byte                  *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_trainingRun:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_framebuffer,4, 19, 17, 32
	.sym	_framebuffer,10, 19, 4, 32
           STW     .D2T2   B11,*SP--(16)     ; |804| 
           STW     .D2T2   B10,*+SP(12)      ; |804| 
           STW     .D2T2   B3,*+SP(8)        ; |804| 
           STW     .D2T1   A10,*+SP(4)       ; |804| 
           MV      .D1     A4,A10            ; |804| 
	.line	7
           MVKL    .S1     _memset,A0        ; |809| 
           MVKH    .S1     _memset,A0        ; |809| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 811
;*      Loop opening brace source line   : 812
;*      Loop closing brace source line   : 812
;*      Loop Unroll Multiple             : 2x
;*      Known Minimum Trip Count         : 1192
;*      Known Maximum Trip Count         : 1192
;*      Known Max Trip Count Factor      : 1192
;*      Loop Carried Dependency Bound(^) : 0
;*      Unpartitioned Resource Bound     : 2
;*      Partitioned Resource Bound(*)    : 2
;*      Resource Partition:
;*                                A-side   B-side
;*      .L units                     0        2*    
;*      .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              0        2*    
;*      Long write paths             0        0     
;*      Logical  ops (.LS)           0        0     (.L or .S unit)
;*      Addition ops (.LSD)          1        0     (.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 6 iterations in parallel
;*      Done
;*
;*      Epilog not removed
;*      Collapsed epilog stages     : 0
;*      Collapsed prolog stages     : 5
;*      Minimum required memory pad : 0 bytes
;*
;*      For further improvement on this loop, try option -mh20
;*
;*      Minimum safe trip count     : 5 (after unrolling)
;*----------------------------------------------------------------------------*
L5:    ; PIPED LOOP PROLOG
           CALL    .S2X    A0                ; |809| 
           NOP             2
           MVK     .S1     0x27c0,A6         ; |809| 

           MVKL    .S1     _temp,A4          ; |809| 
||         MVKL    .S2     RL0,B3            ; |809| 

           ZERO    .D2     B4                ; |809| 
||         MVKH    .S2     RL0,B3            ; |809| 
||         MVKH    .S1     _temp,A4          ; |809| 

RL0:       ; CALL OCCURS                     ; |809| 
           NOP             1
           MVKL    .S2     _temp+320,B6
           MVKL    .S2     _temp+324,B4
           MVKH    .S2     _temp+324,B4

           SUB     .D1     A10,4,A0
||         MVKH    .S2     _temp+320,B6

	.line	9
           MVC     .S2     CSR,B7
           AND     .S2     -2,B7,B5
           MVC     .S2     B5,CSR            ; interrupts off
           B       .S1     L6                ; |812| (P) <0,5> 
           MVK     .S1     0x4a8,A3          ; |811| 
           B       .S1     L6                ; |812| (P) <1,5> 

           MVK     .S1     0x5,A2            ; init prolog collapse predicate
||         MVK     .S2     0x1,B0            ; init prolog collapse predicate
||         SUB     .D1     A3,3,A1

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

   [!A2]   STW     .D2T2   B5,*B6++(8)       ; |812| <0,9> 
||         INTSP   .L2X    A3,B5             ; |812| <2,5> 
|| [ A1]   B       .S1     L6                ; |812| <2,5> 
|| [!B0]   LDH     .D1T1   *+A0(2),A3        ; |812| <4,1> 

   [ B0]   SUB     .S2     B0,1,B0           ; <0,10> 
|| [ A2]   SUB     .S1     A2,1,A2           ; <0,10> 
|| [!A2]   STW     .D2T2   B5,*B4++(8)       ; |812| <0,10> 
||         INTSP   .L2X    A3,B5             ; |812| <2,6> 
|| [ A1]   SUB     .L1     A1,1,A1           ; |812| <3,4> 
||         LDH     .D1T1   *++A0(4),A3       ; |812| <5,0> 

;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 818
;*      Loop opening brace source line   : 819
;*      Loop closing brace source line   : 822
;*      Loop Unroll Multiple             : 2x
;*      Known Minimum Trip Count         : 128
;*      Known Maximum Trip Count         : 128
;*      Known Max Trip Count Factor      : 128
;*      Loop Carried Dependency Bound(^) : 0
;*      Unpartitioned Resource Bound     : 3
;*      Partitioned Resource Bound(*)    : 3
;*      Resource Partition:
;*                                A-side   B-side
;*      .L units                     0        0     
;*      .S units                     1        0     
;*      .D units                     3*       3*    
;*      .M units                     0        0     
;*      .X cross paths               0        0     
;*      .T address paths             3*       3*    
;*      Long read paths              2        2     
;*      Long write paths             0        0     
;*      Logical  ops (.LS)           0        0     (.L or .S unit)
;*      Addition ops (.LSD)          0        1     (.L or .S or .D unit)
;*      Bound(.L .S .LS)             1        0     
;*      Bound(.L .S .D .LS .LSD)     2        2     
;*
;*      Searching for software pipeline schedule at ...
;*         ii = 3  Schedule found with 3 iterations in parallel
;*      Done
;*
;*      Collapsed epilog stages     : 2
;*      Prolog not entirely removed
;*      Collapsed prolog stages     : 1
;*
;*      Minimum required memory pad : 0 bytes
;*
;*      For further improvement on this loop, try option -mh128
;*
;*      Minimum safe trip count     : 1 (after unrolling)
;*----------------------------------------------------------------------------*
L7:    ; PIPED LOOP EPILOG AND PROLOG

           INTSP   .L2X    A3,B5             ; |812| (E) <3,5> 
||         LDH     .D1T1   *+A0(2),A3        ; |812| (E) <5,1> 
||         STW     .D2T2   B5,*B6++(8)       ; |812| (E) <1,9> 

           STW     .D2T2   B5,*B4++(8)       ; |812| (E) <1,10> 
||         INTSP   .L2X    A3,B5             ; |812| (E) <3,6> 

           INTSP   .L2X    A3,B5             ; |812| (E) <4,5> 
||         STW     .D2T2   B5,*B6++(8)       ; |812| (E) <2,9> 

           STW     .D2T2   B5,*B4++(8)       ; |812| (E) <2,10> 
||         INTSP   .L2X    A3,B5             ; |812| (E) <4,6> 

           INTSP   .L2X    A3,B5             ; |812| (E) <5,5> 
||         STW     .D2T2   B5,*B6++(8)       ; |812| (E) <3,9> 

           STW     .D2T2   B5,*B4++(8)       ; |812| (E) <3,10> 
||         INTSP   .L2X    A3,B5             ; |812| (E) <5,6> 

           STW     .D2T2   B5,*B6++(8)       ; |812| (E) <4,9> 
           STW     .D2T2   B5,*B4++(8)       ; |812| (E) <4,10> 

           MVC     .S2     B7,CSR            ; interrupts on
||         STW     .D2T2   B5,*B6++(8)       ; |812| (E) <5,9> 

           STW     .D2T2   B5,*B4++(8)       ; |812| (E) <5,10> 
	.line	7
           MVKL    .S1     _temp,A0          ; |809| 
           MVKH    .S1     _temp,A0          ; |809| 
           MV      .S2X    A0,B10            ; |809| 
	.line	12

           MV      .L1X    B10,A4            ; |814| 
||         MVKL    .S1     _rx,A10           ; |814| 
||         MVKL    .S2     _DSPF_sp_convol,B5 ; |814| 

           MVKH    .S1     _rx,A10           ; |814| 
||         MVKH    .S2     _DSPF_sp_convol,B5 ; |814| 

           MVK     .S1     0x9a0,A8          ; |814| 
||         MV      .D1     A10,A6            ; |814| 
||         CALL    .S2     B5                ; |814| 

           MVKL    .S2     _cos_filter,B4    ; |814| 
           MVKL    .S2     RL1,B3            ; |814| 
           MVKH    .S2     RL1,B3            ; |814| 
           MVKH    .S2     _cos_filter,B4    ; |814| 
           MVK     .S2     0x50,B6           ; |814| 
RL1:       ; CALL OCCURS                     ; |814| 
	.line	14
           NOP             1

           MV      .D1     A10,A4            ; |816| 
||         MVKL    .S2     RL2,B3            ; |816| 
||         MVKL    .S1     _sync,A0          ; |816| 

           MVKL    .S2     _training,B4      ; |816| 
||         MVKH    .S1     _sync,A0          ; |816| 

           CALL    .S2X    A0                ; |816| 
           MVKH    .S2     _training,B4      ; |816| 
           MVKH    .S2     RL2,B3            ; |816| 
           NOP             3
RL2:       ; CALL OCCURS                     ; |816| 
           NOP             1

           SUB     .D2     B10,16,B7
||         EXT     .S1     A4,16,16,A0       ; |816| 
||         MVKL    .S2     _RefIndex,B4      ; |816| 

           MVK     .S1     1024,A3
||         ADDAW   .D1     A10,A0,A0
||         MVKH    .S2     _RefIndex,B4      ; |816| 

           ADD     .D1     A3,A0,A4
||         MVK     .S2     1056,B4
||         STH     .D2T1   A4,*B4            ; |816| 

           ZERO    .D2     B4
||         ADD     .S2X    B4,A0,B6

	.line	16

           MV      .L1X    B4,A3
||         MVK     .S2     0x80,B5           ; |818| 

           ADD     .D2     4,B7,B7
||         LDW     .D1T1   *A4++(64),A5      ; |820| (P) <0,0> 
||         B       .S1     L8                ; |822| (P) <0,3> 
||         MV      .L1X    B7,A0
||         MVK     .S2     0x1,B1            ; init prolog collapse predicate
||         SUB     .L2     B5,1,B0

           SUB     .S1X    B5,1,A1
           ADD     .S1X    1,B0,A2
;** --------------------------------------------------------------------------*
L8:    ; PIPED LOOP KERNEL

   [ A2]   LDW     .D2T2   *B6++(64),B5      ; |820| <1,3> 
|| [ B0]   B       .S1     L8                ; |822| <1,3> 
|| [ A1]   LDW     .D1T1   *A4++(64),A5      ; |820| <2,0> 

   [!B1]   STW     .D2T2   B4,*++B7(16)      ; |821| <0,7> 
|| [!B1]   ST

⌨️ 快捷键说明

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