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

📄 gaeccnla.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 ".ftext1"

;-------------------------------------------------------------------------
	.global _gaec_cancel_dc
;-------------------------------------------------------------------------
_gaec_cancel_dc
; GAEC_tDb *pDb	= a
; GAEC_tSc *pSc = sp(1)
; S16 *psAdf	= sp(2)
; S16 *psErr	= sp(3)
; S16 blk		= sp(4)
; S16 band		= sp(5)
;
; ar0 = blk, 2
; ar2 = pDb, psErr
; ar3 = pSc, psSnd
; ar4 = psAdf
; ar5 = psRcv
;
	stlm 	a, ar2
	ssbx	sxm
	orm		#1, *(pmst)		; set sst bit
	mvdk 	*sp(1), ar3
	mvdk 	*sp(2), ar4
	mvdk	*sp(4), ar0
	cmpm	*sp(5), #0
	
	mvdk	*ar2(#(GAEC_tDb.psRcv)), ar5
	mar		*+ar5(#GAEC_ADF_BSZ)
	mar		*ar5+0
	
	mvdk 	*sp(3), ar2
	mar		*ar2+0
	
	mar		*+ar3(#GAEC_tSc.aasSin)
	mar		*ar3+0
	bc		D10, tc
		mar 	*+ar2(#GAEC_BLKS*GAEC_BANDS);
		mar 	*+ar3(#GAEC_BLKS*GAEC_BANDS);
		mar 	*ar4+
		mar 	*+ar5(#GAEC_RCV_SZ*GAEC_BANDS);
D10
	stm		#2, ar0
	stm		#0, bk
	ld 		*ar3, 15, a
	rpt		#GAEC_ADF_SZ-1
		mas 	*ar5-, *ar4+0%, a
	add 	#1, 14, a
	sth		a, 1, *ar2
;	
	andm	#~1, *(pmst)	; clear sst bit
	ret
	
;-------------------------------------------------------------------------
	.global _gaec_cancel_ac
;-------------------------------------------------------------------------
_gaec_cancel_ac
; GAEC_tDb *pDb	= a
; GAEC_tSc *pSc = sp(1)
; S16 *psAdf	= sp(2)
; S16 *psErr	= sp(3)
; S16 blk		= sp(4)
;
; ar0 = blk, 2
; ar2 = pDb, psAdf
; ar3 = pSc, psErr
; ar4 = psRcvQ
; ar5 = psRcvI
; ar7 = psSnd
;
	pshm	ar7
	stlm 	a, ar2
	ssbx	sxm
	orm		#1, *(pmst)
	mvdk 	*sp(1+1), ar3
	mvdk	*sp(4+1), ar0
;	
; psRcvI, psRcvQ	
	mvdk	*ar2(#(GAEC_tDb.psRcv)), ar5
	mar		*+ar5(#GAEC_ADF_BSZ+GAEC_RCV_SZ)
	mar		*ar5+0
	mvmm	ar5, ar4
	mar		*+ar4(#GAEC_RCV_SZ*GAEC_BANDS)
;
; psAdf (both adfI and adfQ)
	mvdk 	*sp(2+1), ar2
	mar 	*+ar2(#GAEC_ADF_SZ*2)
;
	mvmm	ar3, ar7
	mar		*+ar7(#GAEC_tSc.aasSin+GAEC_BLKS)
	mar		*ar7+0
	mvdk 	*sp(3+1), ar3
	mar		*+ar3(#GAEC_BLKS)
	mar		*ar3+0

	stm		#(GAEC_BANDS-1)-1, brc
	stm		#2, ar0
	stm		#0, bk	
	rptb	D20-1
		ld 		*ar7, 15, a
		ld 		*ar7(#GAEC_BLKS*GAEC_BANDS), 15, b	
		rpt		#GAEC_ADF_SZ-1
			mas 	*ar5-, *ar2+0%, a
		mar		*+ar5(#GAEC_ADF_SZ)
		mar 	*+ar2(#-GAEC_ADF_SZ*2)
		rpt		#GAEC_ADF_SZ-1
			mas 	*ar4-, *ar2+0%, b
		mar		*+ar4(#GAEC_ADF_SZ)
		mar 	*+ar2(#-GAEC_ADF_SZ*2+1); move to AdfQ
		
		rpt		#GAEC_ADF_SZ-1
			mac 	*ar5-, *ar2+0%, b
		mar		*+ar5(#GAEC_ADF_SZ+GAEC_RCV_SZ) ; next band
		mar 	*+ar2(#-GAEC_ADF_SZ*2)
		rpt		#GAEC_ADF_SZ-1
			mas 	*ar4-, *ar2+0%, a
		mar		*+ar4(#GAEC_ADF_SZ+GAEC_RCV_SZ) ; next band
		mar 	*+ar2(#-GAEC_ADF_SZ*2-1 + GAEC_ADF_SZ*2) ; next band's adfI
		
		add 	#1, 14, a
		add 	#1, 14, b
		sth 	a, 1, *ar3
		sth 	b, 1, *ar3(#GAEC_BLKS*GAEC_BANDS)
		
		mar 	*+ar3(#GAEC_BLKS)	; next band
		mar 	*+ar7(#GAEC_BLKS)	; next band
D20	
;
	andm	#~1, *(pmst)
	popm 	ar7
	ret

⌨️ 快捷键说明

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