Во вложении файлы, в которых размещены дескрипторы. Ничего особенного - объявлены структуры дескрипторов устройств.
Вот функция, которая записывает данные в FIFO IN OTG
Код
/*******************************************************************************
Put data to EP IN FIFO over SW cycle
*******************************************************************************/
static void FIFO_IN_Put(UINT32 volatile *in_fifo, UINT32 const *p_src, INT src_len)
{
INT w_count = (src_len + 3) >> 2;
while(w_count--)
*in_fifo = *p_src++;
}
Программа падает в хардфолт в ней сразу после обращения к данным в указателе p_src сразу же при первом вызове функции. При этом в p_src находится адрес дескриптора устройства. См. картинку.

Ниже вырезка из MAP-фала для STM32F107. Видно, что все данные, которым положено быть выровненными - выровнены:
Код
g_PUSBD_DeviceDescriptor 0x08002928 Data 18 usbd_desc_device.o(.constdata)
g_PUSBD_LanguageStringDescriptor 0x0800293c Data 4 usbd_desc_device.o(.constdata)
g_PUSBD_VendorStringDescriptor 0x08002940 Data 18 usbd_desc_device.o(.constdata)
g_PUSBD_ProductStringDescriptor 0x08002954 Data 44 usbd_desc_device.o(.constdata)
g_PUSBD_SerialStringDescriptor 0x08002980 Data 34 usbd_desc_device.o(.constdata)
g_PUSBD_HID_Report 0x080029a2 Data 25 usbd_desc_msd_hid.o(.constdata)
g_PUSBD_HID_ReportLen 0x080029bb Data 1 usbd_desc_msd_hid.o(.constdata)
g_PUSBD_ConfigDescriptor 0x080029bc Data 64 usbd_desc_msd_hid.o(.constdata)
g_PUSBD_MSD_MediaInquiryData 0x080029fc Data 44 usbd_desc_msd_hid.o(.constdata)
А это для STM32L475
Код
g_PUSBD_DeviceDescriptor 0x08002348 Data 18 usbd_desc_device.o(.constdata)
g_PUSBD_LanguageStringDescriptor 0x0800235a Data 4 usbd_desc_device.o(.constdata)
g_PUSBD_VendorStringDescriptor 0x0800235e Data 18 usbd_desc_device.o(.constdata)
g_PUSBD_ProductStringDescriptor 0x08002370 Data 44 usbd_desc_device.o(.constdata)
g_PUSBD_SerialStringDescriptor 0x0800239c Data 34 usbd_desc_device.o(.constdata)
g_PUSBD_HID_Report 0x080023be Data 25 usbd_desc_msd_hid.o(.constdata)
g_PUSBD_HID_ReportLen 0x080023d7 Data 1 usbd_desc_msd_hid.o(.constdata)
g_PUSBD_ConfigDescriptor 0x080023d8 Data 64 usbd_desc_msd_hid.o(.constdata)
g_PUSBD_MSD_MediaInquiryData 0x08002418 Data 44 usbd_desc_msd_hid.o(.constdata)