USBLibAPIGuide
1.00.00.01
|
Data Structures | |
struct | tDeviceInfo |
struct | tCompositeEntry |
struct | tCustomHandlers |
struct | tConfigSection |
struct | tConfigHeader |
Macros | |
#define | EP_INFO_IN 0 |
#define | EP_INFO_OUT 1 |
#define | HALT_EP_IN 0 |
#define | HALT_EP_OUT 1 |
#define | EP0_MAX_PACKET_SIZE 64 |
#define | DEV_ADDR_PENDING 0x80000000 |
#define | DEFAULT_CONFIG_ID 1 |
#define | REMOTE_WAKEUP_PULSE_MS 10 |
#define | REMOTE_WAKEUP_READY_MS 20 |
#define | USBLIB_LPM_STATE_DISABLED 0x00000000 |
#define | USBLIB_LPM_STATE_AWAKE 0x00000001 |
#define | USBLIB_LPM_STATE_SLEEP 0x00000002 |
#define | USB_MAX_INTERFACES_PER_DEVICE 8 |
Typedefs | |
typedef void(* | tStdRequest) (void *pvInstance, tUSBRequest *pUSBRequest) |
typedef void(* | tInfoCallback) (void *pvInstance, uint32_t ui32Info) |
typedef void(* | tInterfaceCallback) (void *pvInstance, uint8_t ui8InterfaceNum, uint8_t ui8AlternateSetting) |
typedef void(* | tUSBIntHandler) (void *pvInstance) |
typedef void(* | tUSBEPIntHandler) (void *pvInstance, uint32_t ui32Status) |
typedef void(* | tUSBDeviceHandler) (void *pvInstance, uint32_t ui32Request, void *pvRequestData) |
Functions | |
uint32_t | USBDCDConfigDescGetSize (const tConfigHeader *psConfig) |
uint32_t | USBDCDConfigDescGetNum (const tConfigHeader *psConfig, uint32_t ui32Type) |
tDescriptorHeader * | USBDCDConfigDescGet (const tConfigHeader *psConfig, uint32_t ui32Type, uint32_t ui32Index, uint32_t *pui32Section) |
uint32_t | USBDCDConfigGetNumAlternateInterfaces (const tConfigHeader *psConfig, uint8_t ui8InterfaceNumber) |
tInterfaceDescriptor * | USBDCDConfigGetInterface (const tConfigHeader *psConfig, uint32_t ui32Index, uint32_t ui32Alt, uint32_t *pui32Section) |
tEndpointDescriptor * | USBDCDConfigGetInterfaceEndpoint (const tConfigHeader *psConfig, uint32_t ui32InterfaceNumber, uint32_t ui32AltCfg, uint32_t ui32Index) |
bool | USBDeviceConfig (tDCDInstance *psDevInst, const tConfigHeader *psConfig) |
bool | USBDeviceConfigAlternate (tDCDInstance *psDevInst, const tConfigHeader *psConfig, uint8_t ui8InterfaceNum, uint8_t ui8AlternateSetting) |
void | USBDCDDeviceInfoInit (uint32_t ui32Index, tDeviceInfo *psDeviceInfo) |
void | USBDCDInit (uint32_t ui32Index, tDeviceInfo *psDevice, void *pvDCDCBData) |
void | USBDCDTerm (uint32_t ui32Index) |
void | USBDCDRequestDataEP0 (uint32_t ui32Index, uint8_t *pui8Data, uint32_t ui32Size) |
void | USBDCDSendDataEP0 (uint32_t ui32Index, uint8_t *pui8Data, uint32_t ui32Size) |
void | USBDCDSetDefaultConfiguration (uint32_t ui32Index, uint32_t ui32DefaultConfig) |
void | USBDCDStallEP0 (uint32_t ui32Index) |
void | USBDCDPowerStatusSet (uint32_t ui32Index, uint8_t ui8Power) |
bool | USBDCDFeatureSet (uint32_t ui32Index, uint32_t ui32Feature, void *pvFeature) |
bool | USBDCDFeatureGet (uint32_t ui32Index, uint32_t ui32Feature, void *pvFeature) |
bool | USBDCDRemoteWakeLPM (uint32_t ui32Index) |
bool | USBDCDRemoteWakeupRequest (uint32_t ui32Index) |
void | USBDeviceResumeTickHandler (tDCDInstance *psDevInst) |
void | USBDeviceEnumHandler (tDCDInstance *pDevInstance) |
void | USBDeviceEnumResetHandler (tDCDInstance *pDevInstance) |
void | USBDeviceIntHandlerInternal (uint32_t ui32Index, uint32_t ui32Status) |
void | USB0_IRQDeviceHandler (void) |
Variables | |
tDCDInstance | g_psDCDInst [1] |
tDeviceInfo * | g_ppsDevInfo [1] |
#define EP_INFO_IN 0 |
Referenced by USBDeviceConfig().
#define EP_INFO_OUT 1 |
Referenced by USBDeviceConfig().
#define HALT_EP_IN 0 |
#define HALT_EP_OUT 1 |
#define EP0_MAX_PACKET_SIZE 64 |
#define DEV_ADDR_PENDING 0x80000000 |
Referenced by USBDeviceEnumHandler().
#define DEFAULT_CONFIG_ID 1 |
Referenced by USBDCDDeviceInfoInit().
#define REMOTE_WAKEUP_PULSE_MS 10 |
Referenced by USBDeviceResumeTickHandler().
#define REMOTE_WAKEUP_READY_MS 20 |
Referenced by USBDeviceResumeTickHandler().
#define USBLIB_LPM_STATE_DISABLED 0x00000000 |
#define USBLIB_LPM_STATE_AWAKE 0x00000001 |
Referenced by USBDeviceIntHandlerInternal().
#define USBLIB_LPM_STATE_SLEEP 0x00000002 |
Referenced by USBDeviceIntHandlerInternal().
#define USB_MAX_INTERFACES_PER_DEVICE 8 |
The maximum number of independent interfaces that any single device implementation can support. Independent interfaces means interface descriptors with different bInterfaceNumber values - several interface descriptors offering different alternative settings but the same interface number count as a single interface.
Referenced by USBDeviceEnumResetHandler().
typedef void(* tStdRequest) (void *pvInstance, tUSBRequest *pUSBRequest) |
typedef void(* tInfoCallback) (void *pvInstance, uint32_t ui32Info) |
typedef void(* tInterfaceCallback) (void *pvInstance, uint8_t ui8InterfaceNum, uint8_t ui8AlternateSetting) |
typedef void(* tUSBIntHandler) (void *pvInstance) |
typedef void(* tUSBEPIntHandler) (void *pvInstance, uint32_t ui32Status) |
typedef void(* tUSBDeviceHandler) (void *pvInstance, uint32_t ui32Request, void *pvRequestData) |
Generic handler callbacks that are used when the callers needs to call into an instance of class.
uint32_t USBDCDConfigDescGetSize | ( | const tConfigHeader * | psConfig | ) |
References tConfigHeader::psSections, tConfigSection::ui16Size, and tConfigHeader::ui8NumSections.
uint32_t USBDCDConfigDescGetNum | ( | const tConfigHeader * | psConfig, |
uint32_t | ui32Type | ||
) |
References tConfigHeader::psSections, tConfigSection::pui8Data, tConfigSection::ui16Size, tConfigHeader::ui8NumSections, and USBDescGetNum().
Referenced by USBDeviceConfig(), and USBDeviceConfigAlternate().
tDescriptorHeader* USBDCDConfigDescGet | ( | const tConfigHeader * | psConfig, |
uint32_t | ui32Type, | ||
uint32_t | ui32Index, | ||
uint32_t * | pui32Section | ||
) |
References tConfigHeader::psSections, tConfigSection::pui8Data, tConfigSection::ui16Size, tConfigHeader::ui8NumSections, USBDescGet(), and USBDescGetNum().
Referenced by USBDCDConfigGetInterface(), and USBDeviceConfig().
uint32_t USBDCDConfigGetNumAlternateInterfaces | ( | const tConfigHeader * | psConfig, |
uint8_t | ui8InterfaceNumber | ||
) |
References tConfigHeader::psSections, tConfigSection::pui8Data, and USB_DTYPE_INTERFACE.
tInterfaceDescriptor* USBDCDConfigGetInterface | ( | const tConfigHeader * | psConfig, |
uint32_t | ui32Index, | ||
uint32_t | ui32Alt, | ||
uint32_t * | pui32Section | ||
) |
References USB_DESC_ANY, USB_DTYPE_INTERFACE, and USBDCDConfigDescGet().
Referenced by USBDCDConfigGetInterfaceEndpoint(), USBDeviceConfig(), and USBDeviceConfigAlternate().
tEndpointDescriptor* USBDCDConfigGetInterfaceEndpoint | ( | const tConfigHeader * | psConfig, |
uint32_t | ui32InterfaceNumber, | ||
uint32_t | ui32AltCfg, | ||
uint32_t | ui32Index | ||
) |
References USB_DTYPE_ENDPOINT, and USBDCDConfigGetInterface().
Referenced by USBDeviceConfig(), USBDeviceConfigAlternate(), and USBDHIDCompositeInit().
bool USBDeviceConfig | ( | tDCDInstance * | psDevInst, |
const tConfigHeader * | psConfig | ||
) |
Configure the USB controller appropriately for the device whose configuration descriptor is passed.
psDevInst | is a pointer to the device instance being configured. |
psConfig | is a pointer to the configuration descriptor that the USB controller is to be set up to support. |
This function may be used to initialize a USB controller to operate as the device whose configuration descriptor is passed. The function enables the USB controller, partitions the FIFO appropriately and configures each endpoint required by the configuration. If the supplied configuration supports multiple alternate settings for any interface, the USB FIFO is set up assuming the worst case use (largest packet size for a given endpoint in any alternate setting using that endpoint) to allow for on-the-fly alternate setting changes later. On return from this function, the USB controller is configured for correct operation of the default configuration of the device described by the descriptor passed.
References EP_INFO_IN, EP_INFO_OUT, USB_DESC_ANY, USB_DTYPE_ENDPOINT, USB_DTYPE_INTERFACE, USB_EP_DESC_IN, USB_EP_DESC_NUM_M, USBDCDConfigDescGet(), USBDCDConfigDescGetNum(), USBDCDConfigGetInterface(), and USBDCDConfigGetInterfaceEndpoint().
bool USBDeviceConfigAlternate | ( | tDCDInstance * | psDevInst, |
const tConfigHeader * | psConfig, | ||
uint8_t | ui8InterfaceNum, | ||
uint8_t | ui8AlternateSetting | ||
) |
Configure the affected USB endpoints appropriately for one alternate interface setting.
psDevInst | is a pointer to the device instance being configured. |
psConfig | is a pointer to the configuration descriptor that contains the interface whose alternate settings is to be configured. |
ui8InterfaceNum | is the number of the interface whose alternate setting is to be configured. This number corresponds to the bInterfaceNumber field in the desired interface descriptor. |
ui8AlternateSetting | is the alternate setting number for the desired interface. This number corresponds to the bAlternateSetting field in the desired interface descriptor. |
This function may be used to reconfigure the endpoints of an interface for operation in one of the interface's alternate settings. Note that this function assumes that the endpoint FIFO settings will not need to change and only the endpoint mode is changed. This assumption is valid if the USB controller was initialized using a previous call to USBDCDConfig().
In reconfiguring the interface endpoints, any additional configuration bits set in the endpoint configuration other than the direction (USB_EP_DEV_IN or USB_EP_DEV_OUT) and mode (USB_EP_MODE_MASK) are preserved.
References USB_DESC_ANY, USB_DTYPE_INTERFACE, USBDCDConfigDescGetNum(), USBDCDConfigGetInterface(), and USBDCDConfigGetInterfaceEndpoint().
void USBDCDDeviceInfoInit | ( | uint32_t | ui32Index, |
tDeviceInfo * | psDeviceInfo | ||
) |
Initialize an instance of the tDeviceInfo structure.
ui32Index | is the index of the USB controller which is to be initialized. |
psDeviceInfo | is a pointer to the tDeviceInfo structure that needs to be initialized. |
This function must be called by a USB device class instance to initialize the basic tDeviceInfo required for all USB device class modules. This is typically called in the initialization routine for USB device class. For example in usbdaudio.c that supports USB device audio classes, this function is called in the USBDAudioCompositeInit() function which is used for both composite and non-composites instances of the USB audio class.
References tDCDInstance::bPwrSrcSet, tDCDInstance::bRemoteWakeup, DEFAULT_CONFIG_ID, eUSBStateIdle, tDCDInstance::iEP0State, tDCDInstance::ui32Configuration, tDCDInstance::ui32DefaultConfiguration, tDCDInstance::ui32IntNum, tDCDInstance::ui32LPMState, and tDCDInstance::ui8Status.
Referenced by USBDCDInit(), and USBDHIDCompositeInit().
void USBDCDInit | ( | uint32_t | ui32Index, |
tDeviceInfo * | psDevice, | ||
void * | pvDCDCBData | ||
) |
Initialize the USB library device control driver for a given hardware controller.
ui32Index | is the index of the USB controller which is to be initialized. |
psDevice | is a pointer to a structure containing information that the USB library requires to support operation of this application's device. The structure contains event handler callbacks and pointers to the various standard descriptors that the device wishes to publish to the host. |
pvDCDCBData | is the callback data for any device callbacks. |
This function must be called by a device class which wishes to operate as a USB device and is not typically called by an application. This function initializes the USB device control driver for the given controller and saves the device information for future use. Prior to returning from this function, the device is connected to the USB bus. Following return, the caller can expect to receive a callback to the supplied pfnResetHandler
function when a host connects to the device. The pvDCDCBData contains a pointer to data that is returned with the DCD calls back to the function in the psDevice->psCallbacks() functions.
The device information structure passed in psDevice must remain unchanged between this call and any matching call to USBDCDTerm() because it is not copied by the USB library.
The USBStackModeSet() function can be called with eUSBModeForceDevice in order to cause the USB library to force the USB operating mode to a device controller. This allows the application to used the USBVBUS and USBID pins as GPIOs on devices that support forcing OTG to operate as a device only controller. By default the USB library will assume that the USBVBUS and USBID pins are configured as USB pins and not GPIOs.
References eUSBModeDevice, eUSBModeForceHost, eUSBModeHost, eUSBModeNone, eUSBModeOTG, g_iUSBMode, tDCDInstance::pvCBData, and USBDCDDeviceInfoInit().
Referenced by USBDBulkInit(), USBDCDCInit(), and USBDHIDInit().
void USBDCDTerm | ( | uint32_t | ui32Index | ) |
Free the USB library device control driver for a given hardware controller.
ui32Index | is the index of the USB controller which is to be freed. |
This function should be called by an application if it no longer requires the use of a given USB controller to support its operation as a USB device. It frees the controller for use by another client.
It is the caller's responsibility to remove its device from the USB bus prior to calling this function.
References InternalUSBTickReset().
Referenced by USBDAudioTerm(), USBDBulkTerm(), USBDCDCTerm(), USBDDFUCompositeTerm(), USBDDFUUpdateBegin(), USBDHIDTerm(), and USBDMSCTerm().
void USBDCDRequestDataEP0 | ( | uint32_t | ui32Index, |
uint8_t * | pui8Data, | ||
uint32_t | ui32Size | ||
) |
This function starts the request for data from the host on endpoint zero.
ui32Index | is the index of the USB controller from which the data is being requested. |
pui8Data | is a pointer to the buffer to fill with data from the USB host. |
ui32Size | is the size of the buffer or data to return from the USB host. |
This function handles retrieving data from the host when a custom command has been issued on endpoint zero. If the application needs notification when the data has been received, psCallbacks->pfnDataReceived()
in the tDeviceInfo structure must contain valid function pointer. In nearly all cases this is necessary because the caller of this function would likely need to know that the data requested was received.
References eUSBStateRx, tDCDInstance::iEP0State, tDCDInstance::pui8EP0Data, tDCDInstance::ui32EP0DataRemain, and tDCDInstance::ui32OUTDataSize.
void USBDCDSendDataEP0 | ( | uint32_t | ui32Index, |
uint8_t * | pui8Data, | ||
uint32_t | ui32Size | ||
) |
This function requests transfer of data to the host on endpoint zero.
ui32Index | is the index of the USB controller which is to be used to send the data. |
pui8Data | is a pointer to the buffer to send via endpoint zero. |
ui32Size | is the amount of data to send in bytes. |
This function handles sending data to the host when a custom command is issued or non-standard descriptor has been requested on endpoint zero. If the application needs notification when this is complete, psCallbacks->pfnDataSent
in the tDeviceInfo structure must contain a valid function pointer. This callback could be used to free up the buffer passed into this function in the pui8Data parameter. The contents of the pui8Data buffer must remain unchanged until the pfnDataSent
callback is received.
References tDCDInstance::pui8EP0Data, tDCDInstance::ui32EP0DataRemain, and tDCDInstance::ui32OUTDataSize.
void USBDCDSetDefaultConfiguration | ( | uint32_t | ui32Index, |
uint32_t | ui32DefaultConfig | ||
) |
This function sets the default configuration for the device.
ui32Index | is the index of the USB controller whose default configuration is to be set. |
ui32DefaultConfig | is the configuration identifier (byte 6 of the standard configuration descriptor) which is to be presented to the host as the default configuration in cases where the configuration descriptor is queried prior to any specific configuration being set. |
This function allows a device to override the default configuration descriptor that will be returned to a host whenever it is queried prior to a specific configuration having been set. The parameter passed must equal one of the configuration identifiers found in the ppsConfigDescriptors
array for the device.
If this function is not called, the USB library will return the first configuration in the ppsConfigDescriptors
array as the default configuration.
bConfigurationValue
) stored within the configuration descriptor array, ppsConfigDescriptors
, are equal to the array index + 1. In other words, the first entry in the array must contain a descriptor with bConfigurationValue
1, the second must have bConfigurationValue
2 and so on.References tDCDInstance::ui32DefaultConfiguration.
void USBDCDStallEP0 | ( | uint32_t | ui32Index | ) |
This function generates a stall condition on endpoint zero.
ui32Index | is the index of the USB controller whose endpoint zero is to be stalled. |
This function is typically called to signal an error condition to the host when an unsupported request is received by the device. It should be called from within the callback itself (in interrupt context) and not deferred until later since it affects the operation of the endpoint zero state machine in the USB library.
References eUSBStateStall, and tDCDInstance::iEP0State.
void USBDCDPowerStatusSet | ( | uint32_t | ui32Index, |
uint8_t | ui8Power | ||
) |
Reports the device power status (bus- or self-powered) to the library.
ui32Index | is the index of the USB controller whose device power status is being reported. |
ui8Power | indicates the current power status, either USB_STATUS_SELF_PWR or USB_STATUS_BUS_PWR. |
Applications which support switching between bus- or self-powered operation should call this function whenever the power source changes to indicate the current power status to the USB library. This information is required by the library to allow correct responses to be provided when the host requests status from the device.
References tDCDInstance::bPwrSrcSet, tDCDInstance::ui8Status, USB_STATUS_BUS_PWR, USB_STATUS_PWR_M, and USB_STATUS_SELF_PWR.
Referenced by USBDBulkPowerStatusSet(), USBDCDCPowerStatusSet(), and USBDHIDPowerStatusSet().
bool USBDCDFeatureSet | ( | uint32_t | ui32Index, |
uint32_t | ui32Feature, | ||
void * | pvFeature | ||
) |
This function is used to enable/disable features of the USB library.
ui32Index | is the index of the USB controller whose device power status is being reported. |
ui32Feature | indicates which feature is being changed. |
pvFeature | holds the data that controls the feature request. |
Applications can change the support levels of some USB library features by calling this function to enable/disable certain features. This function should normally be called before class initialization functions since the settings need to be in place before enumeration starts. This allows the USB library to properly respond to all enumeration requests. The ui32Feature value is one of the USBLIB_FEATURE_* defines which controls the type of request being made. The pvFeature is a feature specific data structure that is determined by the value passed in the ui32Feature parameter.
References tDCDInstance::ui32Features, tLPMFeature::ui32Features, USBLIB_FEATURE_LPM, USBLIB_FEATURE_LPM_EN, and USBLIB_FEATURE_USBPLL.
Referenced by USBOTGFeatureSet().
bool USBDCDFeatureGet | ( | uint32_t | ui32Index, |
uint32_t | ui32Feature, | ||
void * | pvFeature | ||
) |
This function is used to get the features of the USB library.
ui32Index | is the index of the USB controller whose device power status is being reported. |
ui32Feature | indicates which feature is being requested. |
pvFeature | holds the data that will be reported for the feature request. |
Applications can query the support levels of some USB library features by calling this function to get values of the features. This function should normally be called before class initialization functions since the settings need to be in place during enumeration. This allows the USB library to properly respond to all enumeration requests. The ui32Feature value is one of the USBLIB_FEATURE_* defines which controls the type of request being made. The pvFeature is a feature specific data structure that is determined by the value passed in the ui32Feature parameter.
References USBLIB_FEATURE_USBULPI.
Referenced by USBDBulkCompositeInit(), and USBDCDCCompositeInit().
bool USBDCDRemoteWakeLPM | ( | uint32_t | ui32Index | ) |
Requests an LPM remote wake up to resume communication when in an LPM sleep state.
ui32Index | is the index of the USB controller that will request a bus wake up. |
When the host controller puts the device into an LPM sleep state, the device can call this function to initiate LPM remote wake up signaling to the host. If the remote wake up feature has been enabled by the host, this will cause the host to respond to the LPM remote wake request and resume normal operation. If the host has disabled remote wake up, false is returned to indicate that the wake up request was not successful.
bool USBDCDRemoteWakeupRequest | ( | uint32_t | ui32Index | ) |
Requests a remote wake up to resume communication when in suspended state.
ui32Index | is the index of the USB controller that will request a bus wake up. |
When the bus is suspended, an application which supports remote wake up (advertised to the host via the configuration descriptor) may call this function to initiate remote wake up signaling to the host. If the remote wake up feature has not been disabled by the host, this will cause the bus to resume operation within 20mS. If the host has disabled remote wake up, false will be returned to indicate that the wake up request was not successful.
References tDCDInstance::bRemoteWakeup, tDCDInstance::ui8RemoteWakeupCount, and USB_STATUS_REMOTE_WAKE.
Referenced by USBDBulkRemoteWakeupRequest(), USBDCDCRemoteWakeupRequest(), and USBDHIDRemoteWakeupRequest().
void USBDeviceResumeTickHandler | ( | tDCDInstance * | psDevInst | ) |
void USBDeviceEnumHandler | ( | tDCDInstance * | pDevInstance | ) |
References DEV_ADDR_PENDING, eUSBStateIdle, eUSBStateStatus, tDCDInstance::iEP0State, and tDCDInstance::ui32DevAddress.
Referenced by USBDeviceIntHandlerInternal().
void USBDeviceEnumResetHandler | ( | tDCDInstance * | pDevInstance | ) |
References tDCDInstance::bRemoteWakeup, tCustomHandlers::pfnResetHandler, tDeviceInfo::psCallbacks, tDCDInstance::pui8AltSetting, tDCDInstance::ui32Configuration, tDCDInstance::ui32DefaultConfiguration, tDCDInstance::ui8Status, USB_MAX_INTERFACES_PER_DEVICE, and USB_STATUS_REMOTE_WAKE.
Referenced by USBDeviceIntHandlerInternal().
void USBDeviceIntHandlerInternal | ( | uint32_t | ui32Index, |
uint32_t | ui32Status | ||
) |
References g_ui32USBSOFCount, InternalUSBStartOfFrameTick(), tCustomHandlers::pfnDeviceHandler, tCustomHandlers::pfnDisconnectHandler, tCustomHandlers::pfnEndpointHandler, tCustomHandlers::pfnResumeHandler, tCustomHandlers::pfnSuspendHandler, tDeviceInfo::psCallbacks, tDCDInstance::pvCBData, tDCDInstance::ui32LPMState, USB_EVENT_LPM_ERROR, USB_EVENT_LPM_RESUME, USB_EVENT_LPM_SLEEP, USB_SOF_TICK_DIVIDE, USBDeviceEnumHandler(), USBDeviceEnumResetHandler(), USBDeviceResumeTickHandler(), USBLIB_LPM_STATE_AWAKE, USBLIB_LPM_STATE_SLEEP, USBLibDMAIntHandler, and USBLibDMAIntStatus.
Referenced by USB0_IRQDeviceHandler(), and USB0DualModeIntHandler().
void USB0_IRQDeviceHandler | ( | void | ) |
The USB device interrupt handler.
This the main USB interrupt handler entry point for use in USB device applications. This top-level handler will branch the interrupt off to the appropriate application or stack handlers depending on the current status of the USB controller.
Applications which operate purely as USB devices (rather than dual mode applications which can operate in either device or host mode at different times) must ensure that a pointer to this function is installed in the interrupt vector table entry for the USB0 interrupt. For dual mode operation, the vector should be set to point to USB0DualModeIntHandler() instead.
References USBDeviceIntHandlerInternal().
tDCDInstance g_psDCDInst[1] |
Referenced by USBDualModeInit(), USBDualModeTerm(), and USBOTGModeTerm().
tDeviceInfo* g_ppsDevInfo[1] |