From d1656c0b8d108d8f91748269e9196d1bbc711506 Mon Sep 17 00:00:00 2001 From: Nathan Conrad Date: Mon, 20 Apr 2020 16:00:21 -0400 Subject: [PATCH 1/3] tu_verify for getting descriptors --- src/device/usbd.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/device/usbd.c b/src/device/usbd.c index 26183c960..0a2169185 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -450,7 +450,7 @@ void tud_task (void) // Helper to invoke class driver control request handler static bool invoke_class_control(uint8_t rhport, uint8_t drvid, tusb_control_request_t const * request) { - TU_ASSERT(_usbd_driver[drvid].control_request); + TU_VERIFY(_usbd_driver[drvid].control_request); usbd_control_set_complete_callback(_usbd_driver[drvid].control_complete); TU_LOG2(" %s control request\r\n", _usbd_driver[drvid].name); @@ -463,7 +463,7 @@ static bool process_control_request(uint8_t rhport, tusb_control_request_t const { usbd_control_set_complete_callback(NULL); - TU_ASSERT(p_request->bmRequestType_bit.type < TUSB_REQ_TYPE_INVALID); + TU_VERIFY(p_request->bmRequestType_bit.type < TUSB_REQ_TYPE_INVALID); // Vendor request if ( p_request->bmRequestType_bit.type == TUSB_REQ_TYPE_VENDOR ) @@ -801,7 +801,7 @@ static bool process_get_descriptor(uint8_t rhport, tusb_control_request_t const case TUSB_DESC_CONFIGURATION: { tusb_desc_configuration_t const* desc_config = (tusb_desc_configuration_t const*) tud_descriptor_configuration_cb(desc_index); - TU_ASSERT(desc_config); + TU_VERIFY(desc_config); uint16_t total_len; memcpy(&total_len, &desc_config->wTotalLength, 2); // possibly mis-aligned memory @@ -817,10 +817,11 @@ static bool process_get_descriptor(uint8_t rhport, tusb_control_request_t const // The 0xEE index string is a Microsoft OS Descriptors. // https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/microsoft-defined-usb-descriptors return false; - }else + } + else { uint8_t const* desc_str = (uint8_t const*) tud_descriptor_string_cb(desc_index, p_request->wIndex); - TU_ASSERT(desc_str); + TU_VERIFY(desc_str); // first byte of descriptor is its size return tud_control_xfer(rhport, p_request, (void*) desc_str, desc_str[0]); From 0ec69de77c22bd018f9e5e5d038cfb8275922351 Mon Sep 17 00:00:00 2001 From: Nathan Conrad Date: Tue, 21 Apr 2020 10:06:17 -0400 Subject: [PATCH 2/3] sof is optional, revert other changes but remove unneeded check. --- src/device/usbd.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/device/usbd.c b/src/device/usbd.c index 0a2169185..219dd23be 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -91,7 +91,7 @@ typedef struct bool (* control_request ) (uint8_t rhport, tusb_control_request_t const * request); bool (* control_complete ) (uint8_t rhport, tusb_control_request_t const * request); bool (* xfer_cb ) (uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); - void (* sof ) (uint8_t rhport); + void (* sof ) (uint8_t rhport); /* optional */ } usbd_class_driver_t; static usbd_class_driver_t const _usbd_driver[] = @@ -450,8 +450,6 @@ void tud_task (void) // Helper to invoke class driver control request handler static bool invoke_class_control(uint8_t rhport, uint8_t drvid, tusb_control_request_t const * request) { - TU_VERIFY(_usbd_driver[drvid].control_request); - usbd_control_set_complete_callback(_usbd_driver[drvid].control_complete); TU_LOG2(" %s control request\r\n", _usbd_driver[drvid].name); return _usbd_driver[drvid].control_request(rhport, request); @@ -463,7 +461,7 @@ static bool process_control_request(uint8_t rhport, tusb_control_request_t const { usbd_control_set_complete_callback(NULL); - TU_VERIFY(p_request->bmRequestType_bit.type < TUSB_REQ_TYPE_INVALID); + TU_ASSERT(p_request->bmRequestType_bit.type < TUSB_REQ_TYPE_INVALID); // Vendor request if ( p_request->bmRequestType_bit.type == TUSB_REQ_TYPE_VENDOR ) @@ -801,7 +799,7 @@ static bool process_get_descriptor(uint8_t rhport, tusb_control_request_t const case TUSB_DESC_CONFIGURATION: { tusb_desc_configuration_t const* desc_config = (tusb_desc_configuration_t const*) tud_descriptor_configuration_cb(desc_index); - TU_VERIFY(desc_config); + TU_ASSERT(desc_config); uint16_t total_len; memcpy(&total_len, &desc_config->wTotalLength, 2); // possibly mis-aligned memory @@ -821,7 +819,7 @@ static bool process_get_descriptor(uint8_t rhport, tusb_control_request_t const else { uint8_t const* desc_str = (uint8_t const*) tud_descriptor_string_cb(desc_index, p_request->wIndex); - TU_VERIFY(desc_str); + TU_ASSERT(desc_str); // first byte of descriptor is its size return tud_control_xfer(rhport, p_request, (void*) desc_str, desc_str[0]); From 4c2d93eec90b8207e5869c04d4a0a59c19c61b06 Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 22 Apr 2020 13:34:04 +0700 Subject: [PATCH 3/3] remove cmsis 5 from submodules cmsis 5 use git lfs causing issue with submodule cloning and isn't used yet. Could re-add later if needed. --- .gitmodules | 3 --- lib/CMSIS_5 | 1 - 2 files changed, 4 deletions(-) delete mode 160000 lib/CMSIS_5 diff --git a/.gitmodules b/.gitmodules index c1c5cefe7..c8f8eea97 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,9 +28,6 @@ [submodule "lib/FreeRTOS"] path = lib/FreeRTOS url = https://github.com/FreeRTOS/FreeRTOS.git -[submodule "lib/CMSIS_5"] - path = lib/CMSIS_5 - url = https://github.com/ARM-software/CMSIS_5.git [submodule "lib/CMSIS_4"] path = lib/CMSIS_4 url = https://github.com/ARM-software/CMSIS.git diff --git a/lib/CMSIS_5 b/lib/CMSIS_5 deleted file mode 160000 index 4a65d8801..000000000 --- a/lib/CMSIS_5 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4a65d88011a1595b7c8b42fa0d70b7bdfc132acc