?? 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 + -