This commit is contained in:
hathach 2013-06-12 14:06:41 +07:00
parent 17a27f7398
commit ee57a6f13f
8 changed files with 126 additions and 9 deletions

View File

@ -93,6 +93,7 @@ void led_blinking_task(void * p_para)
#if TUSB_CFG_DEVICE_HID_KEYBOARD
void keyboard_device_app_task(void * p_para)
{
#if 1
if (tusb_device_is_configured())
{
static uint32_t count =0;
@ -106,12 +107,14 @@ void keyboard_device_app_task(void * p_para)
);
}
}
#endif
}
#endif
#if TUSB_CFG_DEVICE_HID_MOUSE
void mouse_device_app_task(void * p_para)
{
#if 1
if (tusb_device_is_configured())
{
static uint32_t count =0;
@ -124,6 +127,7 @@ void mouse_device_app_task(void * p_para)
.y = 20 } );
}
}
#endif
}
#endif

View File

@ -93,7 +93,7 @@
#define TUSB_CFG_DEVICE_CONTROL_PACKET_SIZE 64
//------------- CLASS -------------//
#define TUSB_CFG_DEVICE_HID_KEYBOARD 0
#define TUSB_CFG_DEVICE_HID_KEYBOARD 1
#define TUSB_CFG_DEVICE_HID_MOUSE 0
#define TUSB_CFG_DEVICE_HID_GENERIC 0
#define TUSB_CFG_DEVICE_MSC 0

View File

@ -109,6 +109,13 @@ typedef ATTR_PACKED_STRUCT(struct)
tusb_descriptor_endpoint_t mouse_endpoint;
#endif
//------------- Mass Storage -------------//
#if TUSB_CFG_DEVICE_MSC
tusb_descriptor_interface_t msc_interface;
tusb_descriptor_endpoint_t msc_endpoint_in;
tusb_descriptor_endpoint_t msc_endpoint_out;
#endif
uint8_t null_termination; // NXP rom driver requires this to work
} app_descriptor_configuration_t;

View File

@ -41,8 +41,10 @@
#include "errors.h"
#include "type_helper.h"
#include "mock_usbd_dcd.h"
#include "dcd_lpc175x_6x.h"
usbd_device_info_t usbd_devices[CONTROLLER_DEVICE_NUMBER];
extern dcd_dma_descriptor_t* dcd_udca[32];
void setUp(void)

View File

@ -0,0 +1,101 @@
/**************************************************************************/
/*!
@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 "tusb_descriptors.h"
#include "mock_hid_device.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() );
}
tusb_error_t stub_hidd_init(tusb_descriptor_interface_t const* p_interface_desc, uint16_t* p_length, int num_call)
{
switch(num_call)
{
case 0:
TEST_ASSERT_EQUAL_HEX(&app_tusb_desc_configuration.keyboard_interface, p_interface_desc);
break;
default:
TEST_FAIL();
return TUSB_ERROR_FAILED;
}
return TUSB_ERROR_NONE;
}
void class_init_epxect(void)
{
#if DEVICE_CLASS_HID
hidd_init_StubWithCallback(stub_hidd_init);
#endif
}
void test_usbd_init(void)
{
dcd_init_ExpectAndReturn(TUSB_ERROR_NONE);
class_init_epxect();
dcd_controller_connect_Expect(0);
//------------- Code Under Test -------------//
TEST_ASSERT_STATUS( usbd_init() );
}

View File

@ -86,14 +86,16 @@
//--------------------------------------------------------------------+
// DEVICE CONFIGURATION
//--------------------------------------------------------------------+
#define TUSB_CFG_DEVICE_USE_ROM_DRIVER 1
//------------- descriptors -------------//
#define TUSB_CFG_DEVICE_STRING_MANUFACTURER "tinyusb.org"
#define TUSB_CFG_DEVICE_STRING_PRODUCT "Device Example"
#define TUSB_CFG_DEVICE_STRING_SERIAL "1234"
#define TUSB_CFG_DEVICE_VENDORID 0x1FC9 // NXP
//#define TUSB_CFG_DEVICE_PRODUCTID 0x4567
#define TUSB_CFG_DEVICE_USE_ROM_DRIVER 1
#define TUSB_CFG_DEVICE_CONTROL_PACKET_SIZE 64
//------------- CLASS -------------//
#define TUSB_CFG_DEVICE_HID_KEYBOARD 1

View File

@ -50,7 +50,7 @@
#if defined(CAP_DEVICE_ROMDRIVER) && TUSB_CFG_DEVICE_USE_ROM_DRIVER
#include "device/dcd_nxp_romdriver.h" // TODO remove rom driver dependency
#endif
//--------------------------------------------------------------------+
// MACRO CONSTANT TYPEDEF
@ -325,5 +325,6 @@ ErrorCode_t HID_EpOut_Hdlr (USBD_HANDLE_T hUsb, void* data, uint32_t event)
}
return LPC_OK;
}
#endif
#endif

View File

@ -95,10 +95,10 @@ void std_get_descriptor(uint8_t coreid)
case TUSB_DESC_TYPE_CONFIGURATION:
{
uint16_t const requested_length = min16_of(usbd_devices[coreid].setup_packet.wLength, sizeof(app_tusb_desc_configuration)-1);
for(uint16_t i=0; i<requested_length; i += 64)
{
dcd_pipe_control_write(coreid, ((uint8_t*)&app_tusb_desc_configuration) + i, min16_of(64, requested_length - i));
}
ASSERT(requested_length <= TUSB_CFG_DEVICE_CONTROL_PACKET_SIZE, (void)0 ); // multiple packets requires a task a-like
dcd_pipe_control_write(coreid, ((uint8_t*)&app_tusb_desc_configuration),
requested_length);
}
break;
@ -157,7 +157,7 @@ tusb_error_t usbd_init (void)
ASSERT_STATUS ( dcd_init() );
uint16_t length = 0;
#if TUSB_CFG_DEVICE_HID_KEYBOARD && 0
#if TUSB_CFG_DEVICE_HID_KEYBOARD
ASSERT_STATUS( hidd_init(&app_tusb_desc_configuration.keyboard_interface, &length) );
#endif