summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2013-10-16 12:35:55 +0700
committerhathach <[email protected]>2013-10-16 12:35:55 +0700
commit15c80a958093cbf100ad89ed162325bdaf5e5a75 (patch)
tree2d20c573b03090ec27ac0f38a2da7e3dbd6c83cf
parent92646ebadb1c1cf89d2e9d0341f2abb3becefeb4 (diff)
clean up
-rw-r--r--demos/host/src/cdc_serial_app.c289
-rw-r--r--demos/host/src/cdc_serial_app.h140
-rw-r--r--demos/host/src/keyboard_app.c373
-rw-r--r--demos/host/src/keyboard_app.h152
-rw-r--r--demos/host/src/mouse_app.c10
-rw-r--r--demos/host/src/mouse_app.h157
-rw-r--r--demos/host/src/msc_app.c362
-rw-r--r--demos/host/src/msc_app.h149
-rw-r--r--demos/host/src/rndis_app.c168
-rw-r--r--demos/host/src/rndis_app.h140
-rw-r--r--demos/host/src/tusb_config.h258
-rw-r--r--tinyusb/common/errors.c97
12 files changed, 1144 insertions, 1151 deletions
diff --git a/demos/host/src/cdc_serial_app.c b/demos/host/src/cdc_serial_app.c
index a83c27abd..3effbe2e3 100644
--- a/demos/host/src/cdc_serial_app.c
+++ b/demos/host/src/cdc_serial_app.c
@@ -1,149 +1,140 @@
-/**************************************************************************/
-/*!
- @file cdc_serial_app.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 "cdc_serial_app.h"
-
-#if TUSB_CFG_OS != TUSB_OS_NONE
-#include "app_os_prio.h"
-#endif
-
-#if TUSB_CFG_HOST_CDC
-
-#define QUEUE_SERIAL_DEPTH 100
-
-//--------------------------------------------------------------------+
-// MACRO CONSTANT TYPEDEF
-//--------------------------------------------------------------------+
-OSAL_TASK_DEF(cdc_serial_app_task, 128, CDC_SERIAL_APP_TASK_PRIO);
-OSAL_QUEUE_DEF(queue_def, QUEUE_SERIAL_DEPTH, uint8_t);
-
-static osal_queue_handle_t queue_hdl;
-static uint8_t buffer_in[64] TUSB_CFG_ATTR_USBRAM;
-
-//--------------------------------------------------------------------+
-// tinyusb Callbacks
-//--------------------------------------------------------------------+
-void tusbh_cdc_mounted_cb(uint8_t dev_addr)
-{
- // application set-up
-
- printf("\na CDC device is mounted\n");
-
- osal_queue_flush(queue_hdl);
- tusbh_cdc_receive(dev_addr, buffer_in, sizeof(buffer_in), true); // first report
-}
-
-void tusbh_cdc_unmounted_cb(uint8_t dev_addr)
-{
- // application tear-down
- printf("\na CDC device is unmounted\n");
-}
-
-void tusbh_cdc_xfer_isr(uint8_t dev_addr, tusb_event_t event, cdc_pipeid_t pipe_id, uint32_t xferred_bytes)
-{
- if ( pipe_id == CDC_PIPE_DATA_IN )
- {
- switch(event)
- {
- case TUSB_EVENT_XFER_COMPLETE:
- for(uint32_t i=0; i<xferred_bytes; i++)
- {
- osal_queue_send(queue_hdl, buffer_in+i);
- }
- tusbh_cdc_receive(dev_addr, buffer_in, sizeof(buffer_in), true);
- break;
-
- case TUSB_EVENT_XFER_ERROR:
- tusbh_cdc_receive(dev_addr, buffer_in, sizeof(buffer_in), true); // ignore & continue
- break;
-
- case TUSB_EVENT_XFER_STALLED:
- default :
- ASSERT(false, VOID_RETURN); // error
- break;
- }
- }else if (pipe_id == CDC_PIPE_DATA_OUT)
- {
-
- }else if (pipe_id == CDC_PIPE_NOTIFICATION)
- {
-
- }
-}
-
-//--------------------------------------------------------------------+
-// APPLICATION
-//--------------------------------------------------------------------+
-void cdc_serial_app_init(void)
-{
- memclr_(buffer_in, sizeof(buffer_in));
-
- queue_hdl = osal_queue_create( OSAL_QUEUE_REF(queue_def) );
- ASSERT_PTR( queue_hdl, VOID_RETURN);
-
- ASSERT( TUSB_ERROR_NONE == osal_task_create(OSAL_TASK_REF(cdc_serial_app_task)), VOID_RETURN);
-}
-
-//------------- main task -------------//
-OSAL_TASK_FUNCTION( cdc_serial_app_task ) (void* p_task_para)
-{
- tusb_error_t error;
- uint8_t c = 0;
-
- OSAL_TASK_LOOP_BEGIN
-
- osal_queue_receive(queue_hdl, &c, OSAL_TIMEOUT_WAIT_FOREVER, &error);
-
- if (c)
- {
- printf("%c", c);
- }
-
- OSAL_TASK_LOOP_END
-}
-#else
-
-// dummy implementation to remove #ifdef in main.c
-void cdc_serial_app_init(void) { }
-OSAL_TASK_FUNCTION( cdc_serial_app_task ) (void* p_task_para)
-{
- OSAL_TASK_LOOP_BEGIN
- OSAL_TASK_LOOP_END
-}
-
-#endif
+/**************************************************************************/
+/*!
+ @file cdc_serial_app.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 "cdc_serial_app.h"
+
+#if TUSB_CFG_OS != TUSB_OS_NONE
+#include "app_os_prio.h"
+#endif
+
+#if TUSB_CFG_HOST_CDC
+
+#define QUEUE_SERIAL_DEPTH 100
+
+//--------------------------------------------------------------------+
+// MACRO CONSTANT TYPEDEF
+//--------------------------------------------------------------------+
+OSAL_TASK_DEF(cdc_serial_app_task, 128, CDC_SERIAL_APP_TASK_PRIO);
+OSAL_QUEUE_DEF(queue_def, QUEUE_SERIAL_DEPTH, uint8_t);
+
+static osal_queue_handle_t queue_hdl;
+static uint8_t buffer_in[64] TUSB_CFG_ATTR_USBRAM;
+
+//--------------------------------------------------------------------+
+// tinyusb Callbacks
+//--------------------------------------------------------------------+
+void tusbh_cdc_mounted_cb(uint8_t dev_addr)
+{
+ // application set-up
+
+ printf("\na CDC device is mounted\n");
+
+ osal_queue_flush(queue_hdl);
+ tusbh_cdc_receive(dev_addr, buffer_in, sizeof(buffer_in), true); // first report
+}
+
+void tusbh_cdc_unmounted_cb(uint8_t dev_addr)
+{
+ // application tear-down
+ printf("\na CDC device is unmounted\n");
+}
+
+void tusbh_cdc_xfer_isr(uint8_t dev_addr, tusb_event_t event, cdc_pipeid_t pipe_id, uint32_t xferred_bytes)
+{
+ if ( pipe_id == CDC_PIPE_DATA_IN )
+ {
+ switch(event)
+ {
+ case TUSB_EVENT_XFER_COMPLETE:
+ for(uint32_t i=0; i<xferred_bytes; i++)
+ {
+ osal_queue_send(queue_hdl, buffer_in+i);
+ }
+ tusbh_cdc_receive(dev_addr, buffer_in, sizeof(buffer_in), true);
+ break;
+
+ case TUSB_EVENT_XFER_ERROR:
+ tusbh_cdc_receive(dev_addr, buffer_in, sizeof(buffer_in), true); // ignore & continue
+ break;
+
+ case TUSB_EVENT_XFER_STALLED:
+ default :
+ ASSERT(false, VOID_RETURN); // error
+ break;
+ }
+ }else if (pipe_id == CDC_PIPE_DATA_OUT)
+ {
+
+ }else if (pipe_id == CDC_PIPE_NOTIFICATION)
+ {
+
+ }
+}
+
+//--------------------------------------------------------------------+
+// APPLICATION
+//--------------------------------------------------------------------+
+void cdc_serial_app_init(void)
+{
+ memclr_(buffer_in, sizeof(buffer_in));
+
+ queue_hdl = osal_queue_create( OSAL_QUEUE_REF(queue_def) );
+ ASSERT_PTR( queue_hdl, VOID_RETURN);
+
+ ASSERT( TUSB_ERROR_NONE == osal_task_create(OSAL_TASK_REF(cdc_serial_app_task)), VOID_RETURN);
+}
+
+//------------- main task -------------//
+OSAL_TASK_FUNCTION( cdc_serial_app_task ) (void* p_task_para)
+{
+ tusb_error_t error;
+ uint8_t c = 0;
+
+ OSAL_TASK_LOOP_BEGIN
+
+ osal_queue_receive(queue_hdl, &c, OSAL_TIMEOUT_WAIT_FOREVER, &error);
+
+ if (c)
+ {
+ printf("%c", c);
+ }
+
+ OSAL_TASK_LOOP_END
+}
+
+#endif
diff --git a/demos/host/src/cdc_serial_app.h b/demos/host/src/cdc_serial_app.h
index 2ea7adf4b..2cb67fc88 100644
--- a/demos/host/src/cdc_serial_app.h
+++ b/demos/host/src/cdc_serial_app.h
@@ -1,66 +1,74 @@
-/**************************************************************************/
-/*!
- @file cdc_serial_app.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.
-*/
-/**************************************************************************/
-
-/** \ingroup TBD
- * \defgroup TBD
- * \brief TBD
- *
- * @{
- */
-
-#ifndef _TUSB_CDC_SERIAL_APP_H_
-#define _TUSB_CDC_SERIAL_APP_H_
-
-#include "boards/board.h"
-#include "tusb.h"
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-void cdc_serial_app_init(void);
-OSAL_TASK_FUNCTION( cdc_serial_app_task ) (void* p_task_para);
-
-
-#ifdef __cplusplus
- }
-#endif
-
-#endif /* _TUSB_CDC_SERIAL_APP_H_ */
-
-/** @} */
+/**************************************************************************/
+/*!
+ @file cdc_serial_app.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.
+*/
+/**************************************************************************/
+
+/** \ingroup TBD
+ * \defgroup TBD
+ * \brief TBD
+ *
+ * @{
+ */
+
+#ifndef _TUSB_CDC_SERIAL_APP_H_
+#define _TUSB_CDC_SERIAL_APP_H_
+
+#include "boards/board.h"
+#include "tusb.h"
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+#if TUSB_CFG_HOST_CDC
+
+void cdc_serial_app_init(void);
+OSAL_TASK_FUNCTION( cdc_serial_app_task ) (void* p_task_para);
+
+#else
+
+#define cdc_serial_app_init()
+#define cdc_serial_app_task(x)
+
+#endif
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* _TUSB_CDC_SERIAL_APP_H_ */
+
+/** @} */
diff --git a/demos/host/src/keyboard_app.c b/demos/host/src/keyboard_app.c
index 77cc0d633..e978af5fe 100644
--- a/demos/host/src/keyboard_app.c
+++ b/demos/host/src/keyboard_app.c
@@ -1,191 +1,182 @@
-/**************************************************************************/
-/*!
- @file keyboard_app.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 "keyboard_app.h"
-
-#if TUSB_CFG_OS != TUSB_OS_NONE
-#include "app_os_prio.h"
-#endif
-
-#if TUSB_CFG_HOST_HID_KEYBOARD
-
-//--------------------------------------------------------------------+
-// MACRO CONSTANT TYPEDEF
-//--------------------------------------------------------------------+
-#define QUEUE_KEYBOARD_REPORT_DEPTH 4
-
-//--------------------------------------------------------------------+
-// INTERNAL OBJECT & FUNCTION DECLARATION
-//--------------------------------------------------------------------+
-OSAL_TASK_DEF(keyboard_app_task, 128, KEYBOARD_APP_TASK_PRIO);
-OSAL_QUEUE_DEF(queue_kbd_def, QUEUE_KEYBOARD_REPORT_DEPTH, tusb_keyboard_report_t);
-
-static osal_queue_handle_t queue_kbd_hdl;
-static tusb_keyboard_report_t usb_keyboard_report TUSB_CFG_ATTR_USBRAM;
-
-static inline uint8_t keycode_to_ascii(uint8_t modifier, uint8_t keycode) ATTR_CONST ATTR_ALWAYS_INLINE;
-static inline void process_kbd_report(tusb_keyboard_report_t const * report);
-
-//--------------------------------------------------------------------+
-// tinyusb callback (ISR context)
-//--------------------------------------------------------------------+
-void tusbh_hid_keyboard_mounted_cb(uint8_t dev_addr)
-{
- // application set-up
-
- puts("\na Keyboard device is mounted");
-
- osal_queue_flush(queue_kbd_hdl);
- tusbh_hid_keyboard_get_report(dev_addr, (uint8_t*) &usb_keyboard_report); // first report
-}
-
-void tusbh_hid_keyboard_unmounted_cb(uint8_t dev_addr)
-{
- // application tear-down
- puts("\na Keyboard device is unmounted");
-}
-
-void tusbh_hid_keyboard_isr(uint8_t dev_addr, tusb_event_t event)
-{
- switch(event)
- {
- case TUSB_EVENT_XFER_COMPLETE:
- osal_queue_send(queue_kbd_hdl, &usb_keyboard_report);
- tusbh_hid_keyboard_get_report(dev_addr, (uint8_t*) &usb_keyboard_report);
- break;
-
- case TUSB_EVENT_XFER_ERROR:
- tusbh_hid_keyboard_get_report(dev_addr, (uint8_t*) &usb_keyboard_report); // ignore & continue
- break;
-
- default :
- break;
- }
-}
-
-//--------------------------------------------------------------------+
-// APPLICATION
-//--------------------------------------------------------------------+
-void keyboard_app_init(void)
-{
- memclr_(&usb_keyboard_report, sizeof(tusb_keyboard_report_t));
-
- queue_kbd_hdl = osal_queue_create( OSAL_QUEUE_REF(queue_kbd_def) );
- ASSERT_PTR( queue_kbd_hdl, VOID_RETURN );
-
- ASSERT( TUSB_ERROR_NONE == osal_task_create( OSAL_TASK_REF(keyboard_app_task) ) ,
- VOID_RETURN);
-}
-
-//------------- main task -------------//
-OSAL_TASK_FUNCTION( keyboard_app_task ) (void* p_task_para)
-{
- tusb_error_t error;
- tusb_keyboard_report_t kbd_report;
-
- OSAL_TASK_LOOP_BEGIN
-
- osal_queue_receive(queue_kbd_hdl, &kbd_report, OSAL_TIMEOUT_WAIT_FOREVER, &error);
-
- process_kbd_report(&kbd_report);
-
- OSAL_TASK_LOOP_END
-}
-
-//--------------------------------------------------------------------+
-// HELPER
-//--------------------------------------------------------------------+
-
-// look up new key in previous keys
-static inline bool is_key_in_report(tusb_keyboard_report_t const *p_report, uint8_t modifier, uint8_t keycode)
-{
- for(uint8_t i=0; i<6; i++)
- {
- if (p_report->keycode[i] == keycode)
- {
- return true;
- }
- }
-
- return false;
-}
-
-static inline void process_kbd_report(tusb_keyboard_report_t const *p_new_report)
-{
- static tusb_keyboard_report_t prev_report = { 0 }; // previous report to check key released
-
- //------------- example code ignore control (non-printable) key affects -------------//
- for(uint8_t i=0; i<6; i++)
- {
- if ( p_new_report->keycode[i] )
- {
- if ( is_key_in_report(&prev_report, p_new_report->modifier, p_new_report->keycode[i]) )
- {
- // previously existed means holding
- }else
- {
- // previously non-existed means key is pressed
- printf("%c", keycode_to_ascii(p_new_report->modifier, p_new_report->keycode[i]) );
- }
- }
- // TODO example skips key released
- }
-
- prev_report = *p_new_report;
-}
-
-static inline uint8_t keycode_to_ascii(uint8_t modifier, uint8_t keycode)
-{
- // TODO max of keycode_ascii_tbl
- return keycode > 128 ? 0 :
- hid_keycode_to_ascii_tbl [modifier & (KEYBOARD_MODIFIER_LEFTSHIFT | KEYBOARD_MODIFIER_RIGHTSHIFT) ? 1 : 0] [keycode];
-}
-
-#else
-
-// dummy implementation to remove #ifdef in main.c
-void keyboard_app_init(void) { }
-OSAL_TASK_FUNCTION( keyboard_app_task ) (void* p_task_para)
-{
- OSAL_TASK_LOOP_BEGIN
- OSAL_TASK_LOOP_END
-}
-#endif
+/**************************************************************************/
+/*!
+ @file keyboard_app.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 "keyboard_app.h"
+
+#if TUSB_CFG_OS != TUSB_OS_NONE
+#include "app_os_prio.h"
+#endif
+
+#if TUSB_CFG_HOST_HID_KEYBOARD
+
+//--------------------------------------------------------------------+
+// MACRO CONSTANT TYPEDEF
+//--------------------------------------------------------------------+
+#define QUEUE_KEYBOARD_REPORT_DEPTH 4
+
+//--------------------------------------------------------------------+
+// INTERNAL OBJECT & FUNCTION DECLARATION
+//--------------------------------------------------------------------+
+OSAL_TASK_DEF(keyboard_app_task, 128, KEYBOARD_APP_TASK_PRIO);
+OSAL_QUEUE_DEF(queue_kbd_def, QUEUE_KEYBOARD_REPORT_DEPTH, tusb_keyboard_report_t);
+
+static osal_queue_handle_t queue_kbd_hdl;
+static tusb_keyboard_report_t usb_keyboard_report TUSB_CFG_ATTR_USBRAM;
+
+static inline uint8_t keycode_to_ascii(uint8_t modifier, uint8_t keycode) ATTR_CONST ATTR_ALWAYS_INLINE;
+static inline void process_kbd_report(tusb_keyboard_report_t const * report);
+
+//--------------------------------------------------------------------+
+// tinyusb callback (ISR context)
+//--------------------------------------------------------------------+
+void tusbh_hid_keyboard_mounted_cb(uint8_t dev_addr)
+{
+ // application set-up
+
+ puts("\na Keyboard device is mounted");
+
+ osal_queue_flush(queue_kbd_hdl);
+ tusbh_hid_keyboard_get_report(dev_addr, (uint8_t*) &usb_keyboard_report); // first report
+}
+
+void tusbh_hid_keyboard_unmounted_cb(uint8_t dev_addr)
+{
+ // application tear-down
+ puts("\na Keyboard device is unmounted");
+}
+
+void tusbh_hid_keyboard_isr(uint8_t dev_addr, tusb_event_t event)
+{
+ switch(event)
+ {
+ case TUSB_EVENT_XFER_COMPLETE:
+ osal_queue_send(queue_kbd_hdl, &usb_keyboard_report);
+ tusbh_hid_keyboard_get_report(dev_addr, (uint8_t*) &usb_keyboard_report);
+ break;
+
+ case TUSB_EVENT_XFER_ERROR:
+ tusbh_hid_keyboard_get_report(dev_addr, (uint8_t*) &usb_keyboard_report); // ignore & continue
+ break;
+
+ default :
+ break;
+ }
+}
+
+//--------------------------------------------------------------------+
+// APPLICATION
+//--------------------------------------------------------------------+
+void keyboard_app_init(void)
+{
+ memclr_(&usb_keyboard_report, sizeof(tusb_keyboard_report_t));
+
+ queue_kbd_hdl = osal_queue_create( OSAL_QUEUE_REF(queue_kbd_def) );
+ ASSERT_PTR( queue_kbd_hdl, VOID_RETURN );
+
+ ASSERT( TUSB_ERROR_NONE == osal_task_create( OSAL_TASK_REF(keyboard_app_task) ) ,
+ VOID_RETURN);
+}
+
+//------------- main task -------------//
+OSAL_TASK_FUNCTION( keyboard_app_task ) (void* p_task_para)
+{
+ tusb_error_t error;
+ tusb_keyboard_report_t kbd_report;
+
+ OSAL_TASK_LOOP_BEGIN
+
+ osal_queue_receive(queue_kbd_hdl, &kbd_report, OSAL_TIMEOUT_WAIT_FOREVER, &error);
+
+ process_kbd_report(&kbd_report);
+
+ OSAL_TASK_LOOP_END
+}
+
+//--------------------------------------------------------------------+
+// HELPER
+//--------------------------------------------------------------------+
+
+// look up new key in previous keys
+static inline bool is_key_in_report(tusb_keyboard_report_t const *p_report, uint8_t modifier, uint8_t keycode)
+{
+ for(uint8_t i=0; i<6; i++)
+ {
+ if (p_report->keycode[i] == keycode)
+ {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+static inline void process_kbd_report(tusb_keyboard_report_t const *p_new_report)
+{
+ static tusb_keyboard_report_t prev_report = { 0 }; // previous report to check key released
+
+ //------------- example code ignore control (non-printable) key affects -------------//
+ for(uint8_t i=0; i<6; i++)
+ {
+ if ( p_new_report->keycode[i] )
+ {
+ if ( is_key_in_report(&prev_report, p_new_report->modifier, p_new_report->keycode[i]) )
+ {
+ // previously existed means holding
+ }else
+ {
+ // previously non-existed means key is pressed
+ printf("%c", keycode_to_ascii(p_new_report->modifier, p_new_report->keycode[i]) );
+ }
+ }
+ // TODO example skips key released
+ }
+
+ prev_report = *p_new_report;
+}
+
+static inline uint8_t keycode_to_ascii(uint8_t modifier, uint8_t keycode)
+{
+ // TODO max of keycode_ascii_tbl
+ return keycode > 128 ? 0 :
+ hid_keycode_to_ascii_tbl [modifier & (KEYBOARD_MODIFIER_LEFTSHIFT | KEYBOARD_MODIFIER_RIGHTSHIFT) ? 1 : 0] [keycode];
+}
+
+#endif
diff --git a/demos/host/src/keyboard_app.h b/demos/host/src/keyboard_app.h
index 2b7a27e79..82305ca8a 100644
--- a/demos/host/src/keyboard_app.h
+++ b/demos/host/src/keyboard_app.h
@@ -1,72 +1,80 @@
-/**************************************************************************/
-/*!
- @file keyboard_app.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.
-*/
-/**************************************************************************/
-
-/** \file
- * \brief TBD
- *
- * \note TBD
- */
-
-/** \ingroup TBD
- * \defgroup TBD
- * \brief TBD
- *
- * @{
- */
-
-#ifndef _TUSB_KEYBOARD_APP_H_
-#define _TUSB_KEYBOARD_APP_H_
-
-#include "boards/board.h"
-#include "tusb.h"
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-
-void keyboard_app_init(void);
-OSAL_TASK_FUNCTION( keyboard_app_task ) (void* p_task_para);
-
-#ifdef __cplusplus
- }
-#endif
-
-#endif /* _TUSB_KEYBOARD_APP_H_ */
-
-/** @} */
+/**************************************************************************/
+/*!
+ @file keyboard_app.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.
+*/
+/**************************************************************************/
+
+/** \file
+ * \brief TBD
+ *
+ * \note TBD
+ */
+
+/** \ingroup TBD
+ * \defgroup TBD
+ * \brief TBD
+ *
+ * @{
+ */
+
+#ifndef _TUSB_KEYBOARD_APP_H_
+#define _TUSB_KEYBOARD_APP_H_
+
+#include "boards/board.h"
+#include "tusb.h"
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+#if TUSB_CFG_HOST_HID_KEYBOARD
+
+void keyboard_app_init(void);
+OSAL_TASK_FUNCTION( keyboard_app_task ) (void* p_task_para);
+
+#else
+
+#define keyboard_app_init()
+#define keyboard_app_task(x)
+
+#endif
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* _TUSB_KEYBOARD_APP_H_ */
+
+/** @} */
diff --git a/demos/host/src/mouse_app.c b/demos/host/src/mouse_app.c
index df18b9662..c5969cd40 100644
--- a/demos/host/src/mouse_app.c
+++ b/demos/host/src/mouse_app.c
@@ -182,14 +182,4 @@ static inline void process_mouse_report(tusb_mouse_report_t const * p_report)
cursor_movement(p_report->x, p_report->y, p_report->wheel);
}
-#else
-
-// dummy implementation to remove #ifdef in main.c
-void mouse_app_init(void) { }
-OSAL_TASK_FUNCTION( mouse_app_task ) (void* p_task_para)
-{
- OSAL_TASK_LOOP_BEGIN
- OSAL_TASK_LOOP_END
-}
-
#endif
diff --git a/demos/host/src/mouse_app.h b/demos/host/src/mouse_app.h
index 53ab1e2c8..7a5515bb0 100644
--- a/demos/host/src/mouse_app.h
+++ b/demos/host/src/mouse_app.h
@@ -1,74 +1,83 @@
-/**************************************************************************/
-/*!
- @file mouse_app.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.
-*/
-/**************************************************************************/
-
-/** \file
- * \brief TBD
- *
- * \note TBD
- */
-
-/** \ingroup TBD
- * \defgroup TBD
- * \brief TBD
- *
- * @{
- */
-
-#ifndef _TUSB_MOUSE_APP_H_
-#define _TUSB_MOUSE_APP_H_
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#include "boards/board.h"
-#include "tusb.h"
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-void mouse_app_init(void);
-OSAL_TASK_FUNCTION( mouse_app_task ) (void* p_task_para);
-
-#ifdef __cplusplus
- }
-#endif
-
-#endif /* _TUSB_MOUSE_APP_H_ */
-
-/** @} */
+/**************************************************************************/
+/*!
+ @file mouse_app.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.
+*/
+/**************************************************************************/
+
+/** \file
+ * \brief TBD
+ *
+ * \note TBD
+ */
+
+/** \ingroup TBD
+ * \defgroup TBD
+ * \brief TBD
+ *
+ * @{
+ */
+
+#ifndef _TUSB_MOUSE_APP_H_
+#define _TUSB_MOUSE_APP_H_
+
+#include <stdint.h>
+#include <stdbool.h>
+
+#include "boards/board.h"
+#include "tusb.h"
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+#if TUSB_CFG_HOST_HID_MOUSE
+
+void mouse_app_init(void);
+OSAL_TASK_FUNCTION( mouse_app_task ) (void* p_task_para);
+
+#else
+
+#define mouse_app_init()
+#define mouse_app_task(x)
+
+#endif
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* _TUSB_MOUSE_APP_H_ */
+
+/** @} */
diff --git a/demos/host/src/msc_app.c b/demos/host/src/msc_app.c
index 2591e61a0..e9347fa84 100644
--- a/demos/host/src/msc_app.c
+++ b/demos/host/src/msc_app.c
@@ -1,186 +1,176 @@
-/**************************************************************************/
-/*!
- @file msc_app.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 "mouse_app.h"
-
-#if TUSB_CFG_OS != TUSB_OS_NONE
-#include "app_os_prio.h"
-#endif
-
-#if TUSB_CFG_HOST_MSC
-
-#include "cli.h"
-#include "ff.h"
-#include "diskio.h"
-
-//--------------------------------------------------------------------+
-// MACRO CONSTANT TYPEDEF
-//--------------------------------------------------------------------+
-
-//--------------------------------------------------------------------+
-// INTERNAL OBJECT & FUNCTION DECLARATION
-//--------------------------------------------------------------------+
-static FATFS fatfs[TUSB_CFG_HOST_DEVICE_MAX] TUSB_CFG_ATTR_USBRAM;
-
-//--------------------------------------------------------------------+
-// tinyusb callback (ISR context)
-//--------------------------------------------------------------------+
-void tusbh_msc_mounted_cb(uint8_t dev_addr)
-{
- puts("\na MassStorage device is mounted");
-
- //------------- Disk Information -------------//
- // SCSI VendorID[8] & ProductID[16] from Inquiry Command
- uint8_t const* p_vendor = tusbh_msc_get_vendor_name(dev_addr);
- uint8_t const* p_product = tusbh_msc_get_product_name(dev_addr);
-
- for(uint8_t i=0; i<8; i++) putchar(p_vendor[i]);
-
- printf(" ");
- for(uint8_t i=0; i<16; i++) putchar(p_product[i]);
- putchar('\n');
-
- uint32_t last_lba, block_size;
- tusbh_msc_get_capacity(dev_addr, &last_lba, &block_size);
- printf("Disk Size: %d MB\n", (last_lba+1)/ ((1024*1024)/block_size) );
- printf("LBA 0-0x%X Block Size: %d\n", last_lba, block_size);
-
- //------------- file system (only 1 LUN support) -------------//
- uint8_t phy_disk = dev_addr-1;
- disk_initialize(phy_disk);
-
- if ( disk_is_ready(phy_disk) )
- {
- if ( f_mount(phy_disk, &fatfs[phy_disk]) != FR_OK )
- {
- puts("mount failed");
- return;
- }
-
- puts("-------------------------------------------------------------------");
- puts("- MASSSTORAGE CLASS CLI IS A IMMATURE CODE. DISK-WRITING COMMANDS -");
- puts("- SUCH AS cp(COPY), mkdir(MAKE DIRECTORY) ARE POTENTIAL TO DAMAGE -");
- puts("- YOUR USB THUMBDRIVE. USING THOSE COMMANDS ARE AT YOUR OWN RISK. -");
- puts("- THE AUTHOR HAS NO RESPONSIBILITY WITH YOUR DEVICE NOR ITS DATA -");
- puts("---------------------------------------------------------------------");
-
- f_chdrive(phy_disk); // change to newly mounted drive
- f_chdir("/"); // root as current dir
-
- cli_init();
- }
-}
-
-void tusbh_msc_unmounted_cb(uint8_t dev_addr)
-{
- puts("\na MassStorage device is unmounted");
-
- uint8_t phy_disk = dev_addr-1;
-
- f_mount(phy_disk, NULL); // unmount disk
- disk_deinitialize(phy_disk);
-
- if ( phy_disk == f_get_current_drive() )
- { // active drive is unplugged --> change to other drive
- for(uint8_t i=0; i<TUSB_CFG_HOST_DEVICE_MAX; i++)
- {
- if ( disk_is_ready(i) )
- {
- f_chdrive(i);
- cli_init(); // refractor, rename
- }
- }
- }
-}
-
-void tusbh_msc_isr(uint8_t dev_addr, tusb_event_t event, uint32_t xferred_bytes)
-{
-
-}
-
-//--------------------------------------------------------------------+
-// IMPLEMENTATION
-//--------------------------------------------------------------------+
-void msc_app_init(void)
-{
- diskio_init();
-}
-
-//------------- main task -------------//
-OSAL_TASK_FUNCTION( msc_app_task ) (void* p_task_para)
-{
- OSAL_TASK_LOOP_BEGIN
-
- osal_task_delay(10);
-
- bool is_any_disk_mounted = false;
- for(uint8_t phy_disk=0; phy_disk < TUSB_CFG_HOST_DEVICE_MAX; phy_disk++)
- {
- if ( disk_is_ready(phy_disk) )
- {
- is_any_disk_mounted = true;
- break;
- }
- }
-
- if ( is_any_disk_mounted )
- {
- int ch = getchar();
- if ( ch > 0 )
- {
- cli_poll( (char) ch);
- }
- }
-
- OSAL_TASK_LOOP_END
-}
-
-#else
-// dummy implementation to remove #ifdef in main.c
-void msc_app_init(void) { }
-OSAL_TASK_FUNCTION( msc_app_task ) (void* p_task_para)
-{
- OSAL_TASK_LOOP_BEGIN
- OSAL_TASK_LOOP_END
-}
-
-
-#endif
+/**************************************************************************/
+/*!
+ @file msc_app.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 "mouse_app.h"
+
+#if TUSB_CFG_OS != TUSB_OS_NONE
+#include "app_os_prio.h"
+#endif
+
+#if TUSB_CFG_HOST_MSC
+
+#include "cli.h"
+#include "ff.h"
+#include "diskio.h"
+
+//--------------------------------------------------------------------+
+// MACRO CONSTANT TYPEDEF
+//--------------------------------------------------------------------+
+
+//--------------------------------------------------------------------+
+// INTERNAL OBJECT & FUNCTION DECLARATION
+//--------------------------------------------------------------------+
+static FATFS fatfs[TUSB_CFG_HOST_DEVICE_MAX] TUSB_CFG_ATTR_USBRAM;
+
+//--------------------------------------------------------------------+
+// tinyusb callback (ISR context)
+//--------------------------------------------------------------------+
+void tusbh_msc_mounted_cb(uint8_t dev_addr)
+{
+ puts("\na MassStorage device is mounted");
+
+ //------------- Disk Information -------------//
+ // SCSI VendorID[8] & ProductID[16] from Inquiry Command
+ uint8_t const* p_vendor = tusbh_msc_get_vendor_name(dev_addr);
+ uint8_t const* p_product = tusbh_msc_get_product_name(dev_addr);
+
+ for(uint8_t i=0; i<8; i++) putchar(p_vendor[i]);
+
+ printf(" ");
+ for(uint8_t i=0; i<16; i++) putchar(p_product[i]);
+ putchar('\n');
+
+ uint32_t last_lba, block_size;
+ tusbh_msc_get_capacity(dev_addr, &last_lba, &block_size);
+ printf("Disk Size: %d MB\n", (last_lba+1)/ ((1024*1024)/block_size) );
+ printf("LBA 0-0x%X Block Size: %d\n", last_lba, block_size);
+
+ //------------- file system (only 1 LUN support) -------------//
+ uint8_t phy_disk = dev_addr-1;
+ disk_initialize(phy_disk);
+
+ if ( disk_is_ready(phy_disk) )
+ {
+ if ( f_mount(phy_disk, &fatfs[phy_disk]) != FR_OK )
+ {
+ puts("mount failed");
+ return;
+ }
+
+ puts("-------------------------------------------------------------------");
+ puts("- MASSSTORAGE CLASS CLI IS A IMMATURE CODE. DISK-WRITING COMMANDS -");
+ puts("- SUCH AS cp(COPY), mkdir(MAKE DIRECTORY) ARE POTENTIAL TO DAMAGE -");
+ puts("- YOUR USB THUMBDRIVE. USING THOSE COMMANDS ARE AT YOUR OWN RISK. -");
+ puts("- THE AUTHOR HAS NO RESPONSIBILITY WITH YOUR DEVICE NOR ITS DATA -");
+ puts("---------------------------------------------------------------------");
+
+ f_chdrive(phy_disk); // change to newly mounted drive
+ f_chdir("/"); // root as current dir
+
+ cli_init();
+ }
+}
+
+void tusbh_msc_unmounted_cb(uint8_t dev_addr)
+{
+ puts("\na MassStorage device is unmounted");
+
+ uint8_t phy_disk = dev_addr-1;
+
+ f_mount(phy_disk, NULL); // unmount disk
+ disk_deinitialize(phy_disk);
+
+ if ( phy_disk == f_get_current_drive() )
+ { // active drive is unplugged --> change to other drive
+ for(uint8_t i=0; i<TUSB_CFG_HOST_DEVICE_MAX; i++)
+ {
+ if ( disk_is_ready(i) )
+ {
+ f_chdrive(i);
+ cli_init(); // refractor, rename
+ }
+ }
+ }
+}
+
+void tusbh_msc_isr(uint8_t dev_addr, tusb_event_t event, uint32_t xferred_bytes)
+{
+
+}
+
+//--------------------------------------------------------------------+
+// IMPLEMENTATION
+//--------------------------------------------------------------------+
+void msc_app_init(void)
+{
+ diskio_init();
+}
+
+//------------- main task -------------//
+OSAL_TASK_FUNCTION( msc_app_task ) (void* p_task_para)
+{
+ OSAL_TASK_LOOP_BEGIN
+
+ osal_task_delay(10);
+
+ bool is_any_disk_mounted = false;
+ for(uint8_t phy_disk=0; phy_disk < TUSB_CFG_HOST_DEVICE_MAX; phy_disk++)
+ {
+ if ( disk_is_ready(phy_disk) )
+ {
+ is_any_disk_mounted = true;
+ break;
+ }
+ }
+
+ if ( is_any_disk_mounted )
+ {
+ int ch = getchar();
+ if ( ch > 0 )
+ {
+ cli_poll( (char) ch);
+ }
+ }
+
+ OSAL_TASK_LOOP_END
+}
+
+#endif
diff --git a/demos/host/src/msc_app.h b/demos/host/src/msc_app.h
index dc56bbdd8..1e680cccc 100644
--- a/demos/host/src/msc_app.h
+++ b/demos/host/src/msc_app.h
@@ -1,71 +1,78 @@
-/**************************************************************************/
-/*!
- @file msc_app.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.
-*/
-/**************************************************************************/
-
-/** \ingroup TBD
- * \defgroup TBD
- * \brief TBD
- *
- * @{
- */
-
-#ifndef _TUSB_MSC_APP_H_
-#define _TUSB_MSC_APP_H_
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#include "boards/board.h"
-#include "tusb.h"
-
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-
-void msc_app_init(void);
-OSAL_TASK_FUNCTION( msc_app_task ) (void* p_task_para);
-
-
-#ifdef __cplusplus
- }
-#endif
-
-#endif /* _TUSB_MSC_APP_H_ */
-
-/** @} */
+/**************************************************************************/
+/*!
+ @file msc_app.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.
+*/
+/**************************************************************************/
+
+/** \ingroup TBD
+ * \defgroup TBD
+ * \brief TBD
+ *
+ * @{
+ */
+
+#ifndef _TUSB_MSC_APP_H_
+#define _TUSB_MSC_APP_H_
+
+#include <stdint.h>
+#include <stdbool.h>
+
+#include "boards/board.h"
+#include "tusb.h"
+
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+#if TUSB_CFG_HOST_MSC
+
+void msc_app_init(void);
+OSAL_TASK_FUNCTION( msc_app_task ) (void* p_task_para);
+
+#else
+
+#define msc_app_init()
+#define msc_app_task(x)
+
+#endif
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* _TUSB_MSC_APP_H_ */
+
+/** @} */
diff --git a/demos/host/src/rndis_app.c b/demos/host/src/rndis_app.c
index 9b75a3c30..f77df8b9a 100644
--- a/demos/host/src/rndis_app.c
+++ b/demos/host/src/rndis_app.c
@@ -1,89 +1,79 @@
-/**************************************************************************/
-/*!
- @file rndis_app.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 "rndis_app.h"
-
-#if TUSB_CFG_OS != TUSB_OS_NONE
-#include "app_os_prio.h"
-#endif
-
-#if TUSB_CFG_HOST_CDC && TUSB_CFG_HOST_CDC_RNDIS
-
-//--------------------------------------------------------------------+
-// MACRO CONSTANT TYPEDEF
-//--------------------------------------------------------------------+
-void tusbh_cdc_rndis_mounted_cb(uint8_t dev_addr)
-{ // application set-up
- uint8_t mac_address[6];
-
- printf("\nan RNDIS device is mounted\n");
- tusbh_cdc_rndis_get_mac_addr(dev_addr, mac_address);
-
- printf("MAC Address ");
- for(uint8_t i=0; i<6; i++) printf("%X ", mac_address[i]);
- printf("\n");
-}
-
-void tusbh_cdc_rndis_unmounted_cb(uint8_t dev_addr)
-{
- // application tear-down
- printf("\nan RNDIS device is unmounted\n");
-}
-
-void rndis_app_init(void)
-{
-
-}
-
-OSAL_TASK_FUNCTION( rndis_app_task ) (void* p_task_para)
-{
- OSAL_TASK_LOOP_BEGIN
- OSAL_TASK_LOOP_END
-}
-
-#else
-
-// dummy implementation to remove #ifdef in main.c
-void rndis_app_init(void) { }
-OSAL_TASK_FUNCTION( rndis_app_task ) (void* p_task_para)
-{
- OSAL_TASK_LOOP_BEGIN
- OSAL_TASK_LOOP_END
-}
-
-#endif
+/**************************************************************************/
+/*!
+ @file rndis_app.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 "rndis_app.h"
+
+#if TUSB_CFG_OS != TUSB_OS_NONE
+#include "app_os_prio.h"
+#endif
+
+#if TUSB_CFG_HOST_CDC && TUSB_CFG_HOST_CDC_RNDIS
+
+//--------------------------------------------------------------------+
+// MACRO CONSTANT TYPEDEF
+//--------------------------------------------------------------------+
+void tusbh_cdc_rndis_mounted_cb(uint8_t dev_addr)
+{ // application set-up
+ uint8_t mac_address[6];
+
+ printf("\nan RNDIS device is mounted\n");
+ tusbh_cdc_rndis_get_mac_addr(dev_addr, mac_address);
+
+ printf("MAC Address ");
+ for(uint8_t i=0; i<6; i++) printf("%X ", mac_address[i]);
+ printf("\n");
+}
+
+void tusbh_cdc_rndis_unmounted_cb(uint8_t dev_addr)
+{
+ // application tear-down
+ printf("\nan RNDIS device is unmounted\n");
+}
+
+void rndis_app_init(void)
+{
+
+}
+
+OSAL_TASK_FUNCTION( rndis_app_task ) (void* p_task_para)
+{
+ OSAL_TASK_LOOP_BEGIN
+ OSAL_TASK_LOOP_END
+}
+
+#endif
diff --git a/demos/host/src/rndis_app.h b/demos/host/src/rndis_app.h
index c9841463c..d30ca899d 100644
--- a/demos/host/src/rndis_app.h
+++ b/demos/host/src/rndis_app.h
@@ -1,65 +1,75 @@
-/**************************************************************************/
-/*!
- @file rndis_app.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.
-*/
-/**************************************************************************/
-
-/** \ingroup TBD
- * \defgroup TBD
- * \brief TBD
- *
- * @{
- */
-
-#ifndef _TUSB_RNDIS_APP_H_
-#define _TUSB_RNDIS_APP_H_
-
-#include "boards/board.h"
-#include "tusb.h"
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-void rndis_app_init(void);
-OSAL_TASK_FUNCTION( rndis_app_task ) (void* p_task_para);
-
-#ifdef __cplusplus
- }
-#endif
-
-#endif /* _TUSB_RNDIS_APP_H_ */
-
-/** @} */
+/**************************************************************************/
+/*!
+ @file rndis_app.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.
+*/
+/**************************************************************************/
+
+/** \ingroup TBD
+ * \defgroup TBD
+ * \brief TBD
+ *
+ * @{
+ */
+
+#ifndef _TUSB_RNDIS_APP_H_
+#define _TUSB_RNDIS_APP_H_
+
+#include "boards/board.h"
+#include "tusb.h"
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+#if TUSB_CFG_HOST_CDC && TUSB_CFG_HOST_CDC_RNDIS
+
+void rndis_app_init(void);
+OSAL_TASK_FUNCTION( rndis_app_task ) (void* p_task_para);
+
+#else
+
+#define rndis_app_init()
+#define rndis_app_task(x)
+
+#endif
+
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* _TUSB_RNDIS_APP_H_ */
+
+/** @} */
diff --git a/demos/host/src/tusb_config.h b/demos/host/src/tusb_config.h
index 3b69dffad..6c1c8268e 100644
--- a/demos/host/src/tusb_config.h
+++ b/demos/host/src/tusb_config.h
@@ -1,129 +1,129 @@
-/**************************************************************************/
-/*!
- @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.
-*/
-/**************************************************************************/
-
-/** \file
- * \brief TBD
- *
- * \note TBD
- */
-
-/** \ingroup TBD
- * \defgroup TBD
- * \brief TBD
- *
- * @{
- */
-
-#ifndef _TUSB_TUSB_CONFIG_H_
-#define _TUSB_TUSB_CONFIG_H_
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-//--------------------------------------------------------------------+
-// CONTROLLER CONFIGURATION
-//--------------------------------------------------------------------+
-#define TUSB_CFG_CONTROLLER0_MODE (TUSB_MODE_HOST)
-#define TUSB_CFG_CONTROLLER1_MODE (TUSB_MODE_NONE)
-
-//--------------------------------------------------------------------+
-// HOST CONFIGURATION
-//--------------------------------------------------------------------+
-#define TUSB_CFG_HOST_DEVICE_MAX 3
-#define TUSB_CFG_CONFIGURATION_MAX 1
-
-//------------- USBD -------------//
-#define TUSB_CFG_HOST_ENUM_BUFFER_SIZE 255
-
-//------------- CLASS -------------//
-#define TUSB_CFG_HOST_HUB 1
-#define TUSB_CFG_HOST_HID_KEYBOARD 1
-#define TUSB_CFG_HOST_HID_MOUSE 1
-#define TUSB_CFG_HOST_HID_GENERIC 0
-#define TUSB_CFG_HOST_MSC 1
-#define TUSB_CFG_HOST_CDC 0
-#define TUSB_CFG_HOST_CDC_RNDIS 0
-
-//--------------------------------------------------------------------+
-// DEVICE CONFIGURATION
-//--------------------------------------------------------------------+
-//#define TUSB_CFG_DEVICE
-
-//------------- CORE/CONTROLLER -------------//
-
-//------------- CLASS -------------//
-//#define TUSB_CFG_DEVICE_CDC
-//#define TUSB_CFG_DEVICE_HID_KEYBOARD 1
-//#define TUSB_CFG_DEVICE_HID_MOUSE 1
-
-//--------------------------------------------------------------------+
-// COMMON CONFIGURATION
-//--------------------------------------------------------------------+
-
-#define TUSB_CFG_DEBUG 3
-
-//#define TUSB_CFG_OS TUSB_OS_NONE // defined using eclipse build
-//#define TUSB_CFG_OS_TASK_PRIO
-
-#define TUSB_CFG_OS_TICKS_PER_SECOND 1000
-
-#ifdef __CODE_RED // make use of code red's support for ram region macros
- #if (MCU == MCU_LPC11UXX) || (MCU == MCU_LPC13UXX)
- #define TUSB_RAM_SECTION ".data.$RAM2"
- #elif (MCU == MCU_LPC43XX)
- #define TUSB_RAM_SECTION ".data.$RAM3"
- #endif
-
- #define TUSB_CFG_ATTR_USBRAM __attribute__ ((section(TUSB_RAM_SECTION)))
-#elif defined __CC_ARM // Compiled with Keil armcc
- #define TUSB_CFG_ATTR_USBRAM
-#elif __ICCARM__ // compiled with IAR
- #define TUSB_CFG_ATTR_USBRAM @ ".ahb_sram1"
-#else
- #error compiler not specified
-#endif
-
-
-#ifdef __cplusplus
- }
-#endif
-
-#endif /* _TUSB_TUSB_CONFIG_H_ */
-
-/** @} */
+/**************************************************************************/
+/*!
+ @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.
+*/
+/**************************************************************************/
+
+/** \file
+ * \brief TBD
+ *
+ * \note TBD
+ */
+
+/** \ingroup TBD
+ * \defgroup TBD
+ * \brief TBD
+ *
+ * @{
+ */
+
+#ifndef _TUSB_TUSB_CONFIG_H_
+#define _TUSB_TUSB_CONFIG_H_
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+//--------------------------------------------------------------------+
+// CONTROLLER CONFIGURATION
+//--------------------------------------------------------------------+
+#define TUSB_CFG_CONTROLLER0_MODE (TUSB_MODE_HOST)
+#define TUSB_CFG_CONTROLLER1_MODE (TUSB_MODE_NONE)
+
+//--------------------------------------------------------------------+
+// HOST CONFIGURATION
+//--------------------------------------------------------------------+
+#define TUSB_CFG_HOST_DEVICE_MAX 3
+#define TUSB_CFG_CONFIGURATION_MAX 1
+
+//------------- USBD -------------//
+#define TUSB_CFG_HOST_ENUM_BUFFER_SIZE 255
+
+//------------- CLASS -------------//
+#define TUSB_CFG_HOST_HUB 1
+#define TUSB_CFG_HOST_HID_KEYBOARD 1
+#define TUSB_CFG_HOST_HID_MOUSE 0
+#define TUSB_CFG_HOST_HID_GENERIC 0
+#define TUSB_CFG_HOST_MSC 1
+#define TUSB_CFG_HOST_CDC 0
+#define TUSB_CFG_HOST_CDC_RNDIS 0
+
+//--------------------------------------------------------------------+
+// DEVICE CONFIGURATION
+//--------------------------------------------------------------------+
+//#define TUSB_CFG_DEVICE
+
+//------------- CORE/CONTROLLER -------------//
+
+//------------- CLASS -------------//
+//#define TUSB_CFG_DEVICE_CDC
+//#define TUSB_CFG_DEVICE_HID_KEYBOARD 1
+//#define TUSB_CFG_DEVICE_HID_MOUSE 1
+
+//--------------------------------------------------------------------+
+// COMMON CONFIGURATION
+//--------------------------------------------------------------------+
+
+#define TUSB_CFG_DEBUG 3
+
+//#define TUSB_CFG_OS TUSB_OS_NONE // defined using eclipse build
+//#define TUSB_CFG_OS_TASK_PRIO
+
+#define TUSB_CFG_OS_TICKS_PER_SECOND 1000
+
+#ifdef __CODE_RED // make use of code red's support for ram region macros
+ #if (MCU == MCU_LPC11UXX) || (MCU == MCU_LPC13UXX)
+ #define TUSB_RAM_SECTION ".data.$RAM2"
+ #elif (MCU == MCU_LPC43XX)
+ #define TUSB_RAM_SECTION ".data.$RAM3"
+ #endif
+
+ #define TUSB_CFG_ATTR_USBRAM __attribute__ ((section(TUSB_RAM_SECTION)))
+#elif defined __CC_ARM // Compiled with Keil armcc
+ #define TUSB_CFG_ATTR_USBRAM
+#elif __ICCARM__ // compiled with IAR
+ #define TUSB_CFG_ATTR_USBRAM @ ".ahb_sram1"
+#else
+ #error compiler not specified
+#endif
+
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* _TUSB_TUSB_CONFIG_H_ */
+
+/** @} */
diff --git a/tinyusb/common/errors.c b/tinyusb/common/errors.c
index 782d7be94..00fc5784c 100644
--- a/tinyusb/common/errors.c
+++ b/tinyusb/common/errors.c
@@ -1,49 +1,48 @@
-/**************************************************************************/
-/*!
- @file errors.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 "errors.h"
-
-#if TUSB_CFG_DEBUG == 3
-
-char const* const TUSB_ErrorStr[TUSB_ERROR_COUNT] =
-{
- ERROR_TABLE(ERROR_STRING)
- 0
-};
-
-#endif
+/**************************************************************************/
+/*!
+ @file errors.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 "errors.h"
+
+#if TUSB_CFG_DEBUG == 3
+
+char const* const TUSB_ErrorStr[TUSB_ERROR_COUNT] =
+{
+ ERROR_TABLE(ERROR_STRING)
+};
+
+#endif