最近拿到一个
开发板,这是NIOSII里面的main.c程序,实现了
FPGA通过USB
芯片与上位机通讯,可是我不太明白啊,上位机发送的数据在哪里赋值呢,上位机是怎么发送数据的呢???
还有,这个句子,if(Write(&o_usbdma,usbDataBuf)>0) return 0;为什么是>0,而不是<0呢?
还有 if(Read(&i_usbdma,usbDataBuf)<0) return 0,和if(Write(&o_usbdma,usbDataBuf)>0) return 0;这两个语句为什么目标地址和源地址都是同一个usbDataBuf????不解啊
我现在想改一下这个程序,变成发送一个数据,然后再存到SDRAM里面。
最近被这个问题困扰多日,这个要这么改,求解答,感激不尽
#include <stdlib.h>
#include <stdio.h>
#include "string.h"
#include <unistd.h>
#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(Ini
tial_InDMA(&i_usbdma) < 0 || Initial_OutDMA(&o_usbdma) < 0) return 0;
while(1)
{
while(IsFLAGB())
{
if(Read(&i_usbdma,usbDataBuf)<0) return 0;
while(!IsInDone());
while(!IsFLAGC());
if(Write(&o_usbdma,usbDataBuf)>0) return 0;
while(!IsOutDone());
}
n++;
if(n>0x3ffff)
{
pReg_LED->data = pReg_LED->data + 1;
n=0;
}
};
return 0;
}
一周热门 更多>