From 93269b034396673062ec79e69673e95d47f29438 Mon Sep 17 00:00:00 2001 From: hathach Date: Mon, 4 Feb 2013 20:54:52 +0700 Subject: fix osal_semaphore_wait & osal_queue_receive of osal_none's bug - not assign error to TUSB_ERROR_NON if succeed add code up to set device address for enumeration --- tinyusb/host/usbh.c | 35 +++++++++++++++++++++++++++-------- tinyusb/osal/osal_none.h | 5 ++++- 2 files changed, 31 insertions(+), 9 deletions(-) (limited to 'tinyusb') diff --git a/tinyusb/host/usbh.c b/tinyusb/host/usbh.c index 38d96597d..f60299a06 100644 --- a/tinyusb/host/usbh.c +++ b/tinyusb/host/usbh.c @@ -98,19 +98,38 @@ void usbh_enumeration_task(void) { tusb_std_request_t request_device_desc = { - .bmRequestType = - { - .direction = TUSB_DIR_DEV_TO_HOST, - .type = TUSB_REQUEST_TYPE_STANDARD, - .recipient = TUSB_REQUEST_RECIPIENT_DEVICE - }, - + .bmRequestType = { .direction = TUSB_DIR_DEV_TO_HOST, .type = TUSB_REQUEST_TYPE_STANDARD, .recipient = TUSB_REQUEST_RECIPIENT_DEVICE }, .bRequest = TUSB_REQUEST_GET_DESCRIPTOR, .wValue = (TUSB_DESC_DEVICE << 8), .wLength = 8 }; + hcd_pipe_control_xfer(device_addr0.pipe_hdl, &request_device_desc, enum_data_buffer); -// osal_sem_wait(); + osal_semaphore_wait(device_addr0.sem_hdl, OSAL_TIMEOUT_NORMAL, &error); // careful of local variable without static + TASK_ASSERT_STATUS(error); + } + + { + uint8_t new_addr = 0; + for (new_addr=0; new_addrrd_idx = (queue_hdl->rd_idx + 1) % queue_hdl->depth;\ queue_hdl->count--;\ /*TODO mutex unlock hal_interrupt_enable */\ + *(p_error) = TUSB_ERROR_NONE;\ }\ }while(0) -- cgit v1.3.1