Post by Graeme GillPost by Xiaofan Chen-#include <driver/driver_api.h>
+#include "./driver/driver_api.h"
How about #include "driver/driver_api.h" instead ?
Yes this is ok.
Post by Graeme GillPost by Xiaofan ChenAnd there are some warnings.
<http://www.argyllcms.com/libusb.zip> 112337 bytes,
[but note there are a few trial code changes involving the
usbi_fd_notification() function as Pete & I try to figure
out why the windows back end (both winusb.sys and libusb0.sys)
is not thread safe ...]
I will try this later.
Meanwhile, I just converted one of the libusb 0.1 program
(Linux and Windows) to libusb 1.0. And it seems to work with
the tested libusb0.sys backend.
Original program:
http://www.microchip.com/forums/fb.aspx?m=283761
Original run with libusb-win32 0.1.12.2 device driver.
$ ../libusb0/fsusb_demo.exe --readtemp
Locating Microchip(tm) PICDEM(tm) FS USB Demo Board (vendor 0x04d8/product 0x000
c)
Found USB PICDEM FS USB Demo Board as device '\\.\libusb0-0001--0x04d8-0x000c'
on USB bus bus-0
Communication established.
answer was correct!
Onboard firmware version is 1.0
Temperature now is 25.000000 degC (raw: 400, rawval: 3207)
I did a fast conversion to use the new test libusb0.sys
backend and it seems to work fine.
$ ./fsusb_demo_libusb1.exe --readtemp >readtemp.log
$ cat readtemp.log
Locating Microchip(tm) Custom Device Demo (vendor 0x04d8/product 0x000c)
libusb:info [libusb0_open] usb_os_init: driver version: 0.1.12.1
Found and Opened Microchip(tm) Custom Device Demo (vendor 0x04d8/product 0x000c)
Communication established.
answer was correct!
Onboard firmware version is 1.0
Temperature now is 25.000000 degC (raw: 400, rawval: 3207)
Full run log.
***@AcerPC ~/mcu/libusb1win32/fsusb_demo/libusb1
$ ./fsusb_demo_libusb1.exe --readtemp
Locating Microchip(tm) Custom Device Demo (vendor 0x04d8/product 0x000c)
libusb:debug [libusb_init]
libusb:debug [init_polling] Will use CancelIoEx for I/O cancellation
libusb:debug [windows_clock_gettime_threaded] hires timer available (Frequency:
25000000 Hz)
libusb:debug [usbi_add_pollfd] add fd 3 events 1
libusb:debug [libusb_init] created default context
libusb:debug [libusb_get_device_list]
libusb:debug [usb_enumerate_hub] busnum 0 devaddr 0 session_id 0
libusb:debug [usb_enumerate_hub] allocating new device for session 0
libusb:debug [initialize_device] active config: 1
libusb:debug [usb_enumerate_hub] 8 ports Hub: \\.\USB#ROOT_HUB20#4&7056C45&0#{F1
8A0E88-C30C-11D0-8815-00A0C906BED8}
libusb:debug [usb_enumerate_hub] busnum 0 devaddr 1 session_id 1
libusb:debug [usb_enumerate_hub] allocating new device for session 1
libusb:debug [initialize_device] active config: 1
libusb:debug [cache_config_descriptors] cached config descriptor #1 (25 bytes)
libusb:debug [usb_enumerate_hub] 4 ports Hub: \\.\USB#VID_05E3&PID_0606#5&17D847
74&0&4#{F18A0E88-C30C-11D0-8815-00A0C906BED8}
libusb:debug [usb_enumerate_hub] busnum 0 devaddr 3 session_id 3
libusb:debug [usb_enumerate_hub] allocating new device for session 3
libusb:debug [initialize_device] active config: 1
libusb:debug [cache_config_descriptors] cached config descriptor #1 (41 bytes)
libusb:debug [usb_enumerate_hub] busnum 0 devaddr 4 session_id 4
libusb:debug [usb_enumerate_hub] allocating new device for session 4
libusb:debug [initialize_device] active config: 1
libusb:debug [cache_config_descriptors] cached config descriptor #1 (55 bytes)
libusb:debug [usb_enumerate_hub] busnum 0 devaddr 2 session_id 2
libusb:debug [usb_enumerate_hub] allocating new device for session 2
libusb:debug [initialize_device] active config: 1
libusb:debug [cache_config_descriptors] cached config descriptor #1 (39 bytes)
libusb:debug [usb_enumerate_hub] busnum 1 devaddr 0 session_id 256
libusb:debug [usb_enumerate_hub] allocating new device for session 256
libusb:debug [initialize_device] active config: 1
libusb:debug [usb_enumerate_hub] 8 ports Hub: \\.\USB#ROOT_HUB#4&278C294E&0#{F18
A0E88-C30C-11D0-8815-00A0C906BED8}
libusb:debug [usb_enumerate_hub] busnum 1 devaddr 1 session_id 257
libusb:debug [usb_enumerate_hub] allocating new device for session 257
libusb:debug [initialize_device] active config: 1
libusb:debug [cache_config_descriptors] cached config descriptor #1 (32 bytes)
libusb:debug [usb_enumerate_hub] busnum 1 devaddr 2 session_id 258
libusb:debug [usb_enumerate_hub] allocating new device for session 258
libusb:debug [initialize_device] active config: 1
libusb:debug [cache_config_descriptors] cached config descriptor #1 (34 bytes)
libusb:debug [usb_enumerate_hub] busnum 1 devaddr 3 session_id 259
libusb:debug [usb_enumerate_hub] allocating new device for session 259
libusb:debug [initialize_device] active config: 1
libusb:debug [cache_config_descriptors] cached config descriptor #1 (41 bytes)
libusb:debug [cache_config_descriptors] cached config descriptor #2 (32 bytes)
libusb:debug [discovered_devs_append] need to increase capacity
libusb:debug [usb_enumerate_hub] busnum 1 devaddr 4 session_id 260
libusb:debug [usb_enumerate_hub] allocating new device for session 260
libusb:debug [initialize_device] active config: 1
libusb:debug [cache_config_descriptors] cached config descriptor #1 (32 bytes)
libusb:debug [usb_enumerate_hub] busnum 1 devaddr 5 session_id 261
libusb:debug [usb_enumerate_hub] allocating new device for session 261
libusb:debug [initialize_device] active config: 1
libusb:debug [cache_config_descriptors] cached config descriptor #1 (39 bytes)
libusb:debug [set_device_paths] path (0:4): \\.\USB#VID_0403&PID_BCD9#070200A1#{
A5DCBF10-6530-11D2-901F-00C04FB951ED}
libusb:debug [set_device_paths] driver: usbccgp
libusb:warning [set_composite_device] interface_path[0]: unhandled API - interfa
ce will be disabled
libusb:warning [set_composite_device] interface_path[1]: unhandled API - interfa
ce will be disabled
libusb:warning [set_composite_device] composite device: no interfaces were found
libusb:debug [set_device_paths] path (1:2): \\.\USB#VID_046D&PID_C054#5&207B166D
&0&3#{A5DCBF10-6530-11D2-901F-00C04FB951ED}
libusb:debug [set_device_paths] driver: HidUsb
libusb:debug [set_hid_device] interface_path[0]: \\.\HID#VID_046D&PID_C054#6&334
DE466&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030}
libusb:debug [set_device_paths] path (0:3): \\.\USB#VID_046D&PID_C216#6&1DA2B8C1
&0&1#{A5DCBF10-6530-11D2-901F-00C04FB951ED}
libusb:debug [set_device_paths] driver: HidUsb
libusb:debug [set_hid_device] interface_path[0]: \\.\HID#VID_046D&PID_C216#7&318
A44D&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030}
libusb:debug [set_device_paths] path (1:4): \\.\USB#VID_04D8&PID_000C#5&207B166D
&0&7#{A5DCBF10-6530-11D2-901F-00C04FB951ED}
libusb:debug [set_device_paths] driver: libusb0
libusb:debug [set_device_paths] path (1:3): \\.\USB#VID_04D8&PID_0033#PK2NEW#{A5
DCBF10-6530-11D2-901F-00C04FB951ED}
libusb:debug [set_device_paths] driver: HidUsb
libusb:debug [set_hid_device] interface_path[0]: \\.\HID#VID_04D8&PID_0033#6&BD5
B18B&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030}
libusb:debug [set_device_paths] path (0:2): \\.\USB#VID_04D8&PID_9009#JIT0935967
58#{A5DCBF10-6530-11D2-901F-00C04FB951ED}
libusb:debug [set_device_paths] driver: NCBULK
libusb:debug [set_device_paths] path (1:1): \\.\USB#VID_058F&PID_9360#2004888#{A
5DCBF10-6530-11D2-901F-00C04FB951ED}
libusb:debug [set_device_paths] driver: USBSTOR
libusb:debug [set_device_paths] path (1:5): \\.\USB#VID_1366&PID_0101#123456#{A5
DCBF10-6530-11D2-901F-00C04FB951ED}
libusb:debug [set_device_paths] driver: jlink
libusb:debug [libusb_get_device_descriptor]
libusb:debug [libusb_get_device_descriptor]
libusb:debug [libusb_get_device_descriptor]
libusb:debug [libusb_get_device_descriptor]
libusb:debug [libusb_get_device_descriptor]
libusb:debug [libusb_get_device_descriptor]
libusb:debug [libusb_get_device_descriptor]
libusb:debug [libusb_get_device_descriptor]
libusb:debug [libusb_get_device_descriptor]
libusb:debug [libusb_get_device_descriptor]
libusb:debug [libusb_open] open 1.4
libusb:info [libusb0_open] usb_os_init: driver version: 0.1.12.1
libusb:debug [libusb0_open] setting debug level 0 succeeded
libusb:debug [libusb_unref_device] destroy device 0.0
libusb:debug [libusb_unref_device] destroy device 0.1
libusb:debug [libusb_unref_device] destroy device 0.3
libusb:debug [libusb_unref_device] destroy device 0.4
libusb:debug [libusb_unref_device] destroy device 0.2
libusb:debug [libusb_unref_device] destroy device 1.0
libusb:debug [libusb_unref_device] destroy device 1.1
libusb:debug [libusb_unref_device] destroy device 1.2
libusb:debug [libusb_unref_device] destroy device 1.3
libusb:debug [libusb_unref_device] destroy device 1.5
Found and Opened Microchip(tm) Custom Device Demo (vendor 0x04d8/product 0x000c)
libusb:debug [libusb_set_configuration] configuration 1
libusb:debug [libusb_claim_interface] interface 0
libusb:debug [libusb0_claim_interface] claimed interface 0
libusb:debug [libusb_get_config_descriptor] index 0
libusb:debug [windows_assign_endpoints] (re)assigned endpoint 01 to interface 0
libusb:debug [windows_assign_endpoints] (re)assigned endpoint 81 to interface 0
libusb:warning [libusb0_submit_control_transfer] auto-claimed interface 0 for co
ntrol request
libusb:debug [libusb0_submit_control_transfer] will use interface 0
libusb:debug [usbi_add_pollfd] add fd 5 events 1
libusb:debug [libusb_get_next_timeout] next timeout in 0.994360s
libusb:debug [handle_events] poll() 2 fds with timeout in 995ms
libusb:debug [handle_events] poll() returned 1
libusb:debug [windows_handle_events] checking fd 3 with revents = 0000
libusb:debug [windows_handle_events] checking fd 5 with revents = 0001
libusb:debug [usbi_remove_pollfd] remove fd 5
libusb:debug [windows_transfer_callback] handling I/O completion with errcode 0
libusb:debug [ctrl_transfer_cb] actual_length=0
libusb:debug [libusb_claim_interface] interface 0
Communication established.
libusb:debug [libusb0_submit_bulk_transfer] matched endpoint 01 with interface 0
libusb:debug [libusb0_submit_bulk_transfer] writing bulk 2 bytes from ep 01
libusb:debug [usbi_add_pollfd] add fd 5 events 4
libusb:debug [libusb_get_next_timeout] next timeout in 1.998120s
libusb:debug [handle_events] poll() 2 fds with timeout in 1999ms
libusb:debug [handle_events] poll() returned 1
libusb:debug [windows_handle_events] checking fd 3 with revents = 0000
libusb:debug [windows_handle_events] checking fd 5 with revents = 0004
libusb:debug [usbi_remove_pollfd] remove fd 5
libusb:debug [windows_transfer_callback] handling I/O completion with errcode 0
libusb:debug [bulk_transfer_cb] actual_length=2
libusb:debug [libusb0_submit_bulk_transfer] matched endpoint 81 with interface 0
libusb:debug [libusb0_submit_bulk_transfer] reading bulk 4 bytes from ep 81
libusb:debug [usbi_add_pollfd] add fd 5 events 1
libusb:debug [libusb_get_next_timeout] next timeout in 1.998120s
libusb:debug [handle_events] poll() 2 fds with timeout in 1999ms
libusb:debug [handle_events] poll() returned 1
libusb:debug [windows_handle_events] checking fd 3 with revents = 0000
libusb:debug [windows_handle_events] checking fd 5 with revents = 0001
libusb:debug [usbi_remove_pollfd] remove fd 5
libusb:debug [windows_transfer_callback] handling I/O completion with errcode 0
libusb:debug [bulk_transfer_cb] actual_length=4
answer was correct!
Onboard firmware version is 1.0
libusb:debug [libusb0_submit_bulk_transfer] matched endpoint 01 with interface 0
libusb:debug [libusb0_submit_bulk_transfer] writing bulk 1 bytes from ep 01
libusb:debug [usbi_add_pollfd] add fd 5 events 4
libusb:debug [libusb_get_next_timeout] next timeout in 1.998080s
libusb:debug [handle_events] poll() 2 fds with timeout in 1999ms
libusb:debug [handle_events] poll() returned 1
libusb:debug [windows_handle_events] checking fd 3 with revents = 0000
libusb:debug [windows_handle_events] checking fd 5 with revents = 0004
libusb:debug [usbi_remove_pollfd] remove fd 5
libusb:debug [windows_transfer_callback] handling I/O completion with errcode 0
libusb:debug [bulk_transfer_cb] actual_length=1
libusb:debug [libusb0_submit_bulk_transfer] matched endpoint 81 with interface 0
libusb:debug [libusb0_submit_bulk_transfer] reading bulk 3 bytes from ep 81
libusb:debug [usbi_add_pollfd] add fd 5 events 1
libusb:debug [libusb_get_next_timeout] next timeout in 1.998200s
libusb:debug [handle_events] poll() 2 fds with timeout in 1999ms
libusb:debug [handle_events] poll() returned 1
libusb:debug [windows_handle_events] checking fd 3 with revents = 0000
libusb:debug [windows_handle_events] checking fd 5 with revents = 0001
libusb:debug [usbi_remove_pollfd] remove fd 5
libusb:debug [windows_transfer_callback] handling I/O completion with errcode 0
libusb:debug [bulk_transfer_cb] actual_length=3
Temperature now is 25.000000 degC (raw: 400, rawval: 3207)
libusb:debug [libusb_close]
libusb:debug [libusb_unref_device] destroy device 1.4
--
Xiaofan http://mcuee.blogspot.com