⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbcore.lst

📁 usb声卡,采用phlips LPC2148控制器.
💻 LST
📖 第 1 页 / 共 5 页
字号:
  561   4      
  562   4                  case USB_REQUEST_SET_INTERFACE:
  563   4                    switch (SetupPacket.bmRequestType.BM.Recipient) {
  564   5                      case REQUEST_TO_INTERFACE:
  565   5                        if (!USB_SetInterface()) {
  566   6                          goto stall_i;
  567   6                        }
  568   5                        USB_StatusInStage();
  569   5      #if USB_INTERFACE_EVENT
                                 USB_Interface_Event();
               #endif
  572   5                        break;
  573   5                      default:
  574   5                        goto stall_i;
  575   5                    }
  576   4                    break;
  577   4      
  578   4                  default:
  579   4                    goto stall_i;
  580   4      
  581   4                }
  582   3                break;
  583   3      
  584   3              case REQUEST_CLASS:
  585   3      #if USB_CLASS
  586   3                switch (SetupPacket.bmRequestType.BM.Recipient) {
ARM COMPILER V2.50a,  usbcore                                                              27/03/06  17:22:53  PAGE 10  

  587   4                  case REQUEST_TO_INTERFACE:
  588   4      #if USB_HID
                             if (SetupPacket.wIndex.WB.L == USB_HID_IF_NUM) {
                               switch (SetupPacket.bRequest) {
                                 case HID_REQUEST_GET_REPORT:
                                   if (HID_GetReport()) {
                                     EP0Data.pData = EP0Buf;
                                     USB_DataInStage();
                                     goto class_ok;
                                   }
                                   break;
                                 case HID_REQUEST_SET_REPORT:
                                   EP0Data.pData = EP0Buf;
                                   goto class_ok;
                                 case HID_REQUEST_GET_IDLE:
                                   if (HID_GetIdle()) {
                                     EP0Data.pData = EP0Buf;
                                     USB_DataInStage();
                                     goto class_ok;
                                   }
                                   break;
                                 case HID_REQUEST_SET_IDLE:
                                   if (HID_SetIdle()) {
                                     USB_StatusInStage();
                                     goto class_ok;
                                   }
                                   break;
                                 case HID_REQUEST_GET_PROTOCOL:
                                   if (HID_GetProtocol()) {
                                     EP0Data.pData = EP0Buf;
                                     USB_DataInStage();
                                     goto class_ok;
                                   }
                                   break;
                                 case HID_REQUEST_SET_PROTOCOL:
                                   if (HID_SetProtocol()) {
                                     USB_StatusInStage();
                                     goto class_ok;
                                   }
                                   break;
                               }
                             }
               #endif  /* USB_HID */
  630   4      #if USB_MSC
                             if (SetupPacket.wIndex.WB.L == USB_MSC_IF_NUM) {
                               switch (SetupPacket.bRequest) {
                                 case MSC_REQUEST_RESET:
                                   if (MSC_Reset()) {
                                     USB_StatusInStage();
                                     goto class_ok;
                                   }
                                   break;
                                 case MSC_REQUEST_GET_MAX_LUN:
                                   if (MSC_GetMaxLUN()) {
                                     EP0Data.pData = EP0Buf;
                                     USB_DataInStage();
                                     goto class_ok;
                                   }
                                   break;
                               }
                             }
               #endif  /* USB_MSC */
  649   4      #if USB_AUDIO
  650   4                    if ((SetupPacket.wIndex.WB.L == USB_ADC_CIF_NUM)  ||
  651   4                        (SetupPacket.wIndex.WB.L == USB_ADC_SIF1_NUM) ||
  652   4                        (SetupPacket.wIndex.WB.L == USB_ADC_SIF2_NUM)) {
ARM COMPILER V2.50a,  usbcore                                                              27/03/06  17:22:53  PAGE 11  

  653   5                      if (SetupPacket.bmRequestType.BM.Dir) {
  654   6                        if (ADC_IF_GetRequest()) {
  655   7                          EP0Data.pData = EP0Buf;
  656   7                          USB_DataInStage();
  657   7                          goto class_ok;
  658   7                        }
  659   6                      } else {
  660   6                        EP0Data.pData = EP0Buf;
  661   6                        goto class_ok;
  662   6                      }
  663   5                    }
  664   4      #endif  /* USB_AUDIO */
  665   4                    goto stall_i;
  666   4      #if USB_AUDIO
  667   4                  case REQUEST_TO_ENDPOINT:
  668   4                    if (SetupPacket.bmRequestType.BM.Dir) {
  669   5                      if (ADC_EP_GetRequest()) {
  670   6                        EP0Data.pData = EP0Buf;
  671   6                        USB_DataInStage();
  672   6                        goto class_ok;
  673   6                      }
  674   5                    } else {
  675   5                      EP0Data.pData = EP0Buf;
  676   5                      goto class_ok;
  677   5                    }
  678   4                    goto stall_i;
  679   4      #endif  /* USB_AUDIO */
  680   4                  default:
  681   4                    goto stall_i;
  682   4                }
  683   3      class_ok: break;
  684   3      #else
                         goto stall_i;
               #endif  /* USB_CLASS */
  687   3      
  688   3              case REQUEST_VENDOR:
  689   3                goto stall_i;
  690   3      
  691   3              default:
  692   3      stall_i:  USB_SetStallEP(0x80);
  693   3                EP0Data.Count = 0;
  694   3                break;
  695   3      
  696   3            }
  697   2            break;
  698   2      
  699   2          case USB_EVT_OUT:
  700   2            if (SetupPacket.bmRequestType.BM.Dir == 0) {
  701   3              if (EP0Data.Count) {
  702   4                USB_DataOutStage();
  703   4                if (EP0Data.Count == 0) {
  704   5                  switch (SetupPacket.bmRequestType.BM.Type) {
  705   6                    case REQUEST_STANDARD:
  706   6                      goto stall_i;
  707   6      #if (USB_CLASS)
  708   6                    case REQUEST_CLASS:
  709   6                      switch (SetupPacket.bmRequestType.BM.Recipient) {
  710   7                        case REQUEST_TO_INTERFACE:
  711   7      #if USB_HID
                                   if (SetupPacket.wIndex.WB.L == USB_HID_IF_NUM) {
                                     if (!HID_SetReport()) {
                                       goto stall_i;
                                     }
                                     break;
                                   }
               #endif
ARM COMPILER V2.50a,  usbcore                                                              27/03/06  17:22:53  PAGE 12  

  719   7      #if USB_AUDIO
  720   7                          if ((SetupPacket.wIndex.WB.L == USB_ADC_CIF_NUM)  ||
  721   7                              (SetupPacket.wIndex.WB.L == USB_ADC_SIF1_NUM) ||
  722   7                              (SetupPacket.wIndex.WB.L == USB_ADC_SIF2_NUM)) {
  723   8                            if (!ADC_IF_SetRequest()) {
  724   9                              goto stall_i;
  725   9                            }
  726   8                            break;
  727   8                          }
  728   7      #endif
  729   7                          goto stall_i;
  730   7                        case REQUEST_TO_ENDPOINT:
  731   7      #if USB_AUDIO
  732   7                          if (ADC_EP_SetRequest()) break;
  733   7      #endif
  734   7                          goto stall_i;
  735   7                        default:
  736   7                          goto stall_i;
  737   7                      }
  738   6                      break;
  739   6      #endif
  740   6                    default:
  741   6                      goto stall_i;
  742   6                  }
  743   5                  USB_StatusInStage();
  744   5                }
  745   4              }
  746   3            } else {
  747   3              USB_StatusOutStage();
  748   3            }
  749   2            break;
  750   2      
  751   2          case USB_EVT_IN:
  752   2            if (SetupPacket.bmRequestType.BM.Dir == 1) {
  753   3              USB_DataInStage();
  754   3            } else {
  755   3              if (USB_DeviceAddress & 0x80) {
  756   4                USB_DeviceAddress &= 0x7F;
  757   4                USB_SetAddress(USB_DeviceAddress);
  758   4              }
  759   3            }
  760   2            break;
  761   2      
  762   2          case USB_EVT_IN_STALL:
  763   2            USB_ClrStallEP(0x80);
  764   2            break;
  765   2      
  766   2          case USB_EVT_OUT_STALL:
  767   2            USB_ClrStallEP(0x00);
  768   2            break;
  769   2      
  770   2        }
  771   1      }
ARM COMPILER V2.50a,  usbcore                                                              27/03/06  17:22:53  PAGE 13  

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (USB_WakeUpCfg?T)
 EXTERN CODE16 (USB_SetAddress?T)
 EXTERN CODE16 (USB_Configure?T)
 EXTERN CODE16 (USB_ConfigEP?T)
 EXTERN CODE16 (USB_DirCtrlEP?T)
 EXTERN CODE16 (USB_EnableEP?T)
 EXTERN CODE16 (USB_DisableEP?T)
 EXTERN CODE16 (USB_ResetEP?T)
 EXTERN CODE16 (USB_SetStallEP?T)
 EXTERN CODE16 (USB_ClrStallEP?T)
 EXTERN CODE16 (USB_ReadEP?T)
 EXTERN CODE16 (USB_WriteEP?T)
 EXTERN DATA (USB_DeviceDescriptor)
 EXTERN DATA (USB_ConfigDescriptor)
 EXTERN DATA (USB_StringDescriptor)
 EXTERN CODE16 (ADC_IF_GetRequest?T)
 EXTERN CODE16 (ADC_IF_SetRequest?T)
 EXTERN CODE16 (ADC_EP_GetRequest?T)
 EXTERN CODE16 (ADC_EP_SetRequest?T)



*** PUBLICS:
 PUBLIC         USB_ResetCore?T
 PUBLIC         USB_EndPoint0?T
 PUBLIC         USB_SetupStage?T
 PUBLIC         USB_DataInStage?T
 PUBLIC         USB_DataOutStage?T
 PUBLIC         USB_StatusInStage?T
 PUBLIC         USB_StatusOutStage?T
 PUBLIC         USB_DeviceStatus
 PUBLIC         USB_DeviceAddress
 PUBLIC         USB_Configuration
 PUBLIC         USB_EndPointMask
 PUBLIC         USB_EndPointHalt
 PUBLIC         USB_AltSetting
 PUBLIC         EP0Buf
 PUBLIC         EP0Data
 PUBLIC         SetupPacket
 PUBLIC         USB_NumInterfaces



*** DATA SEGMENT '?DT0?usbcore':
 00000000          USB_EndPointMask:
 00000000            DS          4
 00000004          USB_EndPointHalt:
 00000004            DS          4
 00000008          EP0Data:
 00000008            DS          8
 00000010          USB_DeviceStatus:
 00000010            DS          2
 00000012          SetupPacket:
 00000012            DS          8
 0000001A          USB_DeviceAddress:
 0000001A            DS          1
 0000001B          USB_Configuration:
 0000001B            DS          1
 0000001C          USB_AltSetting:
 0000001C            DS          4
 00000020          EP0Buf:
 00000020            DS          64
 00000060          USB_NumInterfaces:
 00000060            DS          1



*** CODE SEGMENT '?PR?USB_ResetCore?T?usbcore':
ARM COMPILER V2.50a,  usbcore                                                              27/03/06  17:22:53  PAGE 14  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -