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

📄 dsk_app.asm

📁 详细的OFDM设计过程
💻 ASM
📖 第 1 页 / 共 5 页
字号:
           NOP             4
           ; BRANCH OCCURS                   ; |883| 
	.endfunc	883,03c081c00h,32



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

;******************************************************************************
;* 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)     ; |789| 
           STW     .D2T2   B10,*+SP(12)      ; |789| 
           STW     .D2T2   B3,*+SP(8)        ; |789| 
           STW     .D2T1   A10,*+SP(4)       ; |789| 
           MV      .D1     A4,A10            ; |789| 
	.line	7
           MVKL    .S1     _memset,A0        ; |794| 
           MVKH    .S1     _memset,A0        ; |794| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 796
;*      Loop opening brace source line   : 797
;*      Loop closing brace source line   : 797
;*      Loop Unroll Multiple             : 2x
;*      Known Minimum Trip Count         : 596
;*      Known Maximum Trip Count         : 596
;*      Known Max Trip Count Factor      : 596
;*      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                ; |794| 
           NOP             2
           MVK     .S1     0x13e0,A6         ; |794| 

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

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

RL0:       ; CALL OCCURS                     ; |794| 
           NOP             1
           MVKL    .S2     _temp+160,B6
           MVKL    .S2     _temp+164,B4
           MVKH    .S2     _temp+164,B4

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

	.line	9
           MVC     .S2     CSR,B7
           AND     .S2     -2,B7,B5
           MVC     .S2     B5,CSR            ; interrupts off
           B       .S1     L6                ; |797| (P) <0,5> 
           MVK     .S1     0x254,A3          ; |796| 
           B       .S1     L6                ; |797| (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)       ; |797| <0,9> 
||         INTSP   .L2X    A3,B5             ; |797| <2,5> 
|| [ A1]   B       .S1     L6                ; |797| <2,5> 
|| [!B0]   LDH     .D1T1   *+A0(2),A3        ; |797| <4,1> 

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

;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 803
;*      Loop opening brace source line   : 804
;*      Loop closing brace source line   : 807
;*      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 -mh64
;*
;*      Minimum safe trip count     : 1 (after unrolling)
;*----------------------------------------------------------------------------*
L7:    ; PIPED LOOP EPILOG AND PROLOG

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

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

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

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

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

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

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

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

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

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

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

           MVK     .S1     0x4d0,A8          ; |799| 
||         MV      .D1     A10,A6            ; |799| 
||         CALL    .S2     B5                ; |799| 

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

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

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

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

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

           MVK     .S1     512,A3
||         ADDAW   .D1     A10,A0,A0
||         MVKH    .S2     _RefIndex,B4      ; |801| 

           ADD     .D1     A3,A0,A4
||         MVK     .S2     528,B4
||         STH     .D2T1   A4,*B4            ; |801| 

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

	.line	16

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

           ADD     .D2     4,B7,B7
||         LDW     .D1T1   *A4++(32),A5      ; |805| (P) <0,0> 
||         B       .S1     L8                ; |807| (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++(32),B5      ; |805| <1,3> 
|| [ B0]   B       .S1     L8                ; |807| <1,3> 
|| [ A1]   LDW     .D1T1   *A4++(32),A5      ; |805| <2,0> 

   [!B1]   STW     .D2T2   B4,*++B7(16)      ; |806| <0,7> 
|| [!B1]   STW     .D1T1   A5,*++A0(16)      ; |805| <0,7> 

   [ B1]   SUB     .S2     B1,1,B1           ; <0,8> 
|| [ A2]   SUB     .S1     A2,1,A2           ; <0,8> 
|| [ A1]   SUB     .L1     A1,1,A1           ; <0,8> 
|| [!B1]   STW     .D2T2   B5,*+B7(4)        ; |805| <0,8> 
|| [!B1]   STW     .D1T1   A3,*+A0(12)       ; |806| <0,8> 
|| [ B0]   SUB     .L2     B0,1,B0           ; |807| <2,2> 

;** --------------------------------------------------------------------------*
L9:    ; PIPED LOOP EPILOG
	.line	23
           NOP             1

           MV      .L1X    B10,A4            ; |810| 
||         MVKL    .S2     _workbuffer,B11   ; |810| 
||         MVKL    .S1     _dft_DSP,A0       ; |810| 

           MVKH    .S2     _workbuffer,B11   ; |810| 
||         MVKH    .S1     _dft_DSP,A0       ; |810| 

           MV      .D2     B11,B4            ; |810| 
||         CALL    .S2X    A0                ; |810| 

           MVKL    .S2     RL3,B3            ; |810| 
           MVKH    .S2     RL3,B3            ; |810| 
           NOP             3
RL3:       ; CALL OCCURS                     ; |810| 
           NOP             1
           MV      .D2     B11,B4            ; |810| 
	.line	26

           MVKL    .S2     _pilots_prod,B5   ; |813| 
||         MVKL    .S1     _filter_estimation,A3 ; |813| 

           MVKL    .S2     _pilots,B7        ; |813| 
||         MVKH    .S1     _filter_estimation,A3 ; |813| 

           MVKH    .S2     _pilots,B7        ; |813| 
||         MVKL    .S1     _lambda,A0        ; |813| 

           MV      .L1X    B7,A4             ; |813| 
||         MVKH    .S1     _lambda,A0        ; |813| 
||         CALL    .S2X    A3                ; |813| 

           MVKL    .S1     _h_hat,A10        ; |813| 
||         MVKH    .S2     _pilots_prod,B5   ; |813| 
||         LDW     .D1T2   *A0,B6            ; |813| 

           MV      .L1X    B5,A6             ; |813| 
||         MVKL    .S2     _beta,B8          ; |813| 
||         MVKL    .S1     _alpha,A8         ; |813| 

           MVKH    .S1     _alpha,A8         ; |813| 
||         MVKL    .S2     RL4,B3            ; |813

⌨️ 快捷键说明

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