阅读:2673回复:9
CY68013的firmware怎么识别驱动的信息啊?
rt,例如应用程序调用DeviceIoControl(handle,IOCTL_Ezusb_GET_DEVICE_DESCRIPTOR,NULL,0,buffer,sizeof(USB_DEVICE_DESCRIPTOR),&nBytes,NULL);,这是获取设备描述。对第二个参数来说有多种选择,比如还有IOCTL_EZUSB_BULK_WRITE(进行bulk写操作)。但是对firmware来说,怎么才能知道驱动想要的是什么操作?有什么标志位或者信息可以识别么?请高人指教啊
|
|
最新喜欢:spry97
|
沙发#
发布于:2007-01-18 14:53
这个。。
基础问题啊,主机发了Get Descriptor请求,设备就会收到Get Descriptor请求的setup包,firmware根据setup包内容回传数据 主机发送了BULK Write指令,OUT端点就会收到数据,fireware查询到有数据或根据中断判断到数据或根据FLAG判断到数据就准备读取数据。 这个都不知道怎么做firmware??? |
|
板凳#
发布于:2007-01-19 09:32
谢谢上面高手说明。我没有问清楚,我想问的是比如我在firmware中的TD_POLL中设置我要进行的操作,那么势必判断到底这次上位机发出的操作是针对哪个ep的,再对该ep进行而这个判断标志从哪里得到?在example中看到EP2468STAT这个量,是否就是判断?
|
|
|
地板#
发布于:2007-01-19 11:41
端点地址就是用来寻址设备的端点的,仔细看看你的设备描述符。
另外,应用程序调用DeviceIoControl()发送的ioctl code只是用来与驱动程序通信的,在驱动中判断ioctl code,然后再做相应的动作,比如发送读写数据的命令,重设设备的命令。这个ioctl code并没有发送到固件里去,固件需要关心的我用什么command来与驱动通信,而不是应用程序,这个就要好好看看usb specification的第九章了 |
|
地下室#
发布于:2007-01-20 20:23
哇,果然强人啊
|
|
5楼#
发布于:2007-02-10 14:19
我觉得上面这位老兄还没有回答问题的中心:那就是固件到底通过什么来确定驱动程序发来的是什么命令,我也有一个类似的问题:举例说明:如果上位机发出的是得到设备描述符(标准请求)的命令,我知道,固件根据SUDAV 中断激活Setup_command分析并执行该命令,但是,如果是想写数据到端点2那,固件又通过什么来判断主机要写端点2了那?
|
|
|
6楼#
发布于:2007-02-12 09:23
回楼上的:
如果主机写了端点2,写完后硬件会产生中断,同时端点2的空满标志会被置位,通过这些来判断数据有没有到来 |
|
7楼#
发布于:2007-02-13 22:24
谢谢楼上.我用Auto in的方法用端点2采集图像数据,把OV2610传感器SLWR直接接地可以吧
怎么采的数据512字节都是FF那? |
|
|
8楼#
发布于:2007-02-14 14:44
只能说你的控制电路以及frimware没有匹配好
上面的几位大哥已经解释的很清楚了,你可以好好读读,应该有很好的帮助,另外你可以参考jinghuiren大哥的 “68013读取sensor图像时错帧问题产生的原因,分析及深入探讨!”这个帖子。 |
|
9楼#
发布于:2007-02-14 20:47
谢谢,采到的数据512字节都是一样的
|
|
|