summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhathach <[email protected]>2018-12-13 14:51:37 +0700
committerhathach <[email protected]>2018-12-13 14:51:37 +0700
commit1c49c479cabf1be9b1c22017c42a8480b26cebcb (patch)
tree3b2df7468fedc34fcda895524f09c78f36ae7020 /src
parentaf1ffe4675ca9eeeebd47a82f3508eecdc1486c5 (diff)
seperate tusb_task() to tud_task() and tuh_task()
tusb_task() still exists for backward compatible
Diffstat (limited to 'src')
-rw-r--r--src/class/hid/hid_device.c2
-rw-r--r--src/device/usbd.c18
-rw-r--r--src/device/usbd.h1
-rw-r--r--src/device/usbd_pvt.h2
-rw-r--r--src/host/usbh.c18
-rw-r--r--src/host/usbh.h9
-rw-r--r--src/tusb.c11
-rw-r--r--src/tusb.h34
8 files changed, 53 insertions, 42 deletions
diff --git a/src/class/hid/hid_device.c b/src/class/hid/hid_device.c
index bd49c157a..70aa7370d 100644
--- a/src/class/hid/hid_device.c
+++ b/src/class/hid/hid_device.c
@@ -340,7 +340,7 @@ bool hidd_open(uint8_t rhport, tusb_desc_interface_t const * desc_itf, uint16_t
/*------------- Boot protocol only keyboard & mouse -------------*/
if (desc_itf->bInterfaceSubClass == HID_SUBCLASS_BOOT)
{
- TU_ASSERT(desc_itf->bInterfaceProtocol == HID_PROTOCOL_KEYBOARD || desc_itf->bInterfaceProtocol == HID_PROTOCOL_MOUSE, ERR_TUD_INVALID_DESCRIPTOR);
+ TU_ASSERT(desc_itf->bInterfaceProtocol == HID_PROTOCOL_KEYBOARD || desc_itf->bInterfaceProtocol == HID_PROTOCOL_MOUSE);
#if CFG_TUD_HID_KEYBOARD && CFG_TUD_HID_KEYBOARD_BOOT
if (desc_itf->bInterfaceProtocol == HID_PROTOCOL_KEYBOARD)
diff --git a/src/device/usbd.c b/src/device/usbd.c
index aa81cb118..a3fbfdff9 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -208,8 +208,24 @@ static void usbd_reset(uint8_t rhport)
/* USB Device Driver task
* This top level thread manages all device controller event and delegates events to class-specific drivers.
+ * This should be called periodically within the mainloop or rtos thread.
+ *
+ @code
+ int main(void)
+ {
+ application_init();
+ tusb_init();
+
+ while(1) // the mainloop
+ {
+ application_code();
+
+ tud_task(); // tinyusb device task
+ }
+ }
+ @endcode
*/
-void usbd_task (void)
+void tud_task (void)
{
// Loop until there is no more events in the queue
while (1)
diff --git a/src/device/usbd.h b/src/device/usbd.h
index f9e0d8f4d..f9e7368ce 100644
--- a/src/device/usbd.h
+++ b/src/device/usbd.h
@@ -81,6 +81,7 @@ extern tud_desc_set_t tud_desc_set;
// APPLICATION API
//--------------------------------------------------------------------+
bool tud_mounted(void);
+void tud_task (void);
//--------------------------------------------------------------------+
// APPLICATION CALLBACK (WEAK is optional)
diff --git a/src/device/usbd_pvt.h b/src/device/usbd_pvt.h
index d1fccd9e0..06951673f 100644
--- a/src/device/usbd_pvt.h
+++ b/src/device/usbd_pvt.h
@@ -52,8 +52,6 @@ extern tud_desc_set_t const* usbd_desc_set;
// INTERNAL API for stack management
//--------------------------------------------------------------------+
bool usbd_init (void);
-void usbd_task (void);
-
// Carry out Data and Status stage of control transfer
// - If len = 0, it is equivalent to sending status only
diff --git a/src/host/usbh.c b/src/host/usbh.c
index 27d32330a..d0b5edb63 100644
--- a/src/host/usbh.c
+++ b/src/host/usbh.c
@@ -601,8 +601,24 @@ bool enum_task(hcd_event_t* event)
/* USB Host Driver task
* This top level thread manages all host controller event and delegates events to class-specific drivers.
+ * This should be called periodically within the mainloop or rtos thread.
+ *
+ @code
+ int main(void)
+ {
+ application_init();
+ tusb_init();
+
+ while(1) // the mainloop
+ {
+ application_code();
+
+ tuh_task(); // tinyusb host task
+ }
+ }
+ @endcode
*/
-void usbh_task(void)
+void tuh_task(void)
{
// Loop until there is no more events in the queue
while (1)
diff --git a/src/host/usbh.h b/src/host/usbh.h
index 8009c5080..fee1235f4 100644
--- a/src/host/usbh.h
+++ b/src/host/usbh.h
@@ -78,9 +78,9 @@ typedef struct {
//--------------------------------------------------------------------+
// APPLICATION API
//--------------------------------------------------------------------+
-//tusb_error_t tusbh_configuration_set (uint8_t dev_addr, uint8_t configure_number) ATTR_WARN_UNUSED_RESULT;
-tusb_device_state_t tuh_device_get_state (uint8_t dev_addr) ATTR_WARN_UNUSED_RESULT ATTR_PURE;
-static inline bool tuh_device_is_configured(uint8_t dev_addr) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT ATTR_PURE;
+void tuh_task(void);
+
+tusb_device_state_t tuh_device_get_state (uint8_t dev_addr);
static inline bool tuh_device_is_configured(uint8_t dev_addr)
{
return tuh_device_get_state(dev_addr) == TUSB_DEVICE_STATE_CONFIGURED;
@@ -89,7 +89,7 @@ static inline bool tuh_device_is_configured(uint8_t dev_addr)
//--------------------------------------------------------------------+
// APPLICATION CALLBACK
//--------------------------------------------------------------------+
-ATTR_WEAK uint8_t tuh_device_attached_cb (tusb_desc_device_t const *p_desc_device) ATTR_WARN_UNUSED_RESULT;
+ATTR_WEAK uint8_t tuh_device_attached_cb (tusb_desc_device_t const *p_desc_device);
/** Callback invoked when device is mounted (configured) */
ATTR_WEAK void tuh_mount_cb (uint8_t dev_addr);
@@ -103,7 +103,6 @@ ATTR_WEAK void tuh_umount_cb(uint8_t dev_addr);
#ifdef _TINY_USB_SOURCE_FILE_
bool usbh_init(void);
-void usbh_task(void);
bool usbh_control_xfer (uint8_t dev_addr, tusb_control_request_t* request, uint8_t* data);
diff --git a/src/tusb.c b/src/tusb.c
index 253adc59c..ad2dcbfd3 100644
--- a/src/tusb.c
+++ b/src/tusb.c
@@ -68,17 +68,6 @@ bool tusb_init(void)
return TUSB_ERROR_NONE;
}
-void tusb_task(void)
-{
- #if TUSB_OPT_HOST_ENABLED
- usbh_task();
- #endif
-
- #if TUSB_OPT_DEVICE_ENABLED
- usbd_task();
- #endif
-}
-
/*------------------------------------------------------------------*/
/* Debug
*------------------------------------------------------------------*/
diff --git a/src/tusb.h b/src/tusb.h
index e4393d067..3a13bbecc 100644
--- a/src/tusb.h
+++ b/src/tusb.h
@@ -101,32 +101,24 @@
/** \ingroup group_application_api
* @{ */
-// Initialize device/host stack according to tusb_config.h
-// return true if success
+// Initialize device/host stack
bool tusb_init(void);
-/** Run all tinyusb's internal tasks (e.g host task, device task) and invoke callback
- * This should be called periodically within the mainloop.
+// TODO
+// bool tusb_teardown(void);
- @code
- int main(void)
- {
- your_init_code();
- tusb_init();
- // other config code
-
- while(1) // the mainloop
- {
- your_application_code();
-
- tusb_task(); // handle tinyusb event, task etc ...
- }
- }
- @endcode
+// backward compatible only. TODO remove later
+static inline void tusb_task(void)
+{
+ #if TUSB_OPT_HOST_ENABLED
+ tuh_task();
+ #endif
- */
-void tusb_task(void);
+ #if TUSB_OPT_DEVICE_ENABLED
+ tud_task();
+ #endif
+}
/** @} */