Просмотр исходного кода

add tusb_inited() API, check for inited() before running device/host task

hathach 7 лет назад
Родитель
Сommit
e4e8413acc
4 измененных файлов с 14 добавлено и 0 удалено
  1. 3 0
      src/device/usbd.c
  2. 3 0
      src/host/usbh.c
  3. 5 0
      src/tusb.c
  4. 3 0
      src/tusb.h

+ 3 - 0
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)
   {

+ 3 - 0
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)
   {

+ 5 - 0
src/tusb.c

@@ -68,6 +68,11 @@ bool tusb_init(void)
   return TUSB_ERROR_NONE;
 }
 
+bool tusb_inited(void)
+{
+  return _initialized;
+}
+
 /*------------------------------------------------------------------*/
 /* Debug
  *------------------------------------------------------------------*/

+ 3 - 0
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);