added all assert check to osal_queue_send and osal_semaphore_post

This commit is contained in:
hathach 2014-04-24 23:57:21 +07:00
parent 6804fee0fa
commit dbf276ad6f
8 changed files with 32 additions and 27 deletions

View File

@ -91,7 +91,7 @@ void tusbd_cdc_xfer_cb(uint8_t coreid, tusb_event_t event, cdc_pipeid_t pipe_id,
{ {
fifo_write(&fifo_serial, serial_rx_buffer+i); fifo_write(&fifo_serial, serial_rx_buffer+i);
} }
osal_semaphore_post(sem_hdl); // notify main task (void) osal_semaphore_post(sem_hdl); // notify main task
break; break;
case TUSB_EVENT_XFER_ERROR: case TUSB_EVENT_XFER_ERROR:

View File

@ -88,7 +88,7 @@ void tusbh_cdc_xfer_isr(uint8_t dev_addr, tusb_event_t event, cdc_pipeid_t pipe_
{ {
case TUSB_EVENT_XFER_COMPLETE: case TUSB_EVENT_XFER_COMPLETE:
received_bytes = xferred_bytes; received_bytes = xferred_bytes;
osal_semaphore_post(sem_hdl); // notify main task (void) osal_semaphore_post(sem_hdl); // notify main task
break; break;
case TUSB_EVENT_XFER_ERROR: case TUSB_EVENT_XFER_ERROR:

View File

@ -85,7 +85,7 @@ void tusbh_hid_keyboard_isr(uint8_t dev_addr, tusb_event_t event)
switch(event) switch(event)
{ {
case TUSB_EVENT_XFER_COMPLETE: case TUSB_EVENT_XFER_COMPLETE:
osal_queue_send(queue_kbd_hdl, &usb_keyboard_report); (void) osal_queue_send(queue_kbd_hdl, &usb_keyboard_report);
tusbh_hid_keyboard_get_report(dev_addr, (uint8_t*) &usb_keyboard_report); tusbh_hid_keyboard_get_report(dev_addr, (uint8_t*) &usb_keyboard_report);
break; break;

View File

@ -84,7 +84,7 @@ void tusbh_hid_mouse_isr(uint8_t dev_addr, tusb_event_t event)
switch(event) switch(event)
{ {
case TUSB_EVENT_XFER_COMPLETE: case TUSB_EVENT_XFER_COMPLETE:
osal_queue_send(queue_mouse_hdl, &usb_mouse_report); (void) osal_queue_send(queue_mouse_hdl, &usb_mouse_report);
(void) tusbh_hid_mouse_get_report(dev_addr, (uint8_t*) &usb_mouse_report); (void) tusbh_hid_mouse_get_report(dev_addr, (uint8_t*) &usb_mouse_report);
break; break;

View File

@ -408,7 +408,7 @@ void msch_isr(pipe_handle_t pipe_hdl, tusb_event_t event, uint32_t xferred_bytes
tusbh_msc_isr(pipe_hdl.dev_addr, event, xferred_bytes); tusbh_msc_isr(pipe_hdl.dev_addr, event, xferred_bytes);
}else }else
{ // still initializing under open subtask { // still initializing under open subtask
osal_semaphore_post(msch_sem_hdl); ASSERT( TUSB_ERROR_NONE == osal_semaphore_post(msch_sem_hdl), VOID_RETURN );
} }
} }
} }

View File

@ -431,7 +431,7 @@ void usbd_xfer_isr(endpoint_handle_t edpt_hdl, tusb_event_t event, uint32_t xfer
{ {
if (edpt_hdl.class_code == 0 ) // Control Transfer if (edpt_hdl.class_code == 0 ) // Control Transfer
{ {
osal_semaphore_post( usbd_control_xfer_sem_hdl ); ASSERT( TUSB_ERROR_NONE == osal_semaphore_post( usbd_control_xfer_sem_hdl ), VOID_RETURN);
}else }else
{ {
usbd_task_event_t task_event = usbd_task_event_t task_event =

View File

@ -253,7 +253,7 @@ void usbh_xfer_isr(pipe_handle_t pipe_hdl, uint8_t class_code, tusb_event_t even
{ {
usbh_devices[ pipe_hdl.dev_addr ].control.pipe_status = event; usbh_devices[ pipe_hdl.dev_addr ].control.pipe_status = event;
// usbh_devices[ pipe_hdl.dev_addr ].control.xferred_bytes = xferred_bytes; not yet neccessary // usbh_devices[ pipe_hdl.dev_addr ].control.xferred_bytes = xferred_bytes; not yet neccessary
osal_semaphore_post( usbh_devices[ pipe_hdl.dev_addr ].control.sem_hdl ); ASSERT( TUSB_ERROR_NONE == osal_semaphore_post( usbh_devices[ pipe_hdl.dev_addr ].control.sem_hdl ), VOID_RETURN);
}else if (usbh_class_drivers[class_index].isr) }else if (usbh_class_drivers[class_index].isr)
{ {
usbh_class_drivers[class_index].isr(pipe_hdl, event, xferred_bytes); usbh_class_drivers[class_index].isr(pipe_hdl, event, xferred_bytes);
@ -265,22 +265,26 @@ void usbh_xfer_isr(pipe_handle_t pipe_hdl, uint8_t class_code, tusb_event_t even
void usbh_hub_port_plugged_isr(uint8_t hub_addr, uint8_t hub_port) void usbh_hub_port_plugged_isr(uint8_t hub_addr, uint8_t hub_port)
{ {
osal_queue_send(enum_queue_hdl, usbh_enumerate_t enum_entry =
&(usbh_enumerate_t){ {
.core_id = usbh_devices[hub_addr].core_id, .core_id = usbh_devices[hub_addr].core_id,
.hub_addr = hub_addr, .hub_addr = hub_addr,
.hub_port = hub_port} .hub_port = hub_port
); };
ASSERT( TUSB_ERROR_NONE == osal_queue_send(enum_queue_hdl, &enum_entry), VOID_RETURN );
} }
void usbh_hcd_rhport_plugged_isr(uint8_t hostid) void usbh_hcd_rhport_plugged_isr(uint8_t hostid)
{ {
osal_queue_send(enum_queue_hdl, usbh_enumerate_t enum_entry =
&(usbh_enumerate_t){ {
.core_id = hostid, .core_id = hostid,
.hub_addr = 0, .hub_addr = 0,
.hub_port = 0} .hub_port = 0
); };
ASSERT( TUSB_ERROR_NONE == osal_queue_send(enum_queue_hdl, &enum_entry), VOID_RETURN );
} }
// a device unplugged on hostid, hub_addr, hub_port // a device unplugged on hostid, hub_addr, hub_port
@ -325,13 +329,14 @@ static void usbh_device_unplugged(uint8_t hostid, uint8_t hub_addr, uint8_t hub_
void usbh_hcd_rhport_unplugged_isr(uint8_t hostid) void usbh_hcd_rhport_unplugged_isr(uint8_t hostid)
{ {
osal_queue_send(enum_queue_hdl, usbh_enumerate_t enum_entry =
&(usbh_enumerate_t) {
{ .core_id = hostid,
.core_id = hostid, .hub_addr = 0,
.hub_addr = 0, .hub_port = 0
.hub_port = 0 };
} );
ASSERT( TUSB_ERROR_NONE == osal_queue_send(enum_queue_hdl, &enum_entry), VOID_RETURN );
} }
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+

View File

@ -182,7 +182,7 @@ static inline void osal_queue_receive (osal_queue_handle_t const queue_hdl, void
} }
} }
static inline tusb_error_t osal_queue_send(osal_queue_handle_t const queue_hdl, void const * data) ATTR_ALWAYS_INLINE; static inline tusb_error_t osal_queue_send(osal_queue_handle_t const queue_hdl, void const * data) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline tusb_error_t osal_queue_send(osal_queue_handle_t const queue_hdl, void const * data) static inline tusb_error_t osal_queue_send(osal_queue_handle_t const queue_hdl, void const * data)
{ {
void *p_buf = osMailAlloc(queue_hdl->pool, 0); // instantly return in case of sending within ISR (mostly used) void *p_buf = osMailAlloc(queue_hdl->pool, 0); // instantly return in case of sending within ISR (mostly used)