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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user