diff options
| author | hathach <[email protected]> | 2013-05-31 18:21:31 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2013-05-31 18:21:31 +0700 |
| commit | 03d85acfc7cb18a5469146f98c210a5747218cb3 (patch) | |
| tree | cf1f4ffac5cf99befadb1ee34f4ada66c78a1504 /tinyusb | |
| parent | abf105474529a9831851ea78bcc06d1e5ad4e173 (diff) | |
refractor string descriptors, allow one-stop configure descriptor for
- manufacturer, product etc ... (only english now)
Diffstat (limited to 'tinyusb')
| -rw-r--r-- | tinyusb/common/errors.h | 1 | ||||
| -rw-r--r-- | tinyusb/device/usbd.c | 25 |
2 files changed, 26 insertions, 0 deletions
diff --git a/tinyusb/common/errors.h b/tinyusb/common/errors.h index 061f08ab3..02d9d6824 100644 --- a/tinyusb/common/errors.h +++ b/tinyusb/common/errors.h @@ -73,6 +73,7 @@ ENTRY(TUSB_ERROR_OSAL_QUEUE_FAILED )\ ENTRY(TUSB_ERROR_OSAL_SEMAPHORE_FAILED )\ ENTRY(TUSB_ERROR_EHCI_NOT_ENOUGH_QTD )\ + ENTRY(TUSB_ERROR_USBD_DESCRIPTOR_STRING )\ ENTRY(TUSB_ERROR_FAILED )\ diff --git a/tinyusb/device/usbd.c b/tinyusb/device/usbd.c index efcf29ced..bed745985 100644 --- a/tinyusb/device/usbd.c +++ b/tinyusb/device/usbd.c @@ -46,6 +46,7 @@ // INCLUDE //--------------------------------------------------------------------+ #include "tusb.h" +#include "tusb_descriptors.h" // TODO callback include //--------------------------------------------------------------------+ // MACRO CONSTANT TYPEDEF @@ -66,6 +67,30 @@ //--------------------------------------------------------------------+ tusb_error_t usbd_init (void) { + ASSERT_INT( USB_STRING_LEN(sizeof(TUSB_CFG_DEVICE_STRING_MANUFACTURER)-1), + app_tusb_desc_strings.manufacturer.bLength, TUSB_ERROR_USBD_DESCRIPTOR_STRING); + + ASSERT_INT( USB_STRING_LEN(sizeof(TUSB_CFG_DEVICE_STRING_PRODUCT)-1) , + app_tusb_desc_strings.product.bLength , TUSB_ERROR_USBD_DESCRIPTOR_STRING); + + ASSERT_INT( USB_STRING_LEN(sizeof(TUSB_CFG_DEVICE_STRING_SERIAL)-1) , + app_tusb_desc_strings.serial.bLength , TUSB_ERROR_USBD_DESCRIPTOR_STRING); + + for(uint32_t i=0; i < sizeof(TUSB_CFG_DEVICE_STRING_MANUFACTURER)-1; i++) + { + app_tusb_desc_strings.manufacturer.unicode_string[i] = TUSB_CFG_DEVICE_STRING_MANUFACTURER[i]; + } + + for(uint32_t i=0; i < sizeof(TUSB_CFG_DEVICE_STRING_PRODUCT)-1; i++) + { + app_tusb_desc_strings.product.unicode_string[i] = TUSB_CFG_DEVICE_STRING_PRODUCT[i]; + } + + for(uint32_t i=0; i < sizeof(TUSB_CFG_DEVICE_STRING_SERIAL)-1; i++) + { + app_tusb_desc_strings.serial.unicode_string[i] = TUSB_CFG_DEVICE_STRING_SERIAL[i]; + } + ASSERT_STATUS ( dcd_init() ); return TUSB_ERROR_NONE; |
