本帖最后由 wjxcom 于 2010-12-20 09:59 编辑
各位好:
我现在在做usb方面的东西,到的问题是CY7C68013的速率提不上去。
测试系统结构:FPGA => CY7C68013 => PC
1、FPGA以16M/s连续产生16位并行测试数据至CY7C68013,即16M bytes/s
2、CY7C68013配置为同步SLAVE FIFO工作模式,端点2接受PC发出的命令,启动FPGA计数器开始计数,端点8把计数器产生的数据送到PC机。
但是我用DC3.2编写驱动后,把驱动安装上。然后运行向usb发生命令的程序,程序部分代码如下:
UCHAR ch[]={0x00,0xfd,0x00,0x00,0xff,0x06};//0x03,0x03};//
OVERLAPPED inOvLap;
inOvLap.hEvent = CreateEvent(NULL, false, false, "CYUSB_IN");
inData=new unsigned char[length]; long lengthout=6; // 为什么这里不能用
long length=sizeof(ch);
CCyBulkEndPoint *BulkOut=NULL;
BulkOut=(CCyBulkEndPoint *)USBDevice->EndPoints[4];
BulkOut->XferData(ch,lengthout);
USBDevice->BulkOutEndPt->XferData(ch,lengthout);
但是执行到BulkOut=(CCyBulkEndPoint *)USBDevice->EndPoints[4];这句话时,DC3.2的SoftICE界面就会出现,说是“unhandled exception NTSTATUS=STATUS_ACCESS_VIOLATION
我是写硬件的,不知道如何写软件,所以向大家请教一下,这个驱有什么问题呢?我把我写的固件程序、驱动程序放到附件里了,麻烦大家给看一下,该如何修改会更好呢?
驱动程序是根据圈圈的代码编写的!!先谢谢圈圈。 |