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

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

?? isr.lst

?? philiphs D12 firmware驅動程序
?? LST
字號:
C51 COMPILER V7.06   ISR                                                                   08/06/2006 09:11:06 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE ISR
OBJECT MODULE PLACED IN ISR.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE ISR.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*
   2             //*************************************************************************
   3             //
   4             //                  P H I L I P S   P R O P R I E T A R Y
   5             //
   6             //           COPYRIGHT (c)   1997 BY PHILIPS SINGAPORE.
   7             //                     --  ALL RIGHTS RESERVED  --
   8             //
   9             // File Name:        ISR.C
  10             // Author:           Wenkai Du
  11             // Created:          19 Dec 97
  12             // Modified:
  13             // Revision:         3.0
  14             //
  15             //*************************************************************************
  16             //
  17             // 98/11/25          Added I/O mode Main endpoints access. (WK)
  18             //*************************************************************************
  19             */
  20          #include <stdio.h>
  21          #include <string.h>
  22          
  23          #include <reg51.h>                /* special function register declarations   */
  24          
  25          #include "epphal.h"
  26          #include "d12ci.h"
  27          #include "mainloop.h"
  28          #include "usb100.h"
  29          
  30          extern void bus_reset(void);
  31          
  32          extern void ep0_txdone(void);
  33          extern void ep0_rxdone(void);
  34          
  35          extern void ep1_txdone(void);
  36          extern void ep1_rxdone(void);
  37          
  38          extern void main_txdone(void);
  39          extern void main_rxdone(void);
  40          
  41          extern void dma_eot(void);
  42          
  43          /*
  44          //*************************************************************************
  45          //  Public static data
  46          //*************************************************************************
  47          */
  48          
  49          EPPFLAGS bEPPflags;
  50          
  51          /* Control endpoint TX/RX buffers */
  52          extern CONTROL_XFER ControlData;
  53          
  54          /* ISR static vars */
  55          unsigned char idata GenEpBuf[EP1_PACKET_SIZE];
C51 COMPILER V7.06   ISR                                                                   08/06/2006 09:11:06 PAGE 2   

  56          unsigned char idata EpBuf[EP2_PACKET_SIZE];
  57          IO_REQUEST idata ioRequest;
  58          unsigned char ioSize, ioCount;
  59          
  60          unsigned long ClockTicks = 0;
  61          unsigned char xdata MainEpBuf[256];
  62          
  63          extern BOOL bNoRAM;
  64          
  65          timer_isr() interrupt 1
  66          {
  67   1              DISABLE;
  68   1              ClockTicks++;
  69   1              bEPPflags.bits.timer = 1;
  70   1              ENABLE;
  71   1      }
  72          
  73          
  74          usb_isr() interrupt 0
  75          {
  76   1              DISABLE;
  77   1              fn_usb_isr();
  78   1              ENABLE;
  79   1      }
  80          
  81          void fn_usb_isr()
  82          {
  83   1              unsigned int i_st;
  84   1      
  85   1              bEPPflags.bits.in_isr = 1;
  86   1      
  87   1              i_st = D12_ReadInterruptRegister();
  88   1      
  89   1              if(i_st != 0) {
  90   2                      if(i_st & D12_INT_BUSRESET) {
  91   3                              bus_reset();
  92   3                              bEPPflags.bits.bus_reset = 1;
  93   3                      }
  94   2      
  95   2                      if(i_st & D12_INT_EOT)
  96   2                              dma_eot();
  97   2      
  98   2                      if(i_st & D12_INT_SUSPENDCHANGE)
  99   2                              bEPPflags.bits.suspend = 1;
 100   2      
 101   2                      if(i_st & D12_INT_ENDP0IN)
 102   2                              ep0_txdone();
 103   2                      if(i_st & D12_INT_ENDP0OUT)
 104   2                              ep0_rxdone();
 105   2                      if(i_st & D12_INT_ENDP1IN)
 106   2                              ep1_txdone();
 107   2                      if(i_st & D12_INT_ENDP1OUT)
 108   2                              ep1_rxdone();
 109   2                      if(i_st & D12_INT_ENDP2IN)
 110   2                              main_txdone();
 111   2                      if(i_st & D12_INT_ENDP2OUT)
 112   2                              main_rxdone();
 113   2              }
 114   1      
 115   1              bEPPflags.bits.in_isr = 0;
 116   1      }
 117          
C51 COMPILER V7.06   ISR                                                                   08/06/2006 09:11:06 PAGE 3   

 118          void bus_reset(void)
 119          {
 120   1      }
 121          
 122          void ep0_rxdone(void)
 123          {
 124   1              unsigned char ep_last, i;
 125   1      
 126   1              ep_last = D12_ReadLastTransactionStatus(0); // Clear interrupt flag
 127   1      
 128   1              if (ep_last & D12_SETUPPACKET) {
 129   2      
 130   2                      ControlData.wLength = 0;
 131   2                      ControlData.wCount = 0;
 132   2      
 133   2                      if( D12_ReadEndpoint(0, sizeof(ControlData.DeviceRequest),
 134   2                              (unsigned char *)(&(ControlData.DeviceRequest))) != sizeof(DEVICE_REQUEST) ) {
 135   3      
 136   3                              D12_SetEndpointStatus(0, 1);
 137   3                              D12_SetEndpointStatus(1, 1);
 138   3                              bEPPflags.bits.control_state = USB_IDLE;
 139   3                              
 140   3                              return;
 141   3                      }
 142   2      
 143   2                      ControlData.DeviceRequest.wValue = SWAP(ControlData.DeviceRequest.wValue);
 144   2                      ControlData.DeviceRequest.wIndex = SWAP(ControlData.DeviceRequest.wIndex);
 145   2                      ControlData.DeviceRequest.wLength = SWAP(ControlData.DeviceRequest.wLength);
 146   2      
 147   2                      // Acknowledge setup here to unlock in/out endp
 148   2                      D12_AcknowledgeEndpoint(0);
 149   2                      D12_AcknowledgeEndpoint(1);
 150   2      
 151   2                      ControlData.wLength = ControlData.DeviceRequest.wLength;
 152   2                      ControlData.wCount = 0;
 153   2      
 154   2                      if (ControlData.DeviceRequest.bmRequestType & (unsigned char)USB_ENDPOINT_DIRECTION_MASK) {
 155   3                              bEPPflags.bits.setup_packet = 1;
 156   3                              bEPPflags.bits.control_state = USB_IDLE;                /* get command */
 157   3                      }
 158   2                      else {
 159   3                              if (ControlData.DeviceRequest.wLength == 0) {
 160   4                                      bEPPflags.bits.setup_packet = 1;
 161   4                                      bEPPflags.bits.control_state = USB_IDLE;                /* set command */
 162   4                              }
 163   3                              else {
 164   4                                      if(ControlData.DeviceRequest.wLength > MAX_CONTROLDATA_SIZE) {
 165   5                                              bEPPflags.bits.control_state = USB_IDLE;
 166   5                                              D12_SetEndpointStatus(0, 1);
 167   5                                              D12_SetEndpointStatus(1, 1);
 168   5                                      }
 169   4                                      else {
 170   5                                              bEPPflags.bits.control_state = USB_RECEIVE;     /* set command with OUT token */
 171   5                                      }
 172   4                              } // set command with data
 173   3                      } // else set command
 174   2              } // if setup packet
 175   1      
 176   1              else if (bEPPflags.bits.control_state == USB_RECEIVE) {
 177   2                      i =     D12_ReadEndpoint(0, EP0_PACKET_SIZE,
 178   2                              ControlData.dataBuffer + ControlData.wCount);
 179   2      
C51 COMPILER V7.06   ISR                                                                   08/06/2006 09:11:06 PAGE 4   

 180   2                      ControlData.wCount += i;
 181   2                      if( i != EP0_PACKET_SIZE || ControlData.wCount >= ControlData.wLength) {
 182   3                              bEPPflags.bits.setup_packet = 1;
 183   3                              bEPPflags.bits.control_state = USB_IDLE;
 184   3                      }
 185   2              }
 186   1      
 187   1              else {
 188   2                      bEPPflags.bits.control_state = USB_IDLE;
 189   2              }
 190   1      }
 191          
 192          void ep0_txdone(void)
 193          {
 194   1              short i = ControlData.wLength - ControlData.wCount;
 195   1      
 196   1              D12_ReadLastTransactionStatus(1); // Clear interrupt flag
 197   1      
 198   1              if (bEPPflags.bits.control_state != USB_TRANSMIT) 
 199   1                      return;
 200   1      
 201   1              if( i >= EP0_PACKET_SIZE) {
 202   2                      D12_WriteEndpoint(1, EP0_PACKET_SIZE, ControlData.pData + ControlData.wCount);
 203   2                      ControlData.wCount += EP0_PACKET_SIZE;
 204   2      
 205   2                      bEPPflags.bits.control_state = USB_TRANSMIT;
 206   2              }
 207   1              else if( i != 0) {
 208   2                      D12_WriteEndpoint(1, i, ControlData.pData + ControlData.wCount);
 209   2                      ControlData.wCount += i;
 210   2      
 211   2                      bEPPflags.bits.control_state = USB_IDLE;
 212   2              }
 213   1              else if (i == 0){
 214   2                      D12_WriteEndpoint(1, 0, 0); // Send zero packet at the end ???
 215   2      
 216   2                      bEPPflags.bits.control_state = USB_IDLE;
 217   2              }
 218   1      }
 219          
 220          void dma_eot(void)
 221          {
 222   1      }
 223          
 224          void ep1_txdone(void)
 225          {
 226   1              D12_ReadLastTransactionStatus(3); /* Clear interrupt flag */
 227   1      }
 228          
 229          void ep1_rxdone(void)
 230          {
 231   1              unsigned char len;
 232   1      
 233   1              D12_ReadLastTransactionStatus(2); /* Clear interrupt flag */
 234   1      
 235   1              len = D12_ReadEndpoint(2, sizeof(GenEpBuf), GenEpBuf);
 236   1      
 237   1              if(len != 0)
 238   1                      bEPPflags.bits.ep1_rxdone = 1;
 239   1      }
 240          
 241          void main_txdone(void)
C51 COMPILER V7.06   ISR                                                                   08/06/2006 09:11:06 PAGE 5   

 242          {
 243   1              unsigned char len;
 244   1      
 245   1              D12_ReadLastTransactionStatus(5); /* Clear interrupt flag */
 246   1      
 247   1              len = ioSize - ioCount;
 248   1              if(len == 0) {
 249   2                      if(bEPPflags.bits.dma_state == DMA_PENDING)
 250   2                              bEPPflags.bits.setup_dma ++;
 251   2                      else
 252   2                              bEPPflags.bits.dma_state = DMA_IDLE;
 253   2              }
 254   1              else {
 255   2                      if(len > 64)
 256   2                              len = 64;
 257   2                      if(bNoRAM)
 258   2                              len = D12_WriteEndpoint(5, len, EpBuf + ioCount);
 259   2                      else
 260   2                              len = D12_WriteEndpoint(5, len, MainEpBuf + ioCount);
 261   2                      ioCount += len;
 262   2              }
 263   1      }
 264          
 265          void main_rxdone(void)
 266          {
 267   1              unsigned char len;
 268   1      
 269   1              D12_ReadLastTransactionStatus(4); /* Clear interrupt flag */
 270   1      
 271   1              if(bNoRAM)
 272   1                      len = D12_ReadEndpoint(4, 64, EpBuf + ioCount);
 273   1              else
 274   1                      len = D12_ReadEndpoint(4, 64, MainEpBuf + ioCount);
 275   1              ioCount += len;
 276   1              if(bNoRAM)
 277   1                      len = D12_ReadEndpoint(4, 64, EpBuf + ioCount);
 278   1              else
 279   1                      len = D12_ReadEndpoint(4, 64, MainEpBuf + ioCount);
 280   1              ioCount += len;
 281   1              if(ioCount >= ioSize) {
 282   2                      if(bEPPflags.bits.dma_state == DMA_PENDING)
 283   2                              bEPPflags.bits.setup_dma ++;
 284   2                      else
 285   2                              bEPPflags.bits.dma_state = DMA_IDLE;
 286   2              }
 287   1      }
 288          
 289          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    873    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    256    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8       5
   IDATA SIZE       =     74    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品超碰97尤物18| 亚洲狼人国产精品| 91精品欧美久久久久久动漫| 色噜噜夜夜夜综合网| 97精品电影院| 在线观看亚洲a| 欧亚洲嫩模精品一区三区| 在线精品视频一区二区三四 | 欧美久久久久久久久| 91国产免费看| 欧美日韩高清一区| 欧美一级二级三级蜜桃| 欧美va亚洲va香蕉在线| 日韩欧美一区在线观看| 精品国产电影一区二区| 久久久精品黄色| 亚洲欧美欧美一区二区三区| 亚洲丰满少妇videoshd| 另类小说图片综合网| 国产在线精品免费av| 91亚洲精品一区二区乱码| 69久久夜色精品国产69蝌蚪网| 91精品国产综合久久久久久| 久久久久久久久免费| 国产精品成人免费精品自在线观看| 亚洲女厕所小便bbb| 日日摸夜夜添夜夜添精品视频| 精品一区二区免费看| 91小视频免费观看| 日韩精品一区二区三区蜜臀 | 美女视频一区二区三区| 夫妻av一区二区| 精品污污网站免费看| 欧美一级爆毛片| 亚洲欧美一区二区三区极速播放 | 国产成人综合精品三级| 色综合久久久久综合体| 精品欧美久久久| 一区二区三区四区激情| 国产专区欧美精品| 欧美日韩一级片在线观看| 久久久精品国产免大香伊| 亚洲午夜一二三区视频| 床上的激情91.| 日韩亚洲电影在线| 亚洲一区在线电影| 波多野结衣一区二区三区 | 久久国产精品99久久人人澡| 色综合久久久久久久久久久| 精品sm在线观看| 亚洲va韩国va欧美va| 国产91精品一区二区麻豆网站| 欧美三级三级三级爽爽爽| 亚洲欧美综合色| 狠狠色综合日日| 678五月天丁香亚洲综合网| 亚洲欧洲性图库| 国产成人综合在线观看| 日韩亚洲欧美在线| 天天操天天综合网| 91网站最新地址| 国产精品乱子久久久久| 国产成人免费在线| 精品999久久久| 蜜桃一区二区三区四区| 欧美一级理论片| 日韩精品1区2区3区| 在线视频观看一区| 亚洲一区二区在线视频| 色综合激情五月| 亚洲美女偷拍久久| 色屁屁一区二区| 亚洲福利视频三区| 欧美精品电影在线播放| 石原莉奈在线亚洲二区| 欧美精品一卡两卡| 日韩va亚洲va欧美va久久| 在线成人午夜影院| 秋霞影院一区二区| 日韩欧美视频一区| 国产激情一区二区三区四区 | 91麻豆免费视频| 综合久久国产九一剧情麻豆| 91视视频在线观看入口直接观看www| 18成人在线观看| 色av成人天堂桃色av| 亚洲国产精品久久艾草纯爱| 欧美人牲a欧美精品| 日本成人在线看| 久久久久久久久岛国免费| 成人免费毛片高清视频| 18成人在线视频| 777色狠狠一区二区三区| 国内成+人亚洲+欧美+综合在线| 久久综合国产精品| 成人av午夜电影| 亚洲一二三区视频在线观看| 91麻豆精品国产自产在线| 精品无人码麻豆乱码1区2区| 国产精品欧美久久久久无广告| 91蜜桃在线免费视频| 日精品一区二区| 久久精品网站免费观看| 在线中文字幕一区二区| 久久99精品久久久久久| 国产精品久久久久一区二区三区共| 一本色道亚洲精品aⅴ| 男女视频一区二区| 国产精品久久久久久久岛一牛影视 | 久久久亚洲精品一区二区三区| 丁香婷婷综合激情五月色| 亚洲欧美另类在线| 日韩精品一区二区三区视频播放 | 欧美日韩国产乱码电影| 国产综合色在线视频区| 亚洲最大的成人av| 久久久久久久久蜜桃| 欧美视频在线一区二区三区| 国产一区二区三区黄视频 | 不卡在线视频中文字幕| 午夜国产不卡在线观看视频| 日本一区二区在线不卡| 欧美精品一级二级三级| 成人免费视频播放| 久久se这里有精品| 亚洲成人av一区二区| 中文字幕精品一区| 久久中文字幕电影| 欧美精品一二三| 日本道在线观看一区二区| 国产成人精品午夜视频免费| 日本伊人精品一区二区三区观看方式| 欧美激情一区二区三区蜜桃视频| 欧美一区在线视频| 欧美日韩午夜在线视频| 不卡的电视剧免费网站有什么| 麻豆国产精品777777在线| 一区二区三区免费网站| 亚洲丝袜精品丝袜在线| 国产欧美日韩综合| 精品黑人一区二区三区久久 | 久久久久综合网| 久久众筹精品私拍模特| 欧美变态tickle挠乳网站| 91精品国产福利| 欧美乱妇15p| 在线播放国产精品二区一二区四区| 91黄色免费版| 91国偷自产一区二区三区成为亚洲经典| 成人自拍视频在线观看| 成人av在线看| 91污在线观看| 欧美亚洲国产一区二区三区| 91老司机福利 在线| 99精品国产热久久91蜜凸| 成人av在线资源| 91在线免费视频观看| 在线观看国产91| 欧美日韩在线三级| 欧美日韩国产一级| 欧美一区二区三区公司| 精品国产一区二区精华| 国产欧美日韩久久| 综合激情成人伊人| 一区二区三区四区在线| 亚洲综合小说图片| 视频在线观看91| 久久99久国产精品黄毛片色诱| 97精品国产97久久久久久久久久久久| 成人午夜免费电影| 在线精品视频免费播放| 日韩一级免费一区| 中文字幕欧美区| 亚洲综合在线免费观看| 强制捆绑调教一区二区| 国产精品自拍三区| 91啦中文在线观看| 欧美一区二区精品在线| 久久久综合视频| 夜夜精品视频一区二区| 久久国产精品第一页| 91一区一区三区| 日韩一区二区视频在线观看| 国产精品国产三级国产a| 午夜久久久影院| 国产盗摄一区二区| 欧美日韩精品一区二区在线播放| 日韩一区二区三区在线视频| 中文字幕一区免费在线观看 | 国产欧美一二三区| 亚洲国产精品尤物yw在线观看| 精品一区二区三区不卡| 99视频精品在线| 91精品国产欧美日韩| 国产精品网站在线播放| 日韩激情av在线| 99在线热播精品免费| 精品国产成人系列| 亚洲丶国产丶欧美一区二区三区| 韩国理伦片一区二区三区在线播放 |