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:
@@ -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
|
||||
|
||||
62
tinyusb/class/hid_device.c
Normal file
62
tinyusb/class/hid_device.c
Normal 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
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
63
tinyusb/device/dcd_lpc13xx.h
Normal file
63
tinyusb/device/dcd_lpc13xx.h
Normal 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_ */
|
||||
|
||||
/** @} */
|
||||
@@ -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
|
||||
|
||||
@@ -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_ */
|
||||
|
||||
/** @} */
|
||||
62
tinyusb/device/dcd_lpc18xx_lpc43xx.h
Normal file
62
tinyusb/device/dcd_lpc18xx_lpc43xx.h
Normal 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_ */
|
||||
|
||||
/** @} */
|
||||
166
tinyusb/device/dcd_nxp_romdriver.c
Normal file
166
tinyusb/device/dcd_nxp_romdriver.c
Normal 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
|
||||
|
||||
67
tinyusb/device/dcd_nxp_romdriver.h
Normal file
67
tinyusb/device/dcd_nxp_romdriver.h
Normal 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_ */
|
||||
|
||||
/** @} */
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user