From e4e8413acc6b293b620cae762fd4ea45c5de1cd1 Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 29 Jan 2019 19:05:07 +0700 Subject: [PATCH] add tusb_inited() API, check for inited() before running device/host task --- src/device/usbd.c | 3 +++ src/host/usbh.c | 3 +++ src/tusb.c | 5 +++++ src/tusb.h | 3 +++ 4 files changed, 14 insertions(+) diff --git a/src/device/usbd.c b/src/device/usbd.c index 9c08a793..d4eccf0c 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 4334729e..a7e7c2ac 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 ad2dcbfd..566d74df 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 fb20c5ff..69c4d16d 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);