mirror of
https://github.com/hathach/tinyusb.git
synced 2025-04-18 11:42:25 +00:00
add tuh_inited() and tud_inited()
This commit is contained in:
parent
68fa17e17c
commit
2666e1efec
@ -44,6 +44,10 @@
|
|||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// Device Data
|
// Device Data
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|
||||||
|
// Invalid driver ID in itf2drv[] ep2drv[][] mapping
|
||||||
|
enum { DRVID_INVALID = 0xFFu };
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
struct TU_ATTR_PACKED
|
struct TU_ATTR_PACKED
|
||||||
@ -76,9 +80,6 @@ typedef struct
|
|||||||
|
|
||||||
static usbd_device_t _usbd_dev;
|
static usbd_device_t _usbd_dev;
|
||||||
|
|
||||||
// Invalid driver ID in itf2drv[] ep2drv[][] mapping
|
|
||||||
enum { DRVID_INVALID = 0xFFu };
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// Class Driver
|
// Class Driver
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
@ -241,6 +242,8 @@ static inline usbd_class_driver_t const * get_driver(uint8_t drvid)
|
|||||||
// DCD Event
|
// DCD Event
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|
||||||
|
static bool _initialized = false;
|
||||||
|
|
||||||
// Event queue
|
// Event queue
|
||||||
// OPT_MODE_DEVICE is used by OS NONE for mutex (disable usb isr)
|
// 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);
|
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
|
// USBD Task
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
bool tud_inited(void)
|
||||||
|
{
|
||||||
|
return _initialized;
|
||||||
|
}
|
||||||
|
|
||||||
bool tud_init (void)
|
bool tud_init (void)
|
||||||
{
|
{
|
||||||
|
// skip if already initialized
|
||||||
|
if (_initialized) return _initialized;
|
||||||
|
|
||||||
TU_LOG2("USBD init\r\n");
|
TU_LOG2("USBD init\r\n");
|
||||||
|
|
||||||
tu_varclr(&_usbd_dev);
|
tu_varclr(&_usbd_dev);
|
||||||
@ -402,6 +413,8 @@ bool tud_init (void)
|
|||||||
dcd_init(TUD_OPT_RHPORT);
|
dcd_init(TUD_OPT_RHPORT);
|
||||||
dcd_int_enable(TUD_OPT_RHPORT);
|
dcd_int_enable(TUD_OPT_RHPORT);
|
||||||
|
|
||||||
|
_initialized = true;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,6 +43,9 @@ extern "C" {
|
|||||||
// Init device stack
|
// Init device stack
|
||||||
bool tud_init (void);
|
bool tud_init (void);
|
||||||
|
|
||||||
|
// Check if device stack is already initialized
|
||||||
|
bool tud_inited(void);
|
||||||
|
|
||||||
// Task function should be called in main/rtos loop
|
// Task function should be called in main/rtos loop
|
||||||
void tud_task (void);
|
void tud_task (void);
|
||||||
|
|
||||||
|
@ -121,6 +121,8 @@ enum { CONFIG_NUM = 1 }; // default to use configuration 1
|
|||||||
// INTERNAL OBJECT & FUNCTION DECLARATION
|
// INTERNAL OBJECT & FUNCTION DECLARATION
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|
||||||
|
static bool _initialized = false;
|
||||||
|
|
||||||
// including zero-address
|
// including zero-address
|
||||||
CFG_TUSB_MEM_SECTION usbh_device_t _usbh_devices[CFG_TUSB_HOST_DEVICE_MAX+1];
|
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)
|
// CLASS-USBD API (don't require to verify parameters)
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|
||||||
|
bool tuh_inited(void)
|
||||||
|
{
|
||||||
|
return _initialized;
|
||||||
|
}
|
||||||
|
|
||||||
bool tuh_init(void)
|
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));
|
tu_memclr(_usbh_devices, sizeof(usbh_device_t)*(CFG_TUSB_HOST_DEVICE_MAX+1));
|
||||||
|
|
||||||
//------------- Enumeration & Reporter Task init -------------//
|
//------------- Enumeration & Reporter Task init -------------//
|
||||||
@ -202,6 +215,7 @@ bool tuh_init(void)
|
|||||||
TU_ASSERT(hcd_init(TUH_OPT_RHPORT));
|
TU_ASSERT(hcd_init(TUH_OPT_RHPORT));
|
||||||
hcd_int_enable(TUH_OPT_RHPORT);
|
hcd_int_enable(TUH_OPT_RHPORT);
|
||||||
|
|
||||||
|
_initialized = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,6 +78,9 @@ typedef bool (*tuh_control_complete_cb_t)(uint8_t dev_addr, tusb_control_request
|
|||||||
// Init host stack
|
// Init host stack
|
||||||
bool tuh_init(void);
|
bool tuh_init(void);
|
||||||
|
|
||||||
|
// Check if host stack is already initialized
|
||||||
|
bool tuh_inited(void);
|
||||||
|
|
||||||
// Task function should be called in main/rtos loop
|
// Task function should be called in main/rtos loop
|
||||||
void tuh_task(void);
|
void tuh_task(void);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user