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

📄 gaecepca.s54

📁 TI公司DSP/tms320c55x/tms320c54x系列的声学回声消除代码
💻 S54
字号:
*-------------------------------------------------------------------------*
*                                                                         *
*   THIS IS AN UNPUBLISHED WORK CONTAINING CONFIDENTIAL AND PROPRIETARY   *
*   INFORMATION.  IF PUBLICATION OCCURS, THE FOLLOWING NOTICE APPLIES:    *
*      "COPYRIGHT 2003 MICHAEL TSIROULNIKOV, ALL RIGHTS RESERVED"         *
*                                                                         *
*-------------------------------------------------------------------------*/
	.mmregs
	.include "gaeci.h54"
	.sect ".ftext3"
	
_IN_SHFT        		.set (3)
_EN_SHFT        		.set (1)
_NORM_SHFT      		.set (15)
_REG2           		.set (1 << 8); load high!!!!

	.ref					_gaec_utl_en2log

;-------------------------------------------------------------------------
	.global _gaec_epc_in
;-------------------------------------------------------------------------
_gaec_epc_in
;S16 *psSav			= a(ar2),
;S32 *pslXcAcc		= sp(1),
;S16 *psXc			= sp(2),
;S16 *psIn			= sp(3),
;S32 *plsReg		= sp(4) - reused
;
	stlm 	a, ar2
	ssbx 	sxm
	nop
	mvmm 	ar2, ar3
	mar 	*+ar3(#(GAEC_FR_SZ/2))
	rpt 	#(GAEC_EPC_SSZ-1)
		mvdd 	*ar3+, *ar2+
	mvdk 	*sp(3), ar3
	stm 	#GAEC_FR_SZ/2-1, brc
	rptb 	Q11-1
		ld 		*ar3+, 16, a
		add 	*ar3+, 16, a
		sth 	a, -_IN_SHFT, *ar2+
Q11
	mar 	*ar2-
	mvmm 	ar2, ar3
	mvdk 	*sp(1), ar4
	stm 	#GAEC_EPC_MAXD-1, brc
	rptb	Q12-1
		rptz	a, #GAEC_FR_SZ/2-1
			mac 	*ar2-, *ar3-, a
		dld		*ar4, b
		sub 	b, a
		add 	a, -_EN_SHFT, b
		dst		b, *ar4+
		mar 	*+ar2(#GAEC_FR_SZ/2)
		mar 	*+ar3(#GAEC_FR_SZ/2-1)
Q12
	mar		*+ar4(#(-GAEC_EPC_MAXD*2))
	dld		*ar4, a
	mvdk 	*sp(4), ar3
	dadd 	*ar3, a
	dst 	a, *ar4
	exp 	a
	nop
	norm 	a
	sth 	a, *sp(4)
	ld 		#(1<<12), 16, a
	rpt		#(16-1)
	 	subc 	*sp(4), a
	stl 	a, *sp(3)
	addm 	#-1, *(t)
	
	mvdk	*sp(2), ar3
	stm 	#GAEC_EPC_MAXD-1, brc
	rptb 	Q13-1
		dld 	*ar4+, a	
		norm 	a
		maca 	*sp(3)
		sth 	a, (16-_NORM_SHFT), *ar3+
Q13
	ret		
	 
;-------------------------------------------------------------------------
	.global _gaec_epc_corr
;-------------------------------------------------------------------------
_gaec_epc_corr
; GAEC_tDb *pDb,	= a
; GAEC_tScEpc *pSc	= sp(1)
;
	stlm 	a, ar2
	ssbx	sxm
	nop
	mvdk 	*sp(1), ar3
;
; snd	
	mvmm 	ar3, ar4
	mar 	*+ar4(#GAEC_tScEpc.asEpcSnd + GAEC_EPC_MIND)
	rptz 	a, #(GAEC_EPC_MAXD-GAEC_EPC_MIND-1)
		squra 	*ar4+, a
	add 	#_REG2, 16, a
	call 	_gaec_utl_en2log
	stl 	a, *ar3(#(GAEC_tScEpc.sEpcSnd))
; 
; rcv	
	mvmm 	ar3, ar4
	mar 	*+ar4(#GAEC_tScEpc.asEpcRcv + GAEC_EPC_MIND)
	rptz 	a, #(GAEC_EPC_MAXD-GAEC_EPC_MIND-1)
		squra 	*ar4+, a
	add 	#_REG2, 16, a
	call 	_gaec_utl_en2log
	stl 	a, *ar3(#(GAEC_tScEpc.sEpcRcv))
;
;	
	mvmm 	ar3, ar4
	mar 	*+ar4(#GAEC_tScEpc.asEpcSnd + GAEC_EPC_MIND)
	mvmm 	ar3, ar5
	mar 	*+ar5(#GAEC_tScEpc.asEpcRcv + GAEC_EPC_MIND)
	rptz 	a, #(GAEC_EPC_MAXD-GAEC_EPC_MIND-1)
		mac		*ar4+, *ar5+, a
	ld 		#0, b
	max 	a
	call 	_gaec_utl_en2log
	stl 	a, *ar3(#(GAEC_tScEpc.sEpcXcr))
;
;
;	ld 		*ar3(#(GAEC_tScEpc.sEpcXcr)), a		 	
	ld 		*ar3(#(GAEC_tScEpc.sEpcSnd)), b
	add		*ar3(#(GAEC_tScEpc.sEpcRcv)), b
	sub 	b, -1, a
	ld 		#-30*GAEC_1DB, b
	max 	a
	stl		a, *ar2(#(GAEC_tDb.sEpcXcr))
	ret
	
	
	
	
			
	
	

⌨️ 快捷键说明

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