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

📄 rxdetector.asm

📁 MIMO 2x2接收端选择全系统仿真代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
           LDW     .D1T1   *+A9(64),A14      ; |470| 
           NOP             1

           LDDW    .D2T2   *+SP(72),B11:B10  ; |470| 
||         LDDW    .D1T1   *+A9(48),A11:A10  ; |470| 

           RET     .S2     B3                ; |470| 
||         LDDW    .D2T2   *+SP(80),B13:B12  ; |470| 
||         LDDW    .D1T1   *+A9(56),A13:A12  ; |470| 

           LDW     .D2T1   *++SP(88),A15     ; |470| 
           NOP             4
           ; BRANCH OCCURS                   ; |470| 
	.endfunc	470,03c08fc00h,88



	.sect	".text"
	.sym	_norm_ML,_norm_ML, 38, 3, 0
	.func	228

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

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_norm_ML:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_Z1_r,4, 6, 17, 32
	.sym	_Z1_i,20, 6, 17, 32
	.sym	_Z2_r,6, 6, 17, 32
	.sym	_Z2_i,22, 6, 17, 32
	.sym	_Z2_i,26, 6, 4, 32
	.sym	_Z2_r,10, 6, 4, 32
	.sym	_Z1_i,20, 6, 4, 32
	.sym	_Z1_r,4, 6, 4, 32
	.sym	_len_Z1,11, 6, 4, 32
	.sym	_len_Z2,20, 6, 4, 32
	.sym	_norm_Z,0, 6, 4, 32
;** 234	-----------------------    len_Z1 = sqrtf(Z1_r*Z1_r+Z1_i*Z1_i);
;** 235	-----------------------    len_Z2 = sqrtf(Z2_r*Z2_r+Z2_i*Z2_i);
;** 237	-----------------------    norm_Z = sqrtf(len_Z1*len_Z1+len_Z2*len_Z2);
;** 239	-----------------------    return norm_Z;
           STW     .D2T2   B10,*SP--(16)     ; |229| 
           STW     .D2T2   B3,*+SP(12)       ; |229| 
           STW     .D2T1   A11,*+SP(8)       ; |229| 
           STW     .D2T1   A10,*+SP(4)       ; |229| 

           MV      .D2     B6,B10            ; |229| 
||         MV      .D1     A6,A10            ; |229| 

	.line	7

           MPYSP   .M2     B4,B4,B4          ; |234| 
||         MPYSP   .M1     A4,A4,A3          ; |234| 
||         MVKL    .S1     _sqrtf,A0         ; |234| 

           MVKH    .S1     _sqrtf,A0         ; |234| 
           CALL    .S2X    A0                ; |234| 
           MVKL    .S2     RL14,B3           ; |234| 
           ADDSP   .L1X    B4,A3,A4          ; |234| 
           MVKH    .S2     RL14,B3           ; |234| 
           NOP             2
RL14:      ; CALL OCCURS                     ; |234| 
           MV      .D1     A4,A11            ; |234| 
	.line	8

           MPYSP   .M2     B10,B10,B4        ; |235| 
||         MPYSP   .M1     A10,A10,A3        ; |235| 
||         MVKL    .S1     _sqrtf,A0         ; |235| 

           MVKH    .S1     _sqrtf,A0         ; |235| 
           CALL    .S2X    A0                ; |235| 
           MVKL    .S2     RL15,B3           ; |235| 
           ADDSP   .L1X    B4,A3,A4          ; |235| 
           MVKH    .S2     RL15,B3           ; |235| 
           NOP             2
RL15:      ; CALL OCCURS                     ; |235| 
           MV      .S2X    A4,B4             ; |235| 
	.line	10

           MPYSP   .M1     A11,A11,A0        ; |237| 
||         MVKL    .S2     _sqrtf,B4         ; |237| 
||         MPYSP   .M2     B4,B4,B5          ; |237| 

           MVKH    .S2     _sqrtf,B4         ; |237| 
           CALL    .S2     B4                ; |237| 
           MVKL    .S2     RL16,B3           ; |237| 
           ADDSP   .L1X    B5,A0,A4          ; |237| 
           MVKH    .S2     RL16,B3           ; |237| 
           NOP             2
RL16:      ; CALL OCCURS                     ; |237| 
	.line	12
	.line	13
           LDW     .D2T2   *+SP(12),B3       ; |240| 
           MV      .S1X    SP,A9             ; |240| 
           LDW     .D1T1   *+A9(4),A10       ; |240| 
           LDW     .D1T1   *+A9(8),A11       ; |240| 
           LDW     .D2T2   *++SP(16),B10     ; |240| 
           RET     .S2     B3                ; |240| 
           NOP             5
           ; BRANCH OCCURS                   ; |240| 
	.endfunc	240,004080c00h,16



	.sect	".text"
	.sym	_MLDetector,_MLDetector, 32, 3, 0
	.func	257

;******************************************************************************
;* FUNCTION NAME: _MLDetector                                                 *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,   *
;*                           A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,   *
;*                           B13,SP                                           *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,   *
;*                           A15,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,   *
;*                           B13,SP                                           *
;*   Local Frame Size  : 0 Args + 96 Auto + 44 Save = 140 byte                *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_MLDetector:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_pDetectorStat,4, 24, 17, 32, $$fake0
	.sym	C$2,4, 6, 4, 32
	.sym	C$3,20, 6, 4, 32
	.sym	C$4,0, 6, 4, 32
	.sym	C$5,3, 6, 4, 32
	.sym	C$6,21, 6, 4, 32
	.sym	C$7,0, 214, 4, 32,, 2
	.sym	C$8,21, 214, 4, 32,, 2
	.sym	C$9,5, 6, 4, 32
	.sym	C$10,22, 6, 4, 32
	.sym	C$11,4, 6, 4, 32
	.sym	C$12,20, 6, 4, 32
	.sym	C$13,10, 14, 4, 32
	.sym	C$14,5, 6, 4, 32
	.sym	C$15,22, 6, 4, 32
	.sym	C$16,7, 6, 4, 32
	.sym	C$17,20, 6, 4, 32
	.sym	C$18,0, 214, 4, 32,, 2
	.sym	C$19,21, 214, 4, 32,, 2
	.sym	C$20,5, 6, 4, 32
	.sym	C$21,20, 6, 4, 32
	.sym	C$22,3, 6, 4, 32
	.sym	C$23,22, 6, 4, 32
	.sym	C$24,0, 6, 4, 32
	.sym	C$25,0, 14, 4, 32
	.sym	C$26,3, 24, 4, 32, $$fake1
	.sym	C$27,3, 24, 4, 32, $$fake1
	.sym	Y$0,4, 6, 4, 32
	.sym	Y$1,3, 6, 4, 32
	.sym	Y$2,6, 6, 4, 32
	.sym	Y$3,22, 6, 4, 32
	.sym	Y$8,23, 6, 4, 32
	.sym	Y$9,5, 6, 4, 32
	.sym	Y$10,6, 6, 4, 32
	.sym	Y$11,22, 6, 4, 32
	.sym	$_pS_out_0,28, 6, 4, 32
	.sym	$_pS_out_4,14, 6, 4, 32
	.sym	$_pS_out_8,72, 6, 1, 32
	.sym	$_pS_out_12,29, 6, 4, 32
	.sym	_pDetectorStat,36, 24, 1, 32, $$fake0
	.sym	_data_len,40, 6, 1, 32
	.sym	_pr1_data_I,44, 22, 1, 32
	.sym	_pr1_data_Q,48, 22, 1, 32
	.sym	_pr2_data_I,52, 22, 1, 32
	.sym	_pr2_data_Q,56, 22, 1, 32
	.sym	_normmin,12, 6, 4, 32
	.sym	_newnorm,4, 6, 4, 32
	.sym	_pp,60, 4, 1, 32
	.sym	_idx,10, 4, 4, 32
	.sym	_s1_I,96, 4, 1, 32
	.sym	_s1_Q,13, 4, 4, 32
	.sym	_s2_I,15, 4, 4, 32
	.sym	_s2_Q,10, 4, 4, 32
	.sym	U$121,88, 4, 1, 32
	.sym	U$133,76, 22, 1, 32
	.sym	U$130,92, 22, 1, 32
	.sym	U$127,80, 22, 1, 32
	.sym	U$122,84, 22, 1, 32
	.sym	U$119,26, 6, 4, 32
	.sym	U$118,11, 6, 4, 32
	.sym	U$117,27, 6, 4, 32
	.sym	K$19,68, 6, 1, 32
	.sym	K$20,64, 6, 1, 32
	.sym	_pS,4, 246, 1, 128,, 2, 2
	.sym	_pZ,20, 246, 1, 128,, 2, 2
;** 275	-----------------------    data_len = C$25 = pDetectorStat->uiNoOfSymb;
;** 277	-----------------------    C$27 = pDetectorStat->pfCplxSymbBuff_1;
;** 277	-----------------------    pr1_data_I = C$27->pIBuffer;
;** 278	-----------------------    pr1_data_Q = C$27->pQBuffer;
;** 279	-----------------------    C$26 = pDetectorStat->pfCplxSymbBuff_2;
;** 279	-----------------------    pr2_data_I = C$26->pIBuffer;
;** 280	-----------------------    pr2_data_Q = C$26->pQBuffer;
;** 282	-----------------------    if ( (float)C$25 <= 0.0F ) goto g18;
;**  	-----------------------    K$20 = C$24 = -3.0F;
;**  	-----------------------    K$19 = C$24;
;** 282	-----------------------    pp = 0;
;**  	-----------------------    #pragma LOOP_FLAGS(5120u)

           ADDK    .S2     -144,SP           ; |258| 
||         MV      .S1X    SP,A9             ; |258| 

           STW     .D2T1   A15,*+SP(144)
           STW     .D2T2   B13,*+SP(140)
           STW     .D2T2   B12,*+SP(136)
           STW     .D2T2   B11,*+SP(132)

           STW     .D1T1   A12,*-A9(32)
||         STW     .D2T2   B10,*+SP(128)

           STW     .D1T1   A13,*-A9(28)
||         STW     .D2T2   B3,*+SP(124)

           STW     .D2T1   A11,*+SP(108)
           STW     .D2T1   A10,*+SP(104)
           STW     .D1T1   A14,*-A9(24)
           STW     .D2T1   A4,*+SP(36)       ; |258| 
	.line	19
           MV      .D1     A4,A0
           LDW     .D1T1   *+A0(8),A0        ; |275| 
           NOP             4
           INTSPU  .L2X    A0,B4             ; |275| 
           NOP             3
           STW     .D2T2   B4,*+SP(40)       ; |275| 
	.line	21
           MV      .D1     A4,A3
           LDW     .D1T1   *A3,A3            ; |277| 
           NOP             4
           LDW     .D1T1   *A3,A4            ; |277| 
           NOP             4
           STW     .D2T1   A4,*+SP(44)       ; |277| 
	.line	22
           LDW     .D1T1   *+A3(4),A3        ; |278| 
           NOP             4
           STW     .D2T1   A3,*+SP(48)       ; |278| 
	.line	23
           LDW     .D2T1   *+SP(36),A3
           NOP             4
           LDW     .D1T1   *+A3(4),A3        ; |279| 
           NOP             4
           LDW     .D1T1   *A3,A4            ; |279| 
           NOP             4
           STW     .D2T1   A4,*+SP(52)       ; |279| 
	.line	24
           LDW     .D1T1   *+A3(4),A3        ; |280| 
           NOP             4
           STW     .D2T1   A3,*+SP(56)       ; |280| 
	.line	26
           INTSPU  .L1     A0,A3             ; |282| 
           ZERO    .D1     A0                ; |282| 
           STW     .D2T1   A0,*+SP(60)       ; |282| 
           NOP             1
           CMPGTSP .S1     A3,A0,A1          ; |282| 
   [!A1]   B       .S1     L13               ; |282| 
           ZERO    .D2     B4
           MVKH    .S2     0xc0400000,B4
           STW     .D2T2   B4,*+SP(64)
           STW     .D2T2   B4,*+SP(68)
   [ A1]   LDW     .D2T2   *+SP(44),B11
           ; BRANCH OCCURS                   ; |282| 
;** --------------------------------------------------------------------------*
;**	-----------------------g3:
;** 286	-----------------------    pS[0] = K$20;
;** 287	-----------------------    pS[1] = K$20;
;** 288	-----------------------    pS[2] = K$20;
;** 289	-----------------------    pS[3] = K$20;
;** 292	-----------------------    C$19 = &pH_hat_i;
;** 292	-----------------------    C$23 = C$19[2];
;** 292	-----------------------    C$18 = &pH_hat_r;
;** 292	-----------------------    C$22 = C$18[2]*K$20;
;** 292	-----------------------    C$21 = *(float *)C$19*K$20;
;** 292	-----------------------    C$20 = *(float *)C$18*K$20;
;** 292	-----------------------    C$13 = (pDetectorStat->uiNextSymb+(unsigned)pp)%pDetectorStat->uiBufLen;
;** 292	-----------------------    pZ[0] = Y$0 = pr1_data_I[C$13]-(C$20-C$21+C$22-C$23*K$19);
;** 293	-----------------------    pZ[1] = Y$1 = pr1_data_Q[C$13]-(C$20+C$21+C$22+C$23*K$20);
;** 294	-----------------------    C$17 = C$19[3]*K$20;
;** 294	-----------------------    C$16 = C$18[3]*K$20;
;** 294	-----------------------    C$15 = C$19[1]*K$20;
;** 294	-----------------------    C$14 = C$18[1]*K$20;
;** 294	-----------------------    pZ[2] = Y$2 = pr2_data_I[C$13]-(C$14-C$15+C$16-C$17);
;** 295	-----------------------    pZ[3] = Y$3 = pr2_data_Q[C$13]-(C$14+C$15+C$16+C$17);
;** 284	-----------------------    idx = C$13;
;** 297	-----------------------    normmin = norm_ML(Y$0, Y$1, Y$2, Y$3);
;** 299	-----------------------    _pS_out_0 = pS[0];
;** 300	-----------------------    _pS_out_4 = pS[1];
;** 301	-----------------------    _pS_out_8 = pS[2];

⌨️ 快捷键说明

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