c5509evm_device.c
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:3k
源码类别:

DSP编程

开发平台:

C/C++

  1. /*
  2.  *  Copyright 2003 by Texas Instruments Incorporated.
  3.  *  All rights reserved. Property of Texas Instruments Incorporated.
  4.  *  Restricted rights to use, duplicate or disclose this code are
  5.  *  granted through contract.
  6.  *  
  7.  */
  8. /* "@(#) DDK 1.10.00.23 07-02-03 (ddk-b12)" */
  9. /*
  10.  *  ======== c5509evm_device.c ========
  11.  *  This file defines example USB device descriptor information for 
  12.  *   the C5509 EVM.
  13.  */
  14.  
  15. #include <std.h>
  16. #include <csl.h>
  17. #include <c5509_usb.h> 
  18. /*
  19.  * Control Endpoint 0 IN and OUT USB event mask.
  20.  */
  21. #define EP0EVENTMASK  (USB_EVENT_RESET | USB_EVENT_SETUP | USB_EVENT_SUSPEND | 
  22.         USB_EVENT_RESUME | USB_EVENT_EOT)
  23. /*
  24.  *  Device Descriptor
  25.  */
  26. static Uint16 deviceDescriptor[] = {
  27.   0x0000,    /* field for xfer_byte_cnt - used by the data */
  28.              /* transfer API, not an integral part of descriptor */
  29.   (C5509_USB_DESCRIPTOR_DEVICE<<8) | 18,    /* bLength, bDescriptorType */
  30.   0x0101,    /* bcdUSB */
  31.   0x0000,    /* bDeviceClass, bDeviceSubClass */
  32.   0x4000,    /* bDeviceProtocol, bMaxPacketSize0 = 64 */
  33.   0x0451,    /* idVendor = Texas Instruments */
  34.   0x9001,    /* idProduct = catalog DSP product */
  35.   0x0000,    /* bcdDevice ID = prototype */
  36.   0x0201,    /* iManufacturer, iProductName */
  37.   0x0100     /* iSerialNumber, bNumConfigurations */
  38. };
  39. /*
  40.  *  String Descriptors Language Id
  41.  */
  42. static Uint16 stringDescriptorLangId[] = {
  43.   0x0000, /* field for xfer_byte_cnt - used by the data */
  44.           /* transfer API, not an integral part of descriptor */
  45.   (C5509_USB_DESCRIPTOR_STRING<<8) | 4,  /* bLength, bDescriptorType */
  46.   0x0409, /* LANGID (English) */
  47.   0x0000  
  48. };
  49. /*
  50.  *  String Descriptor
  51.  */
  52. static String stringDescriptor[] = {
  53.   (char *)&stringDescriptorLangId[0],    /* LANGID */
  54.   "  Texas Instruments, Inc.",    /* iManufacturer */
  55.   "  TMX320VC5509",    /* iProductName */
  56.   "  USB Demo Device",    /* iConfiguration */
  57.   "  Vendor Specific",    /* iInterface - Vendor Specific */
  58.   NULL                    /* end of string descriptor */
  59. };
  60. /*
  61.  * Override default non-setup event handler
  62.  */
  63. #ifdef OVERRIDEHANDLERS
  64. static Void myEvtCb( Uint16 event, C5509_USB_UsbEventHandler handler) {
  65.     if (event == USB_EVENT_RESET) {
  66.         /* 
  67.          * application can extend functionality here.
  68.          */
  69.         handler();    /* call the default reset event handler */
  70.     }
  71.     else if (event == USB_EVENT_SUSPEND) {
  72.         /* 
  73.          * application can extend functionality here
  74.          */
  75.         handler();    /* call the default suspend event handler */
  76.     }
  77. }
  78. /*
  79.  * Override default setup event handler
  80.  */
  81. static C5509_USB_UsbReqRet mySetupEvtCb( Uint16 requestId,
  82.         C5509_USB_UsbReqHandler handler, USB_SetupStruct *setupPacket) {
  83.     /* 
  84.      * application can extend functionality here.
  85.      */
  86.     return handler();    /* call the default setup event handler */
  87. }
  88. #endif
  89. /*
  90.  *  USB device configuration.
  91.  */
  92. C5509_USB_DeviceConfig myDeviceConfig = {
  93.     &deviceDescriptor[0],
  94.     &stringDescriptorLangId[0],
  95.     &stringDescriptor[0],
  96. #ifdef OVERRIDEHANDLERS
  97.     myEvtCb,
  98.     mySetupEvtCb
  99. #else
  100.     NULL,      /* set to NULL to default event handler */
  101.     NULL       /* set to NULL to default setup event handler */
  102. #endif
  103. };