From cbf9f6e0dc4419cd19d5e2bae1f2f104faca2b9b Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 11 Sep 2019 13:00:15 +0700 Subject: [PATCH 1/3] added new example hid_composite --- examples/device/cdc_msc_hid_mynewt/readme.md | 1 - examples/device/hid_composite/Makefile | 12 + examples/device/hid_composite/src/main.c | 205 ++++++++++++++++++ .../device/hid_composite/src/tusb_config.h | 88 ++++++++ .../hid_composite/src/usb_descriptors.c | 167 ++++++++++++++ .../hid_composite/src/usb_descriptors.h | 34 +++ .../hid_generic_inout/src/usb_descriptors.c | 4 - 7 files changed, 506 insertions(+), 5 deletions(-) delete mode 100644 examples/device/cdc_msc_hid_mynewt/readme.md create mode 100644 examples/device/hid_composite/Makefile create mode 100644 examples/device/hid_composite/src/main.c create mode 100644 examples/device/hid_composite/src/tusb_config.h create mode 100644 examples/device/hid_composite/src/usb_descriptors.c create mode 100644 examples/device/hid_composite/src/usb_descriptors.h diff --git a/examples/device/cdc_msc_hid_mynewt/readme.md b/examples/device/cdc_msc_hid_mynewt/readme.md deleted file mode 100644 index 0dac39a88..000000000 --- a/examples/device/cdc_msc_hid_mynewt/readme.md +++ /dev/null @@ -1 +0,0 @@ -Please check out this repo https://github.com/hathach/mynewt-tinyusb-example For mynewt example \ No newline at end of file diff --git a/examples/device/hid_composite/Makefile b/examples/device/hid_composite/Makefile new file mode 100644 index 000000000..69b633fea --- /dev/null +++ b/examples/device/hid_composite/Makefile @@ -0,0 +1,12 @@ +include ../../../tools/top.mk +include ../../make.mk + +INC += \ + src \ + $(TOP)/hw \ + +# Example source +EXAMPLE_SOURCE += $(wildcard src/*.c) +SRC_C += $(addprefix $(CURRENT_PATH)/, $(EXAMPLE_SOURCE)) + +include ../../rules.mk diff --git a/examples/device/hid_composite/src/main.c b/examples/device/hid_composite/src/main.c new file mode 100644 index 000000000..4529e24f1 --- /dev/null +++ b/examples/device/hid_composite/src/main.c @@ -0,0 +1,205 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2019 Ha Thach (tinyusb.org) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ + +#include +#include +#include + +#include "bsp/board.h" +#include "tusb.h" + +#include "usb_descriptors.h" + +//--------------------------------------------------------------------+ +// MACRO CONSTANT TYPEDEF PROTYPES +//--------------------------------------------------------------------+ + +/* Blink pattern + * - 250 ms : device not mounted + * - 1000 ms : device mounted + * - 2500 ms : device is suspended + */ +enum { + BLINK_NOT_MOUNTED = 250, + BLINK_MOUNTED = 1000, + BLINK_SUSPENDED = 2500, +}; + +static uint32_t blink_interval_ms = BLINK_NOT_MOUNTED; + +void led_blinking_task(void); +void hid_task(void); + +/*------------- MAIN -------------*/ +int main(void) +{ + board_init(); + + tusb_init(); + + while (1) + { + tud_task(); // tinyusb device task + led_blinking_task(); + + hid_task(); + } + + return 0; +} + +//--------------------------------------------------------------------+ +// Device callbacks +//--------------------------------------------------------------------+ + +// Invoked when device is mounted +void tud_mount_cb(void) +{ + blink_interval_ms = BLINK_MOUNTED; +} + +// Invoked when device is unmounted +void tud_umount_cb(void) +{ + blink_interval_ms = BLINK_NOT_MOUNTED; +} + +// Invoked when usb bus is suspended +// remote_wakeup_en : if host allow us to perform remote wakeup +// Within 7ms, device must draw an average of current less than 2.5 mA from bus +void tud_suspend_cb(bool remote_wakeup_en) +{ + (void) remote_wakeup_en; + blink_interval_ms = BLINK_SUSPENDED; +} + +// Invoked when usb bus is resumed +void tud_resume_cb(void) +{ + blink_interval_ms = BLINK_MOUNTED; +} + +//--------------------------------------------------------------------+ +// USB HID +//--------------------------------------------------------------------+ + +void hid_task(void) +{ + // Poll every 10ms + const uint32_t interval_ms = 10; + static uint32_t start_ms = 0; + + if ( board_millis() - start_ms < interval_ms) return; // not enough time + start_ms += interval_ms; + + uint32_t const btn = board_button_read(); + + // Remote wakeup + if ( tud_suspended() && btn ) + { + // Wake up host if we are in suspend mode + // and REMOTE_WAKEUP feature is enabled by host + tud_remote_wakeup(); + } + + /*------------- Mouse -------------*/ + if ( tud_hid_ready() ) + { + if ( btn ) + { + int8_t const delta = 5; + + // no button, right + down, no scroll pan + tud_hid_mouse_report(REPORT_ID_MOUSE, 0x00, delta, delta, 0, 0); + + // delay a bit before attempt to send keyboard report + board_delay(10); + } + } + + /*------------- Keyboard -------------*/ + if ( tud_hid_ready() ) + { + // use to avoid send multiple consecutive zero report for keyboard + static bool has_key = false; + + if ( btn ) + { + uint8_t keycode[6] = { 0 }; + keycode[0] = HID_KEY_A; + + tud_hid_keyboard_report(REPORT_ID_KEYBOARD, 0, keycode); + + has_key = true; + }else + { + // send empty key report if previously has key pressed + if (has_key) tud_hid_keyboard_report(REPORT_ID_KEYBOARD, 0, NULL); + has_key = false; + } + } +} + + +// Invoked when received GET_REPORT control request +// Application must fill buffer report's content and return its length. +// Return zero will cause the stack to STALL request +uint16_t tud_hid_get_report_cb(uint8_t report_id, hid_report_type_t report_type, uint8_t* buffer, uint16_t reqlen) +{ + // TODO not Implemented + (void) report_id; + (void) report_type; + (void) buffer; + (void) reqlen; + + return 0; +} + +// Invoked when received SET_REPORT control request or +// received data on OUT endpoint ( Report ID = 0, Type = 0 ) +void tud_hid_set_report_cb(uint8_t report_id, hid_report_type_t report_type, uint8_t const* buffer, uint16_t bufsize) +{ + // TODO set LED based on CAPLOCK, NUMLOCK etc... + (void) report_id; + (void) report_type; + (void) buffer; + (void) bufsize; +} + +//--------------------------------------------------------------------+ +// BLINKING TASK +//--------------------------------------------------------------------+ +void led_blinking_task(void) +{ + static uint32_t start_ms = 0; + static bool led_state = false; + + // Blink every interval ms + if ( board_millis() - start_ms < blink_interval_ms) return; // not enough time + start_ms += blink_interval_ms; + + board_led_write(led_state); + led_state = 1 - led_state; // toggle +} diff --git a/examples/device/hid_composite/src/tusb_config.h b/examples/device/hid_composite/src/tusb_config.h new file mode 100644 index 000000000..57fcbd595 --- /dev/null +++ b/examples/device/hid_composite/src/tusb_config.h @@ -0,0 +1,88 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2019 Ha Thach (tinyusb.org) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ + +#ifndef _TUSB_CONFIG_H_ +#define _TUSB_CONFIG_H_ + +#ifdef __cplusplus + extern "C" { +#endif + +//-------------------------------------------------------------------- +// COMMON CONFIGURATION +//-------------------------------------------------------------------- + +// defined by compiler flags for flexibility +#ifndef CFG_TUSB_MCU + #error CFG_TUSB_MCU must be defined +#endif + +#if CFG_TUSB_MCU == OPT_MCU_LPC43XX || CFG_TUSB_MCU == OPT_MCU_LPC18XX +#define CFG_TUSB_RHPORT0_MODE (OPT_MODE_DEVICE | OPT_MODE_HIGH_SPEED) +#else +#define CFG_TUSB_RHPORT0_MODE OPT_MODE_DEVICE +#endif + +#define CFG_TUSB_OS OPT_OS_NONE + +// CFG_TUSB_DEBUG is defined by compiler in DEBUG build +// #define CFG_TUSB_DEBUG 0 + +/* USB DMA on some MCUs can only access a specific SRAM region with restriction on alignment. + * Tinyusb use follows macros to declare transferring memory so that they can be put + * into those specific section. + * e.g + * - CFG_TUSB_MEM SECTION : __attribute__ (( section(".usb_ram") )) + * - CFG_TUSB_MEM_ALIGN : __attribute__ ((aligned(4))) + */ +#ifndef CFG_TUSB_MEM_SECTION +#define CFG_TUSB_MEM_SECTION +#endif + +#ifndef CFG_TUSB_MEM_ALIGN +#define CFG_TUSB_MEM_ALIGN __attribute__ ((aligned(4))) +#endif + +//-------------------------------------------------------------------- +// DEVICE CONFIGURATION +//-------------------------------------------------------------------- + +#define CFG_TUD_ENDOINT0_SIZE 64 + +//------------- CLASS -------------// +#define CFG_TUD_HID 1 +#define CFG_TUD_CDC 0 +#define CFG_TUD_MSC 0 +#define CFG_TUD_MIDI 0 +#define CFG_TUD_VENDOR 0 + +// HID buffer size Should be sufficient to hold ID (if any) + Data +#define CFG_TUD_HID_BUFSIZE 16 + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_CONFIG_H_ */ diff --git a/examples/device/hid_composite/src/usb_descriptors.c b/examples/device/hid_composite/src/usb_descriptors.c new file mode 100644 index 000000000..678b7528b --- /dev/null +++ b/examples/device/hid_composite/src/usb_descriptors.c @@ -0,0 +1,167 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2019 Ha Thach (tinyusb.org) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ + +#include "tusb.h" +#include "usb_descriptors.h" + +/* A combination of interfaces must have a unique product id, since PC will save device driver after the first plug. + * Same VID/PID with different interface e.g MSC (first), then CDC (later) will possibly cause system error on PC. + * + * Auto ProductID layout's Bitmap: + * [MSB] HID | MSC | CDC [LSB] + */ +#define _PID_MAP(itf, n) ( (CFG_TUD_##itf) << (n) ) +#define USB_PID (0x4000 | _PID_MAP(CDC, 0) | _PID_MAP(MSC, 1) | _PID_MAP(HID, 2) | \ + _PID_MAP(MIDI, 3) | _PID_MAP(VENDOR, 4) ) + +//--------------------------------------------------------------------+ +// Device Descriptors +//--------------------------------------------------------------------+ +tusb_desc_device_t const desc_device = +{ + .bLength = sizeof(tusb_desc_device_t), + .bDescriptorType = TUSB_DESC_DEVICE, + .bcdUSB = 0x0200, + .bDeviceClass = 0x00, + .bDeviceSubClass = 0x00, + .bDeviceProtocol = 0x00, + .bMaxPacketSize0 = CFG_TUD_ENDOINT0_SIZE, + + .idVendor = 0xCafe, + .idProduct = USB_PID, + .bcdDevice = 0x0100, + + .iManufacturer = 0x01, + .iProduct = 0x02, + .iSerialNumber = 0x03, + + .bNumConfigurations = 0x01 +}; + +// Invoked when received GET DEVICE DESCRIPTOR +// Application return pointer to descriptor +uint8_t const * tud_descriptor_device_cb(void) +{ + return (uint8_t const *) &desc_device; +} + +//--------------------------------------------------------------------+ +// HID Report Descriptor +//--------------------------------------------------------------------+ + +uint8_t const desc_hid_report[] = +{ + TUD_HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(REPORT_ID_KEYBOARD), ), + TUD_HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(REPORT_ID_MOUSE), ) +}; + +// Invoked when received GET HID REPORT DESCRIPTOR +// Application return pointer to descriptor +// Descriptor contents must exist long enough for transfer to complete +uint8_t const * tud_hid_descriptor_report_cb(void) +{ + return desc_hid_report; +} + +//--------------------------------------------------------------------+ +// Configuration Descriptor +//--------------------------------------------------------------------+ + +enum +{ + ITF_NUM_HID, + ITF_NUM_TOTAL +}; + +#define CONFIG_TOTAL_LEN (TUD_CONFIG_DESC_LEN + TUD_HID_DESC_LEN) + +#define EPNUM_HID 0x81 + +uint8_t const desc_configuration[] = +{ + // interface count, string index, total length, attribute, power in mA + TUD_CONFIG_DESCRIPTOR(ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, TUSB_DESC_CONFIG_ATT_REMOTE_WAKEUP, 100), + + // Interface number, string index, protocol, report descriptor len, EP In & Out address, size & polling interval + TUD_HID_DESCRIPTOR(ITF_NUM_HID, 0, HID_PROTOCOL_NONE, sizeof(desc_hid_report), EPNUM_HID, CFG_TUD_HID_BUFSIZE, 10) +}; + +// Invoked when received GET CONFIGURATION DESCRIPTOR +// Application return pointer to descriptor +// Descriptor contents must exist long enough for transfer to complete +uint8_t const * tud_descriptor_configuration_cb(uint8_t index) +{ + (void) index; // for multiple configurations + return desc_configuration; +} + +//--------------------------------------------------------------------+ +// String Descriptors +//--------------------------------------------------------------------+ + +// array of pointer to string descriptors +char const* string_desc_arr [] = +{ + (const char[]) { 0x09, 0x04 }, // 0: is supported language is English (0x0409) + "TinyUSB", // 1: Manufacturer + "TinyUSB Device", // 2: Product + "123456", // 3: Serials, should use chip ID +}; + +static uint16_t _desc_str[32]; + +// Invoked when received GET STRING DESCRIPTOR request +// Application return pointer to descriptor, whose contents must exist long enough for transfer to complete +uint16_t const* tud_descriptor_string_cb(uint8_t index) +{ + uint8_t chr_count; + + if ( index == 0) + { + memcpy(&_desc_str[1], string_desc_arr[0], 2); + chr_count = 1; + }else + { + // Convert ASCII string into UTF-16 + + if ( !(index < sizeof(string_desc_arr)/sizeof(string_desc_arr[0])) ) return NULL; + + const char* str = string_desc_arr[index]; + + // Cap at max char + chr_count = strlen(str); + if ( chr_count > 31 ) chr_count = 31; + + for(uint8_t i=0; i Date: Wed, 11 Sep 2019 13:07:11 +0700 Subject: [PATCH 2/3] remove hid in cdc_msc_hid demo since many of stm32 mcu doesn't have enough endpoint to run this example --- examples/device/cdc_msc_hid/src/main.c | 101 ------------------ examples/device/cdc_msc_hid/src/tusb_config.h | 10 +- .../device/cdc_msc_hid/src/usb_descriptors.c | 50 +-------- .../device/cdc_msc_hid/src/usb_descriptors.h | 34 ------ 4 files changed, 2 insertions(+), 193 deletions(-) delete mode 100644 examples/device/cdc_msc_hid/src/usb_descriptors.h diff --git a/examples/device/cdc_msc_hid/src/main.c b/examples/device/cdc_msc_hid/src/main.c index 65ef1dcbd..c6ed4a922 100644 --- a/examples/device/cdc_msc_hid/src/main.c +++ b/examples/device/cdc_msc_hid/src/main.c @@ -30,8 +30,6 @@ #include "bsp/board.h" #include "tusb.h" -#include "usb_descriptors.h" - //--------------------------------------------------------------------+ // MACRO CONSTANT TYPEDEF PROTYPES //--------------------------------------------------------------------+ @@ -52,7 +50,6 @@ static uint32_t blink_interval_ms = BLINK_NOT_MOUNTED; void led_blinking_task(void); void cdc_task(void); -void hid_task(void); /*------------- MAIN -------------*/ int main(void) @@ -66,13 +63,7 @@ int main(void) tud_task(); // tinyusb device task led_blinking_task(); -#if CFG_TUD_CDC cdc_task(); -#endif - -#if CFG_TUD_HID - hid_task(); -#endif } return 0; @@ -113,7 +104,6 @@ void tud_resume_cb(void) //--------------------------------------------------------------------+ // USB CDC //--------------------------------------------------------------------+ -#if CFG_TUD_CDC void cdc_task(void) { if ( tud_cdc_connected() ) @@ -157,97 +147,6 @@ void tud_cdc_rx_cb(uint8_t itf) (void) itf; } -#endif - -//--------------------------------------------------------------------+ -// USB HID -//--------------------------------------------------------------------+ -#if CFG_TUD_HID - -void hid_task(void) -{ - // Poll every 10ms - const uint32_t interval_ms = 10; - static uint32_t start_ms = 0; - - if ( board_millis() - start_ms < interval_ms) return; // not enough time - start_ms += interval_ms; - - uint32_t const btn = board_button_read(); - - // Remote wakeup - if ( tud_suspended() && btn ) - { - // Wake up host if we are in suspend mode - // and REMOTE_WAKEUP feature is enabled by host - tud_remote_wakeup(); - } - - /*------------- Mouse -------------*/ - if ( tud_hid_ready() ) - { - if ( btn ) - { - int8_t const delta = 5; - - // no button, right + down, no scroll pan - tud_hid_mouse_report(REPORT_ID_MOUSE, 0x00, delta, delta, 0, 0); - - // delay a bit before attempt to send keyboard report - board_delay(10); - } - } - - /*------------- Keyboard -------------*/ - if ( tud_hid_ready() ) - { - // use to avoid send multiple consecutive zero report for keyboard - static bool has_key = false; - - if ( btn ) - { - uint8_t keycode[6] = { 0 }; - keycode[0] = HID_KEY_A; - - tud_hid_keyboard_report(REPORT_ID_KEYBOARD, 0, keycode); - - has_key = true; - }else - { - // send empty key report if previously has key pressed - if (has_key) tud_hid_keyboard_report(REPORT_ID_KEYBOARD, 0, NULL); - has_key = false; - } - } -} - -// Invoked when received GET_REPORT control request -// Application must fill buffer report's content and return its length. -// Return zero will cause the stack to STALL request -uint16_t tud_hid_get_report_cb(uint8_t report_id, hid_report_type_t report_type, uint8_t* buffer, uint16_t reqlen) -{ - // TODO not Implemented - (void) report_id; - (void) report_type; - (void) buffer; - (void) reqlen; - - return 0; -} - -// Invoked when received SET_REPORT control request or -// received data on OUT endpoint ( Report ID = 0, Type = 0 ) -void tud_hid_set_report_cb(uint8_t report_id, hid_report_type_t report_type, uint8_t const* buffer, uint16_t bufsize) -{ - // TODO not Implemented - (void) report_id; - (void) report_type; - (void) buffer; - (void) bufsize; -} - -#endif - //--------------------------------------------------------------------+ // BLINKING TASK //--------------------------------------------------------------------+ diff --git a/examples/device/cdc_msc_hid/src/tusb_config.h b/examples/device/cdc_msc_hid/src/tusb_config.h index 6eb6c10f1..ff7fafd8f 100644 --- a/examples/device/cdc_msc_hid/src/tusb_config.h +++ b/examples/device/cdc_msc_hid/src/tusb_config.h @@ -74,15 +74,7 @@ //------------- CLASS -------------// #define CFG_TUD_CDC 1 #define CFG_TUD_MSC 1 - -// Some STM32 MCUs does not have enough endpoints (4, including control -// endpoint) to enable CDC, MSC, and HID simultaneously, so disable HID as a compromise. -#if CFG_TUSB_MCU == OPT_MCU_STM32F4 - #include "stm32f4xx.h" - #define CFG_TUD_HID ((USB_OTG_FS_MAX_IN_ENDPOINTS > 4) ? 1 : 0) -#else - #define CFG_TUD_HID 1 -#endif +#define CFG_TUD_HID 0 #define CFG_TUD_MIDI 0 #define CFG_TUD_VENDOR 0 diff --git a/examples/device/cdc_msc_hid/src/usb_descriptors.c b/examples/device/cdc_msc_hid/src/usb_descriptors.c index 34f391dfb..ac8214e37 100644 --- a/examples/device/cdc_msc_hid/src/usb_descriptors.c +++ b/examples/device/cdc_msc_hid/src/usb_descriptors.c @@ -24,7 +24,6 @@ */ #include "tusb.h" -#include "usb_descriptors.h" /* A combination of interfaces must have a unique product id, since PC will save device driver after the first plug. * Same VID/PID with different interface e.g MSC (first), then CDC (later) will possibly cause system error on PC. @@ -45,17 +44,11 @@ tusb_desc_device_t const desc_device = .bDescriptorType = TUSB_DESC_DEVICE, .bcdUSB = 0x0200, - #if CFG_TUD_CDC // Use Interface Association Descriptor (IAD) for CDC // As required by USB Specs IAD's subclass must be common class (2) and protocol must be IAD (1) .bDeviceClass = TUSB_CLASS_MISC, .bDeviceSubClass = MISC_SUBCLASS_COMMON, .bDeviceProtocol = MISC_PROTOCOL_IAD, - #else - .bDeviceClass = 0x00, - .bDeviceSubClass = 0x00, - .bDeviceProtocol = 0x00, - #endif .bMaxPacketSize0 = CFG_TUD_ENDOINT0_SIZE, @@ -77,50 +70,19 @@ uint8_t const * tud_descriptor_device_cb(void) return (uint8_t const *) &desc_device; } -//--------------------------------------------------------------------+ -// HID Report Descriptor -//--------------------------------------------------------------------+ -#if CFG_TUD_HID - -uint8_t const desc_hid_report[] = -{ - TUD_HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(REPORT_ID_KEYBOARD), ), - TUD_HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(REPORT_ID_MOUSE), ) -}; - -// Invoked when received GET HID REPORT DESCRIPTOR -// Application return pointer to descriptor -// Descriptor contents must exist long enough for transfer to complete -uint8_t const * tud_hid_descriptor_report_cb(void) -{ - return desc_hid_report; -} - -#endif - //--------------------------------------------------------------------+ // Configuration Descriptor //--------------------------------------------------------------------+ enum { -#if CFG_TUD_CDC ITF_NUM_CDC = 0, ITF_NUM_CDC_DATA, -#endif - -#if CFG_TUD_MSC ITF_NUM_MSC, -#endif - -#if CFG_TUD_HID - ITF_NUM_HID, -#endif - ITF_NUM_TOTAL }; -#define CONFIG_TOTAL_LEN (TUD_CONFIG_DESC_LEN + CFG_TUD_CDC*TUD_CDC_DESC_LEN + CFG_TUD_MSC*TUD_MSC_DESC_LEN + CFG_TUD_HID*TUD_HID_DESC_LEN) +#define CONFIG_TOTAL_LEN (TUD_CONFIG_DESC_LEN + TUD_CDC_DESC_LEN + TUD_MSC_DESC_LEN) #if CFG_TUSB_MCU == OPT_MCU_LPC175X_6X || CFG_TUSB_MCU == OPT_MCU_LPC177X_8X || CFG_TUSB_MCU == OPT_MCU_LPC40XX // LPC 17xx and 40xx endpoint type (bulk/interrupt/iso) are fixed by its number @@ -137,20 +99,11 @@ uint8_t const desc_configuration[] = // Interface count, string index, total length, attribute, power in mA TUD_CONFIG_DESCRIPTOR(ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, TUSB_DESC_CONFIG_ATT_REMOTE_WAKEUP, 100), -#if CFG_TUD_CDC // Interface number, string index, EP notification address and size, EP data address (out, in) and size. TUD_CDC_DESCRIPTOR(ITF_NUM_CDC, 4, 0x81, 8, 0x02, 0x82, 64), -#endif -#if CFG_TUD_MSC // Interface number, string index, EP Out & EP In address, EP size TUD_MSC_DESCRIPTOR(ITF_NUM_MSC, 5, EPNUM_MSC, 0x80 | EPNUM_MSC, (CFG_TUSB_RHPORT0_MODE & OPT_MODE_HIGH_SPEED) ? 512 : 64), -#endif - -#if CFG_TUD_HID - // Interface number, string index, protocol, report descriptor len, EP In address, size & polling interval - TUD_HID_DESCRIPTOR(ITF_NUM_HID, 6, HID_PROTOCOL_NONE, sizeof(desc_hid_report), 0x84, 16, 10) -#endif }; @@ -176,7 +129,6 @@ char const* string_desc_arr [] = "123456", // 3: Serials, should use chip ID "TinyUSB CDC", // 4: CDC Interface "TinyUSB MSC", // 5: MSC Interface - "TinyUSB HID" // 6: HID }; static uint16_t _desc_str[32]; diff --git a/examples/device/cdc_msc_hid/src/usb_descriptors.h b/examples/device/cdc_msc_hid/src/usb_descriptors.h deleted file mode 100644 index 6992d3349..000000000 --- a/examples/device/cdc_msc_hid/src/usb_descriptors.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2019 Ha Thach (tinyusb.org) - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#ifndef USB_DESCRIPTORS_H_ -#define USB_DESCRIPTORS_H_ - -enum -{ - REPORT_ID_KEYBOARD = 1, - REPORT_ID_MOUSE -}; - -#endif /* USB_DESCRIPTORS_H_ */ From 7599541c1a33cc55b2a33fc160252e93811abe81 Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 11 Sep 2019 13:09:14 +0700 Subject: [PATCH 3/3] rename cdc_msc_hid to cdc_msc, hid has its own example hid_composite now --- examples/device/{cdc_msc_hid => cdc_msc}/Makefile | 0 .../device/{cdc_msc_hid => cdc_msc}/ses/cdc_msc_hid.emProject | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/LPC1100_Startup.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/LPC1100_Target.js | 0 .../ses/lpc11u6x/LPC11U68_MemoryMap.xml | 0 .../ses/lpc11u6x/LPC11U6x_Registers.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/LPC11U6x_Vectors.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/flash_placement.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/lpc11u6x.emProject | 0 .../device/{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/thumb_crt0.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc13xx/LPC1300_Startup.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc13xx/LPC1300_Target.js | 0 .../ses/lpc13xx/LPC1347FBD64_MemoryMap.xml | 0 .../ses/lpc13xx/LPC13Uxx_Registers.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc13xx/LPC13Uxx_Vectors.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc13xx/flash_placement.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc13xx/lpc13xx.emProject | 0 .../device/{cdc_msc_hid => cdc_msc}/ses/lpc13xx/thumb_crt0.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc175x_6x/LPC1700_Startup.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc175x_6x/LPC1700_Target.js | 0 .../ses/lpc175x_6x/LPC1769_MemoryMap.xml | 0 .../ses/lpc175x_6x/LPC176x5x_Registers.xml | 0 .../ses/lpc175x_6x/LPC176x5x_Vectors.s | 0 .../ses/lpc175x_6x/flash_placement.xml | 0 .../ses/lpc175x_6x/lpc175x_6x.emProject | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc175x_6x/thumb_crt0.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc18xx/LPC1800_Startup.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc18xx/LPC1800_Target.js | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc18xx/LPC1857_MemoryMap.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc18xx/LPC18xx_Registers.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc18xx/LPC18xx_Vectors.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc18xx/flash_placement.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc18xx/lpc18xx.emProject | 0 .../device/{cdc_msc_hid => cdc_msc}/ses/lpc18xx/thumb_crt0.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc40xx/LPC4000_Startup.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc40xx/LPC4000_Target.js | 0 .../ses/lpc40xx/LPC4088FBD208_MemoryMap.xml | 0 .../ses/lpc40xx/LPC408x_7x_Registers.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc40xx/LPC408x_7x_Vectors.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc40xx/flash_placement.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc40xx/lpc40xx.emProject | 0 .../device/{cdc_msc_hid => cdc_msc}/ses/lpc40xx/thumb_crt0.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc43xx/LPC4300_Startup.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc43xx/LPC4300_Target.js | 0 .../ses/lpc43xx/LPC4357 Cortex-M4_MemoryMap.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc43xx/LPC43xx_Registers.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc43xx/LPC43xx_Vectors.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc43xx/flash_placement.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/lpc43xx/lpc43xx.emProject | 0 .../device/{cdc_msc_hid => cdc_msc}/ses/lpc43xx/thumb_crt0.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/nrf5x/flash_placement.xml | 0 .../ses/nrf5x/nRF52840_xxAA_MemoryMap.xml | 0 .../ses/nrf5x/nRF52840_xxAA_s140v6_MemoryMap.xml | 0 .../device/{cdc_msc_hid => cdc_msc}/ses/nrf5x/nRF_Target.js | 0 .../{cdc_msc_hid => cdc_msc}/ses/nrf5x/nrf52840_Registers.xml | 0 .../device/{cdc_msc_hid => cdc_msc}/ses/nrf5x/nrf5x.emProject | 0 .../device/{cdc_msc_hid => cdc_msc}/ses/nrf5x/thumb_crt0.s | 0 .../ses/samd21/ATSAMD21G18A_MemoryMap.xml | 0 .../ses/samd21/ATSAMD21G18A_Registers.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/samd21/ATSAMD21G18A_Vectors.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/samd21/SAMD21_Startup.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/samd21/SAMD21_Target.js | 0 .../{cdc_msc_hid => cdc_msc}/ses/samd21/flash_placement.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/samd21/samd21.emProject | 0 .../device/{cdc_msc_hid => cdc_msc}/ses/samd21/thumb_crt0.s | 0 .../ses/samd51/ATSAMD51J19A_MemoryMap.xml | 0 .../ses/samd51/ATSAMD51J19A_Registers.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/samd51/ATSAMD51J19A_Vectors.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/samd51/SAMD51_Startup.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/samd51/SAMD51_Target.js | 0 .../{cdc_msc_hid => cdc_msc}/ses/samd51/flash_placement.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/samd51/samd51.emProject | 0 .../device/{cdc_msc_hid => cdc_msc}/ses/samd51/thumb_crt0.s | 0 .../ses/stm32f4/STM32F407VG_MemoryMap.xml | 0 .../ses/stm32f4/STM32F40x_Registers.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/stm32f4/STM32F40x_Vectors.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/stm32f4/STM32F4xx_Startup.s | 0 .../{cdc_msc_hid => cdc_msc}/ses/stm32f4/STM32F4xx_Target.js | 0 .../{cdc_msc_hid => cdc_msc}/ses/stm32f4/flash_placement.xml | 0 .../{cdc_msc_hid => cdc_msc}/ses/stm32f4/stm32f4.emProject | 0 .../device/{cdc_msc_hid => cdc_msc}/ses/stm32f4/thumb_crt0.s | 0 examples/device/{cdc_msc_hid => cdc_msc}/src/main.c | 0 examples/device/{cdc_msc_hid => cdc_msc}/src/msc_disk.c | 0 examples/device/{cdc_msc_hid => cdc_msc}/src/tusb_config.h | 0 examples/device/{cdc_msc_hid => cdc_msc}/src/usb_descriptors.c | 0 tools/build_all.py | 3 --- 86 files changed, 3 deletions(-) rename examples/device/{cdc_msc_hid => cdc_msc}/Makefile (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/cdc_msc_hid.emProject (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/LPC1100_Startup.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/LPC1100_Target.js (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/LPC11U68_MemoryMap.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/LPC11U6x_Registers.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/LPC11U6x_Vectors.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/flash_placement.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/lpc11u6x.emProject (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc11u6x/thumb_crt0.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc13xx/LPC1300_Startup.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc13xx/LPC1300_Target.js (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc13xx/LPC1347FBD64_MemoryMap.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc13xx/LPC13Uxx_Registers.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc13xx/LPC13Uxx_Vectors.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc13xx/flash_placement.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc13xx/lpc13xx.emProject (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc13xx/thumb_crt0.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc175x_6x/LPC1700_Startup.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc175x_6x/LPC1700_Target.js (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc175x_6x/LPC1769_MemoryMap.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc175x_6x/LPC176x5x_Registers.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc175x_6x/LPC176x5x_Vectors.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc175x_6x/flash_placement.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc175x_6x/lpc175x_6x.emProject (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc175x_6x/thumb_crt0.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc18xx/LPC1800_Startup.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc18xx/LPC1800_Target.js (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc18xx/LPC1857_MemoryMap.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc18xx/LPC18xx_Registers.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc18xx/LPC18xx_Vectors.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc18xx/flash_placement.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc18xx/lpc18xx.emProject (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc18xx/thumb_crt0.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc40xx/LPC4000_Startup.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc40xx/LPC4000_Target.js (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc40xx/LPC4088FBD208_MemoryMap.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc40xx/LPC408x_7x_Registers.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc40xx/LPC408x_7x_Vectors.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc40xx/flash_placement.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc40xx/lpc40xx.emProject (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc40xx/thumb_crt0.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc43xx/LPC4300_Startup.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc43xx/LPC4300_Target.js (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc43xx/LPC4357 Cortex-M4_MemoryMap.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc43xx/LPC43xx_Registers.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc43xx/LPC43xx_Vectors.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc43xx/flash_placement.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc43xx/lpc43xx.emProject (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/lpc43xx/thumb_crt0.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/nrf5x/flash_placement.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/nrf5x/nRF52840_xxAA_MemoryMap.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/nrf5x/nRF52840_xxAA_s140v6_MemoryMap.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/nrf5x/nRF_Target.js (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/nrf5x/nrf52840_Registers.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/nrf5x/nrf5x.emProject (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/nrf5x/thumb_crt0.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd21/ATSAMD21G18A_MemoryMap.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd21/ATSAMD21G18A_Registers.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd21/ATSAMD21G18A_Vectors.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd21/SAMD21_Startup.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd21/SAMD21_Target.js (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd21/flash_placement.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd21/samd21.emProject (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd21/thumb_crt0.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd51/ATSAMD51J19A_MemoryMap.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd51/ATSAMD51J19A_Registers.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd51/ATSAMD51J19A_Vectors.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd51/SAMD51_Startup.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd51/SAMD51_Target.js (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd51/flash_placement.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd51/samd51.emProject (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/samd51/thumb_crt0.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/stm32f4/STM32F407VG_MemoryMap.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/stm32f4/STM32F40x_Registers.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/stm32f4/STM32F40x_Vectors.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/stm32f4/STM32F4xx_Startup.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/stm32f4/STM32F4xx_Target.js (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/stm32f4/flash_placement.xml (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/stm32f4/stm32f4.emProject (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/ses/stm32f4/thumb_crt0.s (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/src/main.c (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/src/msc_disk.c (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/src/tusb_config.h (100%) rename examples/device/{cdc_msc_hid => cdc_msc}/src/usb_descriptors.c (100%) diff --git a/examples/device/cdc_msc_hid/Makefile b/examples/device/cdc_msc/Makefile similarity index 100% rename from examples/device/cdc_msc_hid/Makefile rename to examples/device/cdc_msc/Makefile diff --git a/examples/device/cdc_msc_hid/ses/cdc_msc_hid.emProject b/examples/device/cdc_msc/ses/cdc_msc_hid.emProject similarity index 100% rename from examples/device/cdc_msc_hid/ses/cdc_msc_hid.emProject rename to examples/device/cdc_msc/ses/cdc_msc_hid.emProject diff --git a/examples/device/cdc_msc_hid/ses/lpc11u6x/LPC1100_Startup.s b/examples/device/cdc_msc/ses/lpc11u6x/LPC1100_Startup.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc11u6x/LPC1100_Startup.s rename to examples/device/cdc_msc/ses/lpc11u6x/LPC1100_Startup.s diff --git a/examples/device/cdc_msc_hid/ses/lpc11u6x/LPC1100_Target.js b/examples/device/cdc_msc/ses/lpc11u6x/LPC1100_Target.js similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc11u6x/LPC1100_Target.js rename to examples/device/cdc_msc/ses/lpc11u6x/LPC1100_Target.js diff --git a/examples/device/cdc_msc_hid/ses/lpc11u6x/LPC11U68_MemoryMap.xml b/examples/device/cdc_msc/ses/lpc11u6x/LPC11U68_MemoryMap.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc11u6x/LPC11U68_MemoryMap.xml rename to examples/device/cdc_msc/ses/lpc11u6x/LPC11U68_MemoryMap.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc11u6x/LPC11U6x_Registers.xml b/examples/device/cdc_msc/ses/lpc11u6x/LPC11U6x_Registers.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc11u6x/LPC11U6x_Registers.xml rename to examples/device/cdc_msc/ses/lpc11u6x/LPC11U6x_Registers.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc11u6x/LPC11U6x_Vectors.s b/examples/device/cdc_msc/ses/lpc11u6x/LPC11U6x_Vectors.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc11u6x/LPC11U6x_Vectors.s rename to examples/device/cdc_msc/ses/lpc11u6x/LPC11U6x_Vectors.s diff --git a/examples/device/cdc_msc_hid/ses/lpc11u6x/flash_placement.xml b/examples/device/cdc_msc/ses/lpc11u6x/flash_placement.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc11u6x/flash_placement.xml rename to examples/device/cdc_msc/ses/lpc11u6x/flash_placement.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc11u6x/lpc11u6x.emProject b/examples/device/cdc_msc/ses/lpc11u6x/lpc11u6x.emProject similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc11u6x/lpc11u6x.emProject rename to examples/device/cdc_msc/ses/lpc11u6x/lpc11u6x.emProject diff --git a/examples/device/cdc_msc_hid/ses/lpc11u6x/thumb_crt0.s b/examples/device/cdc_msc/ses/lpc11u6x/thumb_crt0.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc11u6x/thumb_crt0.s rename to examples/device/cdc_msc/ses/lpc11u6x/thumb_crt0.s diff --git a/examples/device/cdc_msc_hid/ses/lpc13xx/LPC1300_Startup.s b/examples/device/cdc_msc/ses/lpc13xx/LPC1300_Startup.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc13xx/LPC1300_Startup.s rename to examples/device/cdc_msc/ses/lpc13xx/LPC1300_Startup.s diff --git a/examples/device/cdc_msc_hid/ses/lpc13xx/LPC1300_Target.js b/examples/device/cdc_msc/ses/lpc13xx/LPC1300_Target.js similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc13xx/LPC1300_Target.js rename to examples/device/cdc_msc/ses/lpc13xx/LPC1300_Target.js diff --git a/examples/device/cdc_msc_hid/ses/lpc13xx/LPC1347FBD64_MemoryMap.xml b/examples/device/cdc_msc/ses/lpc13xx/LPC1347FBD64_MemoryMap.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc13xx/LPC1347FBD64_MemoryMap.xml rename to examples/device/cdc_msc/ses/lpc13xx/LPC1347FBD64_MemoryMap.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc13xx/LPC13Uxx_Registers.xml b/examples/device/cdc_msc/ses/lpc13xx/LPC13Uxx_Registers.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc13xx/LPC13Uxx_Registers.xml rename to examples/device/cdc_msc/ses/lpc13xx/LPC13Uxx_Registers.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc13xx/LPC13Uxx_Vectors.s b/examples/device/cdc_msc/ses/lpc13xx/LPC13Uxx_Vectors.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc13xx/LPC13Uxx_Vectors.s rename to examples/device/cdc_msc/ses/lpc13xx/LPC13Uxx_Vectors.s diff --git a/examples/device/cdc_msc_hid/ses/lpc13xx/flash_placement.xml b/examples/device/cdc_msc/ses/lpc13xx/flash_placement.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc13xx/flash_placement.xml rename to examples/device/cdc_msc/ses/lpc13xx/flash_placement.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc13xx/lpc13xx.emProject b/examples/device/cdc_msc/ses/lpc13xx/lpc13xx.emProject similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc13xx/lpc13xx.emProject rename to examples/device/cdc_msc/ses/lpc13xx/lpc13xx.emProject diff --git a/examples/device/cdc_msc_hid/ses/lpc13xx/thumb_crt0.s b/examples/device/cdc_msc/ses/lpc13xx/thumb_crt0.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc13xx/thumb_crt0.s rename to examples/device/cdc_msc/ses/lpc13xx/thumb_crt0.s diff --git a/examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC1700_Startup.s b/examples/device/cdc_msc/ses/lpc175x_6x/LPC1700_Startup.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC1700_Startup.s rename to examples/device/cdc_msc/ses/lpc175x_6x/LPC1700_Startup.s diff --git a/examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC1700_Target.js b/examples/device/cdc_msc/ses/lpc175x_6x/LPC1700_Target.js similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC1700_Target.js rename to examples/device/cdc_msc/ses/lpc175x_6x/LPC1700_Target.js diff --git a/examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC1769_MemoryMap.xml b/examples/device/cdc_msc/ses/lpc175x_6x/LPC1769_MemoryMap.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC1769_MemoryMap.xml rename to examples/device/cdc_msc/ses/lpc175x_6x/LPC1769_MemoryMap.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC176x5x_Registers.xml b/examples/device/cdc_msc/ses/lpc175x_6x/LPC176x5x_Registers.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC176x5x_Registers.xml rename to examples/device/cdc_msc/ses/lpc175x_6x/LPC176x5x_Registers.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC176x5x_Vectors.s b/examples/device/cdc_msc/ses/lpc175x_6x/LPC176x5x_Vectors.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC176x5x_Vectors.s rename to examples/device/cdc_msc/ses/lpc175x_6x/LPC176x5x_Vectors.s diff --git a/examples/device/cdc_msc_hid/ses/lpc175x_6x/flash_placement.xml b/examples/device/cdc_msc/ses/lpc175x_6x/flash_placement.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc175x_6x/flash_placement.xml rename to examples/device/cdc_msc/ses/lpc175x_6x/flash_placement.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc175x_6x/lpc175x_6x.emProject b/examples/device/cdc_msc/ses/lpc175x_6x/lpc175x_6x.emProject similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc175x_6x/lpc175x_6x.emProject rename to examples/device/cdc_msc/ses/lpc175x_6x/lpc175x_6x.emProject diff --git a/examples/device/cdc_msc_hid/ses/lpc175x_6x/thumb_crt0.s b/examples/device/cdc_msc/ses/lpc175x_6x/thumb_crt0.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc175x_6x/thumb_crt0.s rename to examples/device/cdc_msc/ses/lpc175x_6x/thumb_crt0.s diff --git a/examples/device/cdc_msc_hid/ses/lpc18xx/LPC1800_Startup.s b/examples/device/cdc_msc/ses/lpc18xx/LPC1800_Startup.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc18xx/LPC1800_Startup.s rename to examples/device/cdc_msc/ses/lpc18xx/LPC1800_Startup.s diff --git a/examples/device/cdc_msc_hid/ses/lpc18xx/LPC1800_Target.js b/examples/device/cdc_msc/ses/lpc18xx/LPC1800_Target.js similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc18xx/LPC1800_Target.js rename to examples/device/cdc_msc/ses/lpc18xx/LPC1800_Target.js diff --git a/examples/device/cdc_msc_hid/ses/lpc18xx/LPC1857_MemoryMap.xml b/examples/device/cdc_msc/ses/lpc18xx/LPC1857_MemoryMap.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc18xx/LPC1857_MemoryMap.xml rename to examples/device/cdc_msc/ses/lpc18xx/LPC1857_MemoryMap.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc18xx/LPC18xx_Registers.xml b/examples/device/cdc_msc/ses/lpc18xx/LPC18xx_Registers.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc18xx/LPC18xx_Registers.xml rename to examples/device/cdc_msc/ses/lpc18xx/LPC18xx_Registers.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc18xx/LPC18xx_Vectors.s b/examples/device/cdc_msc/ses/lpc18xx/LPC18xx_Vectors.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc18xx/LPC18xx_Vectors.s rename to examples/device/cdc_msc/ses/lpc18xx/LPC18xx_Vectors.s diff --git a/examples/device/cdc_msc_hid/ses/lpc18xx/flash_placement.xml b/examples/device/cdc_msc/ses/lpc18xx/flash_placement.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc18xx/flash_placement.xml rename to examples/device/cdc_msc/ses/lpc18xx/flash_placement.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc18xx/lpc18xx.emProject b/examples/device/cdc_msc/ses/lpc18xx/lpc18xx.emProject similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc18xx/lpc18xx.emProject rename to examples/device/cdc_msc/ses/lpc18xx/lpc18xx.emProject diff --git a/examples/device/cdc_msc_hid/ses/lpc18xx/thumb_crt0.s b/examples/device/cdc_msc/ses/lpc18xx/thumb_crt0.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc18xx/thumb_crt0.s rename to examples/device/cdc_msc/ses/lpc18xx/thumb_crt0.s diff --git a/examples/device/cdc_msc_hid/ses/lpc40xx/LPC4000_Startup.s b/examples/device/cdc_msc/ses/lpc40xx/LPC4000_Startup.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc40xx/LPC4000_Startup.s rename to examples/device/cdc_msc/ses/lpc40xx/LPC4000_Startup.s diff --git a/examples/device/cdc_msc_hid/ses/lpc40xx/LPC4000_Target.js b/examples/device/cdc_msc/ses/lpc40xx/LPC4000_Target.js similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc40xx/LPC4000_Target.js rename to examples/device/cdc_msc/ses/lpc40xx/LPC4000_Target.js diff --git a/examples/device/cdc_msc_hid/ses/lpc40xx/LPC4088FBD208_MemoryMap.xml b/examples/device/cdc_msc/ses/lpc40xx/LPC4088FBD208_MemoryMap.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc40xx/LPC4088FBD208_MemoryMap.xml rename to examples/device/cdc_msc/ses/lpc40xx/LPC4088FBD208_MemoryMap.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc40xx/LPC408x_7x_Registers.xml b/examples/device/cdc_msc/ses/lpc40xx/LPC408x_7x_Registers.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc40xx/LPC408x_7x_Registers.xml rename to examples/device/cdc_msc/ses/lpc40xx/LPC408x_7x_Registers.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc40xx/LPC408x_7x_Vectors.s b/examples/device/cdc_msc/ses/lpc40xx/LPC408x_7x_Vectors.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc40xx/LPC408x_7x_Vectors.s rename to examples/device/cdc_msc/ses/lpc40xx/LPC408x_7x_Vectors.s diff --git a/examples/device/cdc_msc_hid/ses/lpc40xx/flash_placement.xml b/examples/device/cdc_msc/ses/lpc40xx/flash_placement.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc40xx/flash_placement.xml rename to examples/device/cdc_msc/ses/lpc40xx/flash_placement.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc40xx/lpc40xx.emProject b/examples/device/cdc_msc/ses/lpc40xx/lpc40xx.emProject similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc40xx/lpc40xx.emProject rename to examples/device/cdc_msc/ses/lpc40xx/lpc40xx.emProject diff --git a/examples/device/cdc_msc_hid/ses/lpc40xx/thumb_crt0.s b/examples/device/cdc_msc/ses/lpc40xx/thumb_crt0.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc40xx/thumb_crt0.s rename to examples/device/cdc_msc/ses/lpc40xx/thumb_crt0.s diff --git a/examples/device/cdc_msc_hid/ses/lpc43xx/LPC4300_Startup.s b/examples/device/cdc_msc/ses/lpc43xx/LPC4300_Startup.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc43xx/LPC4300_Startup.s rename to examples/device/cdc_msc/ses/lpc43xx/LPC4300_Startup.s diff --git a/examples/device/cdc_msc_hid/ses/lpc43xx/LPC4300_Target.js b/examples/device/cdc_msc/ses/lpc43xx/LPC4300_Target.js similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc43xx/LPC4300_Target.js rename to examples/device/cdc_msc/ses/lpc43xx/LPC4300_Target.js diff --git a/examples/device/cdc_msc_hid/ses/lpc43xx/LPC4357 Cortex-M4_MemoryMap.xml b/examples/device/cdc_msc/ses/lpc43xx/LPC4357 Cortex-M4_MemoryMap.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc43xx/LPC4357 Cortex-M4_MemoryMap.xml rename to examples/device/cdc_msc/ses/lpc43xx/LPC4357 Cortex-M4_MemoryMap.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc43xx/LPC43xx_Registers.xml b/examples/device/cdc_msc/ses/lpc43xx/LPC43xx_Registers.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc43xx/LPC43xx_Registers.xml rename to examples/device/cdc_msc/ses/lpc43xx/LPC43xx_Registers.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc43xx/LPC43xx_Vectors.s b/examples/device/cdc_msc/ses/lpc43xx/LPC43xx_Vectors.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc43xx/LPC43xx_Vectors.s rename to examples/device/cdc_msc/ses/lpc43xx/LPC43xx_Vectors.s diff --git a/examples/device/cdc_msc_hid/ses/lpc43xx/flash_placement.xml b/examples/device/cdc_msc/ses/lpc43xx/flash_placement.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc43xx/flash_placement.xml rename to examples/device/cdc_msc/ses/lpc43xx/flash_placement.xml diff --git a/examples/device/cdc_msc_hid/ses/lpc43xx/lpc43xx.emProject b/examples/device/cdc_msc/ses/lpc43xx/lpc43xx.emProject similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc43xx/lpc43xx.emProject rename to examples/device/cdc_msc/ses/lpc43xx/lpc43xx.emProject diff --git a/examples/device/cdc_msc_hid/ses/lpc43xx/thumb_crt0.s b/examples/device/cdc_msc/ses/lpc43xx/thumb_crt0.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/lpc43xx/thumb_crt0.s rename to examples/device/cdc_msc/ses/lpc43xx/thumb_crt0.s diff --git a/examples/device/cdc_msc_hid/ses/nrf5x/flash_placement.xml b/examples/device/cdc_msc/ses/nrf5x/flash_placement.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/nrf5x/flash_placement.xml rename to examples/device/cdc_msc/ses/nrf5x/flash_placement.xml diff --git a/examples/device/cdc_msc_hid/ses/nrf5x/nRF52840_xxAA_MemoryMap.xml b/examples/device/cdc_msc/ses/nrf5x/nRF52840_xxAA_MemoryMap.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/nrf5x/nRF52840_xxAA_MemoryMap.xml rename to examples/device/cdc_msc/ses/nrf5x/nRF52840_xxAA_MemoryMap.xml diff --git a/examples/device/cdc_msc_hid/ses/nrf5x/nRF52840_xxAA_s140v6_MemoryMap.xml b/examples/device/cdc_msc/ses/nrf5x/nRF52840_xxAA_s140v6_MemoryMap.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/nrf5x/nRF52840_xxAA_s140v6_MemoryMap.xml rename to examples/device/cdc_msc/ses/nrf5x/nRF52840_xxAA_s140v6_MemoryMap.xml diff --git a/examples/device/cdc_msc_hid/ses/nrf5x/nRF_Target.js b/examples/device/cdc_msc/ses/nrf5x/nRF_Target.js similarity index 100% rename from examples/device/cdc_msc_hid/ses/nrf5x/nRF_Target.js rename to examples/device/cdc_msc/ses/nrf5x/nRF_Target.js diff --git a/examples/device/cdc_msc_hid/ses/nrf5x/nrf52840_Registers.xml b/examples/device/cdc_msc/ses/nrf5x/nrf52840_Registers.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/nrf5x/nrf52840_Registers.xml rename to examples/device/cdc_msc/ses/nrf5x/nrf52840_Registers.xml diff --git a/examples/device/cdc_msc_hid/ses/nrf5x/nrf5x.emProject b/examples/device/cdc_msc/ses/nrf5x/nrf5x.emProject similarity index 100% rename from examples/device/cdc_msc_hid/ses/nrf5x/nrf5x.emProject rename to examples/device/cdc_msc/ses/nrf5x/nrf5x.emProject diff --git a/examples/device/cdc_msc_hid/ses/nrf5x/thumb_crt0.s b/examples/device/cdc_msc/ses/nrf5x/thumb_crt0.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/nrf5x/thumb_crt0.s rename to examples/device/cdc_msc/ses/nrf5x/thumb_crt0.s diff --git a/examples/device/cdc_msc_hid/ses/samd21/ATSAMD21G18A_MemoryMap.xml b/examples/device/cdc_msc/ses/samd21/ATSAMD21G18A_MemoryMap.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd21/ATSAMD21G18A_MemoryMap.xml rename to examples/device/cdc_msc/ses/samd21/ATSAMD21G18A_MemoryMap.xml diff --git a/examples/device/cdc_msc_hid/ses/samd21/ATSAMD21G18A_Registers.xml b/examples/device/cdc_msc/ses/samd21/ATSAMD21G18A_Registers.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd21/ATSAMD21G18A_Registers.xml rename to examples/device/cdc_msc/ses/samd21/ATSAMD21G18A_Registers.xml diff --git a/examples/device/cdc_msc_hid/ses/samd21/ATSAMD21G18A_Vectors.s b/examples/device/cdc_msc/ses/samd21/ATSAMD21G18A_Vectors.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd21/ATSAMD21G18A_Vectors.s rename to examples/device/cdc_msc/ses/samd21/ATSAMD21G18A_Vectors.s diff --git a/examples/device/cdc_msc_hid/ses/samd21/SAMD21_Startup.s b/examples/device/cdc_msc/ses/samd21/SAMD21_Startup.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd21/SAMD21_Startup.s rename to examples/device/cdc_msc/ses/samd21/SAMD21_Startup.s diff --git a/examples/device/cdc_msc_hid/ses/samd21/SAMD21_Target.js b/examples/device/cdc_msc/ses/samd21/SAMD21_Target.js similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd21/SAMD21_Target.js rename to examples/device/cdc_msc/ses/samd21/SAMD21_Target.js diff --git a/examples/device/cdc_msc_hid/ses/samd21/flash_placement.xml b/examples/device/cdc_msc/ses/samd21/flash_placement.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd21/flash_placement.xml rename to examples/device/cdc_msc/ses/samd21/flash_placement.xml diff --git a/examples/device/cdc_msc_hid/ses/samd21/samd21.emProject b/examples/device/cdc_msc/ses/samd21/samd21.emProject similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd21/samd21.emProject rename to examples/device/cdc_msc/ses/samd21/samd21.emProject diff --git a/examples/device/cdc_msc_hid/ses/samd21/thumb_crt0.s b/examples/device/cdc_msc/ses/samd21/thumb_crt0.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd21/thumb_crt0.s rename to examples/device/cdc_msc/ses/samd21/thumb_crt0.s diff --git a/examples/device/cdc_msc_hid/ses/samd51/ATSAMD51J19A_MemoryMap.xml b/examples/device/cdc_msc/ses/samd51/ATSAMD51J19A_MemoryMap.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd51/ATSAMD51J19A_MemoryMap.xml rename to examples/device/cdc_msc/ses/samd51/ATSAMD51J19A_MemoryMap.xml diff --git a/examples/device/cdc_msc_hid/ses/samd51/ATSAMD51J19A_Registers.xml b/examples/device/cdc_msc/ses/samd51/ATSAMD51J19A_Registers.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd51/ATSAMD51J19A_Registers.xml rename to examples/device/cdc_msc/ses/samd51/ATSAMD51J19A_Registers.xml diff --git a/examples/device/cdc_msc_hid/ses/samd51/ATSAMD51J19A_Vectors.s b/examples/device/cdc_msc/ses/samd51/ATSAMD51J19A_Vectors.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd51/ATSAMD51J19A_Vectors.s rename to examples/device/cdc_msc/ses/samd51/ATSAMD51J19A_Vectors.s diff --git a/examples/device/cdc_msc_hid/ses/samd51/SAMD51_Startup.s b/examples/device/cdc_msc/ses/samd51/SAMD51_Startup.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd51/SAMD51_Startup.s rename to examples/device/cdc_msc/ses/samd51/SAMD51_Startup.s diff --git a/examples/device/cdc_msc_hid/ses/samd51/SAMD51_Target.js b/examples/device/cdc_msc/ses/samd51/SAMD51_Target.js similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd51/SAMD51_Target.js rename to examples/device/cdc_msc/ses/samd51/SAMD51_Target.js diff --git a/examples/device/cdc_msc_hid/ses/samd51/flash_placement.xml b/examples/device/cdc_msc/ses/samd51/flash_placement.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd51/flash_placement.xml rename to examples/device/cdc_msc/ses/samd51/flash_placement.xml diff --git a/examples/device/cdc_msc_hid/ses/samd51/samd51.emProject b/examples/device/cdc_msc/ses/samd51/samd51.emProject similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd51/samd51.emProject rename to examples/device/cdc_msc/ses/samd51/samd51.emProject diff --git a/examples/device/cdc_msc_hid/ses/samd51/thumb_crt0.s b/examples/device/cdc_msc/ses/samd51/thumb_crt0.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/samd51/thumb_crt0.s rename to examples/device/cdc_msc/ses/samd51/thumb_crt0.s diff --git a/examples/device/cdc_msc_hid/ses/stm32f4/STM32F407VG_MemoryMap.xml b/examples/device/cdc_msc/ses/stm32f4/STM32F407VG_MemoryMap.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/stm32f4/STM32F407VG_MemoryMap.xml rename to examples/device/cdc_msc/ses/stm32f4/STM32F407VG_MemoryMap.xml diff --git a/examples/device/cdc_msc_hid/ses/stm32f4/STM32F40x_Registers.xml b/examples/device/cdc_msc/ses/stm32f4/STM32F40x_Registers.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/stm32f4/STM32F40x_Registers.xml rename to examples/device/cdc_msc/ses/stm32f4/STM32F40x_Registers.xml diff --git a/examples/device/cdc_msc_hid/ses/stm32f4/STM32F40x_Vectors.s b/examples/device/cdc_msc/ses/stm32f4/STM32F40x_Vectors.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/stm32f4/STM32F40x_Vectors.s rename to examples/device/cdc_msc/ses/stm32f4/STM32F40x_Vectors.s diff --git a/examples/device/cdc_msc_hid/ses/stm32f4/STM32F4xx_Startup.s b/examples/device/cdc_msc/ses/stm32f4/STM32F4xx_Startup.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/stm32f4/STM32F4xx_Startup.s rename to examples/device/cdc_msc/ses/stm32f4/STM32F4xx_Startup.s diff --git a/examples/device/cdc_msc_hid/ses/stm32f4/STM32F4xx_Target.js b/examples/device/cdc_msc/ses/stm32f4/STM32F4xx_Target.js similarity index 100% rename from examples/device/cdc_msc_hid/ses/stm32f4/STM32F4xx_Target.js rename to examples/device/cdc_msc/ses/stm32f4/STM32F4xx_Target.js diff --git a/examples/device/cdc_msc_hid/ses/stm32f4/flash_placement.xml b/examples/device/cdc_msc/ses/stm32f4/flash_placement.xml similarity index 100% rename from examples/device/cdc_msc_hid/ses/stm32f4/flash_placement.xml rename to examples/device/cdc_msc/ses/stm32f4/flash_placement.xml diff --git a/examples/device/cdc_msc_hid/ses/stm32f4/stm32f4.emProject b/examples/device/cdc_msc/ses/stm32f4/stm32f4.emProject similarity index 100% rename from examples/device/cdc_msc_hid/ses/stm32f4/stm32f4.emProject rename to examples/device/cdc_msc/ses/stm32f4/stm32f4.emProject diff --git a/examples/device/cdc_msc_hid/ses/stm32f4/thumb_crt0.s b/examples/device/cdc_msc/ses/stm32f4/thumb_crt0.s similarity index 100% rename from examples/device/cdc_msc_hid/ses/stm32f4/thumb_crt0.s rename to examples/device/cdc_msc/ses/stm32f4/thumb_crt0.s diff --git a/examples/device/cdc_msc_hid/src/main.c b/examples/device/cdc_msc/src/main.c similarity index 100% rename from examples/device/cdc_msc_hid/src/main.c rename to examples/device/cdc_msc/src/main.c diff --git a/examples/device/cdc_msc_hid/src/msc_disk.c b/examples/device/cdc_msc/src/msc_disk.c similarity index 100% rename from examples/device/cdc_msc_hid/src/msc_disk.c rename to examples/device/cdc_msc/src/msc_disk.c diff --git a/examples/device/cdc_msc_hid/src/tusb_config.h b/examples/device/cdc_msc/src/tusb_config.h similarity index 100% rename from examples/device/cdc_msc_hid/src/tusb_config.h rename to examples/device/cdc_msc/src/tusb_config.h diff --git a/examples/device/cdc_msc_hid/src/usb_descriptors.c b/examples/device/cdc_msc/src/usb_descriptors.c similarity index 100% rename from examples/device/cdc_msc_hid/src/usb_descriptors.c rename to examples/device/cdc_msc/src/usb_descriptors.c diff --git a/tools/build_all.py b/tools/build_all.py index 9c379d0dc..e327da221 100644 --- a/tools/build_all.py +++ b/tools/build_all.py @@ -19,9 +19,6 @@ for entry in os.scandir("examples/device"): if entry.is_dir(): all_examples.append(entry.name) -# mynewt has its own example repo -all_examples.remove("cdc_msc_hid_mynewt") - # TODO update freeRTOS example to work with all boards (only nrf52840 now) all_examples.remove("cdc_msc_hid_freertos")