📄 memdma_move1d.asm
字号:
#include "defBF533.h"
#define SRCMEM1DCFG 0x6809 // DMA read
#define DSTMEM1DCFG 0x680B // DMA write
.extern MemDMAQueue;
.section L1_data_a;
.align 4;
Next_Descriptor_Address:
.byte4 _Next_Descriptor_Address[2] = MemDMAQueue,
MemDMAQueue;
.section L1_code;
.align 4;
.global memdma_move1D;
memdma_move1D:
p1.l = Next_Descriptor_Address;
p1.h = Next_Descriptor_Address;
r5 = [p1++];
i0 = r5;
r4 = [p1--];
b0 = r4;
l0 = 32;
m0 = 8;
nop;
/*****************************************************************************************
dummy read skip the SOURCE_NEXT_DESC_ADDRESS
******************************************************************************************/
r4.l = w[i0++];
/******************************************************************************************
set start address
******************************************************************************************/
w[i0++] = r0.l;
w[i0++] = r0.h;
/******************************************************************************************
set DMA_CONFIG
******************************************************************************************/
r0.l = SRCMEM1DCFG;
w[i0++] = r0.l;
/******************************************************************************************
set XCNT/XMODIFY
******************************************************************************************/
[i0++m0] = r1;
r4.l = w[i0++];
w[i0++] = r3.l;
w[i0++] = r3.h;
r3.l = DSTMEM1DCFG;
w[i0++] = r3.l;
[i0++m0] = r1;
l0 = 0;
r0 = i0;
[p1] = r0; //update tail with NDP value
r0 = r5;
rts;
memdma_move1D.end:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -