remove ATTR_WEAK for all necessary driver callback

fix ceedling tests
This commit is contained in:
hathach
2013-09-21 00:42:39 +07:00
parent f8f398a681
commit 295612b48f
11 changed files with 137 additions and 46 deletions

View File

@@ -70,9 +70,9 @@ tusb_error_t tusbh_cdc_send(uint8_t dev_addr, void const * p_data, uint32_t leng
tusb_error_t tusbh_cdc_receive(uint8_t dev_addr, void * p_buffer, uint32_t length, bool is_notify);
//------------- CDC Application Callback -------------//
ATTR_WEAK void tusbh_cdc_mounted_cb(uint8_t dev_addr);
ATTR_WEAK void tusbh_cdc_unmounted_isr(uint8_t dev_addr);
ATTR_WEAK void tusbh_cdc_xfer_isr(uint8_t dev_addr, tusb_event_t event, cdc_pipeid_t pipe_id, uint32_t xferred_bytes);
void tusbh_cdc_mounted_cb(uint8_t dev_addr);
void tusbh_cdc_unmounted_isr(uint8_t dev_addr);
void tusbh_cdc_xfer_isr(uint8_t dev_addr, tusb_event_t event, cdc_pipeid_t pipe_id, uint32_t xferred_bytes);
#if TUSB_CFG_HOST_CDC_RNDIS
@@ -83,9 +83,9 @@ bool tusbh_cdc_rndis_is_mounted(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RES
tusb_error_t tusbh_cdc_rndis_get_mac_addr(uint8_t dev_addr, uint8_t mac_address[6]);
//------------- RNDIS Application Callback (overshadow CDC callbacks) -------------//
ATTR_WEAK void tusbh_cdc_rndis_mounted_cb(uint8_t dev_addr);
ATTR_WEAK void tusbh_cdc_rndis_unmounted_isr(uint8_t dev_addr);
ATTR_WEAK void tusbh_cdc_rndis_xfer_isr(uint8_t dev_addr, tusb_event_t event, cdc_pipeid_t pipe_id, uint32_t xferred_bytes);
void tusbh_cdc_rndis_mounted_cb(uint8_t dev_addr);
void tusbh_cdc_rndis_unmounted_isr(uint8_t dev_addr);
void tusbh_cdc_rndis_xfer_isr(uint8_t dev_addr, tusb_event_t event, cdc_pipeid_t pipe_id, uint32_t xferred_bytes);

View File

@@ -133,6 +133,7 @@ void rndish_init(void)
void rndish_close(uint8_t dev_addr)
{
osal_semaphore_reset( rndish_data[dev_addr-1].sem_notification_hdl );
// memclr_(&rndish_data[dev_addr-1], sizeof(rndish_data_t)); TODO need to move semaphore & its handle out before memclr
}
@@ -220,12 +221,7 @@ tusb_error_t rndish_open_subtask(uint8_t dev_addr, cdch_data_t *p_cdc)
rndis_msg_set_cmplt_t * const p_set_cmpt = (rndis_msg_set_cmplt_t *) msg_payload;
SUBTASK_ASSERT(p_set_cmpt->type == RNDIS_MSG_SET_CMPLT && p_set_cmpt->status == RNDIS_STATUS_SUCCESS);
//
if ( tusbh_cdc_rndis_mounted_cb )
{
tusbh_cdc_rndis_mounted_cb(dev_addr);
}
tusbh_cdc_rndis_mounted_cb(dev_addr);
OSAL_SUBTASK_END
}

View File

@@ -310,17 +310,17 @@ void hidh_isr(pipe_handle_t pipe_hdl, tusb_event_t event, uint32_t xferred_bytes
void hidh_close(uint8_t dev_addr)
{
#if TUSB_CFG_HOST_HID_KEYBOARD
hidh_interface_close(dev_addr, &keyboard_data[dev_addr-1]);
if (tusbh_hid_keyboard_unmounted_isr)
if ( pipehandle_is_valid( keyboard_data[dev_addr-1].pipe_hdl ) )
{
hidh_interface_close(dev_addr, &keyboard_data[dev_addr-1]);
tusbh_hid_keyboard_unmounted_isr(dev_addr);
}
#endif
#if TUSB_CFG_HOST_HID_MOUSE
hidh_interface_close(dev_addr, &mouse_data[dev_addr-1]);
if( tusbh_hid_mouse_unmounted_isr )
if( pipehandle_is_valid( mouse_data[dev_addr-1].pipe_hdl ) )
{
hidh_interface_close(dev_addr, &mouse_data[dev_addr-1]);
tusbh_hid_mouse_unmounted_isr( dev_addr );
}
#endif

View File

@@ -63,9 +63,9 @@ bool tusbh_hid_keyboard_is_mounted(uint8_t dev_addr) ATTR_PURE ATTR_WAR
tusb_error_t tusbh_hid_keyboard_get_report(uint8_t dev_addr, void * report) /*ATTR_WARN_UNUSED_RESULT*/;
tusb_interface_status_t tusbh_hid_keyboard_status(uint8_t dev_addr) ATTR_WARN_UNUSED_RESULT;
//------------- Application Callback -------------//
ATTR_WEAK void tusbh_hid_keyboard_isr(uint8_t dev_addr, tusb_event_t event);
ATTR_WEAK void tusbh_hid_keyboard_mounted_cb(uint8_t dev_addr);
ATTR_WEAK void tusbh_hid_keyboard_unmounted_isr(uint8_t dev_addr);
void tusbh_hid_keyboard_isr(uint8_t dev_addr, tusb_event_t event);
void tusbh_hid_keyboard_mounted_cb(uint8_t dev_addr);
void tusbh_hid_keyboard_unmounted_isr(uint8_t dev_addr);
//--------------------------------------------------------------------+
// MOUSE Application API
@@ -74,9 +74,9 @@ bool tusbh_hid_mouse_is_mounted(uint8_t dev_addr) ATTR_PURE ATTR_WARN_U
tusb_error_t tusbh_hid_mouse_get_report(uint8_t dev_addr, void* report) /*ATTR_WARN_UNUSED_RESULT*/;
tusb_interface_status_t tusbh_hid_mouse_status(uint8_t dev_addr) ATTR_WARN_UNUSED_RESULT;
//------------- Application Callback -------------//
ATTR_WEAK void tusbh_hid_mouse_isr(uint8_t dev_addr, tusb_event_t event);
ATTR_WEAK void tusbh_hid_mouse_mounted_cb(uint8_t dev_addr);
ATTR_WEAK void tusbh_hid_mouse_unmounted_isr(uint8_t dev_addr);
void tusbh_hid_mouse_isr(uint8_t dev_addr, tusb_event_t event);
void tusbh_hid_mouse_mounted_cb(uint8_t dev_addr);
void tusbh_hid_mouse_unmounted_isr(uint8_t dev_addr);
//--------------------------------------------------------------------+
// GENERIC Application API
@@ -87,7 +87,7 @@ tusb_error_t tusbh_hid_generic_set_report(uint8_t dev_addr, void* report, bool
tusb_interface_status_t tusbh_hid_generic_get_status(uint8_t dev_addr) ATTR_WARN_UNUSED_RESULT;
tusb_interface_status_t tusbh_hid_generic_set_status(uint8_t dev_addr) ATTR_WARN_UNUSED_RESULT;
//------------- Application Callback -------------//
ATTR_WEAK void tusbh_hid_generic_isr(uint8_t dev_addr, tusb_event_t event);
void tusbh_hid_generic_isr(uint8_t dev_addr, tusb_event_t event);
//--------------------------------------------------------------------+
// USBH-CLASS DRIVER API

View File

@@ -348,7 +348,7 @@ tusb_error_t enumeration_body_subtask(void)
osal_task_delay(200); // wait for device is stable
hcd_port_reset( usbh_devices[0].core_id ); // port must be reset to have correct speed operation
osal_task_delay(50); // reset is recommended to last 50 ms
// osal_task_delay(50); // TODO reset is recommended to last 50 ms (NXP EHCI passes this)
usbh_devices[0].speed = hcd_port_speed_get( usbh_devices[0].core_id );
SUBTASK_ASSERT_STATUS( usbh_pipe_control_open(0, 8) );
@@ -364,7 +364,7 @@ tusb_error_t enumeration_body_subtask(void)
SUBTASK_ASSERT_STATUS(error); // TODO some slow device is observed to fail the very fist controller xfer, can try more times
hcd_port_reset( usbh_devices[0].core_id ); // reset port after 8 byte descriptor
osal_task_delay(50); // reset is recommended to last 50 ms
// osal_task_delay(50); // TODO reset is recommended to last 50 ms (NXP EHCI passes this)
//------------- Set new address -------------//
new_addr = get_new_address();