exp9.c

来自「ALTERA NIOS处理器实验」· C语言 代码 · 共 32 行

C
32
字号
#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 + =
减小字号Ctrl + -
显示快捷键?