diff --git a/demos/device/src/cdc_device_app.c b/demos/device/src/cdc_device_app.c index 209cefba3..f7008585c 100644 --- a/demos/device/src/cdc_device_app.c +++ b/demos/device/src/cdc_device_app.c @@ -121,11 +121,20 @@ void cdcd_serial_app_init(void) osal_task_create(cdcd_serial_app_task, "cdc", 128, NULL, CDC_SERIAL_APP_TASK_PRIO, NULL); } +tusb_error_t cdcd_serial_subtask(void); + void cdcd_serial_app_task(void* param) { (void) param; OSAL_TASK_LOOP_BEGIN + cdcd_serial_subtask(); + OSAL_TASK_LOOP_END +} + +tusb_error_t cdcd_serial_subtask(void) +{ + OSAL_SUBTASK_BEGIN tusb_error_t error; @@ -153,7 +162,7 @@ void cdcd_serial_app_task(void* param) tusbd_cdc_receive(0, serial_rx_buffer, SERIAL_BUFFER_SIZE, true); } - OSAL_TASK_LOOP_END + OSAL_SUBTASK_END } #endif diff --git a/demos/device/src/keyboard_device_app.c b/demos/device/src/keyboard_device_app.c index dc3707559..7f0417fa9 100644 --- a/demos/device/src/keyboard_device_app.c +++ b/demos/device/src/keyboard_device_app.c @@ -109,11 +109,20 @@ void keyboard_device_app_init(void) osal_task_create(keyboard_device_app_task, "kbd", 128, NULL, KEYBOARD_APP_TASK_PRIO, NULL); } +tusb_error_t keyboard_device_subtask(void); + void keyboard_device_app_task(void* param) { (void) param; OSAL_TASK_LOOP_BEGIN + keyboard_device_subtask(); + OSAL_TASK_LOOP_END +} + +tusb_error_t keyboard_device_subtask(void) +{ + OSAL_SUBTASK_BEGIN osal_task_delay(50); @@ -136,8 +145,7 @@ void keyboard_device_app_task(void* param) } } - - OSAL_TASK_LOOP_END + OSAL_SUBTASK_END } #endif diff --git a/demos/device/src/mouse_device_app.c b/demos/device/src/mouse_device_app.c index 8f395d901..6addbd3dc 100644 --- a/demos/device/src/mouse_device_app.c +++ b/demos/device/src/mouse_device_app.c @@ -98,11 +98,19 @@ void mouse_device_app_init(void) osal_task_create(mouse_device_app_task, "mouse", 128, NULL, MOUSE_APP_TASK_PRIO, NULL); } +void mouse_device_subtask(void); + void mouse_device_app_task(void * param) { (void) para; - OSAL_TASK_LOOP_BEGIN + mouse_device_subtask(); + OSAL_TASK_LOOP_END +} + +void mouse_device_subtask(void) +{ + OSAL_SUBTASK_BEGIN osal_task_delay(20); @@ -143,7 +151,7 @@ void mouse_device_app_task(void * param) } } - OSAL_TASK_LOOP_END + OSAL_SUBTASK_END } #endif diff --git a/tinyusb/host/usbh.c b/tinyusb/host/usbh.c index 4806f58b5..37d772bdb 100644 --- a/tinyusb/host/usbh.c +++ b/tinyusb/host/usbh.c @@ -109,7 +109,6 @@ TUSB_CFG_ATTR_USBRAM usbh_device_info_t usbh_devices[TUSB_CFG_HOST_DEVICE_MAX+1] //------------- Enumeration Task Data -------------/ enum { ENUM_QUEUE_DEPTH = 16 }; -OSAL_TASK_DEF(usbh_enumeration_task, 200, TUSB_CFG_OS_TASK_PRIO); OSAL_QUEUE_DEF(enum_queue_def, ENUM_QUEUE_DEPTH, uint32_t); STATIC_VAR osal_queue_handle_t enum_queue_hdl; @@ -147,7 +146,8 @@ tusb_error_t usbh_init(void) //------------- Enumeration & Reporter Task init -------------// enum_queue_hdl = osal_queue_create( OSAL_QUEUE_REF(enum_queue_def) ); ASSERT_PTR(enum_queue_hdl, TUSB_ERROR_OSAL_QUEUE_FAILED); - ASSERT_STATUS( osal_task_create( OSAL_TASK_REF(usbh_enumeration_task) )); + + osal_task_create(usbh_enumeration_task, "usbh", 200, NULL, TUSB_CFG_OS_TASK_PRIO, NULL); //------------- Semaphore, Mutex for Control Pipe -------------// for(uint8_t i=0; i