阅读:1267回复:4
cy7c68013问题
我在深圳一家公司买了一块CY7C68013的开发板,用来开发一块视频数据采集卡,用随板的Cypress开发包都能很好的运行,但是用我们自己开发的驱动程序和固件程序时却不能下载代码,不知是什么原因(现学现用,功夫不够深)?眼看就要快到交货时间了,都急死了。恳请各位高手指教。
|
|
最新喜欢:![]() |
沙发#
发布于:2003-10-11 21:32
你可以 用vc调试代码,Cypress开发包里有源代码的。你下载代码是固件的16进制的.hex文件。所以你要看懂开发包的源码。或用它提供的。
|
|
板凳#
发布于:2003-10-12 08:35
估计是驱动程序里下载代码那一段有问题吧,用softice调试一下,源代码如下,你看看你的驱动程序里是不是有问题:
case IOCTL_Ezusb_ANCHOR_DOWNLOAD: { #define CHUNKLENGTH 512 PURB urb = NULL; int chunkcount; int chunklength = 1024; PVOID ioBufferPtr = NULL; int i; urb = ExAllocatePool(NonPagedPool, sizeof(struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST)); Ezusb_KdPrint ((\"IOCTL_Ezusb_ANCHOR_DOWNLOAD\\n\")); if (urb) { chunkcount = inputBufferLength / CHUNKLENGTH; ioBufferPtr = ioBuffer; for (i=0;i<chunkcount;i++) { RtlZeroMemory(urb,sizeof(struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST)); urb->UrbHeader.Length = sizeof(struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST); urb->UrbHeader.Function = URB_FUNCTION_VENDOR_DEVICE; Ezusb_KdPrint ((\"ioBuffer: %x | inputBufferLength: %d | outputBufferLength: %d\\n\", ioBuffer, inputBufferLength, outputBufferLength)); urb->UrbControlVendorClassRequest.TransferBufferLength = CHUNKLENGTH; urb->UrbControlVendorClassRequest.TransferBuffer = ioBufferPtr; urb->UrbControlVendorClassRequest.TransferBufferMDL = NULL; urb->UrbControlVendorClassRequest.Request = 0xA0; urb->UrbControlVendorClassRequest.Value = (i * CHUNKLENGTH); urb->UrbControlVendorClassRequest.Index = 0; ntStatus = Ezusb_CallUSBD(fdo, urb); (char *) ioBufferPtr += CHUNKLENGTH; } ExFreePool(urb); } } break; case IOCTL_EZUSB_ANCHOR_DOWNLOAD: { PANCHOR_DOWNLOAD_CONTROL downloadControl = (PANCHOR_DOWNLOAD_CONTROL) ioBuffer; Ezusb_KdPrint ((\"IOCTL_EZUSB_ANCHOR_DOWNLOAD\\n\")); // // check the arguments // if (inputBufferLength != sizeof(ANCHOR_DOWNLOAD_CONTROL) || outputBufferLength == 0) { Ezusb_KdPrint ((\"Error: Invalid Parameter\\n\")); ntStatus = STATUS_INVALID_PARAMETER; } else { ntStatus = Ezusb_AnchorDownload(fdo, downloadControl->Offset, (PUCHAR) MmGetSystemAddressForMdl(Irp->MdlAddress), outputBufferLength); } break; } |
|
地板#
发布于:2003-10-12 18:10
同意楼上的说法,我刚开始用的时候就是程序地址有问题,耽误很长时间
|
|
地下室#
发布于:2003-10-14 15:02
问题还真出在这里了,作了一些修改,代码嫩下载了,但还不能正确运行,在努力一下,我想应该会成功的。多谢各位指点了。
|
|