diff options
| author | hathach <[email protected]> | 2019-09-11 14:32:00 +0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2019-09-11 14:32:00 +0700 |
| commit | e3996b7d45390f7eb8b4935a3c3e179d82f922e2 (patch) | |
| tree | 2e0f643692a163444909a1ba62c5c35b20e3a0b3 /examples | |
| parent | c2e0f565e8c6712f1ed4b7b5ffaf5dd6a13c2e65 (diff) | |
| parent | 7599541c1a33cc55b2a33fc160252e93811abe81 (diff) | |
Merge pull request #138 from hathach/develop
rename cdc_msc_hid to cdc_msc, hid has its own example hid_composite now
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/device/cdc_msc/Makefile (renamed from examples/device/cdc_msc_hid/Makefile) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/cdc_msc_hid.emProject (renamed from examples/device/cdc_msc_hid/ses/cdc_msc_hid.emProject) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc11u6x/LPC1100_Startup.s (renamed from examples/device/cdc_msc_hid/ses/lpc11u6x/LPC1100_Startup.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc11u6x/LPC1100_Target.js (renamed from examples/device/cdc_msc_hid/ses/lpc11u6x/LPC1100_Target.js) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc11u6x/LPC11U68_MemoryMap.xml (renamed from examples/device/cdc_msc_hid/ses/lpc11u6x/LPC11U68_MemoryMap.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc11u6x/LPC11U6x_Registers.xml (renamed from examples/device/cdc_msc_hid/ses/lpc11u6x/LPC11U6x_Registers.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc11u6x/LPC11U6x_Vectors.s (renamed from examples/device/cdc_msc_hid/ses/lpc11u6x/LPC11U6x_Vectors.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc11u6x/flash_placement.xml (renamed from examples/device/cdc_msc_hid/ses/lpc11u6x/flash_placement.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc11u6x/lpc11u6x.emProject (renamed from examples/device/cdc_msc_hid/ses/lpc11u6x/lpc11u6x.emProject) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc11u6x/thumb_crt0.s (renamed from examples/device/cdc_msc_hid/ses/lpc11u6x/thumb_crt0.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc13xx/LPC1300_Startup.s (renamed from examples/device/cdc_msc_hid/ses/lpc13xx/LPC1300_Startup.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc13xx/LPC1300_Target.js (renamed from examples/device/cdc_msc_hid/ses/lpc13xx/LPC1300_Target.js) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc13xx/LPC1347FBD64_MemoryMap.xml (renamed from examples/device/cdc_msc_hid/ses/lpc13xx/LPC1347FBD64_MemoryMap.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc13xx/LPC13Uxx_Registers.xml (renamed from examples/device/cdc_msc_hid/ses/lpc13xx/LPC13Uxx_Registers.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc13xx/LPC13Uxx_Vectors.s (renamed from examples/device/cdc_msc_hid/ses/lpc13xx/LPC13Uxx_Vectors.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc13xx/flash_placement.xml (renamed from examples/device/cdc_msc_hid/ses/lpc13xx/flash_placement.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc13xx/lpc13xx.emProject (renamed from examples/device/cdc_msc_hid/ses/lpc13xx/lpc13xx.emProject) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc13xx/thumb_crt0.s (renamed from examples/device/cdc_msc_hid/ses/lpc13xx/thumb_crt0.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc175x_6x/LPC1700_Startup.s (renamed from examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC1700_Startup.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc175x_6x/LPC1700_Target.js (renamed from examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC1700_Target.js) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc175x_6x/LPC1769_MemoryMap.xml (renamed from examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC1769_MemoryMap.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc175x_6x/LPC176x5x_Registers.xml (renamed from examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC176x5x_Registers.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc175x_6x/LPC176x5x_Vectors.s (renamed from examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC176x5x_Vectors.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc175x_6x/flash_placement.xml (renamed from examples/device/cdc_msc_hid/ses/lpc175x_6x/flash_placement.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc175x_6x/lpc175x_6x.emProject (renamed from examples/device/cdc_msc_hid/ses/lpc175x_6x/lpc175x_6x.emProject) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc175x_6x/thumb_crt0.s (renamed from examples/device/cdc_msc_hid/ses/lpc175x_6x/thumb_crt0.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc18xx/LPC1800_Startup.s (renamed from examples/device/cdc_msc_hid/ses/lpc18xx/LPC1800_Startup.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc18xx/LPC1800_Target.js (renamed from examples/device/cdc_msc_hid/ses/lpc18xx/LPC1800_Target.js) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc18xx/LPC1857_MemoryMap.xml (renamed from examples/device/cdc_msc_hid/ses/lpc18xx/LPC1857_MemoryMap.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc18xx/LPC18xx_Registers.xml (renamed from examples/device/cdc_msc_hid/ses/lpc18xx/LPC18xx_Registers.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc18xx/LPC18xx_Vectors.s (renamed from examples/device/cdc_msc_hid/ses/lpc18xx/LPC18xx_Vectors.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc18xx/flash_placement.xml (renamed from examples/device/cdc_msc_hid/ses/lpc18xx/flash_placement.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc18xx/lpc18xx.emProject (renamed from examples/device/cdc_msc_hid/ses/lpc18xx/lpc18xx.emProject) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc18xx/thumb_crt0.s (renamed from examples/device/cdc_msc_hid/ses/lpc18xx/thumb_crt0.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc40xx/LPC4000_Startup.s (renamed from examples/device/cdc_msc_hid/ses/lpc40xx/LPC4000_Startup.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc40xx/LPC4000_Target.js (renamed from examples/device/cdc_msc_hid/ses/lpc40xx/LPC4000_Target.js) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc40xx/LPC4088FBD208_MemoryMap.xml (renamed from examples/device/cdc_msc_hid/ses/lpc40xx/LPC4088FBD208_MemoryMap.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc40xx/LPC408x_7x_Registers.xml (renamed from examples/device/cdc_msc_hid/ses/lpc40xx/LPC408x_7x_Registers.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc40xx/LPC408x_7x_Vectors.s (renamed from examples/device/cdc_msc_hid/ses/lpc40xx/LPC408x_7x_Vectors.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc40xx/flash_placement.xml (renamed from examples/device/cdc_msc_hid/ses/lpc40xx/flash_placement.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc40xx/lpc40xx.emProject (renamed from examples/device/cdc_msc_hid/ses/lpc40xx/lpc40xx.emProject) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc40xx/thumb_crt0.s (renamed from examples/device/cdc_msc_hid/ses/lpc40xx/thumb_crt0.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc43xx/LPC4300_Startup.s (renamed from examples/device/cdc_msc_hid/ses/lpc43xx/LPC4300_Startup.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc43xx/LPC4300_Target.js (renamed from examples/device/cdc_msc_hid/ses/lpc43xx/LPC4300_Target.js) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc43xx/LPC4357 Cortex-M4_MemoryMap.xml (renamed from examples/device/cdc_msc_hid/ses/lpc43xx/LPC4357 Cortex-M4_MemoryMap.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc43xx/LPC43xx_Registers.xml (renamed from examples/device/cdc_msc_hid/ses/lpc43xx/LPC43xx_Registers.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc43xx/LPC43xx_Vectors.s (renamed from examples/device/cdc_msc_hid/ses/lpc43xx/LPC43xx_Vectors.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc43xx/flash_placement.xml (renamed from examples/device/cdc_msc_hid/ses/lpc43xx/flash_placement.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc43xx/lpc43xx.emProject (renamed from examples/device/cdc_msc_hid/ses/lpc43xx/lpc43xx.emProject) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/lpc43xx/thumb_crt0.s (renamed from examples/device/cdc_msc_hid/ses/lpc43xx/thumb_crt0.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/nrf5x/flash_placement.xml (renamed from examples/device/cdc_msc_hid/ses/nrf5x/flash_placement.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/nrf5x/nRF52840_xxAA_MemoryMap.xml (renamed from examples/device/cdc_msc_hid/ses/nrf5x/nRF52840_xxAA_MemoryMap.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/nrf5x/nRF52840_xxAA_s140v6_MemoryMap.xml (renamed from examples/device/cdc_msc_hid/ses/nrf5x/nRF52840_xxAA_s140v6_MemoryMap.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/nrf5x/nRF_Target.js (renamed from examples/device/cdc_msc_hid/ses/nrf5x/nRF_Target.js) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/nrf5x/nrf52840_Registers.xml (renamed from examples/device/cdc_msc_hid/ses/nrf5x/nrf52840_Registers.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/nrf5x/nrf5x.emProject (renamed from examples/device/cdc_msc_hid/ses/nrf5x/nrf5x.emProject) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/nrf5x/thumb_crt0.s (renamed from examples/device/cdc_msc_hid/ses/nrf5x/thumb_crt0.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd21/ATSAMD21G18A_MemoryMap.xml (renamed from examples/device/cdc_msc_hid/ses/samd21/ATSAMD21G18A_MemoryMap.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd21/ATSAMD21G18A_Registers.xml (renamed from examples/device/cdc_msc_hid/ses/samd21/ATSAMD21G18A_Registers.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd21/ATSAMD21G18A_Vectors.s (renamed from examples/device/cdc_msc_hid/ses/samd21/ATSAMD21G18A_Vectors.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd21/SAMD21_Startup.s (renamed from examples/device/cdc_msc_hid/ses/samd21/SAMD21_Startup.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd21/SAMD21_Target.js (renamed from examples/device/cdc_msc_hid/ses/samd21/SAMD21_Target.js) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd21/flash_placement.xml (renamed from examples/device/cdc_msc_hid/ses/samd21/flash_placement.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd21/samd21.emProject (renamed from examples/device/cdc_msc_hid/ses/samd21/samd21.emProject) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd21/thumb_crt0.s (renamed from examples/device/cdc_msc_hid/ses/samd21/thumb_crt0.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd51/ATSAMD51J19A_MemoryMap.xml (renamed from examples/device/cdc_msc_hid/ses/samd51/ATSAMD51J19A_MemoryMap.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd51/ATSAMD51J19A_Registers.xml (renamed from examples/device/cdc_msc_hid/ses/samd51/ATSAMD51J19A_Registers.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd51/ATSAMD51J19A_Vectors.s (renamed from examples/device/cdc_msc_hid/ses/samd51/ATSAMD51J19A_Vectors.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd51/SAMD51_Startup.s (renamed from examples/device/cdc_msc_hid/ses/samd51/SAMD51_Startup.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd51/SAMD51_Target.js (renamed from examples/device/cdc_msc_hid/ses/samd51/SAMD51_Target.js) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd51/flash_placement.xml (renamed from examples/device/cdc_msc_hid/ses/samd51/flash_placement.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd51/samd51.emProject (renamed from examples/device/cdc_msc_hid/ses/samd51/samd51.emProject) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/samd51/thumb_crt0.s (renamed from examples/device/cdc_msc_hid/ses/samd51/thumb_crt0.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/stm32f4/STM32F407VG_MemoryMap.xml (renamed from examples/device/cdc_msc_hid/ses/stm32f4/STM32F407VG_MemoryMap.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/stm32f4/STM32F40x_Registers.xml (renamed from examples/device/cdc_msc_hid/ses/stm32f4/STM32F40x_Registers.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/stm32f4/STM32F40x_Vectors.s (renamed from examples/device/cdc_msc_hid/ses/stm32f4/STM32F40x_Vectors.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/stm32f4/STM32F4xx_Startup.s (renamed from examples/device/cdc_msc_hid/ses/stm32f4/STM32F4xx_Startup.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/stm32f4/STM32F4xx_Target.js (renamed from examples/device/cdc_msc_hid/ses/stm32f4/STM32F4xx_Target.js) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/stm32f4/flash_placement.xml (renamed from examples/device/cdc_msc_hid/ses/stm32f4/flash_placement.xml) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/stm32f4/stm32f4.emProject (renamed from examples/device/cdc_msc_hid/ses/stm32f4/stm32f4.emProject) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/ses/stm32f4/thumb_crt0.s (renamed from examples/device/cdc_msc_hid/ses/stm32f4/thumb_crt0.s) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/src/main.c | 164 | ||||
| -rw-r--r-- | examples/device/cdc_msc/src/msc_disk.c (renamed from examples/device/cdc_msc_hid/src/msc_disk.c) | 0 | ||||
| -rw-r--r-- | examples/device/cdc_msc/src/tusb_config.h (renamed from examples/device/cdc_msc_hid/src/tusb_config.h) | 10 | ||||
| -rw-r--r-- | examples/device/cdc_msc/src/usb_descriptors.c (renamed from examples/device/cdc_msc_hid/src/usb_descriptors.c) | 50 | ||||
| -rw-r--r-- | examples/device/cdc_msc_hid_mynewt/readme.md | 1 | ||||
| -rw-r--r-- | examples/device/hid_composite/Makefile | 12 | ||||
| -rw-r--r-- | examples/device/hid_composite/src/main.c (renamed from examples/device/cdc_msc_hid/src/main.c) | 64 | ||||
| -rw-r--r-- | examples/device/hid_composite/src/tusb_config.h | 88 | ||||
| -rw-r--r-- | examples/device/hid_composite/src/usb_descriptors.c | 167 | ||||
| -rw-r--r-- | examples/device/hid_composite/src/usb_descriptors.h (renamed from examples/device/cdc_msc_hid/src/usb_descriptors.h) | 0 | ||||
| -rw-r--r-- | examples/device/hid_generic_inout/src/usb_descriptors.c | 4 |
92 files changed, 435 insertions, 125 deletions
diff --git a/examples/device/cdc_msc_hid/Makefile b/examples/device/cdc_msc/Makefile index 69b633fea..69b633fea 100644 --- a/examples/device/cdc_msc_hid/Makefile +++ b/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 index c02f7a588..c02f7a588 100644 --- a/examples/device/cdc_msc_hid/ses/cdc_msc_hid.emProject +++ b/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 index 56918e1b7..56918e1b7 100644 --- a/examples/device/cdc_msc_hid/ses/lpc11u6x/LPC1100_Startup.s +++ b/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 index e0ee57767..e0ee57767 100644 --- a/examples/device/cdc_msc_hid/ses/lpc11u6x/LPC1100_Target.js +++ b/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 index 2913af3a0..2913af3a0 100644 --- a/examples/device/cdc_msc_hid/ses/lpc11u6x/LPC11U68_MemoryMap.xml +++ b/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 index f1f465eae..f1f465eae 100644 --- a/examples/device/cdc_msc_hid/ses/lpc11u6x/LPC11U6x_Registers.xml +++ b/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 index 4d661df37..4d661df37 100644 --- a/examples/device/cdc_msc_hid/ses/lpc11u6x/LPC11U6x_Vectors.s +++ b/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 index 27a63d5be..27a63d5be 100644 --- a/examples/device/cdc_msc_hid/ses/lpc11u6x/flash_placement.xml +++ b/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 index ea47e0db6..ea47e0db6 100644 --- a/examples/device/cdc_msc_hid/ses/lpc11u6x/lpc11u6x.emProject +++ b/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 index 17f88e0ca..17f88e0ca 100644 --- a/examples/device/cdc_msc_hid/ses/lpc11u6x/thumb_crt0.s +++ b/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 index ad41afb99..ad41afb99 100644 --- a/examples/device/cdc_msc_hid/ses/lpc13xx/LPC1300_Startup.s +++ b/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 index 20560af43..20560af43 100644 --- a/examples/device/cdc_msc_hid/ses/lpc13xx/LPC1300_Target.js +++ b/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 index 298645289..298645289 100644 --- a/examples/device/cdc_msc_hid/ses/lpc13xx/LPC1347FBD64_MemoryMap.xml +++ b/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 index 0f605ce04..0f605ce04 100644 --- a/examples/device/cdc_msc_hid/ses/lpc13xx/LPC13Uxx_Registers.xml +++ b/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 index 1cbd4bb22..1cbd4bb22 100644 --- a/examples/device/cdc_msc_hid/ses/lpc13xx/LPC13Uxx_Vectors.s +++ b/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 index 27a63d5be..27a63d5be 100644 --- a/examples/device/cdc_msc_hid/ses/lpc13xx/flash_placement.xml +++ b/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 index d07cc68ff..d07cc68ff 100644 --- a/examples/device/cdc_msc_hid/ses/lpc13xx/lpc13xx.emProject +++ b/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 index 17f88e0ca..17f88e0ca 100644 --- a/examples/device/cdc_msc_hid/ses/lpc13xx/thumb_crt0.s +++ b/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 index f039ad934..f039ad934 100644 --- a/examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC1700_Startup.s +++ b/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 index 7f945a3d2..7f945a3d2 100644 --- a/examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC1700_Target.js +++ b/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 index d9c07aea3..d9c07aea3 100644 --- a/examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC1769_MemoryMap.xml +++ b/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 index fd38966b8..fd38966b8 100644 --- a/examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC176x5x_Registers.xml +++ b/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 index c5fae1310..c5fae1310 100644 --- a/examples/device/cdc_msc_hid/ses/lpc175x_6x/LPC176x5x_Vectors.s +++ b/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 index 79bedc537..79bedc537 100644 --- a/examples/device/cdc_msc_hid/ses/lpc175x_6x/flash_placement.xml +++ b/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 index 7d49a90d7..7d49a90d7 100644 --- a/examples/device/cdc_msc_hid/ses/lpc175x_6x/lpc175x_6x.emProject +++ b/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 index 17f88e0ca..17f88e0ca 100644 --- a/examples/device/cdc_msc_hid/ses/lpc175x_6x/thumb_crt0.s +++ b/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 index e17b60508..e17b60508 100644 --- a/examples/device/cdc_msc_hid/ses/lpc18xx/LPC1800_Startup.s +++ b/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 index 20560af43..20560af43 100644 --- a/examples/device/cdc_msc_hid/ses/lpc18xx/LPC1800_Target.js +++ b/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 index 4ded8a9f3..4ded8a9f3 100644 --- a/examples/device/cdc_msc_hid/ses/lpc18xx/LPC1857_MemoryMap.xml +++ b/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 index 5e68d4c0f..5e68d4c0f 100644 --- a/examples/device/cdc_msc_hid/ses/lpc18xx/LPC18xx_Registers.xml +++ b/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 index 8f9a39e42..8f9a39e42 100644 --- a/examples/device/cdc_msc_hid/ses/lpc18xx/LPC18xx_Vectors.s +++ b/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 index 79bedc537..79bedc537 100644 --- a/examples/device/cdc_msc_hid/ses/lpc18xx/flash_placement.xml +++ b/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 index 8f7d91b2a..8f7d91b2a 100644 --- a/examples/device/cdc_msc_hid/ses/lpc18xx/lpc18xx.emProject +++ b/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 index 17f88e0ca..17f88e0ca 100644 --- a/examples/device/cdc_msc_hid/ses/lpc18xx/thumb_crt0.s +++ b/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 index 03bf54def..03bf54def 100644 --- a/examples/device/cdc_msc_hid/ses/lpc40xx/LPC4000_Startup.s +++ b/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 index 20560af43..20560af43 100644 --- a/examples/device/cdc_msc_hid/ses/lpc40xx/LPC4000_Target.js +++ b/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 index 9b8f2d9b4..9b8f2d9b4 100644 --- a/examples/device/cdc_msc_hid/ses/lpc40xx/LPC4088FBD208_MemoryMap.xml +++ b/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 index 4a4c08179..4a4c08179 100644 --- a/examples/device/cdc_msc_hid/ses/lpc40xx/LPC408x_7x_Registers.xml +++ b/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 index 025685469..025685469 100644 --- a/examples/device/cdc_msc_hid/ses/lpc40xx/LPC408x_7x_Vectors.s +++ b/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 index 79bedc537..79bedc537 100644 --- a/examples/device/cdc_msc_hid/ses/lpc40xx/flash_placement.xml +++ b/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 index 4a61181ca..4a61181ca 100644 --- a/examples/device/cdc_msc_hid/ses/lpc40xx/lpc40xx.emProject +++ b/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 index 17f88e0ca..17f88e0ca 100644 --- a/examples/device/cdc_msc_hid/ses/lpc40xx/thumb_crt0.s +++ b/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 index 3df2ad963..3df2ad963 100644 --- a/examples/device/cdc_msc_hid/ses/lpc43xx/LPC4300_Startup.s +++ b/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 index 20560af43..20560af43 100644 --- a/examples/device/cdc_msc_hid/ses/lpc43xx/LPC4300_Target.js +++ b/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 index eb42b7bfd..eb42b7bfd 100644 --- 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 diff --git a/examples/device/cdc_msc_hid/ses/lpc43xx/LPC43xx_Registers.xml b/examples/device/cdc_msc/ses/lpc43xx/LPC43xx_Registers.xml index 9c0946466..9c0946466 100644 --- a/examples/device/cdc_msc_hid/ses/lpc43xx/LPC43xx_Registers.xml +++ b/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 index ab223b8a1..ab223b8a1 100644 --- a/examples/device/cdc_msc_hid/ses/lpc43xx/LPC43xx_Vectors.s +++ b/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 index 79bedc537..79bedc537 100644 --- a/examples/device/cdc_msc_hid/ses/lpc43xx/flash_placement.xml +++ b/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 index f751a4323..f751a4323 100644 --- a/examples/device/cdc_msc_hid/ses/lpc43xx/lpc43xx.emProject +++ b/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 index 17f88e0ca..17f88e0ca 100644 --- a/examples/device/cdc_msc_hid/ses/lpc43xx/thumb_crt0.s +++ b/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 index 951d23710..951d23710 100644 --- a/examples/device/cdc_msc_hid/ses/nrf5x/flash_placement.xml +++ b/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 index cc4056c0d..cc4056c0d 100644 --- a/examples/device/cdc_msc_hid/ses/nrf5x/nRF52840_xxAA_MemoryMap.xml +++ b/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 index 48aad06af..48aad06af 100644 --- 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 diff --git a/examples/device/cdc_msc_hid/ses/nrf5x/nRF_Target.js b/examples/device/cdc_msc/ses/nrf5x/nRF_Target.js index 20560af43..20560af43 100644 --- a/examples/device/cdc_msc_hid/ses/nrf5x/nRF_Target.js +++ b/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 index 39f861f95..39f861f95 100644 --- a/examples/device/cdc_msc_hid/ses/nrf5x/nrf52840_Registers.xml +++ b/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 index 55c5a4ec4..55c5a4ec4 100644 --- a/examples/device/cdc_msc_hid/ses/nrf5x/nrf5x.emProject +++ b/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 index 71820cb51..71820cb51 100644 --- a/examples/device/cdc_msc_hid/ses/nrf5x/thumb_crt0.s +++ b/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 index 2143d3055..2143d3055 100644 --- a/examples/device/cdc_msc_hid/ses/samd21/ATSAMD21G18A_MemoryMap.xml +++ b/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 index 2e0fa0619..2e0fa0619 100644 --- a/examples/device/cdc_msc_hid/ses/samd21/ATSAMD21G18A_Registers.xml +++ b/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 index 5cecbd23b..5cecbd23b 100644 --- a/examples/device/cdc_msc_hid/ses/samd21/ATSAMD21G18A_Vectors.s +++ b/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 index c4b48d351..c4b48d351 100644 --- a/examples/device/cdc_msc_hid/ses/samd21/SAMD21_Startup.s +++ b/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 index 20560af43..20560af43 100644 --- a/examples/device/cdc_msc_hid/ses/samd21/SAMD21_Target.js +++ b/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 index 79bedc537..79bedc537 100644 --- a/examples/device/cdc_msc_hid/ses/samd21/flash_placement.xml +++ b/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 index 1536af9ab..1536af9ab 100644 --- a/examples/device/cdc_msc_hid/ses/samd21/samd21.emProject +++ b/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 index 17f88e0ca..17f88e0ca 100644 --- a/examples/device/cdc_msc_hid/ses/samd21/thumb_crt0.s +++ b/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 index 49d9a9cbd..49d9a9cbd 100644 --- a/examples/device/cdc_msc_hid/ses/samd51/ATSAMD51J19A_MemoryMap.xml +++ b/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 index 83fe837fa..83fe837fa 100644 --- a/examples/device/cdc_msc_hid/ses/samd51/ATSAMD51J19A_Registers.xml +++ b/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 index 6369de863..6369de863 100644 --- a/examples/device/cdc_msc_hid/ses/samd51/ATSAMD51J19A_Vectors.s +++ b/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 index 03bf54def..03bf54def 100644 --- a/examples/device/cdc_msc_hid/ses/samd51/SAMD51_Startup.s +++ b/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 index 20560af43..20560af43 100644 --- a/examples/device/cdc_msc_hid/ses/samd51/SAMD51_Target.js +++ b/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 index 79bedc537..79bedc537 100644 --- a/examples/device/cdc_msc_hid/ses/samd51/flash_placement.xml +++ b/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 index ecb1e031b..ecb1e031b 100644 --- a/examples/device/cdc_msc_hid/ses/samd51/samd51.emProject +++ b/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 index 17f88e0ca..17f88e0ca 100644 --- a/examples/device/cdc_msc_hid/ses/samd51/thumb_crt0.s +++ b/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 index 54f86de7d..54f86de7d 100644 --- a/examples/device/cdc_msc_hid/ses/stm32f4/STM32F407VG_MemoryMap.xml +++ b/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 index a11cf7307..a11cf7307 100644 --- a/examples/device/cdc_msc_hid/ses/stm32f4/STM32F40x_Registers.xml +++ b/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 index e9e0392b8..e9e0392b8 100644 --- a/examples/device/cdc_msc_hid/ses/stm32f4/STM32F40x_Vectors.s +++ b/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 index 42415cbbe..42415cbbe 100644 --- a/examples/device/cdc_msc_hid/ses/stm32f4/STM32F4xx_Startup.s +++ b/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 index 20560af43..20560af43 100644 --- a/examples/device/cdc_msc_hid/ses/stm32f4/STM32F4xx_Target.js +++ b/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 index 79bedc537..79bedc537 100644 --- a/examples/device/cdc_msc_hid/ses/stm32f4/flash_placement.xml +++ b/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 index 23b313471..23b313471 100644 --- a/examples/device/cdc_msc_hid/ses/stm32f4/stm32f4.emProject +++ b/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 index 17f88e0ca..17f88e0ca 100644 --- a/examples/device/cdc_msc_hid/ses/stm32f4/thumb_crt0.s +++ b/examples/device/cdc_msc/ses/stm32f4/thumb_crt0.s diff --git a/examples/device/cdc_msc/src/main.c b/examples/device/cdc_msc/src/main.c new file mode 100644 index 000000000..c6ed4a922 --- /dev/null +++ b/examples/device/cdc_msc/src/main.c @@ -0,0 +1,164 @@ +/* + * 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 <stdlib.h> +#include <stdio.h> +#include <string.h> + +#include "bsp/board.h" +#include "tusb.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 cdc_task(void); + +/*------------- MAIN -------------*/ +int main(void) +{ + board_init(); + + tusb_init(); + + while (1) + { + tud_task(); // tinyusb device task + led_blinking_task(); + + cdc_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 CDC +//--------------------------------------------------------------------+ +void cdc_task(void) +{ + if ( tud_cdc_connected() ) + { + // connected and there are data available + if ( tud_cdc_available() ) + { + uint8_t buf[64]; + + // read and echo back + uint32_t count = tud_cdc_read(buf, sizeof(buf)); + + for(uint32_t i=0; i<count; i++) + { + tud_cdc_write_char(buf[i]); + + if ( buf[i] == '\r' ) tud_cdc_write_char('\n'); + } + + tud_cdc_write_flush(); + } + } +} + +// Invoked when cdc when line state changed e.g connected/disconnected +void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts) +{ + (void) itf; + + // connected + if ( dtr && rts ) + { + // print initial message when connected + tud_cdc_write_str("\r\nTinyUSB CDC MSC HID device example\r\n"); + } +} + +// Invoked when CDC interface received data from host +void tud_cdc_rx_cb(uint8_t itf) +{ + (void) itf; +} + +//--------------------------------------------------------------------+ +// 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/cdc_msc_hid/src/msc_disk.c b/examples/device/cdc_msc/src/msc_disk.c index 5aa7befc9..5aa7befc9 100644 --- a/examples/device/cdc_msc_hid/src/msc_disk.c +++ b/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 index 6eb6c10f1..ff7fafd8f 100644 --- a/examples/device/cdc_msc_hid/src/tusb_config.h +++ b/examples/device/cdc_msc/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/src/usb_descriptors.c index 34f391dfb..ac8214e37 100644 --- a/examples/device/cdc_msc_hid/src/usb_descriptors.c +++ b/examples/device/cdc_msc/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, @@ -78,49 +71,18 @@ uint8_t const * tud_descriptor_device_cb(void) } //--------------------------------------------------------------------+ -// 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_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/cdc_msc_hid/src/main.c b/examples/device/hid_composite/src/main.c index 65ef1dcbd..4529e24f1 100644 --- a/examples/device/cdc_msc_hid/src/main.c +++ b/examples/device/hid_composite/src/main.c @@ -50,8 +50,6 @@ enum { static uint32_t blink_interval_ms = BLINK_NOT_MOUNTED; void led_blinking_task(void); - -void cdc_task(void); void hid_task(void); /*------------- MAIN -------------*/ @@ -66,13 +64,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; @@ -109,60 +101,9 @@ void tud_resume_cb(void) blink_interval_ms = BLINK_MOUNTED; } - -//--------------------------------------------------------------------+ -// USB CDC -//--------------------------------------------------------------------+ -#if CFG_TUD_CDC -void cdc_task(void) -{ - if ( tud_cdc_connected() ) - { - // connected and there are data available - if ( tud_cdc_available() ) - { - uint8_t buf[64]; - - // read and echo back - uint32_t count = tud_cdc_read(buf, sizeof(buf)); - - for(uint32_t i=0; i<count; i++) - { - tud_cdc_write_char(buf[i]); - - if ( buf[i] == '\r' ) tud_cdc_write_char('\n'); - } - - tud_cdc_write_flush(); - } - } -} - -// Invoked when cdc when line state changed e.g connected/disconnected -void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts) -{ - (void) itf; - - // connected - if ( dtr && rts ) - { - // print initial message when connected - tud_cdc_write_str("\r\nTinyUSB CDC MSC HID device example\r\n"); - } -} - -// Invoked when CDC interface received data from host -void tud_cdc_rx_cb(uint8_t itf) -{ - (void) itf; -} - -#endif - //--------------------------------------------------------------------+ // USB HID //--------------------------------------------------------------------+ -#if CFG_TUD_HID void hid_task(void) { @@ -221,6 +162,7 @@ void hid_task(void) } } + // 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 @@ -239,15 +181,13 @@ uint16_t tud_hid_get_report_cb(uint8_t report_id, hid_report_type_t report_type, // 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 + // TODO set LED based on CAPLOCK, NUMLOCK etc... (void) report_id; (void) report_type; (void) buffer; (void) bufsize; } -#endif - //--------------------------------------------------------------------+ // BLINKING TASK //--------------------------------------------------------------------+ 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<chr_count; i++) + { + _desc_str[1+i] = str[i]; + } + } + + // first byte is length (including header), second byte is string type + _desc_str[0] = (TUSB_DESC_STRING << 8 ) | (2*chr_count + 2); + + return _desc_str; +} diff --git a/examples/device/cdc_msc_hid/src/usb_descriptors.h b/examples/device/hid_composite/src/usb_descriptors.h index 6992d3349..6992d3349 100644 --- a/examples/device/cdc_msc_hid/src/usb_descriptors.h +++ b/examples/device/hid_composite/src/usb_descriptors.h diff --git a/examples/device/hid_generic_inout/src/usb_descriptors.c b/examples/device/hid_generic_inout/src/usb_descriptors.c index c9493c4e6..d0fc6b1bc 100644 --- a/examples/device/hid_generic_inout/src/usb_descriptors.c +++ b/examples/device/hid_generic_inout/src/usb_descriptors.c @@ -93,12 +93,8 @@ enum ITF_NUM_TOTAL }; - #define CONFIG_TOTAL_LEN (TUD_CONFIG_DESC_LEN + TUD_HID_INOUT_DESC_LEN) -// Use Endpoint 2 instead of 1 due to NXP MCU -// LPC 17xx and 40xx endpoint type (bulk/interrupt/iso) are fixed by its number -// 0 control, 1 In, 2 Bulk, 3 Iso, 4 In etc ... #define EPNUM_HID 0x01 uint8_t const desc_configuration[] = |
