summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2019-01-29 19:05:07 +0700
committerhathach <[email protected]>2019-01-29 19:05:07 +0700
commite4e8413acc6b293b620cae762fd4ea45c5de1cd1 (patch)
tree3ff0d6a9008f67ebb22310375d10ef12e8d5bc1a
parent777f41a066315c2c0d9e5c98773363937a9c920d (diff)
add tusb_inited() API, check for inited() before running device/host task
-rw-r--r--src/device/usbd.c3
-rw-r--r--src/host/usbh.c3
-rw-r--r--src/tusb.c5
-rw-r--r--src/tusb.h3
4 files changed, 14 insertions, 0 deletions
diff --git a/src/device/usbd.c b/src/device/usbd.c
index 9c08a7932..d4eccf0c4 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -240,6 +240,9 @@ static void usbd_reset(uint8_t rhport)
*/
void tud_task (void)
{
+ // Skip if stack is not initialized
+ if ( !tusb_inited() ) return;
+
// Loop until there is no more events in the queue
while (1)
{
diff --git a/src/host/usbh.c b/src/host/usbh.c
index 4334729e9..a7e7c2acd 100644
--- a/src/host/usbh.c
+++ b/src/host/usbh.c
@@ -620,6 +620,9 @@ bool enum_task(hcd_event_t* event)
*/
void tuh_task(void)
{
+ // Skip if stack is not initialized
+ if ( !tusb_inited() ) return;
+
// Loop until there is no more events in the queue
while (1)
{
diff --git a/src/tusb.c b/src/tusb.c
index ad2dcbfd3..566d74df7 100644
--- a/src/tusb.c
+++ b/src/tusb.c
@@ -68,6 +68,11 @@ bool tusb_init(void)
return TUSB_ERROR_NONE;
}
+bool tusb_inited(void)
+{
+ return _initialized;
+}
+
/*------------------------------------------------------------------*/
/* Debug
*------------------------------------------------------------------*/
diff --git a/src/tusb.h b/src/tusb.h
index fb20c5ff7..69c4d16d2 100644
--- a/src/tusb.h
+++ b/src/tusb.h
@@ -108,6 +108,9 @@
// Initialize device/host stack
bool tusb_init(void);
+// Check if stack is initialized
+bool tusb_inited(void);
+
// TODO
// bool tusb_teardown(void);