亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? kchap9.lst

?? USB D12驅動源程序
?? LST
?? 第 1 頁 / 共 5 頁
字號:
  21          #define NUM_ENDPOINTS   4
  22          
  23          #define CONFIG_DESCRIPTOR_LENGTH    sizeof(USB_CONFIGURATION_DESCRIPTOR) \
  24                                                                                  + sizeof(USB_INTERFACE_DESCRIPTOR) \
  25                                                                                  + (NUM_ENDPOINTS * sizeof(USB_ENDPOINT_DESCRIPTOR))
  26          
  27          extern CONTROL_XFER ControlData;
  28          extern IO_REQUEST idata ioRequest;
  29          extern EPPFLAGS bEPPflags;
  30          
  31          code USB_DEVICE_DESCRIPTOR DeviceDescr =
  32          {
  33                  sizeof(USB_DEVICE_DESCRIPTOR),
  34              USB_DEVICE_DESCRIPTOR_TYPE,
  35              SWAP(0x0100),
  36              USB_CLASS_CODE_TEST_CLASS_DEVICE,
  37              0, 
  38              0,
  39                  EP0_PACKET_SIZE,
  40                  SWAP(0x0471),   //VID
  41                  SWAP(0x0666),   //PID
  42                  SWAP(0x0100),
  43              0,                  //Manufactory
  44              0,                  //Product
  45              0,                  //Serial Number
  46              25                  //Number of possible configurations
  47          };
  48          
  49          code USB_CONFIGURATION_DESCRIPTOR ConfigDescr =
  50          {
  51              sizeof(USB_CONFIGURATION_DESCRIPTOR),
  52              USB_CONFIGURATION_DESCRIPTOR_TYPE,
  53              SWAP(CONFIG_DESCRIPTOR_LENGTH),
  54                  1,
  55                  1,
C51 COMPILER V7.06   KCHAP9                                                                11/11/2003 20:11:02 PAGE 15  

  56              0,
  57                  0x60,
  58                  0xf0
  59                  //0x1
  60          };
  61          
  62          code USB_INTERFACE_DESCRIPTOR InterfaceDescr =
  63          {
  64              sizeof(USB_INTERFACE_DESCRIPTOR),
  65              USB_INTERFACE_DESCRIPTOR_TYPE,
  66              0,
  67              0,
  68                  NUM_ENDPOINTS,
  69                  USB_CLASS_CODE_TEST_CLASS_DEVICE,
  70                  USB_SUBCLASS_CODE_TEST_CLASS_D12,
  71                  USB_PROTOCOL_CODE_TEST_CLASS_D12,
  72                  0
  73          };
  74          
  75          code USB_ENDPOINT_DESCRIPTOR EP1_TXDescr =
  76          {
  77                  sizeof(USB_ENDPOINT_DESCRIPTOR),
  78                  USB_ENDPOINT_DESCRIPTOR_TYPE,
  79                  0x81,
  80                  USB_ENDPOINT_TYPE_INTERRUPT,
  81                  SWAP(EP1_PACKET_SIZE),
  82                  10
  83          };
  84          
  85          code USB_ENDPOINT_DESCRIPTOR EP1_RXDescr =
  86          {
  87                  sizeof(USB_ENDPOINT_DESCRIPTOR),
  88                  USB_ENDPOINT_DESCRIPTOR_TYPE,
  89                  0x1,
  90                  USB_ENDPOINT_TYPE_INTERRUPT,
  91                  SWAP(EP1_PACKET_SIZE),
  92                  10
  93          };
  94          
  95          code USB_ENDPOINT_DESCRIPTOR EP2_TXDescr =
  96          {
  97                  sizeof(USB_ENDPOINT_DESCRIPTOR),
  98                  USB_ENDPOINT_DESCRIPTOR_TYPE,
  99                  0x82,
 100                  USB_ENDPOINT_TYPE_BULK,
 101                  SWAP(EP2_PACKET_SIZE),
 102                  10
 103          };
 104          
 105          code USB_ENDPOINT_DESCRIPTOR EP2_RXDescr =
 106          {
 107                  sizeof(USB_ENDPOINT_DESCRIPTOR),
 108                  USB_ENDPOINT_DESCRIPTOR_TYPE,
 109                  0x2,
 110                  USB_ENDPOINT_TYPE_BULK,
 111                  SWAP(EP2_PACKET_SIZE),
 112                  10
 113          };
 114          
 115          /*
 116             //*************************************************************************
 117             // USB Protocol Layer
C51 COMPILER V7.06   KCHAP9                                                                11/11/2003 20:11:02 PAGE 16  

 118             //*************************************************************************
 119          */
 120          
 121          void reserved(void)
 122          {
 123   1              stall_ep0();
 124   1      }
 125          
 126          /*
 127             //*************************************************************************
 128             // USB standard device requests
 129             //*************************************************************************
 130          */
 131          
 132          void get_status(void)
 133          {
 134   1              unsigned char endp, txdat[2];
 135   1              unsigned char bRecipient = ControlData.DeviceRequest.bmRequestType & USB_RECIPIENT;
 136   1              unsigned char c;
 137   1      
 138   1              if (bRecipient == USB_RECIPIENT_DEVICE) {
 139   2                      if(bEPPflags.bits.remote_wakeup == 1)
 140   2                              txdat[0] = 3;
 141   2                      else
 142   2                              txdat[0] = 1;
 143   2                      txdat[1]=0;
 144   2                      single_transmit(txdat, 2);
 145   2              } else if (bRecipient == USB_RECIPIENT_INTERFACE) {
 146   2                      txdat[0]=0;
 147   2                      txdat[1]=0;
 148   2                      single_transmit(txdat, 2);
 149   2              } else if (bRecipient == USB_RECIPIENT_ENDPOINT) {
 150   2                      endp = (unsigned char)(ControlData.DeviceRequest.wIndex & MAX_ENDPOINTS);
 151   2                      if (ControlData.DeviceRequest.wIndex & (unsigned char)USB_ENDPOINT_DIRECTION_MASK)
 152   2                              c = D12_SelectEndpoint(endp*2 + 1);     /* Control-in */
 153   2      
 154   2      
 155   2                      else
 156   2                              c = D12_SelectEndpoint(endp*2); /* Control-out */
 157   2                      if(c & D12_STALL)
 158   2                              txdat[0] = 1;
 159   2                      else
 160   2                              txdat[0] = 0;
 161   2                      txdat[1] = 0;
 162   2                      single_transmit(txdat, 2);
 163   2              } else
 164   1                      stall_ep0();
 165   1      }
 166          
 167          void clear_feature(void)
 168          {
 169   1              unsigned char endp;
 170   1              unsigned char bRecipient = ControlData.DeviceRequest.bmRequestType & USB_RECIPIENT;
 171   1      
 172   1              if (bRecipient == USB_RECIPIENT_DEVICE
 173   1                      && ControlData.DeviceRequest.wValue == USB_FEATURE_REMOTE_WAKEUP) {
 174   2                      DISABLE;
 175   2                      bEPPflags.bits.remote_wakeup = 0;
 176   2                      ENABLE;
 177   2                      single_transmit(0, 0);
 178   2              }
 179   1              else if (bRecipient == USB_RECIPIENT_ENDPOINT
C51 COMPILER V7.06   KCHAP9                                                                11/11/2003 20:11:02 PAGE 17  

 180   1                      && ControlData.DeviceRequest.wValue == USB_FEATURE_ENDPOINT_STALL) {
 181   2                      endp = (unsigned char)(ControlData.DeviceRequest.wIndex & MAX_ENDPOINTS);
 182   2                      if (ControlData.DeviceRequest.wIndex & (unsigned char)USB_ENDPOINT_DIRECTION_MASK)
 183   2                              // clear TX stall for IN on EPn. 
 184   2                              D12_SetEndpointStatus(endp*2 + 1, 0);
 185   2                      else
 186   2                              // clear RX stall for OUT on EPn. 
 187   2                              D12_SetEndpointStatus(endp*2, 0);
 188   2                      single_transmit(0, 0);
 189   2              } else
 190   1                      stall_ep0();
 191   1      }
 192          
 193          void set_feature(void)
 194          {
 195   1              unsigned char endp;
 196   1              unsigned char bRecipient = ControlData.DeviceRequest.bmRequestType & USB_RECIPIENT;
 197   1      
 198   1              if (bRecipient == USB_RECIPIENT_DEVICE
 199   1                      && ControlData.DeviceRequest.wValue == USB_FEATURE_REMOTE_WAKEUP) {
 200   2                      DISABLE;
 201   2                      bEPPflags.bits.remote_wakeup = 1;
 202   2                      ENABLE;
 203   2                      single_transmit(0, 0);
 204   2              }
 205   1              else if (bRecipient == USB_RECIPIENT_ENDPOINT
 206   1                      && ControlData.DeviceRequest.wValue == USB_FEATURE_ENDPOINT_STALL) {
 207   2                      endp = (unsigned char)(ControlData.DeviceRequest.wIndex & MAX_ENDPOINTS);
 208   2                      if (ControlData.DeviceRequest.wIndex & (unsigned char)USB_ENDPOINT_DIRECTION_MASK)
 209   2                              // clear TX stall for IN on EPn. 
 210   2                              D12_SetEndpointStatus(endp*2 + 1, 1);
 211   2                      else
 212   2                              // clear RX stall for OUT on EPn. 
 213   2                              D12_SetEndpointStatus(endp*2, 1);
 214   2                      single_transmit(0, 0);
 215   2              } else
 216   1                      stall_ep0();
 217   1      }
 218          
 219          void set_address(void)
 220          {
 221   1              D12_SetAddressEnable((unsigned char)(ControlData.DeviceRequest.wValue &
 222   1                      DEVICE_ADDRESS_MASK), 1);
 223   1              single_transmit(0, 0);
 224   1      }
 225          
 226          void get_descriptor(void)
 227          {
 228   1              unsigned char bDescriptor = MSB(ControlData.DeviceRequest.wValue);
 229   1      
 230   1              if (bDescriptor == USB_DEVICE_DESCRIPTOR_TYPE) {
 231   2                      code_transmit((unsigned char code *)&DeviceDescr, sizeof(USB_DEVICE_DESCRIPTOR));
 232   2              } 
 233   1              else if (bDescriptor == USB_CONFIGURATION_DESCRIPTOR_TYPE) {
 234   2                      code_transmit((unsigned char code *)&ConfigDescr, CONFIG_DESCRIPTOR_LENGTH);
 235   2              } 
 236   1              else
 237   1                      stall_ep0();
 238   1      }
 239          
 240          void get_configuration(void)
 241          {
C51 COMPILER V7.06   KCHAP9                                                                11/11/2003 20:11:02 PAGE 18  

 242   1              unsigned char c = bEPPflags.bits.configuration;
 243   1      
 244   1              single_transmit(&c, 1);
 245   1      }
 246          
 247          void set_configuration(void)
 248          {
 249   1              if (ControlData.DeviceRequest.wValue == 0) {
 250   2                      //* put device in unconfigured state 
 251   2                      single_transmit(0, 0);
 252   2                      DISABLE;
 253   2                      bEPPflags.bits.configuration = 0;
 254   2                      ENABLE;
 255   2                      init_unconfig();
 256   2              } else if (ControlData.DeviceRequest.wValue == 1) {
 257   2                      // Configure device 
 258   2                      single_transmit(0, 0);
 259   2      
 260   2                      init_unconfig();
 261   2                      init_config();
 262   2                      
 263   2                      DISABLE;
 264   2                      bEPPflags.bits.configuration = 1;
 265   2                      ENABLE;
 266   2              } else
 267   1                      stall_ep0();
 268   1      }
 269          
 270          void get_interface(void)
 271          {
 272   1              unsigned char txdat = 0;        // Only/Current interface = 0 
 273   1              single_transmit(&txdat, 1);
 274   1      }
 275          
 276          void set_interface(void)
 277          {
 278   1              if (ControlData.DeviceRequest.wValue == 0 && ControlData.DeviceRequest.wIndex == 0)
 279   1                      single_transmit(0, 0);
 280   1              else
 281   1                      stall_ep0();
 282   1      }
C51 COMPILER V7.06   KCHAP9                                                                11/11/2003 20:11:02 PAGE 19  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION reserved (BEGIN)
                                           ; SOURCE LINE # 121
                                           ; SOURCE LINE # 122
                                           ; SOURCE LINE # 123
0000 020000      E     LJMP    stall_ep0
             ; FUNCTION reserved (END)

             ; FUNCTION get_status (BEGIN)
                                           ; SOURCE LINE # 132
                                           ; SOURCE LINE # 133
                                           ; SOURCE LINE # 135
0000 E500        E     MOV     A,ControlData

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品美女久久久久久2018| 亚洲成人综合网站| 亚洲精品一区二区三区在线观看| 国产欧美日韩卡一| 国产人久久人人人人爽| 国产精品不卡在线观看| 婷婷一区二区三区| 久久99精品久久久久婷婷| 成人精品国产免费网站| 欧美三级韩国三级日本三斤| 日韩一区二区不卡| 亚洲精品你懂的| 国产一区二区三区综合 | 成人av动漫网站| 欧美一级在线免费| 亚洲精品国产无天堂网2021| 蜜臂av日日欢夜夜爽一区| 在线一区二区观看| 国产无人区一区二区三区| 青青青爽久久午夜综合久久午夜 | 久久天天做天天爱综合色| 亚洲国产视频在线| 在线观看一区日韩| 一区二区三区波多野结衣在线观看| 国产综合色产在线精品| 欧美大度的电影原声| 亚洲成a人v欧美综合天堂| aa级大片欧美| 亚洲欧美日韩国产手机在线 | 亚洲欧美日韩在线不卡| 不卡一区二区在线| 亚洲国产精品二十页| 波波电影院一区二区三区| 亚洲精品成a人| 国产一区二区三区视频在线播放| 国产不卡在线一区| 99久久精品免费看国产| 粉嫩aⅴ一区二区三区四区| 精品国产一区二区三区不卡| 日韩二区三区四区| 精品日韩欧美在线| 日韩精品影音先锋| 亚洲成va人在线观看| 中文字幕欧美一区| 国产亚洲精品aa午夜观看| 日韩一区二区三区免费观看| 在线观看亚洲精品| 在线免费av一区| 欧美亚洲愉拍一区二区| 7777精品伊人久久久大香线蕉最新版| 视频一区国产视频| 欧美一区二区三区视频| 久久99精品一区二区三区三区| 精品国产免费人成在线观看| 日本道精品一区二区三区| 免费成人性网站| 中文字幕在线不卡| 日韩一本二本av| 极品少妇一区二区三区精品视频| 怡红院av一区二区三区| 成人在线综合网站| 麻豆传媒一区二区三区| 五月婷婷综合网| 亚洲女人****多毛耸耸8| 国产丝袜美腿一区二区三区| 日韩欧美国产1| 91精品国产一区二区人妖| 欧美日韩亚洲综合| 色狠狠桃花综合| 99re这里只有精品视频首页| 国产.欧美.日韩| 国产精品一区二区男女羞羞无遮挡| 免费成人在线网站| 日本欧美肥老太交大片| 奇米色一区二区三区四区| 亚洲444eee在线观看| 亚洲v精品v日韩v欧美v专区| 亚洲bdsm女犯bdsm网站| 亚洲午夜在线观看视频在线| 亚洲综合无码一区二区| 亚洲成人高清在线| 天天综合网 天天综合色| 日韩高清不卡在线| 久久国产精品区| 另类成人小视频在线| 国产精品综合一区二区三区| 高清不卡在线观看| 成人免费高清在线观看| 99精品视频在线观看| 一本高清dvd不卡在线观看| 91久久免费观看| 欧美美女一区二区在线观看| 欧美一级专区免费大片| 久久理论电影网| 亚洲欧洲精品一区二区三区不卡| 亚洲天堂免费在线观看视频| 亚洲精品精品亚洲| 日韩成人免费看| 国产麻豆精品在线| 一本到高清视频免费精品| 欧美日韩成人综合天天影院| 日韩欧美高清一区| 国产精品萝li| 偷拍一区二区三区| 国产最新精品精品你懂的| 91日韩一区二区三区| 337p亚洲精品色噜噜狠狠| 久久久欧美精品sm网站| 最新国产成人在线观看| 亚洲 欧美综合在线网络| 精品一区二区三区免费| 91丝袜高跟美女视频| 91精品国产乱| 国产精品久久午夜| 天堂成人免费av电影一区| 国产成人综合亚洲网站| 欧美亚洲愉拍一区二区| 久久久久一区二区三区四区| 一区二区三区高清| 精彩视频一区二区| 欧美在线看片a免费观看| 精品国产人成亚洲区| 亚洲另类色综合网站| 久色婷婷小香蕉久久| 91在线观看成人| 精品sm在线观看| 亚洲综合免费观看高清完整版在线| 经典三级视频一区| 欧美三级视频在线| 国产精品三级在线观看| 日本亚洲欧美天堂免费| 91麻豆123| 国产欧美一区二区三区网站| 日韩激情一二三区| 97国产一区二区| 久久久不卡影院| 亚洲成a人在线观看| 91色视频在线| 国产福利一区二区三区在线视频| 国产精品免费看片| 久久久精品欧美丰满| 蜜臀精品久久久久久蜜臀| 精品99一区二区三区| 天堂久久一区二区三区| 蜜臀av性久久久久av蜜臀妖精 | 欧美日韩精品是欧美日韩精品| 色呦呦国产精品| 国产三级精品在线| 欧美亚男人的天堂| 精品一二三四在线| 亚洲一区中文在线| 久久久亚洲精品石原莉奈| 久久这里只有精品首页| 日韩va亚洲va欧美va久久| 丝袜美腿亚洲色图| 亚洲国产一区二区三区| 亚洲成人在线免费| 丝袜脚交一区二区| 国产一区二区精品久久99| 美日韩一区二区| 丁香激情综合五月| 欧美日韩在线亚洲一区蜜芽| 69精品人人人人| 国产色产综合色产在线视频| 欧美三级在线播放| 成人av午夜影院| 午夜精品在线看| 午夜精品久久久久久久久久久| 国产精品美女久久久久aⅴ国产馆| 欧美大片在线观看| 欧美电影一区二区三区| 欧美日韩大陆在线| 91精品欧美久久久久久动漫| 欧美亚洲国产一区在线观看网站| 国产99一区视频免费| 日本欧美加勒比视频| 亚洲精品一区二区三区99| 欧美日韩一区高清| 欧美天堂一区二区三区| 国产精品欧美综合在线| 国产精品色噜噜| 久久精品综合网| 欧美性欧美巨大黑白大战| 在线一区二区视频| 欧美日韩国产美| 中文av字幕一区| 亚洲欧美偷拍三级| 午夜欧美大尺度福利影院在线看| 亚洲天堂精品在线观看| 亚洲人午夜精品天堂一二香蕉| 中文字幕在线不卡一区| 日韩毛片在线免费观看| 洋洋成人永久网站入口| 激情深爱一区二区| 在线精品亚洲一区二区不卡| 精品少妇一区二区三区日产乱码 | 久久一二三国产| 亚洲色图在线播放| 成人午夜免费视频| 精品粉嫩aⅴ一区二区三区四区|