📄 dd_edma_a.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 + -