summaryrefslogtreecommitdiff
path: root/examples/device/device_virtual_com/src
diff options
context:
space:
mode:
Diffstat (limited to 'examples/device/device_virtual_com/src')
-rw-r--r--examples/device/device_virtual_com/src/main.c154
-rw-r--r--examples/device/device_virtual_com/src/tusb_config.h148
-rw-r--r--examples/device/device_virtual_com/src/tusb_descriptors.c100
3 files changed, 0 insertions, 402 deletions
diff --git a/examples/device/device_virtual_com/src/main.c b/examples/device/device_virtual_com/src/main.c
deleted file mode 100644
index 60f93a000..000000000
--- a/examples/device/device_virtual_com/src/main.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/**************************************************************************/
-/*!
- @file main.c
- @author hathach (tinyusb.org)
-
- @section LICENSE
-
- Software License Agreement (BSD License)
-
- Copyright (c) 2013, hathach (tinyusb.org)
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the copyright holders nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This file is part of the tinyusb stack.
-*/
-/**************************************************************************/
-
-//--------------------------------------------------------------------+
-// INCLUDE
-//--------------------------------------------------------------------+
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "bsp/board.h"
-#include "tusb.h"
-
-//--------------------------------------------------------------------+
-// MACRO CONSTANT TYPEDEF
-//--------------------------------------------------------------------+
-
-//--------------------------------------------------------------------+
-// INTERNAL OBJECT & FUNCTION DECLARATION
-//--------------------------------------------------------------------+
-void print_greeting(void);
-void led_blinking_task(void);
-void virtual_com_task(void);
-
-/*------------- MAIN -------------*/
-int main(void)
-{
- board_init();
- print_greeting();
-
- tusb_init();
-
- while (1)
- {
- tusb_task();
-
- led_blinking_task();
- virtual_com_task();
- }
-
- return 0;
-}
-
-void virtual_com_task(void)
-{
- // connected and there are data available
- if ( tud_mounted() && tud_cdc_available() )
- {
- uint8_t buf[64];
-
- // read and echo back
- uint32_t count = tud_cdc_read(buf, sizeof(buf));
-
- tud_cdc_write(buf, count);
- }
-}
-
-
-//--------------------------------------------------------------------+
-// tinyusb callbacks
-//--------------------------------------------------------------------+
-void tud_mount_cb(void)
-{
-
-}
-
-void tud_umount_cb(void)
-{
-}
-
-void tud_cdc_rx_cb(uint8_t itf)
-{
-}
-
-//--------------------------------------------------------------------+
-// BLINKING TASK
-//--------------------------------------------------------------------+
-void led_blinking_task(void)
-{
- enum { BLINK_INTEVAL = 1000 };
-
- static bool led_state = false;
- static uint32_t last_blink = 0;
-
- // not enough time
- if ( last_blink + BLINK_INTEVAL > tusb_hal_tick_get() ) return;
-
- last_blink += BLINK_INTEVAL;
-
- board_led_control(BOARD_LED0, led_state);
- led_state = 1 - led_state; // toggle
-}
-
-//--------------------------------------------------------------------+
-// HELPER FUNCTION
-//--------------------------------------------------------------------+
-void print_greeting(void)
-{
- char const * const rtos_name[] =
- {
- [OPT_OS_NONE] = "None",
- [OPT_OS_FREERTOS] = "FreeRTOS",
- };
-
- printf("\n\
---------------------------------------------------------------------\n\
-- Device Demo (a tinyusb example)\n\
-- if you find any bugs or get any questions, feel free to file an\n\
-- issue at https://github.com/hathach/tinyusb\n\
---------------------------------------------------------------------\n\n"
- );
-
- puts("This DEVICE demo is configured to support:");
- printf(" - RTOS = %s\n", rtos_name[CFG_TUSB_OS]);
- if (CFG_TUD_HID_MOUSE ) puts(" - HID Mouse");
- if (CFG_TUD_HID_KEYBOARD ) puts(" - HID Keyboard");
- if (CFG_TUD_MSC ) puts(" - Mass Storage");
- if (CFG_TUD_CDC ) puts(" - Communication Device Class");
-}
diff --git a/examples/device/device_virtual_com/src/tusb_config.h b/examples/device/device_virtual_com/src/tusb_config.h
deleted file mode 100644
index 77be85df3..000000000
--- a/examples/device/device_virtual_com/src/tusb_config.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/**************************************************************************/
-/*!
- @file tusb_config.h
- @author hathach (tinyusb.org)
-
- @section LICENSE
-
- Software License Agreement (BSD License)
-
- Copyright (c) 2013, hathach (tinyusb.org)
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the copyright holders nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This file is part of the tinyusb stack.
-*/
-/**************************************************************************/
-
-#ifndef _TUSB_CONFIG_H_
-#define _TUSB_CONFIG_H_
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-//--------------------------------------------------------------------+
-// CONTROLLER CONFIGURATION
-//--------------------------------------------------------------------+
-//#define CFG_TUSB_MCU will be passed from IDE/command line for easy board/mcu switching
-
-#define CFG_TUSB_RHPORT0_MODE (OPT_MODE_DEVICE)
-//#define CFG_TUSB_RHPORT1_MODE (OPT_MODE_DEVICE)
-
-#define CFG_TUSB_DEBUG 2
-
-/*------------- RTOS -------------*/
-//#define CFG_TUSB_OS OPT_OS_NONE // be passed from IDE/command line for easy project switching
-//#define CFG_TUD_TASK_PRIO 0
-//#define CFG_TUD_TASK_QUEUE_SZ 16
-//#define CFG_TUD_TASK_STACK_SZ 150
-
-//--------------------------------------------------------------------+
-// DEVICE CONFIGURATION
-//--------------------------------------------------------------------+
-
-/*------------- Core -------------*/
-#define CFG_TUD_DESC_AUTO 1
-
-// #define CFG_TUD_DESC_VID 0xCAFE
-// #define CFG_TUD_DESC_PID 0x0001
-
-#define CFG_TUD_ENDOINT0_SIZE 64
-
-
-//------------- CLASS -------------//
-#define CFG_TUD_CDC 1
-#define CFG_TUD_MSC 0
-#define CFG_TUD_HID_KEYBOARD 0
-#define CFG_TUD_HID_MOUSE 0
-
-
-/*------------------------------------------------------------------*/
-/* CLASS DRIVER
- *------------------------------------------------------------------*/
-
-// FIFO size of CDC TX and RX
-#define CFG_TUD_CDC_RX_BUFSIZE 64
-#define CFG_TUD_CDC_TX_BUFSIZE 64
-
-//--------------------------------------------------------------------+
-// USB RAM PLACEMENT
-//--------------------------------------------------------------------+
-#ifdef __CODE_RED // compiled with lpcxpresso
-
- #if (CFG_TUSB_MCU == OPT_MCU_LPC11UXX) || (CFG_TUSB_MCU == OPT_MCU_LPC13XX)
- #define CFG_TUSB_MEM_SECTION ATTR_SECTION(.data.$RAM2) ATTR_ALIGNED(64) // lp11u & lp13u requires data to be 64 byte aligned
- #elif CFG_TUSB_MCU == OPT_MCU_LPC175X_6X
- #define CFG_TUSB_MEM_SECTION // LPC17xx USB DMA can access all
- #elif (CFG_TUSB_MCU == OPT_MCU_LPC43XX)
- #define CFG_TUSB_MEM_SECTION ATTR_SECTION(.data.$RAM3)
- #endif
-
-#elif defined __CC_ARM // Compiled with Keil armcc, USBRAM_SECTION is defined in scatter files
-
- #if (CFG_TUSB_MCU == OPT_MCU_LPC11UXX) || (CFG_TUSB_MCU == OPT_MCU_LPC13XX)
- #define CFG_TUSB_MEM_SECTION ATTR_SECTION(USBRAM_SECTION) ATTR_ALIGNED(64) // lp11u & lp13u requires data to be 64 byte aligned
- #elif (CFG_TUSB_MCU == OPT_MCU_LPC175X_6X)
- #define CFG_TUSB_MEM_SECTION // LPC17xx USB DMA can access all address
- #elif (CFG_TUSB_MCU == OPT_MCU_LPC43XX)
- #define CFG_TUSB_MEM_SECTION // Use keil tool configure to have AHB SRAM as default memory
- #endif
-
-#elif defined __ICCARM__ // compiled with IAR
-
- #if (CFG_TUSB_MCU == OPT_MCU_LPC11UXX) || (CFG_TUSB_MCU == OPT_MCU_LPC13XX)
- #define CFG_TUSB_MEM_SECTION _Pragma("location=\"USB_PACKET_MEMORY\"") ATTR_ALIGNED(64)
- #elif (CFG_TUSB_MCU == OPT_MCU_LPC175X_6X)
- #define CFG_TUSB_MEM_SECTION
- #elif (CFG_TUSB_MCU == OPT_MCU_LPC43XX)
- #define CFG_TUSB_MEM_SECTION _Pragma("location=\".ahb_sram1\"")
- #endif
-
-#elif defined __SES_ARM
-
-#define CFG_TUSB_MEM_SECTION ATTR_SECTION(.bss2)
-
-#else
-
- #error compiler not specified
-
-#endif
-
-
-// LPC11uxx and LPC13uxx requires each buffer has to be 64-byte alignment
-#if CFG_TUSB_MCU == OPT_MCU_LPC11UXX || CFG_TUSB_MCU == OPT_MCU_LPC13XX
- #define CFG_TUSB_MEM_ALIGN ATTR_ALIGNED(64)
-#elif CFG_TUSB_MCU == OPT_MCU_NRF5X
- #define CFG_TUSB_MEM_ALIGN ATTR_ALIGNED(4)
-#else
- #define CFG_TUSB_MEM_ALIGN
-#endif
-
-
-#ifdef __cplusplus
- }
-#endif
-
-#endif /* _TUSB_CONFIG_H_ */
diff --git a/examples/device/device_virtual_com/src/tusb_descriptors.c b/examples/device/device_virtual_com/src/tusb_descriptors.c
deleted file mode 100644
index 2ba5434cc..000000000
--- a/examples/device/device_virtual_com/src/tusb_descriptors.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/**************************************************************************/
-/*!
- @file tusb_descriptors.c
- @author hathach (tinyusb.org)
-
- @section LICENSE
-
- Software License Agreement (BSD License)
-
- Copyright (c) 2013, hathach (tinyusb.org)
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the copyright holders nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This file is part of the tinyusb stack.
-*/
-/**************************************************************************/
-
-#include "tusb.h"
-
-//--------------------------------------------------------------------+
-// STRING DESCRIPTORS
-//--------------------------------------------------------------------+
-#define STRING_LEN_UNICODE(n) (2 + (2*(n))) // also includes 2 byte header
-#define ENDIAN_BE16_FROM( high, low) ENDIAN_BE16(high << 8 | low)
-
-// array of pointer to string descriptors
-uint16_t const * const string_desc_arr [] =
-{
- [0] = (uint16_t []) { // supported language
- ENDIAN_BE16_FROM( STRING_LEN_UNICODE(1), TUSB_DESC_STRING ),
- 0x0409 // English
- },
-
- [1] = (uint16_t []) { // manufacturer
- ENDIAN_BE16_FROM( STRING_LEN_UNICODE(11), TUSB_DESC_STRING),
- 't', 'i', 'n', 'y', 'u', 's', 'b', '.', 'o', 'r', 'g' // len = 11
- },
-
- [2] = (uint16_t []) { // product
- ENDIAN_BE16_FROM( STRING_LEN_UNICODE(14), TUSB_DESC_STRING),
- 't', 'i', 'n', 'y', 'u', 's', 'b', ' ', 'd', 'e', 'v', 'i', 'c', 'e' // len = 14
- },
-
- [3] = (uint16_t []) { // serials
- ENDIAN_BE16_FROM( STRING_LEN_UNICODE(4), TUSB_DESC_STRING),
- '1', '2', '3', '4' // len = 4
- },
-
- [4] = (uint16_t []) { // CDC Interface
- ENDIAN_BE16_FROM( STRING_LEN_UNICODE(3), TUSB_DESC_STRING),
- 'c', 'd', 'c' // len = 3
- },
-
- [5] = (uint16_t []) { // Keyboard Interface
- ENDIAN_BE16_FROM( STRING_LEN_UNICODE(5), TUSB_DESC_STRING),
- 'm', 'o', 'u', 's', 'e' // len = 5
- },
-
- [6] = (uint16_t []) { // Keyboard Interface
- ENDIAN_BE16_FROM( STRING_LEN_UNICODE(8), TUSB_DESC_STRING),
- 'k', 'e', 'y', 'b', 'o', 'a', 'r', 'd' // len = 8
- },
-
- [7] = (uint16_t []) { // MSC Interface
- ENDIAN_BE16_FROM( STRING_LEN_UNICODE(3), TUSB_DESC_STRING),
- 'm', 's', 'c' // len = 3
- }
-};
-
-
-// tud_desc_set is required by tinyusb stack
-// since CFG_TUD_DESC_AUTO is enabled, we only need to set string_arr
-tud_desc_set_t tud_desc_set =
-{
- .device = NULL,
- .config = NULL,
- .string_arr = (uint8_t const **) string_desc_arr,
- .hid_report = NULL
-};