house keeping, clean up warnings

This commit is contained in:
hathach 2013-09-21 14:28:59 +07:00
parent d15ba08fdc
commit 5708863859
13 changed files with 121 additions and 69 deletions

View File

@ -66,8 +66,8 @@
#include "oem_base_board/pca9532.h" // LEDs
#define CFG_PRINTF_TARGET PRINTF_TARGET_SWO
//#define CFG_PRINTF_TARGET PRINTF_TARGET_UART
//#define CFG_PRINTF_TARGET PRINTF_TARGET_SWO
#define CFG_PRINTF_TARGET PRINTF_TARGET_UART // FIXME keil's cmsis rtx does not work with UART (work with SWO)
/*=========================================================================
HARDWARE MAC ADDRESS

View File

@ -49,6 +49,7 @@ extern "C" {
#elif defined(__GNUC__)
/* anonymous unions are enabled by default */
#elif defined(__IAR_SYSTEMS_ICC__)
#pragma diag_suppress=Pe161 // suppress unknow pragma
#pragma push
#pragma language=extended
#else

View File

@ -529,7 +529,7 @@
<Focus>0</Focus>
<ColumnNumber>0</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
<TopLine>40</TopLine>
<TopLine>41</TopLine>
<CurrentLine>56</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>..\..\bsp\boards\embedded_artists\board_ea4357.c</PathWithFileName>
@ -681,7 +681,7 @@
<Focus>0</Focus>
<ColumnNumber>30</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
<TopLine>27</TopLine>
<TopLine>28</TopLine>
<CurrentLine>39</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\tinyusb\tusb.c</PathWithFileName>
@ -745,7 +745,7 @@
<Focus>0</Focus>
<ColumnNumber>38</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
<TopLine>357</TopLine>
<TopLine>358</TopLine>
<CurrentLine>364</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\tinyusb\host\usbh.c</PathWithFileName>
@ -761,7 +761,7 @@
<Focus>0</Focus>
<ColumnNumber>18</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
<TopLine>584</TopLine>
<TopLine>589</TopLine>
<CurrentLine>606</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\tinyusb\host\ehci\ehci.c</PathWithFileName>
@ -993,7 +993,7 @@
<Focus>0</Focus>
<ColumnNumber>0</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
<TopLine>390</TopLine>
<TopLine>391</TopLine>
<CurrentLine>406</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>..\..\bsp\lpc43xx\CMSIS_LPC43xx_DriverLib\src\lpc43xx_cgu.c</PathWithFileName>
@ -1009,7 +1009,7 @@
<Focus>0</Focus>
<ColumnNumber>44</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
<TopLine>47</TopLine>
<TopLine>48</TopLine>
<CurrentLine>60</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>..\..\bsp\lpc43xx\CMSIS_LPC43xx_DriverLib\src\system_LPC43xx.c</PathWithFileName>
@ -1049,7 +1049,7 @@
<Focus>0</Focus>
<ColumnNumber>0</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
<TopLine>137</TopLine>
<TopLine>138</TopLine>
<CurrentLine>151</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>..\..\bsp\lpc43xx\startup_keil\startup_LPC43xx.s</PathWithFileName>
@ -1071,10 +1071,10 @@
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<ColumnNumber>0</ColumnNumber>
<ColumnNumber>13</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
<TopLine>202</TopLine>
<CurrentLine>204</CurrentLine>
<TopLine>203</TopLine>
<CurrentLine>215</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\vendor\cmsis_rtos_rtx\RTX_Conf_CM.c</PathWithFileName>
<FilenameWithoutPath>RTX_Conf_CM.c</FilenameWithoutPath>

View File

@ -938,6 +938,9 @@
<file>
<name>$PROJ_DIR$\..\src\mouse_app.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\src\msc_app.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\src\rndis_app.c</name>
</file>
@ -1003,6 +1006,9 @@
<file>
<name>$PROJ_DIR$\..\..\..\tinyusb\class\hid_host.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\tinyusb\class\msc_host.c</name>
</file>
</group>
<group>
<name>common</name>

View File

@ -52,6 +52,7 @@
#include "mouse_app.h"
#include "keyboard_app.h"
#include "msc_app.h"
#include "cdc_serial_app.h"
#include "rndis_app.h"

71
demos/host/src/msc_app.h Normal file
View File

@ -0,0 +1,71 @@
/**************************************************************************/
/*!
@file msc_app.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_MSC_APP_H_
#define _TUSB_MSC_APP_H_
#include <stdint.h>
#include <stdbool.h>
#include "boards/board.h"
#include "tusb.h"
#ifdef __cplusplus
extern "C" {
#endif
void msc_app_init(void);
OSAL_TASK_FUNCTION( msc_app_task ) (void* p_task_para);
#ifdef __cplusplus
}
#endif
#endif /* _TUSB_MSC_APP_H_ */
/** @} */

View File

@ -159,6 +159,13 @@ tusb_error_t control_xfer_stub(uint8_t dev_addr, const tusb_control_request_t *
memcpy(data, &desc_configuration, p_request->wLength);
break;
case 5: // set configure
TEST_ASSERT_EQUAL(TUSB_REQUEST_SET_CONFIGURATION, p_request->bRequest);
TEST_ASSERT_EQUAL(1, p_request->wValue);
TEST_ASSERT_EQUAL(0, p_request->wIndex);
TEST_ASSERT_EQUAL(0, p_request->wLength);
break;
default:
return TUSB_ERROR_OSAL_TIMEOUT;
}

View File

@ -224,10 +224,7 @@ tusb_error_t cdch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con
#endif
{
// FIXME mounted class flag is not set yet
if (tusbh_cdc_mounted_cb)
{
tusbh_cdc_mounted_cb(dev_addr);
}
tusbh_cdc_mounted_cb(dev_addr);
}
OSAL_SUBTASK_END
@ -243,15 +240,12 @@ void cdch_isr(pipe_handle_t pipe_hdl, tusb_event_t event, uint32_t xferred_bytes
rndish_xfer_isr(p_cdc, pipe_hdl, event, xferred_bytes);
} else
#endif
if (tusbh_cdc_xfer_isr)
{
tusbh_cdc_xfer_isr( pipe_hdl.dev_addr, event, get_app_pipeid(pipe_hdl), xferred_bytes );
}
tusbh_cdc_xfer_isr( pipe_hdl.dev_addr, event, get_app_pipeid(pipe_hdl), xferred_bytes );
}
void cdch_close(uint8_t dev_addr)
{
tusb_error_t err1, err2, err3;
cdch_data_t * p_cdc = &cdch_data[dev_addr-1];
#if TUSB_CFG_HOST_CDC_RNDIS
@ -261,20 +255,9 @@ void cdch_close(uint8_t dev_addr)
}
#endif
if ( pipehandle_is_valid(p_cdc->pipe_notification) )
{
err1 = hcd_pipe_close(p_cdc->pipe_notification);
}
if ( pipehandle_is_valid(p_cdc->pipe_in) )
{
err2 = hcd_pipe_close(p_cdc->pipe_in);
}
if ( pipehandle_is_valid(p_cdc->pipe_out) )
{
err3 = hcd_pipe_close(p_cdc->pipe_out);
}
(void) hcd_pipe_close(p_cdc->pipe_notification);
(void) hcd_pipe_close(p_cdc->pipe_in);
(void) hcd_pipe_close(p_cdc->pipe_out);
#if TUSB_CFG_HOST_CDC_RNDIS
@ -282,14 +265,7 @@ void cdch_close(uint8_t dev_addr)
memclr_(p_cdc, sizeof(cdch_data_t));
if (tusbh_cdc_unmounted_isr)
{
tusbh_cdc_unmounted_isr(dev_addr);
}
ASSERT(err1 == TUSB_ERROR_NONE &&
err2 == TUSB_ERROR_NONE &&
err3 == TUSB_ERROR_NONE, VOID_RETURN );
tusbh_cdc_unmounted_isr(dev_addr);
}

View File

@ -244,10 +244,7 @@ tusb_error_t hidh_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con
if ( HID_PROTOCOL_KEYBOARD == p_interface_desc->bInterfaceProtocol)
{
SUBTASK_ASSERT_STATUS ( hidh_interface_open(dev_addr, p_interface_desc->bInterfaceNumber, p_endpoint_desc, &keyboardh_data[dev_addr-1]) );
if ( tusbh_hid_keyboard_mounted_cb )
{
tusbh_hid_keyboard_mounted_cb(dev_addr);
}
tusbh_hid_keyboard_mounted_cb(dev_addr);
} else
#endif
@ -255,10 +252,7 @@ tusb_error_t hidh_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con
if ( HID_PROTOCOL_MOUSE == p_interface_desc->bInterfaceProtocol)
{
SUBTASK_ASSERT_STATUS ( hidh_interface_open(dev_addr, p_interface_desc->bInterfaceNumber, p_endpoint_desc, &mouseh_data[dev_addr-1]) );
if (tusbh_hid_mouse_mounted_cb)
{
tusbh_hid_mouse_mounted_cb(dev_addr);
}
tusbh_hid_mouse_mounted_cb(dev_addr);
} else
#endif
@ -281,10 +275,7 @@ void hidh_isr(pipe_handle_t pipe_hdl, tusb_event_t event, uint32_t xferred_bytes
if ( pipehandle_is_equal(pipe_hdl, keyboardh_data[pipe_hdl.dev_addr-1].pipe_hdl) )
{
keyboardh_data[pipe_hdl.dev_addr-1].status = (event == TUSB_EVENT_XFER_COMPLETE) ? TUSB_INTERFACE_STATUS_COMPLETE : TUSB_INTERFACE_STATUS_ERROR;
if (tusbh_hid_keyboard_isr)
{
tusbh_hid_keyboard_isr(pipe_hdl.dev_addr, event);
}
tusbh_hid_keyboard_isr(pipe_hdl.dev_addr, event);
return;
}
#endif
@ -293,11 +284,7 @@ void hidh_isr(pipe_handle_t pipe_hdl, tusb_event_t event, uint32_t xferred_bytes
if ( pipehandle_is_equal(pipe_hdl, mouseh_data[pipe_hdl.dev_addr-1].pipe_hdl) )
{
mouseh_data[pipe_hdl.dev_addr-1].status = (event == TUSB_EVENT_XFER_COMPLETE) ? TUSB_INTERFACE_STATUS_COMPLETE : TUSB_INTERFACE_STATUS_ERROR;
if (tusbh_hid_mouse_isr)
{
tusbh_hid_mouse_isr(pipe_hdl.dev_addr, event);
}
tusbh_hid_mouse_isr(pipe_hdl.dev_addr, event);
return;
}
#endif

View File

@ -94,7 +94,7 @@ tusb_error_t msch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con
}
//------------- Open Data Pipe -------------//
tusb_descriptor_endpoint_t const *p_endpoint = (tusb_descriptor_endpoint_t const *) descriptor_next( p_interface_desc );
tusb_descriptor_endpoint_t const *p_endpoint = (tusb_descriptor_endpoint_t const *) descriptor_next( (uint8_t const*) p_interface_desc );
for(uint32_t i=0; i<2; i++)
{
ASSERT_INT(TUSB_DESC_TYPE_ENDPOINT, p_endpoint->bDescriptorType, TUSB_ERROR_USBH_DESCRIPTOR_CORRUPTED);
@ -105,7 +105,7 @@ tusb_error_t msch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con
(*p_pipe_hdl) = hcd_pipe_open(dev_addr, p_endpoint, TUSB_CLASS_MSC);
ASSERT ( pipehandle_is_valid(*p_pipe_hdl), TUSB_ERROR_HCD_OPEN_PIPE_FAILED );
p_endpoint = (tusb_descriptor_endpoint_t const *) descriptor_next( p_endpoint );
p_endpoint = (tusb_descriptor_endpoint_t const *) descriptor_next( (uint8_t const*) p_endpoint );
}
msch_data[dev_addr-1].interface_number = p_interface_desc->bInterfaceNumber;
@ -119,8 +119,7 @@ tusb_error_t msch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con
error
);
SUBTASK_ASSERT( TUSB_ERROR_NONE != error /* && TODO STALL means zero */);
SUBTASK_ASSERT( TUSB_ERROR_NONE == error /* && TODO STALL means zero */);
msch_data[dev_addr-1].max_lun = msch_buffer[0];
//------------- SCSI Inquiry -------------//
@ -133,7 +132,7 @@ tusb_error_t msch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con
return TUSB_ERROR_NONE;
}
void msch_isr(pipe_handle_t pipe_hdl, tusb_event_t event)
void msch_isr(pipe_handle_t pipe_hdl, tusb_event_t event, uint32_t xferred_bytes)
{
}

View File

@ -77,7 +77,7 @@ void tusbh_msc_mounted_cb(uint8_t dev_addr);
void msch_init(void);
tusb_error_t msch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t const *p_interface_desc, uint16_t *p_length) ATTR_WARN_UNUSED_RESULT;
void msch_isr(pipe_handle_t pipe_hdl, tusb_event_t event);
void msch_isr(pipe_handle_t pipe_hdl, tusb_event_t event, uint32_t xferred_bytes);
void msch_close(uint8_t dev_addr);
#endif

View File

@ -689,7 +689,9 @@ void hcd_isr(uint8_t hostid)
{
ehci_registers_t* const regs = get_operational_register(hostid);
uint32_t int_status = regs->usb_sts & regs->usb_int_enable;
uint32_t int_status = regs->usb_sts;
int_status &= regs->usb_int_enable;
regs->usb_sts |= int_status; // Acknowledge handled interrupt
if (int_status == 0)

View File

@ -206,9 +206,11 @@ tusb_error_t usbh_control_xfer_subtask(uint8_t dev_addr, uint8_t bmRequestType,
#ifndef _TEST_
usbh_devices[dev_addr].control.pipe_status = 0;
#else
usbh_devices[dev_addr].control.pipe_status = TUSB_EVENT_XFER_COMPLETE; // in Test project, mark as complete to imm pass
usbh_devices[dev_addr].control.pipe_status = TUSB_EVENT_XFER_COMPLETE; // in Test project, mark as complete immediately
#endif
/*SUBTASK_ASSERT_STATUS*/ (void) ( hcd_pipe_control_xfer(dev_addr, &usbh_devices[dev_addr].control.request, data) );
SUBTASK_ASSERT_STATUS_WITH_HANDLER( hcd_pipe_control_xfer(dev_addr, &usbh_devices[dev_addr].control.request, data),
osal_mutex_release(usbh_devices[dev_addr].control.mutex_hdl) );
osal_semaphore_wait(usbh_devices[dev_addr].control.sem_hdl, OSAL_TIMEOUT_NORMAL, &error); // careful of local variable without static
osal_mutex_release(usbh_devices[dev_addr].control.mutex_hdl);