mirror of
https://github.com/hathach/tinyusb.git
synced 2025-01-31 05:52:55 +08:00
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:
parent
7ae986de95
commit
1e5bd82af2
@ -1,115 +0,0 @@
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@file board_ngx4330.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 "../board.h"
|
||||
|
||||
#if BOARD == BOARD_NGX4330
|
||||
|
||||
#define BOARD_MAX_LEDS 2
|
||||
const static struct {
|
||||
uint8_t port;
|
||||
uint8_t pin;
|
||||
}leds[BOARD_MAX_LEDS] = { {1, 11}, {1,12} };
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
SystemInit();
|
||||
CGU_Init();
|
||||
SysTick_Config( CGU_GetPCLKFrequency(CGU_PERIPHERAL_M4CORE)/CFG_TICKS_PER_SECOND ); /* 1 ms Timer */
|
||||
|
||||
//------------- USB Bus power HOST ONLY-------------//
|
||||
scu_pinmux(0x1, 7, MD_PUP | MD_EZI, FUNC4); // P1_7 USB0_PWR_EN, USB0 VBus function Xplorer
|
||||
|
||||
scu_pinmux(0x2, 6, MD_PUP | MD_EZI, FUNC4); // P2_6 is configured as GPIO5[6] for USB1_PWR_EN
|
||||
GPIO_SetDir (5, BIT_(6), 1); // GPIO5[6] is output
|
||||
GPIO_SetValue (5, BIT_(6)); // GPIO5[6] output high
|
||||
|
||||
// Leds Init
|
||||
for (uint8_t i=0; i<BOARD_MAX_LEDS; i++)
|
||||
{
|
||||
scu_pinmux(leds[i].port, leds[i].pin, MD_PUP|MD_EZI|MD_ZI, FUNC0);
|
||||
GPIO_SetDir(leds[i].port, BIT_(leds[i].pin), 1); // output
|
||||
}
|
||||
|
||||
#if CFG_UART_ENABLE
|
||||
//------------- UART init -------------//
|
||||
UART_CFG_Type UARTConfigStruct;
|
||||
|
||||
scu_pinmux(0x6 ,4, MD_PDN|MD_EZI, FUNC2); // UART0_TXD
|
||||
scu_pinmux(0x6 ,5, MD_PDN|MD_EZI, FUNC2); // UART0_RXD
|
||||
|
||||
UART_ConfigStructInit(&UARTConfigStruct); // default: baud = 9600, 8 bit data, 1 stop bit, no parity
|
||||
UARTConfigStruct.Baud_rate = CFG_UART_BAUDRATE; // Re-configure baudrate
|
||||
|
||||
UART_Init((LPC_USARTn_Type*) LPC_USART0, &UARTConfigStruct); // Initialize UART port
|
||||
UART_TxCmd((LPC_USARTn_Type*) LPC_USART0, ENABLE); // Enable UART
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
// LEDS
|
||||
//--------------------------------------------------------------------+
|
||||
void board_leds(uint32_t on_mask, uint32_t off_mask)
|
||||
{
|
||||
for (uint32_t i=0; i<BOARD_MAX_LEDS; i++)
|
||||
{
|
||||
if ( on_mask & BIT_(i))
|
||||
{
|
||||
GPIO_SetValue(leds[i].port, BIT_(leds[i].pin));
|
||||
}else if ( off_mask & BIT_(i)) // on_mask take precedence over off_mask
|
||||
{
|
||||
GPIO_ClearValue(leds[i].port, BIT_(leds[i].pin));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
// UART
|
||||
//--------------------------------------------------------------------+
|
||||
uint32_t board_uart_send(uint8_t *p_buffer, uint32_t length)
|
||||
{
|
||||
return UART_Send((LPC_USARTn_Type*) LPC_USART0, p_buffer, length, BLOCKING);
|
||||
}
|
||||
|
||||
uint32_t board_uart_recv(uint8_t *p_buffer, uint32_t length)
|
||||
{
|
||||
return UART_Receive((LPC_USARTn_Type*) LPC_USART0, p_buffer, length, BLOCKING);
|
||||
}
|
||||
|
||||
#endif
|
@ -81,7 +81,7 @@
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding="bsp/boards/embedded_artists/oem_base_board|bsp/lpc43xx|bsp/lpc11uxx" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
<entry excluding="bsp/boards/embedded_artists/oem_base_board|bsp/lpc11uxx|bsp/lpc43xx" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
@ -1389,7 +1389,7 @@
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry excluding="bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/sdio.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_wwdt.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_timer.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_ssp.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_sct.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_rtc.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_rit.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_qei.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_mcpwm.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_lcd.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_i2s.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_gpdma.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_evrt.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_emc.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_dac.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_can.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_atimer.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_adc.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/LCDTerm.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/Font5x7.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/debug_frmwrk.c|bsp/lpc13uxx|bsp/lpc11uxx" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
<entry excluding="bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_can.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/sdio.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/LCDTerm.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_evrt.c|bsp/lpc11uxx|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_gpdma.c|bsp/lpc13uxx|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_lcd.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_ssp.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_rit.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_qei.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_atimer.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_wwdt.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_mcpwm.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/debug_frmwrk.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_i2s.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_emc.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_sct.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_rtc.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_dac.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/Font5x7.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_timer.c|bsp/lpc43xx/CMSISv2p10_LPC43xx_DriverLib/src/lpc43xx_adc.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
|
@ -88,12 +88,12 @@
|
||||
<link>
|
||||
<name>tinyusb</name>
|
||||
<type>2</type>
|
||||
<location>C:/Users/hathach/Dropbox/tinyusb/workspace/tinyusb/tinyusb</location>
|
||||
<locationURI>PARENT-3-PROJECT_LOC/tinyusb</locationURI>
|
||||
</link>
|
||||
</linkedResources>
|
||||
<filteredResources>
|
||||
<filter>
|
||||
<id>1357896068317</id>
|
||||
<id>1369631005268</id>
|
||||
<name></name>
|
||||
<type>26</type>
|
||||
<matcher>
|
||||
|
@ -81,8 +81,7 @@
|
||||
//--------------------------------------------------------------------+
|
||||
// DEVICE CONFIGURATION
|
||||
//--------------------------------------------------------------------+
|
||||
|
||||
//------------- CORE/CONTROLLER -------------//
|
||||
#define TUSB_CFG_DEVICE_USE_ROM_DRIVER 1
|
||||
|
||||
//------------- CLASS -------------//
|
||||
#define TUSB_CFG_DEVICE_HID_KEYBOARD 1
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* descriptors.c
|
||||
* tusb_descriptors.c
|
||||
*
|
||||
* Created on: Nov 26, 2012
|
||||
* Author: hathach
|
||||
@ -35,7 +35,7 @@
|
||||
* This file is part of the tinyUSB stack
|
||||
*/
|
||||
|
||||
#include "descriptors.h"
|
||||
#include "tusb_descriptors.h"
|
||||
|
||||
#if TUSB_CFG_DEVICE_HID_KEYBOARD
|
||||
TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4)
|
||||
@ -120,7 +120,7 @@ const uint8_t mouse_report_descriptor[] = {
|
||||
#endif
|
||||
|
||||
TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4)
|
||||
tusb_descriptor_device_t const desc_device =
|
||||
tusb_descriptor_device_t const app_desc_device =
|
||||
{
|
||||
.bLength = sizeof(tusb_descriptor_device_t),
|
||||
.bDescriptorType = TUSB_DESC_TYPE_DEVICE,
|
||||
@ -131,7 +131,7 @@ tusb_descriptor_device_t const desc_device =
|
||||
|
||||
.bMaxPacketSize0 = USB_MAX_PACKET0,
|
||||
|
||||
.idVendor = CFG_USB_VENDORID,
|
||||
.idVendor = TUSB_CFG_DEVICE_VENDORID,
|
||||
.idProduct = USB_PRODUCT_ID,
|
||||
.bcdDevice = 0x0100,
|
||||
|
||||
@ -144,14 +144,14 @@ tusb_descriptor_device_t const desc_device =
|
||||
|
||||
|
||||
TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4)
|
||||
const app_configuration_desc_t desc_configuration =
|
||||
const app_descriptor_configuration_t app_desc_configuration =
|
||||
{
|
||||
.configuration =
|
||||
{
|
||||
.bLength = sizeof(tusb_descriptor_configuration_t),
|
||||
.bDescriptorType = TUSB_DESC_TYPE_CONFIGURATION,
|
||||
|
||||
.wTotalLength = sizeof(app_configuration_desc_t) - 1, // exclude termination
|
||||
.wTotalLength = sizeof(app_descriptor_configuration_t) - 1, // exclude termination
|
||||
.bNumInterfaces = TOTAL_INTEFACES,
|
||||
|
||||
.bConfigurationValue = 1,
|
||||
@ -380,17 +380,18 @@ const app_configuration_desc_t desc_configuration =
|
||||
.null_termination = 0,
|
||||
};
|
||||
|
||||
TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4) const USB_STR_DESCRIPTOR USB_StringDescriptor =
|
||||
TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4)
|
||||
const app_descriptor_string_t app_desc_strings =
|
||||
{
|
||||
.LangID = { .bLength = 0x04, .bDescriptorType = USB_STRING_DESCRIPTOR_TYPE },
|
||||
.LangID = { .bLength = 0x04, .bDescriptorType = TUSB_DESC_TYPE_STRING },
|
||||
.strLangID= {0x0409}, // US English
|
||||
|
||||
.Manufacturer = { .bLength = USB_STRING_LEN(sizeof(CFG_USB_STRING_MANUFACTURER)-1), .bDescriptorType = USB_STRING_DESCRIPTOR_TYPE },
|
||||
.Manufacturer = { .bLength = USB_STRING_LEN(sizeof(TUSB_CFG_DEVICE_STRING_MANUFACTURER)-1), .bDescriptorType = TUSB_DESC_TYPE_STRING },
|
||||
.strManufacturer = {'t', 'i', 'n', 'y', 'U', 'S', 'B'},
|
||||
|
||||
.Product = { .bLength = USB_STRING_LEN(sizeof(CFG_USB_STRING_PRODUCT)-1), .bDescriptorType = USB_STRING_DESCRIPTOR_TYPE },
|
||||
.Product = { .bLength = USB_STRING_LEN(sizeof(TUSB_CFG_DEVICE_STRING_PRODUCT)-1), .bDescriptorType = TUSB_DESC_TYPE_STRING },
|
||||
.strProduct = {'D', 'e', 'v', 'i', 'c', 'e', ' ', 'K', 'e', 'y', 'b', 'o', 'a', 'r', 'd'},
|
||||
|
||||
.Serial = { .bLength = USB_STRING_LEN(sizeof(CFG_USB_STRING_SERIAL)-1), .bDescriptorType = USB_STRING_DESCRIPTOR_TYPE },
|
||||
.Serial = { .bLength = USB_STRING_LEN(sizeof(TUSB_CFG_DEVICE_STRING_SERIAL)-1), .bDescriptorType = TUSB_DESC_TYPE_STRING },
|
||||
.strSerial = {'1', '2', '3', '4'}
|
||||
};
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* descriptors.h
|
||||
* tusb_descriptors.h
|
||||
*
|
||||
* Created on: Nov 26, 2012
|
||||
* Author: hathachtware License Agreement (BSD License)
|
||||
@ -35,30 +35,31 @@
|
||||
|
||||
#include "tusb.h"
|
||||
|
||||
#define CFG_USB_STRING_MANUFACTURER "tinyUSB"
|
||||
#define CFG_USB_STRING_PRODUCT "Device Keyboard"
|
||||
#define CFG_USB_STRING_SERIAL "1234"
|
||||
#define CFG_USB_VENDORID 0x1FC9
|
||||
#define TUSB_CFG_DEVICE_STRING_MANUFACTURER "tinyUSB"
|
||||
#define TUSB_CFG_DEVICE_STRING_PRODUCT "Device Keyboard"
|
||||
#define TUSB_CFG_DEVICE_STRING_SERIAL "1234"
|
||||
#define TUSB_CFG_DEVICE_VENDORID 0x1FC9
|
||||
//#define TUSB_CFG_DEVICE_PRODUCTID
|
||||
|
||||
/* USB Serial uses the MCUs unique 128-bit chip ID via an IAP call = 32 hex chars */
|
||||
#define USB_STRING_SERIAL_LEN 32
|
||||
|
||||
#define USB_STRING_LEN(n) (2 + ((n)<<1))
|
||||
|
||||
typedef ATTR_PREPACKED struct ATTR_PACKED _USB_STR_DESCRIPTOR
|
||||
typedef ATTR_PACKED_STRUCT(struct)
|
||||
{
|
||||
USB_COMMON_DESCRIPTOR LangID;
|
||||
tusb_descriptor_header_t LangID;
|
||||
uint16_t strLangID[1];
|
||||
|
||||
USB_COMMON_DESCRIPTOR Manufacturer;
|
||||
uint16_t strManufacturer[sizeof(CFG_USB_STRING_MANUFACTURER)-1]; // exclude null-character
|
||||
tusb_descriptor_header_t Manufacturer;
|
||||
uint16_t strManufacturer[sizeof(TUSB_CFG_DEVICE_STRING_MANUFACTURER)-1]; // exclude null-character
|
||||
|
||||
USB_COMMON_DESCRIPTOR Product;
|
||||
uint16_t strProduct[sizeof(CFG_USB_STRING_PRODUCT)-1]; // exclude null-character
|
||||
tusb_descriptor_header_t Product;
|
||||
uint16_t strProduct[sizeof(TUSB_CFG_DEVICE_STRING_PRODUCT)-1]; // exclude null-character
|
||||
|
||||
USB_COMMON_DESCRIPTOR Serial;
|
||||
uint16_t strSerial[sizeof(CFG_USB_STRING_SERIAL)-1];
|
||||
} USB_STR_DESCRIPTOR;
|
||||
tusb_descriptor_header_t Serial;
|
||||
uint16_t strSerial[sizeof(TUSB_CFG_DEVICE_STRING_SERIAL)-1];
|
||||
} app_descriptor_string_t;
|
||||
|
||||
// USB Interface Assosication Descriptor
|
||||
#define USB_DEVICE_CLASS_IAD USB_DEVICE_CLASS_MISCELLANEOUS
|
||||
@ -113,7 +114,7 @@ typedef ATTR_PREPACKED struct ATTR_PACKED _USB_STR_DESCRIPTOR
|
||||
PRODUCTID_BITMAP(HID_GENERIC, 3) | PRODUCTID_BITMAP(MASS_STORAGE, 4) ) )
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
typedef struct
|
||||
typedef ATTR_PACKED_STRUCT(struct)
|
||||
{
|
||||
tusb_descriptor_configuration_t configuration;
|
||||
|
||||
@ -150,14 +151,14 @@ typedef struct
|
||||
tusb_descriptor_endpoint_t mouse_endpoint;
|
||||
#endif
|
||||
|
||||
uint8_t null_termination;
|
||||
} app_configuration_desc_t;
|
||||
|
||||
extern const tusb_descriptor_device_t desc_device;
|
||||
extern const app_configuration_desc_t desc_configuration;
|
||||
extern const USB_STR_DESCRIPTOR USB_StringDescriptor;
|
||||
uint8_t null_termination; // NXP rom driver requires this to work
|
||||
} app_descriptor_configuration_t;
|
||||
|
||||
extern const tusb_descriptor_device_t app_desc_device;
|
||||
extern const app_descriptor_configuration_t app_desc_configuration;
|
||||
extern const app_descriptor_string_t app_desc_strings;
|
||||
extern const uint8_t keyboard_report_descriptor[];
|
||||
extern const uint8_t HID_MouseReportDescriptor[];
|
||||
|
||||
//extern const uint8_t HID_MouseReportDescriptor[];
|
||||
|
||||
#endif
|
72
tests/test/device/usbd/test_usbd.c
Normal file
72
tests/test/device/usbd/test_usbd.c
Normal file
@ -0,0 +1,72 @@
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@file test_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 <stdlib.h>
|
||||
#include "unity.h"
|
||||
#include "errors.h"
|
||||
#include "type_helper.h"
|
||||
|
||||
#include "mock_dcd.h"
|
||||
#include "usbd.h"
|
||||
|
||||
void setUp(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void tearDown(void)
|
||||
{
|
||||
}
|
||||
|
||||
void test_dcd_init_failed(void)
|
||||
{
|
||||
dcd_init_ExpectAndReturn(TUSB_ERROR_FAILED);
|
||||
|
||||
//------------- Code Under Test -------------//
|
||||
TEST_ASSERT_EQUAL( TUSB_ERROR_FAILED, usbd_init() );
|
||||
}
|
||||
|
||||
void test_usbd_init_ok(void)
|
||||
{
|
||||
dcd_init_ExpectAndReturn(TUSB_ERROR_NONE);
|
||||
|
||||
|
||||
//------------- Code Under Test -------------//
|
||||
TEST_ASSERT_EQUAL( TUSB_ERROR_NONE, usbd_init() );
|
||||
|
||||
}
|
@ -122,7 +122,7 @@ tusb_error_t control_xfer_stub(uint8_t dev_addr, const tusb_std_request_t * cons
|
||||
{
|
||||
case 0: // get 8 bytes of device descriptor
|
||||
TEST_ASSERT_EQUAL(TUSB_REQUEST_GET_DESCRIPTOR, p_request->bRequest);
|
||||
TEST_ASSERT_EQUAL(TUSB_DESC_DEVICE, p_request->wValue >> 8);
|
||||
TEST_ASSERT_EQUAL(TUSB_DESC_TYPE_DEVICE, p_request->wValue >> 8);
|
||||
TEST_ASSERT_EQUAL(8, p_request->wLength);
|
||||
memcpy(data, &desc_device, p_request->wLength);
|
||||
break;
|
||||
@ -134,21 +134,21 @@ tusb_error_t control_xfer_stub(uint8_t dev_addr, const tusb_std_request_t * cons
|
||||
|
||||
case 2: // get full device decriptor for new address
|
||||
TEST_ASSERT_EQUAL(TUSB_REQUEST_GET_DESCRIPTOR, p_request->bRequest);
|
||||
TEST_ASSERT_EQUAL(TUSB_DESC_DEVICE, p_request->wValue >> 8);
|
||||
TEST_ASSERT_EQUAL(TUSB_DESC_TYPE_DEVICE, p_request->wValue >> 8);
|
||||
TEST_ASSERT_EQUAL(18, p_request->wLength);
|
||||
memcpy(data, &desc_device, p_request->wLength);
|
||||
break;
|
||||
|
||||
case 3: // get 9 bytes of configuration descriptor
|
||||
TEST_ASSERT_EQUAL(TUSB_REQUEST_GET_DESCRIPTOR, p_request->bRequest);
|
||||
TEST_ASSERT_EQUAL(TUSB_DESC_CONFIGURATION, p_request->wValue >> 8);
|
||||
TEST_ASSERT_EQUAL(TUSB_DESC_TYPE_CONFIGURATION, p_request->wValue >> 8);
|
||||
TEST_ASSERT_EQUAL(9, p_request->wLength);
|
||||
memcpy(data, &desc_configuration, p_request->wLength);
|
||||
break;
|
||||
|
||||
case 4: // get full-length configuration descriptor
|
||||
TEST_ASSERT_EQUAL(TUSB_REQUEST_GET_DESCRIPTOR, p_request->bRequest);
|
||||
TEST_ASSERT_EQUAL(TUSB_DESC_CONFIGURATION, p_request->wValue >> 8);
|
||||
TEST_ASSERT_EQUAL(TUSB_DESC_TYPE_CONFIGURATION, p_request->wValue >> 8);
|
||||
TEST_ASSERT_EQUAL(desc_configuration.configuration.wTotalLength, p_request->wLength);
|
||||
memcpy(data, &desc_configuration, p_request->wLength);
|
||||
break;
|
||||
|
@ -59,7 +59,7 @@
|
||||
//--------------------------------------------------------------------+
|
||||
// CONTROLLER CONFIGURATION
|
||||
//--------------------------------------------------------------------+
|
||||
#define TUSB_CFG_CONTROLLER0_MODE TUSB_MODE_HOST
|
||||
#define TUSB_CFG_CONTROLLER0_MODE (TUSB_MODE_HOST | TUSB_MODE_DEVICE)
|
||||
#define TUSB_CFG_CONTROLLER1_MODE TUSB_MODE_HOST
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
@ -86,6 +86,7 @@
|
||||
//--------------------------------------------------------------------+
|
||||
// DEVICE CONFIGURATION
|
||||
//--------------------------------------------------------------------+
|
||||
#define TUSB_CFG_DEVICE_USE_ROM_DRIVER 1
|
||||
|
||||
//------------- CLASS -------------//
|
||||
//#define TUSB_CFG_DEVICE_CDC
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@file board_ngx4330.h
|
||||
@file dcd_lpc13xx.h
|
||||
@author hathach (tinyusb.org)
|
||||
|
||||
@section LICENSE
|
||||
@ -26,22 +26,16 @@
|
||||
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
|
||||
(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
|
||||
(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
|
||||
@ -49,25 +43,21 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifndef _TUSB_BOARD_NGX4330_H_
|
||||
#define _TUSB_BOARD_NGX4330_H_
|
||||
#ifndef _TUSB_DCD_LPC13XX_H_
|
||||
#define _TUSB_DCD_LPC13XX_H_
|
||||
|
||||
#include "LPC43xx.h"
|
||||
#include "lpc43xx_scu.h"
|
||||
#include "lpc43xx_cgu.h"
|
||||
#include "lpc43xx_gpio.h"
|
||||
#include "lpc43xx_uart.h"
|
||||
#define DEVICE_ROM_REG_BASE LPC_USB_BASE
|
||||
#define DEVICE_ROM_DRIVER_ADDR 0x1FFF1FF8
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define CFG_PRINTF_TARGET PRINTF_TARGET_DEBUG_CONSOLE
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _TUSB_BOARD_NGX4330_H_ */
|
||||
#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
|
||||
|
@ -1,6 +1,6 @@
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@file board_ngx4330.h
|
||||
@file dcd_nxp_romdriver.h
|
||||
@author hathach (tinyusb.org)
|
||||
|
||||
@section LICENSE
|
||||
@ -26,22 +26,16 @@
|
||||
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
|
||||
(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
|
||||
(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
|
||||
@ -49,25 +43,25 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifndef _TUSB_BOARD_NGX4330_H_
|
||||
#define _TUSB_BOARD_NGX4330_H_
|
||||
#ifndef _TUSB_DCD_NXP_ROMDRIVER_H_
|
||||
#define _TUSB_DCD_NXP_ROMDRIVER_H_
|
||||
|
||||
#include "LPC43xx.h"
|
||||
#include "lpc43xx_scu.h"
|
||||
#include "lpc43xx_cgu.h"
|
||||
#include "lpc43xx_gpio.h"
|
||||
#include "lpc43xx_uart.h"
|
||||
#include "common/common.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define CFG_PRINTF_TARGET PRINTF_TARGET_DEBUG_CONSOLE
|
||||
#if (MCU == MCU_LPC18XX) || (MCU == MCU_LPC43XX)
|
||||
#include "dcd_lpc18xx_lpc43xx.h"
|
||||
#else
|
||||
#error forgot something, thach ?
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _TUSB_BOARD_NGX4330_H_ */
|
||||
#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
|
||||
|
Loading…
x
Reference in New Issue
Block a user