NOTICE: This website will be shut down in the near future. Product content has moved to Forum content and FAQs have been moved to We encourage you to create a user account on to use the new community forums and access NXP microcontroller content. We greatly appreciate your contributions and look forward to seeing you at our new web location.


USB Device ROM Stack API

NXP_Support's picture
index.chm474.37 KB
File info
File version: 
NXP verified: 



The boot ROMs in some of the LPC devices contain flexible USB device stack to simplify the USB application development. The USB ROM stack has built-in support for Communication Device Class (CDC), the Human Interface Device (HID), the Mass Storage Class (MSC) and Device Firmware Upgrade (DFU) class. It also supports composite device model consisting of multiple interfaces of above supported classes. This document provides information on how to use this stack through the exposed ROM API.


The location of USBD_API_T structure in ROM is stored in ROM driver table. Below is the list of chip series and the location where the pointer to USBD_API_T* is stored. The 3rd column in the table below lists the expansion of USBD_API macro used in the usage.


USBD_API->Init(&g_AdcCtrl.hUsb, &desc, &usb_param);


Chip Series USBD_API_T* Address USBD_API
LPC18xx  0x1040011C #define USBD_API (*((USBD_API_T**)0x1040011C))
LPC43xx  0x1040011C #define USBD_API (*((USBD_API_T**)0x1040011C))
LPC11U2x  0x1FFF1FF8 #define USBD_API (*((USBD_API_T**)0x1FFF1FF8))