📄 exp9.c
字号:
#include "excalibur.h"
#define RD_ADDRESS 0x0000
#define WR_ADDRESS 0x4000
#define LENGTH 0x1000
int * m_Addr;
int i;
int Temp=0x0;
int main(void)
{
m_Addr=(int *)0;
for(i=0;i<0x10000;i++) //清零0x0000~0xffff缓冲区
*(m_Addr++)=0;
m_Addr=RD_ADDRESS;
for(i=0;i<LENGTH;i++) //初始化0x0000~0xfff缓冲区
*(m_Addr++)=i;
na_DMA0->np_dmastatus=0; //清零标志位
nr_dma_copy_range_to_range(na_DMA0,4,(int *)RD_ADDRESS,(int *)WR_ADDRESS,LENGTH); //启动传输
while((na_DMA0->np_dmastatus & 0x0011)!=0x0011);
m_Addr=(int *)WR_ADDRESS;
for(i=0;i<LENGTH;i++) //校验传输的数据
if(*(m_Addr++)!=i)
break;
if(i==LENGTH)
printf("DMA传输成功!\n");
else
printf("DMA传输失败! %x\n",i);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -