Fix USB, DOS line endings, integrate and reorganize project
[rapper.git] / new_cmsis / usb / desc.c
similarity index 87%
rename from new_cmsis/usb/usbdesc.c
rename to new_cmsis/usb/desc.c
index a2a75b0..ee1df87 100755 (executable)
-/*----------------------------------------------------------------------------\r
- *      U S B  -  K e r n e l\r
- *----------------------------------------------------------------------------\r
- * Name:    usbdesc.c\r
- * Purpose: USB Descriptors\r
- * Version: V1.20\r
- *----------------------------------------------------------------------------\r
- *      This software is supplied "AS IS" without any warranties, express,\r
- *      implied or statutory, including but not limited to the implied\r
- *      warranties of fitness for purpose, satisfactory quality and\r
- *      noninfringement. Keil extends you a royalty-free right to reproduce\r
- *      and distribute executable files created using this software for use\r
- *      on NXP Semiconductors LPC microcontroller devices only. Nothing else\r
- *      gives you the right to use this software.\r
- *\r
- * Copyright (c) 2009 Keil - An ARM Company. All rights reserved.\r
- *----------------------------------------------------------------------------\r
- * History:\r
- *          V1.20 Changed string descriptor handling\r
- *          V1.00 Initial Version\r
- *---------------------------------------------------------------------------*/\r
-#include "lpc_types.h"\r
-#include "usb.h"\r
-#include "cdc.h"\r
-#include "usbcfg.h"\r
-#include "usbdesc.h"\r
-\r
-\r
-/* USB Standard Device Descriptor */\r
-const uint8_t USB_DeviceDescriptor[] = {\r
-  USB_DEVICE_DESC_SIZE,              /* bLength */\r
-  USB_DEVICE_DESCRIPTOR_TYPE,        /* bDescriptorType */\r
-  WBVAL(0x0200), /* 2.0 */           /* bcdUSB */\r
-  USB_DEVICE_CLASS_COMMUNICATIONS,   /* bDeviceClass CDC*/\r
-  0x00,                              /* bDeviceSubClass */\r
-  0x00,                              /* bDeviceProtocol */\r
-  USB_MAX_PACKET0,                   /* bMaxPacketSize0 */\r
-  WBVAL(0x1FC9),                     /* idVendor */\r
-  WBVAL(0x2002),                     /* idProduct */\r
-  WBVAL(0x0100), /* 1.00 */          /* bcdDevice */\r
-  0x01,                              /* iManufacturer */\r
-  0x02,                              /* iProduct */\r
-  0x03,                              /* iSerialNumber */\r
-  0x01                               /* bNumConfigurations: one possible configuration*/\r
-};\r
-\r
-/* USB Configuration Descriptor */\r
-/*   All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */\r
-const uint8_t USB_ConfigDescriptor[] = {\r
-/* Configuration 1 */\r
-  USB_CONFIGUARTION_DESC_SIZE,       /* bLength */\r
-  USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType */\r
-  WBVAL(                             /* wTotalLength */\r
-    1*USB_CONFIGUARTION_DESC_SIZE +\r
-    1*USB_INTERFACE_DESC_SIZE     +  /* communication interface */\r
-    0x0013                        +  /* CDC functions */\r
-    1*USB_ENDPOINT_DESC_SIZE      +  /* interrupt endpoint */\r
-    1*USB_INTERFACE_DESC_SIZE     +  /* data interface */\r
-    2*USB_ENDPOINT_DESC_SIZE         /* bulk endpoints */\r
-      ),\r
-  0x02,                              /* bNumInterfaces */\r
-  0x01,                              /* bConfigurationValue: 0x01 is used to select this configuration */\r
-  0x00,                              /* iConfiguration: no string to describe this configuration */\r
-  USB_CONFIG_BUS_POWERED /*|*/       /* bmAttributes */\r
-/*USB_CONFIG_REMOTE_WAKEUP*/,\r
-  USB_CONFIG_POWER_MA(100),          /* bMaxPower, device power consumption is 100 mA */\r
-/* Interface 0, Alternate Setting 0, Communication class interface descriptor */\r
-  USB_INTERFACE_DESC_SIZE,           /* bLength */\r
-  USB_INTERFACE_DESCRIPTOR_TYPE,     /* bDescriptorType */\r
-  USB_CDC_CIF_NUM,                   /* bInterfaceNumber: Number of Interface */\r
-  0x00,                              /* bAlternateSetting: Alternate setting */\r
-  0x01,                              /* bNumEndpoints: One endpoint used */\r
-  CDC_COMMUNICATION_INTERFACE_CLASS, /* bInterfaceClass: Communication Interface Class */\r
-  CDC_ABSTRACT_CONTROL_MODEL,        /* bInterfaceSubClass: Abstract Control Model */\r
-  0x00,                              /* bInterfaceProtocol: no protocol used */\r
-  0x5E,                              /* iInterface: */\r
-/*Header Functional Descriptor*/\r
-  0x05,                              /* bLength: Endpoint Descriptor size */\r
-  CDC_CS_INTERFACE,                  /* bDescriptorType: CS_INTERFACE */\r
-  CDC_HEADER,                        /* bDescriptorSubtype: Header Func Desc */\r
-  WBVAL(CDC_V1_10), /* 1.10 */       /* bcdCDC */\r
-/*Call Management Functional Descriptor*/\r
-  0x05,                              /* bFunctionLength */\r
-  CDC_CS_INTERFACE,                  /* bDescriptorType: CS_INTERFACE */\r
-  CDC_CALL_MANAGEMENT,               /* bDescriptorSubtype: Call Management Func Desc */\r
-  0x01,                              /* bmCapabilities: device handles call management */\r
-  0x01,                              /* bDataInterface: CDC data IF ID */\r
-/*Abstract Control Management Functional Descriptor*/\r
-  0x04,                              /* bFunctionLength */\r
-  CDC_CS_INTERFACE,                  /* bDescriptorType: CS_INTERFACE */\r
-  CDC_ABSTRACT_CONTROL_MANAGEMENT,   /* bDescriptorSubtype: Abstract Control Management desc */\r
-  0x02,                              /* bmCapabilities: SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE supported */\r
-/*Union Functional Descriptor*/\r
-  0x05,                              /* bFunctionLength */\r
-  CDC_CS_INTERFACE,                  /* bDescriptorType: CS_INTERFACE */\r
-  CDC_UNION,                         /* bDescriptorSubtype: Union func desc */\r
-  USB_CDC_CIF_NUM,                   /* bMasterInterface: Communication class interface is master */\r
-  USB_CDC_DIF_NUM,                   /* bSlaveInterface0: Data class interface is slave 0 */\r
-/*Endpoint 1 Descriptor*/            /* event notification (optional) */\r
-  USB_ENDPOINT_DESC_SIZE,            /* bLength */\r
-  USB_ENDPOINT_DESCRIPTOR_TYPE,      /* bDescriptorType */\r
-  USB_ENDPOINT_IN(1),                /* bEndpointAddress */\r
-  USB_ENDPOINT_TYPE_INTERRUPT,       /* bmAttributes */\r
-  WBVAL(0x0010),                     /* wMaxPacketSize */\r
-  0x02,          /* 2ms */           /* bInterval */\r
-/* Interface 1, Alternate Setting 0, Data class interface descriptor*/\r
-  USB_INTERFACE_DESC_SIZE,           /* bLength */\r
-  USB_INTERFACE_DESCRIPTOR_TYPE,     /* bDescriptorType */\r
-  USB_CDC_DIF_NUM,                   /* bInterfaceNumber: Number of Interface */\r
-  0x00,                              /* bAlternateSetting: no alternate setting */\r
-  0x02,                              /* bNumEndpoints: two endpoints used */\r
-  CDC_DATA_INTERFACE_CLASS,          /* bInterfaceClass: Data Interface Class */\r
-  0x00,                              /* bInterfaceSubClass: no subclass available */\r
-  0x00,                              /* bInterfaceProtocol: no protocol used */\r
-  0x5E,                              /* iInterface: */\r
-/* Endpoint, EP2 Bulk Out */\r
-  USB_ENDPOINT_DESC_SIZE,            /* bLength */\r
-  USB_ENDPOINT_DESCRIPTOR_TYPE,      /* bDescriptorType */\r
-  USB_ENDPOINT_OUT(2),               /* bEndpointAddress */\r
-  USB_ENDPOINT_TYPE_BULK,            /* bmAttributes */\r
-  WBVAL(USB_CDC_BUFSIZE),            /* wMaxPacketSize */\r
-  0x00,                              /* bInterval: ignore for Bulk transfer */\r
-/* Endpoint, EP2 Bulk In */\r
-  USB_ENDPOINT_DESC_SIZE,            /* bLength */\r
-  USB_ENDPOINT_DESCRIPTOR_TYPE,      /* bDescriptorType */\r
-  USB_ENDPOINT_IN(2),                /* bEndpointAddress */\r
-  USB_ENDPOINT_TYPE_BULK,            /* bmAttributes */\r
-  WBVAL(USB_CDC_BUFSIZE),            /* wMaxPacketSize */\r
-  0x00,                              /* bInterval: ignore for Bulk transfer */\r
-/* Terminator */\r
-  0                                  /* bLength */\r
-};\r
-\r
-\r
-\r
-\r
-/* USB String Descriptor (optional) */\r
-const uint8_t USB_StringDescriptor[] = {\r
-/* Index 0x00: LANGID Codes */\r
-  0x04,                              /* bLength */\r
-  USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */\r
-  WBVAL(0x0409), /* US English */    /* wLANGID */\r
-/* Index 0x01: Manufacturer */\r
-  (13*2 + 2),                        /* bLength (13 Char + Type + lenght) */\r
-  USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */\r
-  'N',0,\r
-  'X',0,\r
-  'P',0,\r
-  ' ',0,\r
-  'S',0,\r
-  'E',0,\r
-  'M',0,\r
-  'I',0,\r
-  'C',0,\r
-  'O',0,\r
-  'N',0,\r
-  'D',0,\r
-  ' ',0,\r
-/* Index 0x02: Product */\r
-  (17*2 + 2),                        /* bLength ( 17 Char + Type + lenght) */\r
-  USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */\r
-  'N',0,\r
-  'X',0,\r
-  'P',0,\r
-  ' ',0,\r
-  'L',0,\r
-  'P',0,\r
-  'C',0,\r
-  '1',0,\r
-  '7',0,\r
-  'x',0,\r
-  'x',0,\r
-  ' ',0,\r
-  'V',0,\r
-  'C',0,\r
-  'O',0,\r
-  'M',0,\r
-  ' ',0,\r
-/* Index 0x03: Serial Number */\r
-  (12*2 + 2),                        /* bLength (12 Char + Type + lenght) */\r
-  USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */\r
-  'D',0,\r
-  'E',0,\r
-  'M',0,\r
-  'O',0,\r
-  '0',0,\r
-  '0',0,\r
-  '0',0,\r
-  '0',0,\r
-  '0',0,\r
-  '0',0,\r
-  '0',0,\r
-  '0',0,\r
-/* Index 0x04: Interface 0, Alternate Setting 0 */\r
-  ( 4*2 + 2),                        /* bLength (4 Char + Type + lenght) */\r
-  USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */\r
-  'V',0,\r
-  'C',0,\r
-  'O',0,\r
-  'M',0,\r
-};\r
+/*----------------------------------------------------------------------------
+ *      U S B  -  K e r n e l
+ *----------------------------------------------------------------------------
+ * Name:    usbdesc.c
+ * Purpose: USB Descriptors
+ * Version: V1.20
+ *----------------------------------------------------------------------------
+ *      This software is supplied "AS IS" without any warranties, express,
+ *      implied or statutory, including but not limited to the implied
+ *      warranties of fitness for purpose, satisfactory quality and
+ *      noninfringement. Keil extends you a royalty-free right to reproduce
+ *      and distribute executable files created using this software for use
+ *      on NXP Semiconductors LPC microcontroller devices only. Nothing else
+ *      gives you the right to use this software.
+ *
+ * Copyright (c) 2009 Keil - An ARM Company. All rights reserved.
+ *----------------------------------------------------------------------------
+ * History:
+ *          V1.20 Changed string descriptor handling
+ *          V1.00 Initial Version
+ *---------------------------------------------------------------------------*/
+#include "lpc_types.h"
+#include "usb.h"
+#include "cdc.h"
+#include "cfg.h"
+#include "desc.h"
+
+
+/* USB Standard Device Descriptor */
+const uint8_t USB_DeviceDescriptor[] = {
+  USB_DEVICE_DESC_SIZE,              /* bLength */
+  USB_DEVICE_DESCRIPTOR_TYPE,        /* bDescriptorType */
+  WBVAL(0x0200), /* 2.0 */           /* bcdUSB */
+  USB_DEVICE_CLASS_COMMUNICATIONS,   /* bDeviceClass CDC*/
+  0x00,                              /* bDeviceSubClass */
+  0x00,                              /* bDeviceProtocol */
+  USB_MAX_PACKET0,                   /* bMaxPacketSize0 */
+  WBVAL(0x1FC9),                     /* idVendor */
+  WBVAL(0x2002),                     /* idProduct */
+  WBVAL(0x0100), /* 1.00 */          /* bcdDevice */
+  0x01,                              /* iManufacturer */
+  0x02,                              /* iProduct */
+  0x03,                              /* iSerialNumber */
+  0x01                               /* bNumConfigurations: one possible configuration*/
+};
+
+/* USB Configuration Descriptor */
+/*   All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */
+const uint8_t USB_ConfigDescriptor[] = {
+/* Configuration 1 */
+  USB_CONFIGUARTION_DESC_SIZE,         + /* bLength */
+  USB_CONFIGURATION_DESCRIPTOR_TYPE,   + /* bDescriptorType */
+  WBVAL(                                 /* wTotalLength */
+    (USB_CONFIGUARTION_DESC_SIZE)      +
+    (USB_INTERFACE_DESC_SIZE)          + /* communication interface */
+    0x0013                             + /* CDC functions */
+    (USB_ENDPOINT_DESC_SIZE)           + /* interrupt endpoint */
+    (USB_INTERFACE_DESC_SIZE)          + /* data interface */
+    (2*USB_ENDPOINT_DESC_SIZE)           /* bulk endpoints */
+      ),
+  0x02,                              /* bNumInterfaces */
+  0x01,                              /* bConfigurationValue: 0x01 is used to select this configuration */
+  0x00,                              /* iConfiguration: no string to describe this configuration */
+  USB_CONFIG_BUS_POWERED /*|*/       /* bmAttributes */
+/*USB_CONFIG_REMOTE_WAKEUP*/,
+  USB_CONFIG_POWER_MA(100),          /* bMaxPower, device power consumption is 100 mA */
+/* Interface 0, Alternate Setting 0, Communication class interface descriptor */
+  USB_INTERFACE_DESC_SIZE,           /* bLength */
+  USB_INTERFACE_DESCRIPTOR_TYPE,     /* bDescriptorType */
+  USB_CDC_CIF_NUM,                   /* bInterfaceNumber: Number of Interface */
+  0x00,                              /* bAlternateSetting: Alternate setting */
+  0x01,                              /* bNumEndpoints: One endpoint used */
+  CDC_COMMUNICATION_INTERFACE_CLASS, /* bInterfaceClass: Communication Interface Class */
+  CDC_ABSTRACT_CONTROL_MODEL,        /* bInterfaceSubClass: Abstract Control Model */
+  0x00,                              /* bInterfaceProtocol: no protocol used */
+  0x5E,                              /* iInterface: */
+/*Header Functional Descriptor*/
+  0x05,                              /* bLength: Endpoint Descriptor size */
+  CDC_CS_INTERFACE,                  /* bDescriptorType: CS_INTERFACE */
+  CDC_HEADER,                        /* bDescriptorSubtype: Header Func Desc */
+  WBVAL(CDC_V1_10), /* 1.10 */       /* bcdCDC */
+/*Call Management Functional Descriptor*/
+  0x05,                              /* bFunctionLength */
+  CDC_CS_INTERFACE,                  /* bDescriptorType: CS_INTERFACE */
+  CDC_CALL_MANAGEMENT,               /* bDescriptorSubtype: Call Management Func Desc */
+  0x01,                              /* bmCapabilities: device handles call management */
+  0x01,                              /* bDataInterface: CDC data IF ID */
+/*Abstract Control Management Functional Descriptor*/
+  0x04,                              /* bFunctionLength */
+  CDC_CS_INTERFACE,                  /* bDescriptorType: CS_INTERFACE */
+  CDC_ABSTRACT_CONTROL_MANAGEMENT,   /* bDescriptorSubtype: Abstract Control Management desc */
+  0x02,                              /* bmCapabilities: SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE supported */
+/*Union Functional Descriptor*/
+  0x05,                              /* bFunctionLength */
+  CDC_CS_INTERFACE,                  /* bDescriptorType: CS_INTERFACE */
+  CDC_UNION,                         /* bDescriptorSubtype: Union func desc */
+  USB_CDC_CIF_NUM,                   /* bMasterInterface: Communication class interface is master */
+  USB_CDC_DIF_NUM,                   /* bSlaveInterface0: Data class interface is slave 0 */
+/*Endpoint 1 Descriptor*/            /* event notification (optional) */
+  USB_ENDPOINT_DESC_SIZE,            /* bLength */
+  USB_ENDPOINT_DESCRIPTOR_TYPE,      /* bDescriptorType */
+  USB_ENDPOINT_IN(1),                /* bEndpointAddress */
+  USB_ENDPOINT_TYPE_INTERRUPT,       /* bmAttributes */
+  WBVAL(0x0010),                     /* wMaxPacketSize */
+  0x02,          /* 2ms */           /* bInterval */
+/* Interface 1, Alternate Setting 0, Data class interface descriptor*/
+  USB_INTERFACE_DESC_SIZE,           /* bLength */
+  USB_INTERFACE_DESCRIPTOR_TYPE,     /* bDescriptorType */
+  USB_CDC_DIF_NUM,                   /* bInterfaceNumber: Number of Interface */
+  0x00,                              /* bAlternateSetting: no alternate setting */
+  0x02,                              /* bNumEndpoints: two endpoints used */
+  CDC_DATA_INTERFACE_CLASS,          /* bInterfaceClass: Data Interface Class */
+  0x00,                              /* bInterfaceSubClass: no subclass available */
+  0x00,                              /* bInterfaceProtocol: no protocol used */
+  0x5E,                              /* iInterface: */
+/* Endpoint, EP2 Bulk Out */
+  USB_ENDPOINT_DESC_SIZE,            /* bLength */
+  USB_ENDPOINT_DESCRIPTOR_TYPE,      /* bDescriptorType */
+  USB_ENDPOINT_OUT(2),               /* bEndpointAddress */
+  USB_ENDPOINT_TYPE_BULK,            /* bmAttributes */
+  WBVAL(USB_CDC_BUFSIZE),            /* wMaxPacketSize */
+  0x00,                              /* bInterval: ignore for Bulk transfer */
+/* Endpoint, EP2 Bulk In */
+  USB_ENDPOINT_DESC_SIZE,            /* bLength */
+  USB_ENDPOINT_DESCRIPTOR_TYPE,      /* bDescriptorType */
+  USB_ENDPOINT_IN(2),                /* bEndpointAddress */
+  USB_ENDPOINT_TYPE_BULK,            /* bmAttributes */
+  WBVAL(USB_CDC_BUFSIZE),            /* wMaxPacketSize */
+  0x00,                              /* bInterval: ignore for Bulk transfer */
+/* Terminator */
+  0                                  /* bLength */
+};
+
+
+
+
+/* USB String Descriptor (optional) */
+const uint8_t USB_StringDescriptor[] = {
+/* Index 0x00: LANGID Codes */
+  0x04,                              /* bLength */
+  USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */
+  WBVAL(0x0409), /* US English */    /* wLANGID */
+/* Index 0x01: Manufacturer */
+  (7*2 + 2),                        /* bLength (13 Char + Type + lenght) */
+  USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */
+  'L',0,
+  'a',0,
+  'b',0,
+  'i',0,
+  't',0,
+  'a',0,
+  't',0,
+/* Index 0x02: Product */
+  (17*2 + 2),                        /* bLength ( 17 Char + Type + lenght) */
+  USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */
+  'R',0,
+  'a',0,
+  'p',0,
+  'p',0,
+  'e',0,
+  'r',0,
+  ' ',0,
+  'U',0,
+  'S',0,
+  'B',0,
+  ' ',0,
+  'S',0,
+  'e',0,
+  'r',0,
+  'i',0,
+  'a',0,
+  'l',0,
+/* Index 0x03: Serial Number */
+  (12*2 + 2),                        /* bLength (12 Char + Type + lenght) */
+  USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */
+  'P',0,
+  'R',0,
+  'O',0,
+  'T',0,
+  'O',0,
+  'T',0,
+  'Y',0,
+  'P',0,
+  'E',0,
+  ' ',0,
+  '4',0,
+  '2',0,
+/* Index 0x04: Interface 0, Alternate Setting 0 */
+  ( 4*2 + 2),                        /* bLength (4 Char + Type + lenght) */
+  USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */
+  'V',0,
+  'C',0,
+  'O',0,
+  'M',0,
+};