Цитата
/* Кстати чему pD равен в этом месте? */
pD = (BYTE *) USB_ConfigDescriptor->bLength;
На нулевой элемент дескриптора конфигурации.
Атрибут __packed выравнивает адресс по байтам?Этот пример из rw , а какой атрибут использовать в gcc?
Код
typedef __packed struct _USB_CONFIGURATION_DESCRIPTOR {
BYTE bLength;
BYTE bDescriptorType;
WORD wTotalLength;
BYTE bNumInterfaces;
BYTE bConfigurationValue;
BYTE iConfiguration;
BYTE bmAttributes;
BYTE MaxPower;
} USB_CONFIGURATION_DESCRIPTOR;