add tuh_inited() and tud_inited()
This commit is contained in:
		@@ -44,6 +44,10 @@
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// Device Data
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
 | 
			
		||||
// Invalid driver ID in itf2drv[] ep2drv[][] mapping
 | 
			
		||||
enum { DRVID_INVALID = 0xFFu };
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
  struct TU_ATTR_PACKED
 | 
			
		||||
@@ -76,9 +80,6 @@ typedef struct
 | 
			
		||||
 | 
			
		||||
static usbd_device_t _usbd_dev;
 | 
			
		||||
 | 
			
		||||
// Invalid driver ID in itf2drv[] ep2drv[][] mapping
 | 
			
		||||
enum { DRVID_INVALID = 0xFFu };
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// Class Driver
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
@@ -241,6 +242,8 @@ static inline usbd_class_driver_t const * get_driver(uint8_t drvid)
 | 
			
		||||
// DCD Event
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
 | 
			
		||||
static bool _initialized = false;
 | 
			
		||||
 | 
			
		||||
// Event queue
 | 
			
		||||
// OPT_MODE_DEVICE is used by OS NONE for mutex (disable usb isr)
 | 
			
		||||
OSAL_QUEUE_DEF(OPT_MODE_DEVICE, _usbd_qdef, CFG_TUD_TASK_QUEUE_SZ, dcd_event_t);
 | 
			
		||||
@@ -368,8 +371,16 @@ bool tud_connect(void)
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// USBD Task
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
bool tud_inited(void)
 | 
			
		||||
{
 | 
			
		||||
  return _initialized;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool tud_init (void)
 | 
			
		||||
{
 | 
			
		||||
  // skip if already initialized
 | 
			
		||||
  if (_initialized) return _initialized;
 | 
			
		||||
 | 
			
		||||
  TU_LOG2("USBD init\r\n");
 | 
			
		||||
 | 
			
		||||
  tu_varclr(&_usbd_dev);
 | 
			
		||||
@@ -402,6 +413,8 @@ bool tud_init (void)
 | 
			
		||||
  dcd_init(TUD_OPT_RHPORT);
 | 
			
		||||
  dcd_int_enable(TUD_OPT_RHPORT);
 | 
			
		||||
 | 
			
		||||
  _initialized = true;
 | 
			
		||||
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -43,6 +43,9 @@ extern "C" {
 | 
			
		||||
// Init device stack
 | 
			
		||||
bool tud_init (void);
 | 
			
		||||
 | 
			
		||||
// Check if device stack is already initialized
 | 
			
		||||
bool tud_inited(void);
 | 
			
		||||
 | 
			
		||||
// Task function should be called in main/rtos loop
 | 
			
		||||
void tud_task (void);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -121,6 +121,8 @@ enum { CONFIG_NUM = 1 }; // default to use configuration 1
 | 
			
		||||
// INTERNAL OBJECT & FUNCTION DECLARATION
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
 | 
			
		||||
static bool _initialized = false;
 | 
			
		||||
 | 
			
		||||
// including zero-address
 | 
			
		||||
CFG_TUSB_MEM_SECTION usbh_device_t _usbh_devices[CFG_TUSB_HOST_DEVICE_MAX+1];
 | 
			
		||||
 | 
			
		||||
@@ -170,8 +172,19 @@ void osal_task_delay(uint32_t msec)
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// CLASS-USBD API (don't require to verify parameters)
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
 | 
			
		||||
bool tuh_inited(void)
 | 
			
		||||
{
 | 
			
		||||
  return _initialized;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool tuh_init(void)
 | 
			
		||||
{
 | 
			
		||||
  // skip if already initialized
 | 
			
		||||
  if (_initialized) return _initialized;
 | 
			
		||||
 | 
			
		||||
  TU_LOG2("USBH init\r\n");
 | 
			
		||||
 | 
			
		||||
  tu_memclr(_usbh_devices, sizeof(usbh_device_t)*(CFG_TUSB_HOST_DEVICE_MAX+1));
 | 
			
		||||
 | 
			
		||||
  //------------- Enumeration & Reporter Task init -------------//
 | 
			
		||||
@@ -202,6 +215,7 @@ bool tuh_init(void)
 | 
			
		||||
  TU_ASSERT(hcd_init(TUH_OPT_RHPORT));
 | 
			
		||||
  hcd_int_enable(TUH_OPT_RHPORT);
 | 
			
		||||
 | 
			
		||||
  _initialized = true;
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -78,6 +78,9 @@ typedef bool (*tuh_control_complete_cb_t)(uint8_t dev_addr, tusb_control_request
 | 
			
		||||
// Init host stack
 | 
			
		||||
bool tuh_init(void);
 | 
			
		||||
 | 
			
		||||
// Check if host stack is already initialized
 | 
			
		||||
bool tuh_inited(void);
 | 
			
		||||
 | 
			
		||||
// Task function should be called in main/rtos loop
 | 
			
		||||
void tuh_task(void);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user