From 80e2d33a5152e86d35023d0844421aa83aca0d77 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Wed, 23 May 2012 12:17:11 +0900 Subject: [PATCH] fix --- src/main.c | 5 +++-- src/usb_ctrl.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main.c b/src/main.c index a1cb495..80e263f 100644 --- a/src/main.c +++ b/src/main.c @@ -473,10 +473,11 @@ main (int argc, char *argv[]) #endif } + set_led (1); + /* USB Dissconnect (when supported) */ usb_lld_shutdown (); USB_Cable_Config (0); - set_led (1); - chThdSleep (MS2ST (100)); + chThdSleep (MS2ST (1)); /* > 2.5us required */ port_disable (); /* set vector */ SCB->VTOR = (uint32_t)&_regnual_start; diff --git a/src/usb_ctrl.c b/src/usb_ctrl.c index 08c64ea..da116d0 100644 --- a/src/usb_ctrl.c +++ b/src/usb_ctrl.c @@ -228,8 +228,9 @@ gnuk_setup (uint8_t req, uint8_t req_no, if (addr < &_regnual_start || addr + len > &__heap_end__) return USB_UNSUPPORT; - if (index == 0 && len != 256) - memset (addr, 0, 256); + if (index + len < 256) + memset (addr + index + len, 0, 256 - (index + len)); + usb_lld_set_data_to_recv (addr, len); return USB_SUCCESS; }