📄 ppdma.asm
字号:
#include <def21262.h>
.global BYTE_PPDMA;
.global PP_DMA_READ;
.global PP_DMA_WRITE;
.section/pm seg_pmco;
//######################################################################
BYTE_PPDMA:
r10 = 0;
dm(PPCTL) = r10;
r0 = 0x01600000; // Unused external memory space on EZ-KIT
dm(EIPP) =r0; // External memory DMA address
r0 = 1;
dm(EMPP) = r0; // External memory DMA access modifier
//r8 - count for external memory accesses is passed from calling code
dm(ECPP) = r8; // Contains number of external DMA accesses remaining
//r7 is passed from calling code - this is intialized to point the command word
dm(IIPP) = r7; // Internal memory DMA address
r0 = 1;
dm(IMPP) = r0; // Internal memory DMA access modifier
r0 = 1;
dm(ICPP) = r0; // Contains number of DMA transfers remaining
ustat1 = dm(PPCTL);
bit set ustat1 PPDUR32 | PPBHC | PPDEN | PPTRAN | PPBHD | PPEN ;
dm(PPCTL) = ustat1;
RTS;
BYTE_PPDMA.end:
//######################################################################
PP_DMA_READ:
r10 = 0;
dm(PPCTL) = r10;
r0 = 0x01600000; // Unused external memory space on EZ-KIT
dm(EIPP) =r0; // External memory DMA address
r0 = 1;
dm(EMPP) = r0; // External memory DMA access modifier
//r8 - count for external memory accesses is passed from calling code
dm(ECPP) = r8; // Contains number of external DMA accesses remaining
//r7 is passed from calling code - this is intialized to point the command word
dm(IIPP) = r7; // Internal memory DMA address
r0 = 1;
dm(IMPP) = r0; // Internal memory DMA access modifier
//r6 contains internal memory transfers
dm(ICPP) = r6; // Contains number of DMA transfers remaining
ustat1 = dm(PPCTL);
bit set ustat1 PPDUR32 | PPBHC | PPDEN | PPBHD | PPEN ;
dm(PPCTL) = ustat1;
RTS;
PP_DMA_READ.end:
//######################################################################
PP_DMA_WRITE:
r10 = 0;
dm(PPCTL) = r10;
r0 = 0x01600000; // Unused external memory space on EZ-KIT
dm(EIPP) =r0; // External memory DMA address
r0 = 1;
dm(EMPP) = r0; // External memory DMA access modifier
//r8 - count for external memory accesses is passed from calling code
dm(ECPP) = r8; // Contains number of external DMA accesses remaining
//r7 is passed from calling code - this is intialized to point the command word
dm(IIPP) = r7; // Internal memory DMA address
r0 = 1;
dm(IMPP) = r0; // Internal memory DMA access modifier
//r6 contains internal memory transfers
dm(ICPP) = r6; // Contains number of DMA transfers remaining
ustat1 = dm(PPCTL);
bit set ustat1 PPDUR32 | PPBHC | PPDEN | PPBHD | PPTRAN | PPEN ;
dm(PPCTL) = ustat1;
RTS;
PP_DMA_WRITE.end:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -