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

📄 dd_edma_a.asm

📁 CCS开发的基于DSP的数据采集和显示程序
💻 ASM
字号:
EDMA_REG_BASE	.set 0x01A0FF80
EDMA_PARAM_BASE .set 0x01A00000

EDMA_CIPRH		.set 0x24/4
EDMA_ECRH		.set 0x38/4
EDMA_ESRH		.set 0x3C/4
EDMA_CIPRL		.set 0x64/4
EDMA_ECRL		.set 0x78/4
EDMA_ESRL		.set 0x7C/4


				.align 4
				.global _SetEdma			; PASSED
				.global _StartEdma			; PASSED
				.global _WaitEdma			; PASSED
				.global _ClearEdma			; PASSED
				.global _WaitAndClearEdma	; PASSED

_SetEdma:
				mpy		.M1		6,A4,A4
||				mvkl	.S1		EDMA_PARAM_BASE,A5
				mvkh	.S1		EDMA_PARAM_BASE,A5
				shl		.S1		A4,2,A4
				add		.L1		A5,A4,A5
				stw		.D1T2	B4,*+A5[0]
||				b 		.S2		B3
				stw		.D1T1	A6,*+A5[1]
				stw		.D1T2	B6,*+A5[2]
				stw		.D1T1	A8,*+A5[3]
				stw		.D1T2	B8,*+A5[4]
				stw		.D1T1	A10,*+A5[5]
				
_StartEdma:
				mvk		.S1		31,A5
||				mvkl	.S2		EDMA_REG_BASE,B4

				cmpgt	.L1		A4,A5,A1
|| 				mvkh	.S2		EDMA_REG_BASE,B4

  [A1]			mvk		.S2		EDMA_ESRH,B5
  [!A1]			mvk		.S2		EDMA_ESRL,B5
  
  				clr		.S1		A4,5,31,A4
|| 				b 		.S2		B3
  				shl		.S1		A4,5,A5
  				or		.L1		A4,A5,A4
  				zero	.S1		A1
  				set 	.S1		A1,A4,A1
  				stw		.D2T1	A1,*+B4[B5]
  				
_WaitEdma:
				mvk		.S1		31,A5
||				mvkl	.S2		EDMA_REG_BASE,B4

				cmpgt	.L1		A4,A5,A1
||				mvkh	.S2		EDMA_REG_BASE,B4

  [A1]			mvk		.S2		EDMA_CIPRH,B5
  [!A1]			mvk		.S2		EDMA_CIPRL,B5
  				and		.L1		A4,A5,A4
  				shl		.S1		A4,5,A5
  				or		.L1		A4,A5,A4
  				zero	.S1		A3
  				set 	.S1		A3,A4,A3
WaitEdma_10:
  				ldw		.D2T1	*+B4[B5],A2
  				nop		4
  				and		.L1		A3,A2,A2
  [!A2]			b  		.S1		WaitEdma_10
||[A2]			b 		.S2 	B3
  				nop		5


_ClearEdma:
				mvk		.S1		31,A5
||				mvkl	.S2		EDMA_REG_BASE,B4

				cmpgt	.L1		A4,A5,A1
||				mvkh	.S2		EDMA_REG_BASE,B4

  [A1]			mvk		.S2		EDMA_CIPRH,B5
  [!A1]			mvk		.S2		EDMA_CIPRL,B5
  				and		.L1		A4,A5,A4
  				shl		.S1		A4,5,A5
  				or		.L1		A4,A5,A4
|| 				zero	.S1		A3
  				set 	.S1		A3,A4,A3
|| 				b 		.S2		B3
  				stw		.D2T1	A3,*+B4[B5]
  [A1]			mvk		.S2		EDMA_ECRH,B5
  [!A1]			mvk		.S2		EDMA_ECRL,B5
  				stw		.D2T1	A3,*+B4[B5]
  				nop
  				


_WaitAndClearEdma:
				mvk		.S1		31,A5
||				mvkl	.S2		EDMA_REG_BASE,B4

				cmpgt	.L1		A4,A5,A1
||				mvkh	.S2		EDMA_REG_BASE,B4

  [A1]			mvk		.S2		EDMA_CIPRH,B5
  [!A1]			mvk		.S2		EDMA_CIPRL,B5
  				and		.L1		A4,A5,A4
  				shl		.S1		A4,5,A5
  				or		.L1		A4,A5,A4
  				zero	.S1		A3
  				set 	.S1		A3,A4,A3
WaitAndClearEdma_10:
  				ldw		.D2T1	*+B4[B5],A2
  				nop		4
  				and		.L1		A3,A2,A2
  [!A2]			b  		.S1		WaitAndClearEdma_10
  				nop		5
  				b 		.S2		B3
  				stw		.D2T1	A3,*+B4[B5]
  [A1]			mvk		.S2		EDMA_ECRH,B5
  [!A1]			mvk		.S2		EDMA_ECRL,B5
  				stw		.D2T1	A3,*+B4[B5]
  				nop

				.end
			
			
			
			
			
			
			
			
			
			

⌨️ 快捷键说明

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