rename NGX to ngx

add a bunch of stub header for dcd (175x_6x, 13xx, 18xx_43xx)
add dcd_nxp_romdriver for handling usb rom driver
add BIT_TEST_ in binary.h
remove mw_usbd_hid.h include due to lexical conflict
This commit is contained in:
hathach
2013-05-28 15:24:27 +07:00
parent 7ae986de95
commit 1e5bd82af2
27 changed files with 504 additions and 301 deletions

View File

@@ -51,17 +51,17 @@
#ifdef __cplusplus
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_TYPE_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

View File

@@ -0,0 +1,62 @@
/**************************************************************************/
/*!
@file hid_device.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 && defined HOST_CLASS_HID)
#define _TINY_USB_SOURCE_FILE_
//--------------------------------------------------------------------+
// INCLUDE
//--------------------------------------------------------------------+
#include "common/common.h"
#include "hid_device.h"
//--------------------------------------------------------------------+
// MACRO CONSTANT TYPEDEF
//--------------------------------------------------------------------+
//--------------------------------------------------------------------+
// INTERNAL OBJECT & FUNCTION DECLARATION
//--------------------------------------------------------------------+
//--------------------------------------------------------------------+
// IMPLEMENTATION
//--------------------------------------------------------------------+
#endif

View File

@@ -65,6 +65,8 @@
/// clear n-th bit of x
#define BIT_CLR_(x, n) ( (x) & (~BIT_(n)) )
/// test n-th bit of x
#define BIT_TEST_(x, n) ( (x) & BIT_(n) )
#if defined(__GNUC__) && !defined(__CC_ARM)

View File

@@ -151,14 +151,4 @@ bool usb_isConfigured(void)
return isConfigured;
}
/**************************************************************************/
/*!
@brief Redirect the USB IRQ handler to the ROM handler
*/
/**************************************************************************/
void USB_IRQHandler(void)
{
USBD_API->hw->ISR(g_hUsb);
}
#endif

View File

@@ -57,26 +57,10 @@
#include "common/common.h"
#ifdef DEVICE_ROMDRIVER
#include "romdriver/mw_usbd_rom_api.h"
#define USBD_API ((USBD_API_T*) DEVICE_ROM_DRIVER_ADDR)
#endif
/** \brief Initialize DCD
*
* \param[in] para1
* \param[out] para2
* \return Error Code of the \ref TUSB_ERROR enum
* \note
*/
tusb_error_t dcd_init(uint8_t coreid) ATTR_WARN_UNUSED_RESULT;
tusb_error_t dcd_init(void) ATTR_WARN_UNUSED_RESULT;
tusb_error_t dcd_controller_reset(uint8_t coreid) ATTR_WARN_UNUSED_RESULT;
tusb_error_t dcd_controller_connect(uint8_t coreid) ATTR_WARN_UNUSED_RESULT;
void dcd_isr(uint8_t hostid);
void dcd_controller_connect(uint8_t coreid);
void dcd_isr(uint8_t coreid);
#ifdef __cplusplus
}

View File

@@ -0,0 +1,63 @@
/**************************************************************************/
/*!
@file dcd_lpc13xx.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_DCD_LPC13XX_H_
#define _TUSB_DCD_LPC13XX_H_
#define DEVICE_ROM_REG_BASE LPC_USB_BASE
#define DEVICE_ROM_DRIVER_ADDR 0x1FFF1FF8
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif /* _TUSB_DCD_LPC13XX_H_ */
/** @} */

View File

@@ -1,6 +1,6 @@
/**************************************************************************/
/*!
@file dcd_lpc43xx.c
@file dcd_lpc175x_6x.c
@author hathach (tinyusb.org)
@section LICENSE
@@ -38,14 +38,15 @@
#include "tusb_option.h"
#if MODE_DEVICE_SUPPORTED && (MCU == MCU_LPC43XX)
#if MODE_DEVICE_SUPPORTED && (MCU == MCU_LPC175X_6X)
#define _TINY_USB_SOURCE_FILE_
//--------------------------------------------------------------------+
// INCLUDE
//--------------------------------------------------------------------+
#include "dcd_lpc43xx.h"
#include "dcd.h"
#include "dcd_lpc175x_6x.h"
//--------------------------------------------------------------------+
// MACRO CONSTANT TYPEDEF
@@ -58,21 +59,5 @@
//--------------------------------------------------------------------+
// IMPLEMENTATION
//--------------------------------------------------------------------+
tusb_error_t dcd_controller_reset(uint8_t hostid)
{
return TUSB_ERROR_NONE;
}
tusb_error_t dcd_controller_connect(uint8_t coreid)
{
return TUSB_ERROR_NONE;
}
void dcd_isr(uint8_t hostid)
{
}
#endif

View File

@@ -1,6 +1,6 @@
/**************************************************************************/
/*!
@file dcd_lpc43xx.h
@file dcd_lpc175x_6x.h
@author hathach (tinyusb.org)
@section LICENSE
@@ -43,21 +43,18 @@
* @{
*/
#ifndef _TUSB_DCD_LPC43XX_H_
#define _TUSB_DCD_LPC43XX_H_
#include "common/common.h"
#ifndef _TUSB_DCD_LPC175X_6X_H_
#define _TUSB_DCD_LPC175X_6X_H_
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif /* _TUSB_DCD_LPC43XX_H_ */
#endif /* _TUSB_DCD_LPC175X_6X_H_ */
/** @} */

View File

@@ -0,0 +1,62 @@
/**************************************************************************/
/*!
@file dcd_lpc18xx_lpc43xx.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_DCD_LPC18XX_LPC43XX_H_
#define _TUSB_DCD_LPC18XX_LPC43XX_H_
#ifdef __cplusplus
extern "C" {
#endif
#define DEVICE_ROM_REG_BASE LPC_USB0_BASE // TODO USB1
#define DEVICE_ROM_DRIVER_ADDR 0x1040011C
#ifdef __cplusplus
}
#endif
#endif /* _TUSB_DCD_LPC18XX_LPC43XX_H_ */
/** @} */

View File

@@ -0,0 +1,166 @@
/**************************************************************************/
/*!
@file dcd_nxp_romdriver.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 && TUSB_CFG_DEVICE_USE_ROM_DRIVER
#define _TINY_USB_SOURCE_FILE_
//--------------------------------------------------------------------+
// INCLUDE
//--------------------------------------------------------------------+
#include "dcd.h"
#include "dcd_nxp_romdriver.h"
#include "romdriver/mw_usbd_rom_api.h"
#include "tusb_descriptors.h"
#define USBD_API ((USBD_API_T*) DEVICE_ROM_DRIVER_ADDR)
#define USB_ROM_SIZE (1024*2) // TODO dcd abstract later
uint8_t usb_RomDriver_buffer[USB_ROM_SIZE] ATTR_ALIGNED(2048) TUSB_CFG_ATTR_USBRAM;
USBD_HANDLE_T g_hUsb;
//--------------------------------------------------------------------+
// MACRO CONSTANT TYPEDEF
//--------------------------------------------------------------------+
//--------------------------------------------------------------------+
// INTERNAL OBJECT & FUNCTION DECLARATION
//--------------------------------------------------------------------+
//--------------------------------------------------------------------+
// IMPLEMENTATION
//--------------------------------------------------------------------+
ErrorCode_t USB_Configure_Event (USBD_HANDLE_T hUsb)
{
USB_CORE_CTRL_T* pCtrl = (USB_CORE_CTRL_T*)hUsb;
if (pCtrl->config_value)
{
// usbd_info.state = TUSB_DEVICE_STATE_CONFIGURED;
#if defined(DEVICE_CLASS_HID)
// ASSERT( TUSB_ERROR_NONE == tusb_hid_configured(hUsb), ERR_FAILED );
#endif
#ifdef TUSB_CFG_DEVICE_CDC
ASSERT( TUSB_ERROR_NONE == tusb_cdc_configured(hUsb), ERR_FAILED );
#endif
}
return LPC_OK;
}
ErrorCode_t USB_Reset_Event (USBD_HANDLE_T hUsb)
{
// usbd_info.state = TUSB_DEVICE_STATE_UNPLUG;
return LPC_OK;
}
tusb_error_t dcd_init(void)
{
uint32_t membase = (uint32_t) usb_RomDriver_buffer;
uint32_t memsize = USB_ROM_SIZE;
USBD_API_INIT_PARAM_T usb_param =
{
.usb_reg_base = DEVICE_ROM_REG_BASE,
.max_num_ep = USB_MAX_EP_NUM,
.mem_base = membase,
.mem_size = memsize,
.USB_Configure_Event = USB_Configure_Event,
.USB_Reset_Event = USB_Reset_Event
};
USB_CORE_DESCS_T desc_core =
{
.device_desc = (uint8_t*) &app_desc_device,
.string_desc = (uint8_t*) &app_desc_strings,
.full_speed_desc = (uint8_t*) &app_desc_configuration,
.high_speed_desc = (uint8_t*) &app_desc_configuration,
.device_qualifier = NULL
};
/* USB hardware core initialization */
ASSERT(LPC_OK == USBD_API->hw->Init(&g_hUsb, &desc_core, &usb_param), TUSB_ERROR_FAILED);
// TODO need to confirm the mem_size is reduced by the number of byte used
membase += (memsize - usb_param.mem_size);
memsize = usb_param.mem_size;
#if TUSB_CFG_DEVICE_HID_KEYBOARD
ASSERT_STATUS( tusb_hid_init(g_hUsb , &app_desc_configuration.keyboard_interface,
keyboard_report_descriptor, app_desc_configuration.keyboard_hid.wReportLength,
&membase , &memsize) );
#endif
#if TUSB_CFG_DEVICE_HID_MOUSE
ASSERT_STATUS( tusb_hid_init(g_hUsb , &USB_FsConfigDescriptor.HID_MouseInterface ,
HID_MouseReportDescriptor, USB_FsConfigDescriptor.HID_MouseHID.DescriptorList[0].wDescriptorLength,
&membase , &memsize) );
#endif
return TUSB_ERROR_NONE;
}
tusb_error_t dcd_controller_reset(uint8_t coreid)
{
//TODO merge with hcd_controller_reset
// default mode is device ?
return TUSB_ERROR_NONE;
}
void dcd_controller_connect(uint8_t coreid)
{
// USBD_API->hw->Connect(g_hUsb, 1);
}
void dcd_isr(uint8_t coreid)
{
// USBD_API->hw->ISR(g_hUsb);
}
#endif

View File

@@ -0,0 +1,67 @@
/**************************************************************************/
/*!
@file dcd_nxp_romdriver.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_DCD_NXP_ROMDRIVER_H_
#define _TUSB_DCD_NXP_ROMDRIVER_H_
#include "common/common.h"
#ifdef __cplusplus
extern "C" {
#endif
#if (MCU == MCU_LPC18XX) || (MCU == MCU_LPC43XX)
#include "dcd_lpc18xx_lpc43xx.h"
#else
#error forgot something, thach ?
#endif
#ifdef __cplusplus
}
#endif
#endif /* _TUSB_DCD_NXP_ROMDRIVER_H_ */
/** @} */

View File

@@ -26,7 +26,7 @@
#define __HIDUSER_H__
#include "mw_usbd.h"
#include "mw_usbd_hid.h"
//#include "mw_usbd_hid.h"
#include "mw_usbd_core.h"
/** \file

View File

@@ -50,6 +50,22 @@
//--------------------------------------------------------------------+
// MACRO CONSTANT TYPEDEF
//--------------------------------------------------------------------+
//typedef struct {
// volatile uint8_t state;
//
//};
typedef struct {
volatile uint8_t state;
}usbd_info_t; // TODO rename
usbd_info_t usbd_info; // TODO rename
typedef struct {
void (* const init) (void);
void (* const configured) (void);
void (* const unmounted) (void);
}device_class_driver_t;
//--------------------------------------------------------------------+
// INTERNAL OBJECT & FUNCTION DECLARATION
@@ -60,6 +76,8 @@
//--------------------------------------------------------------------+
tusb_error_t usbd_init (void)
{
ASSERT_STATUS ( dcd_init() );
return TUSB_ERROR_NONE;
}

View File

@@ -54,12 +54,9 @@
#include "LPC11Uxx.h"
#define DEVICE_ROMDRIVER
#define DEVICE_ROM_REG_BASE LPC_USB_BASE
#define DEVICE_ROM_REG_BASE LPC_USB_BASE
#define DEVICE_ROM_DRIVER_ADDR 0x1FFF1FF8
#ifdef __cplusplus
extern "C" {
#endif

View File

@@ -54,10 +54,6 @@
#include "LPC13Uxx.h"
#define DEVICE_ROMDRIVER
#define DEVICE_ROM_REG_BASE LPC_USB_BASE
#define DEVICE_ROM_DRIVER_ADDR 0x1FFF1FF8
#ifdef __cplusplus
extern "C" {
#endif

View File

@@ -69,8 +69,8 @@ tusb_error_t hal_init(void)
hcd_controller_reset(0); // TODO where to place prototype
LPC_USB0->USBMODE_H = LPC43XX_USBMODE_HOST | (LPC43XX_USBMODE_VBUS_HIGH << 5);
#else // TODO OTG
dcd_controller_reset(0);
LPC_USB0->USBMODE_D = LPC43XX_USBMODE_DEVICE;
// dcd_controller_reset(0);
// LPC_USB0->USBMODE_D = LPC43XX_USBMODE_DEVICE;
dcd_controller_connect(0);
#endif
@@ -91,8 +91,8 @@ tusb_error_t hal_init(void)
hcd_controller_reset(1); // TODO where to place prototype
LPC_USB1->USBMODE_H = LPC43XX_USBMODE_HOST | (LPC43XX_USBMODE_VBUS_HIGH << 5);
#else // TODO OTG
dcd_controller_reset(1);
LPC_USB0->USBMODE_D = LPC43XX_USBMODE_DEVICE;
// dcd_controller_reset(1);
// LPC_USB0->USBMODE_D = LPC43XX_USBMODE_DEVICE;
dcd_controller_connect(1);
#endif

View File

@@ -58,9 +58,6 @@
extern "C" {
#endif
#define DEVICE_ROMDRIVER
#define DEVICE_ROM_REG_BASE LPC_USB0_BASE // TODO USB1
#define DEVICE_ROM_DRIVER_ADDR 0x1040011C
static inline void hal_interrupt_enable(uint8_t controller_id)
{

View File

@@ -158,6 +158,10 @@
//--------------------------------------------------------------------+
//#if MODE_DEVICE_SUPPORTED
#if !TUSB_CFG_DEVICE_USE_ROM_DRIVER
#error only rom driver is supported now
#endif
#define DEVICE_CLASS_HID ( (defined TUSB_CFG_DEVICE_HID_KEYBOARD) || (defined TUSB_CFG_DEVICE_HID_MOUSE) )
// TODO Device APP