- move CMSIS & driver lib for lpc13u to codebase bsp/lpc13xx

- change descriptor.c/h able to build device example
This commit is contained in:
hathach
2013-05-23 13:22:46 +07:00
parent d7ae21203c
commit 8cb7818bcc
50 changed files with 5307 additions and 257 deletions
+32 -32
View File
@@ -52,16 +52,16 @@
extern "C" {
#endif
enum {
HID_SUBCLASS_NONE = 0,
HID_SUBCLASS_BOOT = 1
};
enum {
HID_PROTOCOL_NONE = 0,
HID_PROTOCOL_KEYBOARD = 1,
HID_PROTOCOL_MOUSE = 2
};
//enum {
// HID_SUBCLASS_NONE = 0,
// HID_SUBCLASS_BOOT = 1
//};
//
//enum {
// HID_PROTOCOL_NONE = 0,
// HID_PROTOCOL_KEYBOARD = 1,
// HID_PROTOCOL_MOUSE = 2
//};
enum {
HID_DESC_HID = 0x21,
@@ -382,28 +382,28 @@ enum {
HID_USAGE_PAGE_DESKTOP = 0x01,
HID_USAGE_PAGE_SIMULATE = 0x02,
HID_USAGE_PAGE_VIRTUAL_REALITY = 0x03,
HID_USAGE_PAGE_SPORT = 0x04,
HID_USAGE_PAGE_GAME = 0x05,
HID_USAGE_PAGE_GENERIC_DEVICE = 0x06,
HID_USAGE_PAGE_KEYBOARD = 0x07,
HID_USAGE_PAGE_LED = 0x08,
HID_USAGE_PAGE_BUTTON = 0x09,
HID_USAGE_PAGE_ORDINAL = 0x0a,
HID_USAGE_PAGE_TELEPHONY = 0x0b,
HID_USAGE_PAGE_CONSUMER = 0x0c,
HID_USAGE_PAGE_DIGITIZER = 0x0d,
HID_USAGE_PAGE_PID = 0x0f,
HID_USAGE_PAGE_UNICODE = 0x10,
HID_USAGE_PAGE_ALPHA_DISPLAY = 0x14,
HID_USAGE_PAGE_MEDICAL = 0x40,
HID_USAGE_PAGE_MONITOR = 0x80, //0x80 - 0x83
HID_USAGE_PAGE_POWER = 0x84, // 0x084 - 0x87
HID_USAGE_PAGE_BARCODE_SCANNER = 0x8c,
HID_USAGE_PAGE_SCALE = 0x8d,
HID_USAGE_PAGE_MSR = 0x8e,
HID_USAGE_PAGE_CAMERA = 0x90,
HID_USAGE_PAGE_ARCADE = 0x91,
HID_USAGE_PAGE_VENDOR = 0xFFFF // 0xFF00 - 0xFFFF
// HID_USAGE_PAGE_SPORT = 0x04,
// HID_USAGE_PAGE_GAME = 0x05,
// HID_USAGE_PAGE_GENERIC_DEVICE = 0x06,
// HID_USAGE_PAGE_KEYBOARD = 0x07,
// HID_USAGE_PAGE_LED = 0x08,
// HID_USAGE_PAGE_BUTTON = 0x09,
// HID_USAGE_PAGE_ORDINAL = 0x0a,
// HID_USAGE_PAGE_TELEPHONY = 0x0b,
// HID_USAGE_PAGE_CONSUMER = 0x0c,
// HID_USAGE_PAGE_DIGITIZER = 0x0d,
// HID_USAGE_PAGE_PID = 0x0f,
// HID_USAGE_PAGE_UNICODE = 0x10,
// HID_USAGE_PAGE_ALPHA_DISPLAY = 0x14,
// HID_USAGE_PAGE_MEDICAL = 0x40,
// HID_USAGE_PAGE_MONITOR = 0x80, //0x80 - 0x83
// HID_USAGE_PAGE_POWER = 0x84, // 0x084 - 0x87
// HID_USAGE_PAGE_BARCODE_SCANNER = 0x8c,
// HID_USAGE_PAGE_SCALE = 0x8d,
// HID_USAGE_PAGE_MSR = 0x8e,
// HID_USAGE_PAGE_CAMERA = 0x90,
// HID_USAGE_PAGE_ARCADE = 0x91,
// HID_USAGE_PAGE_VENDOR = 0xFFFF // 0xFF00 - 0xFFFF
};
/// HID Usage Table - Table 6: Generic Desktop Page
+1
View File
@@ -52,6 +52,7 @@
#ifndef _TUSB_HID_DEVICE_H_
#define _TUSB_HID_DEVICE_H_
#include "common/common.h"
#include "hid.h"
#ifdef __cplusplus
+66
View File
@@ -0,0 +1,66 @@
/**************************************************************************/
/*!
@file usbd.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_option.h"
#if MODE_DEVICE_SUPPORTED
#define _TINY_USB_SOURCE_FILE_
//--------------------------------------------------------------------+
// INCLUDE
//--------------------------------------------------------------------+
#include "tusb.h"
//--------------------------------------------------------------------+
// MACRO CONSTANT TYPEDEF
//--------------------------------------------------------------------+
//--------------------------------------------------------------------+
// INTERNAL OBJECT & FUNCTION DECLARATION
//--------------------------------------------------------------------+
//--------------------------------------------------------------------+
// IMPLEMENTATION
//--------------------------------------------------------------------+
tusb_error_t usbd_init (void)
{
return TUSB_ERROR_NONE;
}
#endif
+86
View File
@@ -0,0 +1,86 @@
/**************************************************************************/
/*!
@file usbd.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_USBD_H_
#define _TUSB_USBD_H_
//--------------------------------------------------------------------+
// INCLUDE
//--------------------------------------------------------------------+
#include "osal/osal.h" // TODO refractor move to common.h ?
#include "dcd.h"
#ifdef __cplusplus
extern "C" {
#endif
//--------------------------------------------------------------------+
// MACRO CONSTANT TYPEDEF
//--------------------------------------------------------------------+
//--------------------------------------------------------------------+
// INTERNAL OBJECT & FUNCTION DECLARATION
//--------------------------------------------------------------------+
//--------------------------------------------------------------------+
// APPLICATION API
//--------------------------------------------------------------------+
//--------------------------------------------------------------------+
// CLASS-USBD & INTERNAL API
//--------------------------------------------------------------------+
#ifdef _TINY_USB_SOURCE_FILE_
tusb_error_t usbd_init(void);
#endif
#ifdef __cplusplus
}
#endif
#endif /* _TUSB_USBD_H_ */
/** @} */
+4 -10
View File
@@ -48,14 +48,6 @@
#include "tusb.h"
#include "usbh_hcd.h"
//TODO temporarily
#if TUSB_CFG_OS == TUSB_OS_NONE && !defined(_TEST_)
void tusb_tick_tock(void)
{
osal_tick_tock();
}
#endif
//--------------------------------------------------------------------+
// MACRO CONSTANT TYPEDEF
//--------------------------------------------------------------------+
@@ -300,7 +292,7 @@ tusb_error_t enumeration_body_subtask(void)
#ifndef _TEST_
// TODO hack delay 20 ms for slow device (use retry on the 1st xfer instead later)
osal_task_delay(20);
osal_task_delay(50);
#endif
//------------- Get first 8 bytes of device descriptor to get Control Endpoint Size -------------//
@@ -484,7 +476,7 @@ tusb_error_t enumeration_body_subtask(void)
#endif
//--------------------------------------------------------------------+
// INTERNAL HELPER
@@ -512,3 +504,5 @@ static inline uint8_t get_configure_number_for_device(tusb_descriptor_device_t*
return config_num;
}
#endif
+1 -9
View File
@@ -101,16 +101,8 @@ uint8_t tusbh_device_attached_cb (tusb_descriptor_device_t const *p_desc_de
void tusbh_device_mount_succeed_cb (uint8_t dev_addr) ATTR_WEAK;
void tusbh_device_mount_failed_cb(tusb_error_t error, tusb_descriptor_device_t const *p_desc_device) ATTR_WEAK; // TODO refractor remove desc_device
#if TUSB_CFG_OS == TUSB_OS_NONE // TODO move later
//static inline void tusb_tick_tock(void) ATTR_ALWAYS_INLINE;
//static inline void tusb_tick_tock(void)
//{
// osal_tick_tock();
//}
#endif
//--------------------------------------------------------------------+
// CLASS-USBD & INTERNAL API
// CLASS-USBH & INTERNAL API
//--------------------------------------------------------------------+
#ifdef _TINY_USB_SOURCE_FILE_
+3 -3
View File
@@ -47,8 +47,8 @@ tusb_error_t tusb_init(void)
ASSERT_STATUS( usbh_init() ); // host stack init
#endif
#ifdef TUSB_CFG_DEVICE
ASSERT_STATUS( dcd_init(0) ); // device stack init
#if MODE_DEVICE_SUPPORTED
ASSERT_STATUS ( usbd_init() ); // device stack init
#endif
return TUSB_ERROR_NONE;
@@ -61,7 +61,7 @@ void tusb_isr(uint8_t controller_id)
hcd_isr(controller_id);
#endif
#ifdef TUSB_CFG_DEVICE
#if MODE_DEVICE_SUPPORTED
dcd_isr(controller_id);
#endif
+19 -4
View File
@@ -48,10 +48,14 @@
extern "C" {
#endif
//--------------------------------------------------------------------+
// INCLUDE
//--------------------------------------------------------------------+
#include "common/common.h"
#include "hal/hal.h"
#include "osal/osal.h"
//------------- HOST -------------//
#if MODE_HOST_SUPPORTED
#include "host/usbh.h"
@@ -66,27 +70,38 @@
#endif
//------------- DEVICE -------------//
#if MODE_DEVICE_SUPPORTED
#include "device/dcd.h"
#include "device/usbd.h"
#if DEVICE_CLASS_HID
#include "class/hid_device.h"
#endif
#ifdef TUSB_CFG_DEVICE_CDC
#if TUSB_CFG_DEVICE_CDC
#include "class/cdc.h"
#endif
#endif
//--------------------------------------------------------------------+
// APPLICATION API
//--------------------------------------------------------------------+
tusb_error_t tusb_init(void);
// TODO merge with tick_tock
#if TUSB_CFG_OS == TUSB_OS_NONE
void tusb_task_runner(void);
#endif
#if TUSB_CFG_OS == TUSB_OS_NONE && !defined(_TEST_)
static inline void tusb_tick_tock(void) ATTR_ALWAYS_INLINE;
static inline void tusb_tick_tock(void)
{
osal_tick_tock();
}
#endif
#ifdef __cplusplus
}
#endif
+2 -2
View File
@@ -156,7 +156,7 @@
//--------------------------------------------------------------------+
// DEVICE OPTIONS
//--------------------------------------------------------------------+
//#define TUSB_CFG_DEVICE
//#if MODE_DEVICE_SUPPORTED
#define DEVICE_CLASS_HID ( (defined TUSB_CFG_DEVICE_HID_KEYBOARD) || (defined TUSB_CFG_DEVICE_HID_MOUSE) )
@@ -183,7 +183,7 @@
#define CDC_NOTIFICATION_EP_MAXPACKETSIZE 8
#define CDC_DATA_EP_MAXPACKET_SIZE 16
//#endif
#ifdef __cplusplus
}