UM10462 All information provided in this document is subject to legal disclaimers. © NXP B.V. 2016. All rights reserved.
User manual Rev. 5.5 — 21 December 2016 171 of 523
NXP Semiconductors
UM10462
Chapter 10: LPC11U3x/2x/1x USB on-chip drivers
– USB descriptors data structure (Table 191 “_USB_CORE_DESCS_T class
structure”)
– USB device stack initialization parameter data structure (Table 200
“USBD_API_INIT_PARAM class structure”).
– USB device stack core API functions structure (Table 203 “
USBD_CORE_API
class structure”).
• Device Firmware Upgrade (DFU) class function driver
– DFU descriptors data structure (Table 205 “
USBD_DFU_INIT_PARAM class
structure”).
– DFU class API functions structure. This module exposes functions which interact
directly with the USB device controller hardware (Table 204 “
USBD_DFU_API
class structure”).
• HID class function driver
– struct (Table 184 “
_HID_DESCRIPTOR class structure”).
– struct (Table 186 “
_HID_REPORT_T class structure”).
– USB descriptors data structure (Table 207 “
USBD_HID_INIT_PARAM class
structure”).
– HID class API functions structure. This structure contains pointers to all the
functions exposed by the HID function driver module (Table 208 “
USBD_HW_API
class structure”).
• USB device controller driver
– Hardware API functions structure. This module exposes functions which interact
directly with the USB device controller hardware (Table 208 “
USBD_HW_API class
structure”).
• Mass Storage Class (MSC) function driver
– Mass Storage Class function driver initialization parameter data structure
(Table 210
).
– MSC class API functions structure. This module exposes functions which interact
directly with the USB device controller hardware (Table 209
).
10.4 Calling the USB device driver
A fixed location in ROM contains a pointer to the ROM driver table i.e. 0x1FFF 1FF8. The
ROM driver table contains a pointer to the USB driver table. Pointers to the various USB
driver functions are stored in this table. USB driver functions can be called by using a C
structure. Figure 19
illustrates the pointer mechanism used to access the on-chip USB
driver.
typedef struct USBD_API
{
const USBD_HW_API_T* hw;
const USBD_CORE_API_T* core;
const USBD_MSC_API_T* msc;