From 5e2ed2534ebc7576f028e09023bae923965c645e Mon Sep 17 00:00:00 2001 From: hathach Date: Fri, 14 Mar 2014 11:59:39 +0700 Subject: clean up warning in lpcxpresso remove -Wpacked -Wpadded in gcc --- tinyusb/class/custom_class.h | 3 ++- tinyusb/class/hid_host.c | 10 ++++++---- tinyusb/common/tusb_types.h | 7 +++---- tinyusb/host/hub.c | 2 +- tinyusb/host/usbh.c | 37 ++++++++++++++++++++++--------------- 5 files changed, 34 insertions(+), 25 deletions(-) (limited to 'tinyusb') diff --git a/tinyusb/class/custom_class.h b/tinyusb/class/custom_class.h index 9bc4046fe..6fe219e3c 100644 --- a/tinyusb/class/custom_class.h +++ b/tinyusb/class/custom_class.h @@ -66,7 +66,8 @@ STATIC_ INLINE_ bool tusbh_custom_is_mounted(uint8_t dev_addr, uint16_t vendor_i { (void) vendor_id; // TODO check this later (void) product_id; - return (tusbh_device_get_mounted_class_flag(dev_addr) & BIT_(TUSB_CLASS_MAPPED_INDEX_END-1) ) != 0; +// return (tusbh_device_get_mounted_class_flag(dev_addr) & BIT_(TUSB_CLASS_MAPPED_INDEX_END-1) ) != 0; + return false; } tusb_error_t tusbh_custom_read(uint8_t dev_addr, uint16_t vendor_id, uint16_t product_id, void * p_buffer, uint16_t length); diff --git a/tinyusb/class/hid_host.c b/tinyusb/class/hid_host.c index 450695b15..28a8a202a 100644 --- a/tinyusb/class/hid_host.c +++ b/tinyusb/class/hid_host.c @@ -66,8 +66,8 @@ static inline tusb_error_t hidh_interface_open(uint8_t dev_addr, uint8_t interfa return TUSB_ERROR_NONE; } -static inline void hidh_interface_close(uint8_t dev_addr, hidh_interface_info_t *p_hid) ATTR_ALWAYS_INLINE; -static inline void hidh_interface_close(uint8_t dev_addr, hidh_interface_info_t *p_hid) +static inline void hidh_interface_close(hidh_interface_info_t *p_hid) ATTR_ALWAYS_INLINE; +static inline void hidh_interface_close(hidh_interface_info_t *p_hid) { (void) hcd_pipe_close(p_hid->pipe_hdl); memclr_(p_hid, sizeof(hidh_interface_info_t)); @@ -256,6 +256,8 @@ tusb_error_t hidh_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con void hidh_isr(pipe_handle_t pipe_hdl, tusb_event_t event, uint32_t xferred_bytes) { + (void) xferred_bytes; // TODO may need to use this para later + #if TUSB_CFG_HOST_HID_KEYBOARD if ( pipehandle_is_equal(pipe_hdl, keyboardh_data[pipe_hdl.dev_addr-1].pipe_hdl) ) { @@ -282,7 +284,7 @@ void hidh_close(uint8_t dev_addr) #if TUSB_CFG_HOST_HID_KEYBOARD if ( pipehandle_is_valid( keyboardh_data[dev_addr-1].pipe_hdl ) ) { - hidh_interface_close(dev_addr, &keyboardh_data[dev_addr-1]); + hidh_interface_close(&keyboardh_data[dev_addr-1]); tusbh_hid_keyboard_unmounted_cb(dev_addr); } #endif @@ -290,7 +292,7 @@ void hidh_close(uint8_t dev_addr) #if TUSB_CFG_HOST_HID_MOUSE if( pipehandle_is_valid( mouseh_data[dev_addr-1].pipe_hdl ) ) { - hidh_interface_close(dev_addr, &mouseh_data[dev_addr-1]); + hidh_interface_close(&mouseh_data[dev_addr-1]); tusbh_hid_mouse_unmounted_cb( dev_addr ); } #endif diff --git a/tinyusb/common/tusb_types.h b/tinyusb/common/tusb_types.h index c950a7b66..72563e577 100644 --- a/tinyusb/common/tusb_types.h +++ b/tinyusb/common/tusb_types.h @@ -135,8 +135,7 @@ typedef enum { TUSB_CLASS_PERSONAL_HEALTHCARE = 15 , ///< 15 TUSB_CLASS_AUDIO_VIDEO = 16 , ///< 16 - TUSB_CLASS_MAPPED_INDEX_START = 17 , // TODO compact & minimize this number - TUSB_CLASS_MAPPED_INDEX_END = TUSB_CLASS_MAPPED_INDEX_START + 5, + TUSB_CLASS_MAPPED_INDEX_START = 17 , // TODO Map DIAGNOSTIC, WIRELESS_CONTROLLER, MISC, VENDOR_SPECIFIC to this to minimize the array TUSB_CLASS_DIAGNOSTIC = 0xDC , TUSB_CLASS_WIRELESS_CONTROLLER = 0xE0 , @@ -153,7 +152,7 @@ typedef enum { MISC_PROTOCOL_IAD = 1 }misc_protocol_type_t; -typedef enum tusb_std_class_flag_{ +typedef enum { TUSB_CLASS_FLAG_AUDIO = BIT_(TUSB_CLASS_AUDIO) , ///< 1 TUSB_CLASS_FLAG_CDC = BIT_(TUSB_CLASS_CDC) , ///< 2 TUSB_CLASS_FLAG_HID = BIT_(TUSB_CLASS_HID) , ///< 3 @@ -219,7 +218,7 @@ enum { static inline uint8_t std_class_code_to_index(uint8_t std_class_code) ATTR_CONST ATTR_ALWAYS_INLINE; static inline uint8_t std_class_code_to_index(uint8_t std_class_code) { - return (std_class_code <= TUSB_CLASS_AUDIO_VIDEO ) ? std_class_code : + return (std_class_code <= TUSB_CLASS_AUDIO_VIDEO ) ? std_class_code : (std_class_code == TUSB_CLASS_DIAGNOSTIC ) ? TUSB_CLASS_MAPPED_INDEX_START : (std_class_code == TUSB_CLASS_WIRELESS_CONTROLLER ) ? TUSB_CLASS_MAPPED_INDEX_START + 1 : (std_class_code == TUSB_CLASS_MISC ) ? TUSB_CLASS_MAPPED_INDEX_START + 2 : diff --git a/tinyusb/host/hub.c b/tinyusb/host/hub.c index 051647018..5e6744c21 100644 --- a/tinyusb/host/hub.c +++ b/tinyusb/host/hub.c @@ -59,7 +59,7 @@ typedef struct { }usbh_hub_t; TUSB_CFG_ATTR_USBRAM usbh_hub_t hub_data[TUSB_CFG_HOST_DEVICE_MAX]; -TUSB_CFG_ATTR_USBRAM uint8_t hub_enum_buffer[sizeof(descriptor_hub_desc_t)]; +ATTR_ALIGNED(4) TUSB_CFG_ATTR_USBRAM STATIC_VAR uint8_t hub_enum_buffer[sizeof(descriptor_hub_desc_t)]; //OSAL_SEM_DEF(hub_enum_semaphore); //static osal_semaphore_handle_t hub_enum_sem_hdl; diff --git a/tinyusb/host/usbh.c b/tinyusb/host/usbh.c index be7c3f42d..e6db37d4b 100644 --- a/tinyusb/host/usbh.c +++ b/tinyusb/host/usbh.c @@ -55,52 +55,56 @@ #define ENUM_QUEUE_DEPTH 5 // TODO fix/compress number of class driver -static host_class_driver_t const usbh_class_drivers[TUSB_CLASS_MAPPED_INDEX_END] = +static host_class_driver_t const usbh_class_drivers[] = { -#if HOST_CLASS_HID + #if HOST_CLASS_HID [TUSB_CLASS_HID] = { .init = hidh_init, .open_subtask = hidh_open_subtask, .isr = hidh_isr, .close = hidh_close }, -#endif + #endif -#if TUSB_CFG_HOST_CDC + #if TUSB_CFG_HOST_CDC [TUSB_CLASS_CDC] = { .init = cdch_init, .open_subtask = cdch_open_subtask, .isr = cdch_isr, .close = cdch_close }, -#endif + #endif -#if TUSB_CFG_HOST_MSC + #if TUSB_CFG_HOST_MSC [TUSB_CLASS_MSC] = { .init = msch_init, .open_subtask = msch_open_subtask, .isr = msch_isr, .close = msch_close }, -#endif + #endif -#if TUSB_CFG_HOST_HUB + #if TUSB_CFG_HOST_HUB [TUSB_CLASS_HUB] = { .init = hub_init, .open_subtask = hub_open_subtask, .isr = hub_isr, .close = hub_close }, -#endif + #endif -#if TUSB_CFG_HOST_CUSTOM_CLASS + #if TUSB_CFG_HOST_CUSTOM_CLASS [TUSB_CLASS_MAPPED_INDEX_END-1] = { .init = cush_init, .open_subtask = cush_open_subtask, .isr = cush_isr, .close = cush_close } -#endif + #endif +}; + +enum { + USBH_CLASS_DRIVER_COUNT = sizeof(usbh_class_drivers) / sizeof(host_class_driver_t) }; //--------------------------------------------------------------------+ @@ -162,7 +166,7 @@ tusb_error_t usbh_init(void) } //------------- class init -------------// - for (uint8_t class_index = 1; class_index < TUSB_CLASS_MAPPED_INDEX_END; class_index++) + for (uint8_t class_index = 1; class_index < USBH_CLASS_DRIVER_COUNT; class_index++) { if (usbh_class_drivers[class_index].init) { @@ -296,7 +300,7 @@ static void usbh_device_unplugged(uint8_t hostid, uint8_t hub_addr, uint8_t hub_ usbh_devices[dev_addr].state != TUSB_DEVICE_STATE_UNPLUG) { // TODO Hub multiple level - for (uint8_t class_index = 1; class_index < TUSB_CLASS_MAPPED_INDEX_END; class_index++) + for (uint8_t class_index = 1; class_index < USBH_CLASS_DRIVER_COUNT; class_index++) { if ((usbh_devices[dev_addr].flag_supported_class & BIT_(class_index)) && usbh_class_drivers[class_index].close) @@ -412,9 +416,12 @@ tusb_error_t enumeration_body_subtask(void) // Acknowledge Port Connection Change OSAL_SUBTASK_INVOKED_AND_WAIT( hub_port_clear_feature_subtask(usbh_devices[0].hub_addr, usbh_devices[0].hub_port, HUB_FEATURE_PORT_CONNECTION_CHANGE), error ); - if ( ! ((hub_port_status_response_t *) enum_data_buffer)->status_change.connect_status ) SUBTASK_EXIT(TUSB_ERROR_NONE); // only handle connection change + hub_port_status_response_t * p_port_status; + p_port_status = ((hub_port_status_response_t *) enum_data_buffer); + + if ( ! p_port_status->status_change.connect_status ) SUBTASK_EXIT(TUSB_ERROR_NONE); // only handle connection change - if ( ! ((hub_port_status_response_t *) enum_data_buffer)->status_current.connect_status ) + if ( ! p_port_status->status_current.connect_status ) { // Disconnection event usbh_device_unplugged(usbh_devices[0].core_id, usbh_devices[0].hub_addr, usbh_devices[0].hub_port); -- cgit v1.3.1