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

📄 ppdma.asm

📁 ADSP与NANDFLASH的连接
💻 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 + -