关于FPGA+USB用DMA传输的问题,新手求解答
时间:10-02
整理:3721RD
点击:
最近拿到一个开发板,这是NIOSII里面的main.c程序,实现了FPGA通过USB芯片与上位机通讯,可是我不太明白啊,上位机发送的数据在哪里赋值呢,上位机是怎么发送数据的呢?
还有,这个句子,if(Write(&o_usbdma,usbDataBuf)>0) return 0;为什么是>0,而不是 0) return 0;这两个语句为什么目标地址和源地址都是同一个usbDataBuf?不解啊
我现在想改一下这个程序,变成发送一个数据,然后再存到SDRAM里面。
最近被这个问题困扰多日,这个要这么改,求解答,感激不尽
#include
#include
#include "string.h"
#include
#include "../inc/IO.h"
#include "../inc/usb.h"
unsigned short usbDataBuf[USB_BUF_MAX_SIZE];
int main()
{
int n;
n = 0;
pReg_LED->data = 0;
// memset(usbDataBuf,0,USB_BUF_MAX_SIZE *2);
alt_dma_txchan o_usbdma;
alt_dma_rxchan i_usbdma;
memset(usbDataBuf,0,USB_BUF_MAX_SIZE *2);
if(Initial_InDMA(&i_usbdma) 0) return 0;
while(!IsOutDone());
}
n++;
if(n>0x3ffff)
{
pReg_LED->data = pReg_LED->data + 1;
n=0;
}
};
return 0;
}
还有,这个句子,if(Write(&o_usbdma,usbDataBuf)>0) return 0;为什么是>0,而不是 0) return 0;这两个语句为什么目标地址和源地址都是同一个usbDataBuf?不解啊
我现在想改一下这个程序,变成发送一个数据,然后再存到SDRAM里面。
最近被这个问题困扰多日,这个要这么改,求解答,感激不尽
#include
#include
#include "string.h"
#include
#include "../inc/IO.h"
#include "../inc/usb.h"
unsigned short usbDataBuf[USB_BUF_MAX_SIZE];
int main()
{
int n;
n = 0;
pReg_LED->data = 0;
// memset(usbDataBuf,0,USB_BUF_MAX_SIZE *2);
alt_dma_txchan o_usbdma;
alt_dma_rxchan i_usbdma;
memset(usbDataBuf,0,USB_BUF_MAX_SIZE *2);
if(Initial_InDMA(&i_usbdma) 0) return 0;
while(!IsOutDone());
}
n++;
if(n>0x3ffff)
{
pReg_LED->data = pReg_LED->data + 1;
n=0;
}
};
return 0;
}