From: TongKe X. <ton...@gm...> - 2009-05-30 02:18:12
|
NumInterfaces: Linux: sudo ./prog usb claim interface: 0 libusb:error [op_clear_halt] clear_halt failed error -1 errno 32 clear halt: -99 kernel claim: 1 NumInterfaces: 1 Mac: libusb:warning [process_new_device] could not retrieve device descriptor: device not responding. skipping device libusb:warning [process_new_device] could not retrieve device descriptor: device not responding. skipping device libusb:warning [ep_to_pipeRef] no pipeRef found with endpoint address 0x02. libusb:error [darwin_clear_halt] endpoint not found on any open interface NumInterfaces: 0 Putting 8051 into reset. Programming 8051 using "USB16_FI.BIN". we're about to write for real libusb:info [process_new_device] allocating new device for location 0x1d000000 libusb:info [process_new_device] found device with address 1 at 001-05ac-8005-09-00 libusb:info [process_new_device] allocating new device for location 0x3d000000 libusb:info [process_new_device] found device with address 1 at 001-05ac-8005-09-00 libusb:info [process_new_device] allocating new device for location 0x5d000000 libusb:info [process_new_device] found device with address 1 at 001-05ac-8005-09-00 libusb:info [process_new_device] allocating new device for location 0x5d100000 libusb:info [process_new_device] found device with address 2 at 002-05ac-8242-00-00 libusb:info [process_new_device] allocating new device for location 0x5d200000 libusb:info [process_new_device] found device with address 3 at 003-05ac-0230-00-00 libusb:info [process_new_device] allocating new device for location 0x1a000000 libusb:info [process_new_device] found device with address 1 at 001-05ac-8005-09-00 libusb:info [process_new_device] allocating new device for location 0x1a100000 libusb:info [process_new_device] allocating new device for location 0x1a110000 libusb:info [process_new_device] allocating new device for location 0x1a200000 libusb:info [process_new_device] found device with address 4 at 004-046d-c016-00-00 libusb:info [process_new_device] allocating new device for location 0x3a000000 libusb:info [process_new_device] found device with address 1 at 001-05ac-8005-09-00 libusb:info [process_new_device] allocating new device for location 0xfd000000 libusb:info [process_new_device] found device with address 1 at 001-05ac-8006-09-00 libusb:info [process_new_device] allocating new device for location 0xfd400000 libusb:info [process_new_device] found device with address 2 at 002-05ac-8502-ef-02 libusb:info [process_new_device] allocating new device for location 0xfd100000 libusb:info [process_new_device] found device with address 3 at 003-04b4-8613-ff-ff libusb:info [process_new_device] allocating new device for location 0xfa000000 libusb:info [process_new_device] found device with address 1 at 001-05ac-8006-09-00 libusb:info [darwin_open] device open for access libusb:info [get_endpoints] building table of endpoints. libusb:info [darwin_claim_interface] interface opened usb claim interface: 0 libusb:info [ep_to_pipeRef] converting ep address 0x02 to pipeRef and interface clear halt: -5 kernel claim: 0 Code; int errors=0; const char *arg_bus_dev=NULL; bool do_list=0; // Initialize the USB library... libusb_init(NULL); libusb_set_debug(NULL, 3); struct libusb_device *usbdev=NULL; usbdev=USBFindDevice(0x4b4,0x8613); if(!usbdev) { fprintf(stderr,"No unconfigured Cypress FX2 attached.\n"); return(1); } if(cycfx2.open(usbdev)) { return(1); } // libusb_set_configuration(cycfx2.usbhdl, 1); int claim = libusb_claim_interface(cycfx2.usbhdl, 0); fprintf(stdout, "usb claim interface: %d\n", claim); fprintf(stdout, "clear halt: %d\n", libusb_clear_halt(cycfx2.usbhdl, 0x2)); fprintf(stdout, "kernel claim: %d\n", libusb_kernel_driver_active(cycfx2.usbhdl, 0)); struct libusb_config_descriptor* config_descriptor; libusb_get_active_config_descriptor(cycfx2.usbdev, &config_descriptor); fprintf(stderr, "NumInterfaces: %d\n", config_descriptor->bNumInterfaces); for(int i = 0; i < config_descriptor->bNumInterfaces; +i) { const libusb_interface* interface = config_descriptor->interface + i; } This makes me happy. Linux sees 1. Mac sees none. Do I need some kernel driver support for cypressfx devices? (And LInux has it, but Mac does not? Is taht my problem?) Thanks! On Fri, May 29, 2009 at 3:46 PM, Tim Roberts<ti...@pr...> wrote: > TongKe Xue wrote: >> The firmwire needs to be loaded every time. > > No, it doesn't. The firmware remains loaded until you unplug/replug the > device. > >> In prog.cc is where I think I'm screwing up. Can anyone point out why >> my libusb_submit_transfer is failing? (Or suggest changes I make to >> the code to so I can help you get data you need to help me trouble >> shoot this.) >> > > What do the descriptors look like in your firmware? Do you have > endpoint 2 configured in interface 0? > > It is possible (and common) to write FX2 firmware so the device > re-enumerates itself as the firmware loads. That is, it disconnects and > reconnects after loading. The fact that you seem to get a "new device > arrival" after your firmware load suggests this may be happening. In > that case, it's quite possible that your claim to the interface was lost > when the device disconnected. We have always written our FX2 > applications to search for and open the device, load the firmware (if > necessary), close the device, search for and open the device, claim the > interface, and start processing data. > > > That's why it is handy to use your own VID and PID in the firmware. If > you find the unconfigured device, you load firmware. If you find the > configured device, you don't need to load firmware. > > -- > Tim Roberts, ti...@pr... > Providenza & Boekelheide, Inc. > > > ------------------------------------------------------------------------------ > Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT > is a gathering of tech-side developers & brand creativity professionals. Meet > the minds behind Google Creative Lab, Visual Complexity, Processing, & > iPhoneDevCamp as they present alongside digital heavyweights like Barbarian > Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com > _______________________________________________ > Libusb-devel mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libusb-devel > |