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

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

?? usbhw.lst

?? 針對at91sam7s64芯片實現(xiàn)usb通訊的下位機程序
?? LST
?? 第 1 頁 / 共 5 頁
字號:
  297          /*
  298           *  Set Stall for USB Endpoint
  299           *    Parameters:      EPNum: Endpoint Number
  300           *                       EPNum.0..3: Address
  301           *                       EPNum.7:    Dir
  302           *    Return Value:    None
  303           */
  304          
  305          void USB_SetStallEP (DWORD EPNum) {
  306   1        pUDP->UDP_CSR[EPNum & 0x0F] |=  AT91C_UDP_FORCESTALL;
  307   1      }
  308          
  309          
  310          /*
  311           *  Clear Stall for USB Endpoint
  312           *    Parameters:      EPNum: Endpoint Number
  313           *                       EPNum.0..3: Address
  314           *                       EPNum.7:    Dir
  315           *    Return Value:    None
  316           */
  317          
  318          void USB_ClrStallEP (DWORD EPNum) {
  319   1        pUDP->UDP_CSR[EPNum & 0x0F] &= ~AT91C_UDP_FORCESTALL;
  320   1      }
  321          /*
  322           *  Read USB Endpoint Data
  323           *    Parameters:      EPNum: Endpoint Number
ARM COMPILER V2.53,  usbhw                                                                 02/11/07  08:22:50  PAGE 6   

  324           *                       EPNum.0..3: Address
  325           *                       EPNum.7:    Dir
  326           *                     pData: Pointer to Data Buffer
  327           *    Return Value:    Number of bytes read
  328           */
  329          
  330          DWORD USB_ReadEP (DWORD EPNum, BYTE *pData) {
  331   1        DWORD cnt, n;
  332   1      
  333   1        EPNum &= 0x0F;
  334   1        cnt = (pUDP->UDP_CSR[EPNum] >> 16) & 0x07FF;
  335   1        for (n = 0; n < cnt; n++) {
  336   2          *pData++ = (BYTE)pUDP->UDP_FDR[EPNum];
  337   2        }
  338   1        return (cnt);
  339   1      }
  340          
  341          
  342          /*
  343           *  Write USB Endpoint Data
  344           *    Parameters:      EPNum: Endpoint Number
  345           *                       EPNum.0..3: Address
  346           *                       EPNum.7:    Dir
  347           *                     pData: Pointer to Data Buffer
  348           *                     cnt:   Number of bytes to write
  349           *    Return Value:    Number of bytes written
  350           */
  351          
  352          DWORD USB_WriteEP (DWORD EPNum, BYTE *pData, DWORD cnt) {
  353   1        DWORD n;
  354   1      
  355   1        EPNum &= 0x0F;
  356   1        if (pUDP->UDP_CSR[EPNum] & AT91C_UDP_TXPKTRDY) {
  357   2          if ((DualBankEP & (1 << EPNum)) && (TxDataBank[EPNum] == 0)) {
  358   3            TxDataBank[EPNum] = 1;
  359   3          } else {
  360   3            return (0);
  361   3          }
  362   2        }
  363   1        for (n = 0; n < cnt; n++) {
  364   2          pUDP->UDP_FDR[EPNum] = *pData++;
  365   2        }
  366   1        pUDP->UDP_CSR[EPNum] |= AT91C_UDP_TXPKTRDY;
  367   1      
  368   1        return (cnt);
  369   1      }
  370          
  371          
  372          /*
  373           *  Get USB Last Frame Number
  374           *    Parameters:      None
  375           *    Return Value:    Frame Number
  376           */
  377          
  378          DWORD USB_GetFrame (void) {
  379   1        DWORD val;
  380   1        while ((pUDP->UDP_NUM & (AT91C_UDP_FRM_OK | AT91C_UDP_FRM_ERR)) == 0);
  381   1        if (pUDP->UDP_NUM & AT91C_UDP_FRM_OK) {
  382   2          val = pUDP->UDP_NUM & AT91C_UDP_FRM_NUM;
  383   2        } else {
  384   2          val = 0xFFFFFFFF;
  385   2        }
  386   1        return (val);
  387   1      }
  388          /*
  389           *  USB Interrupt Service Routine
ARM COMPILER V2.53,  usbhw                                                                 02/11/07  08:22:50  PAGE 7   

  390           */
  391          
  392          void USB_ISR (void) __irq {
  393   1        DWORD isr, csr, bkm, n;
  394   1      
  395   1        while (isr = pUDP->UDP_ISR) {
  396   2      
  397   2          /* End of Bus Reset Interrupt */
  398   2          if (isr & AT91C_UDP_ENDBUSRES) {
  399   3            USB_Reset();
  400   3      #if   USB_RESET_EVENT
  401   3            USB_Reset_Event();
  402   3      #endif
  403   3            pUDP->UDP_ICR = AT91C_UDP_ENDBUSRES;
  404   3          }
  405   2      
  406   2          /* USB Suspend Interrupt */
  407   2          if (isr & AT91C_UDP_RXSUSP) {
  408   3            USB_Suspend();
  409   3      #if   USB_SUSPEND_EVENT
  410   3            USB_Suspend_Event();
  411   3      #endif
  412   3            pUDP->UDP_ICR = AT91C_UDP_RXSUSP;
  413   3          }
  414   2          /* USB Resume Interrupt */
  415   2          if (isr & AT91C_UDP_RXRSM) {
  416   3            USB_Resume();
  417   3      #if   USB_RESUME_EVENT
  418   3            USB_Resume_Event();
  419   3      #endif
  420   3            pUDP->UDP_ICR = AT91C_UDP_RXRSM;
  421   3          }
  422   2      
  423   2          /* External Resume Interrupt */
  424   2          if (isr & AT91C_UDP_EXTRSM) {
  425   3            USB_WakeUp();
  426   3      #if   USB_WAKEUP_EVENT
                     USB_WakeUp_Event();
               #endif
  429   3            pUDP->UDP_ICR = AT91C_UDP_EXTRSM;
  430   3          }
  431   2      
  432   2          /* Start of Frame Interrupt */
  433   2          if (isr & AT91C_UDP_SOFINT) {
  434   3      #if USB_SOF_EVENT
                     USB_SOF_Event();
               #endif
  437   3            pUDP->UDP_ICR = AT91C_UDP_SOFINT;
  438   3          }
  439   2      
  440   2          /* Endpoint Interrupts */
  441   2          for (n = 0; n < USB_EP_NUM; n++) {
  442   3            if (isr & (1 << n)) {
  443   4      
  444   4              csr = pUDP->UDP_CSR[n];
  445   4              /* Setup Packet Received Interrupt */
  446   4              if (csr & AT91C_UDP_RXSETUP) {
  447   5                if (USB_P_EP[n]) {
  448   6                  USB_P_EP[n](USB_EVT_SETUP);
  449   6                }
  450   5                /* Setup Flag is already cleared in USB_DirCtrlEP */
  451   5                /* pUDP->UDP_CSR[n] &= ~AT91C_UDP_RXSETUP; */
  452   5              }
  453   4      
  454   4              /* Data Packet Received Interrupt */
  455   4              bkm = RX_DATA_BK[RxDataBank[n]];
ARM COMPILER V2.53,  usbhw                                                                 02/11/07  08:22:50  PAGE 8   

  456   4              if (csr & bkm) {
  457   5                if (USB_P_EP[n]) {
  458   6                  USB_P_EP[n](USB_EVT_OUT);
  459   6                }
  460   5                pUDP->UDP_CSR[n] &= ~bkm;
  461   5                if (DualBankEP & (1 << n)) {
  462   6                  RxDataBank[n] ^= 1;
  463   6                }
  464   5              }
  465   4      
  466   4              /* Data Packet Sent Interrupt */
  467   4              if (csr & AT91C_UDP_TXCOMP) {
  468   5                pUDP->UDP_CSR[n] &= ~AT91C_UDP_TXCOMP;
  469   5                if (TxDataBank[n]) {
  470   6                  pUDP->UDP_CSR[n] |= AT91C_UDP_TXPKTRDY;
  471   6                  TxDataBank[n] = 0;
  472   6                }
  473   5                if (USB_P_EP[n]) {
  474   6                  USB_P_EP[n](USB_EVT_IN);
  475   6                }
  476   5              }
  477   4      
  478   4              /* STALL Packet Sent Interrupt */
  479   4              if (csr & AT91C_UDP_STALLSENT) {
  480   5                if ((csr & AT91C_UDP_EPTYPE) == AT91C_UDP_EPTYPE_CTRL) {
  481   6                  if (USB_P_EP[n]) {
  482   7                    USB_P_EP[n](USB_EVT_IN_STALL);
  483   7      /*            USB_P_EP[n](USB_EVT_OUT_STALL); */
  484   7                  }
  485   6                }
  486   5                pUDP->UDP_CSR[n] &= ~AT91C_UDP_STALLSENT;
  487   5              }
  488   4      
  489   4            }
  490   3          }
  491   2      
  492   2        }
  493   1        *AT91C_AIC_EOICR = 0;                     /* End of Interrupt */
  494   1      }
ARM COMPILER V2.53,  usbhw                                                                 02/11/07  08:22:50  PAGE 9   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (USB_Reset_Event?T)
 EXTERN CODE16 (USB_Suspend_Event?T)
 EXTERN CODE16 (USB_Resume_Event?T)
 EXTERN DATA (USB_P_EP)
 EXTERN CODE32 (USB_Reset_Event?A)
 EXTERN CODE32 (USB_Suspend_Event?A)
 EXTERN CODE32 (USB_Resume_Event?A)



*** PUBLICS:
 PUBLIC         USB_Init?T
 PUBLIC         USB_Connect?T
 PUBLIC         USB_Reset?T
 PUBLIC         USB_Reset?A
 PUBLIC         USB_Suspend?T
 PUBLIC         USB_Suspend?A
 PUBLIC         USB_Resume?T
 PUBLIC         USB_Resume?A
 PUBLIC         USB_WakeUp?T
 PUBLIC         USB_WakeUp?A
 PUBLIC         USB_WakeUpCfg?T
 PUBLIC         USB_SetAddress?T
 PUBLIC         USB_Configure?T
 PUBLIC         USB_ConfigEP?T
 PUBLIC         USB_DirCtrlEP?T
 PUBLIC         USB_EnableEP?T
 PUBLIC         USB_DisableEP?T
 PUBLIC         USB_ResetEP?T
 PUBLIC         USB_SetStallEP?T
 PUBLIC         USB_ClrStallEP?T
 PUBLIC         USB_ReadEP?T
 PUBLIC         USB_WriteEP?T
 PUBLIC         USB_GetFrame?T
 PUBLIC         USB_ISR?A
 PUBLIC         DualBankEP
 PUBLIC         RX_DATA_BK
 PUBLIC         pUDP
 PUBLIC         RxDataBank
 PUBLIC         TxDataBank



*** DATA SEGMENT '?CON?usbhw':
 00000000          RX_DATA_BK:
 00000000           BEGIN_INIT
 00000000  00000002  DD          0x2
 00000004  00000040  DD          0x40
 00000008           END_INIT
 00000008          DualBankEP:
 00000008           BEGIN_INIT
 00000008  06        DB          0x6
 00000009           END_INIT

*** DATA SEGMENT '?DT0?usbhw':
 00000000          pUDP:
 00000000           BEGIN_INIT
 00000000  FFFB0000  DD          0xFFFB0000
 00000004           END_INIT
 00000004          RxDataBank:
 00000004            DS          4
 00000008          TxDataBank:
 00000008            DS          4



*** CODE SEGMENT '?PR?USB_Init?T?usbhw':
   45:   AT91C_BASE_PMC->PMC_SCER = AT91C_PMC_UDP;
 00000000  2180      MOV         R1,#0x80
ARM COMPILER V2.53,  usbhw                                                                 02/11/07  08:22:50  PAGE 10  

 00000002  4800      LDR         R0,=0xFFFFFC00
 00000004  6001      STR         R1,[R0,#0x0]
   46:   AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_UDP);
 00000006  4800      LDR         R1,=0x800
 00000008  4800      LDR         R0,=0xFFFFFC10
 0000000A  6001      STR         R1,[R0,#0x0]
   50:                                           AT91C_AIC_PRIOR_HIGHEST;
 0000000C  2227      MOV         R2,#0x27
 0000000E  4800      LDR         R0,=0xFFFFF02C
 00000010  6002      STR         R2,[R0,#0x0]
   51:   AT91C_BASE_AIC->AIC_SVR[AT91C_ID_UDP] = (unsigned long) USB_ISR;
 00000012  4A00      LDR         R2,=USB_ISR?A ; USB_ISR?A
 00000014  4800      LDR         R0,=0xFFFFF0AC
 00000016  6002      STR         R2,[R0,#0x0]
   52:   AT91C_BASE_AIC->AIC_IECR = (1 << AT91C_ID_UDP);
 00000018  4800      LDR         R0,=0xFFFFF120
 0000001A  6001      STR         R1,[R0,#0x0]
   56:   AT91C_BASE_PIOA->PIO_PER  = AT91C_PIO_PA16;
 0000001C  4800      LDR         R1,=0x10000
 0000001E  4800      LDR         R0,=0xFFFFF400
 00000020  6001      STR         R1,[R0,#0x0]
   57:   AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA16;
 00000022  4800      LDR         R0,=0xFFFFF430
 00000024  6001      STR         R1,[R0,#0x0]
   58:   AT91C_BASE_PIOA->PIO_OER  = AT91C_PIO_PA16;
 00000026  4800      LDR         R0,=0xFFFFF410
 00000028  6001      STR         R1,[R0,#0x0]
   59: }
 0000002A  4770      BX          R14
 0000002C          ENDP ; 'USB_Init?T'

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品免费在线观看| 成人一区二区三区在线观看| 国产精品综合一区二区| 色视频一区二区| 国产亚洲精品资源在线26u| 五月综合激情日本mⅴ| 99视频精品在线| 欧美精品一区二区三区蜜桃| 亚洲bt欧美bt精品| 97国产精品videossex| 久久久精品免费免费| 蜜桃视频在线观看一区| 欧美日韩一区在线观看| 亚洲欧美日韩一区| 91香蕉视频黄| 国产精品久久久久久久午夜片| 久久国产精品无码网站| 欧美日韩成人激情| 亚洲一区二区在线观看视频| 一本色道**综合亚洲精品蜜桃冫| 国产精品毛片无遮挡高清| 狠狠色综合日日| 26uuu精品一区二区在线观看| 五月婷婷激情综合| 欧美日韩在线直播| 亚洲一区二区三区中文字幕在线| 91蝌蚪porny| 亚洲日韩欧美一区二区在线| 成人aaaa免费全部观看| 日本一区二区三区四区| 国产不卡免费视频| 国产女主播视频一区二区| 国产精品一级黄| 国产农村妇女精品| va亚洲va日韩不卡在线观看| 国产精品久久久一本精品| av中文字幕一区| 亚洲综合偷拍欧美一区色| 欧美日韩成人一区二区| 婷婷夜色潮精品综合在线| 91精品视频网| 韩国理伦片一区二区三区在线播放 | 欧美国产国产综合| proumb性欧美在线观看| 亚洲免费观看高清完整版在线观看熊 | 美女视频一区二区三区| 日韩一区二区视频在线观看| 麻豆精品在线播放| 亚洲国产成人私人影院tom| 成人黄色av网站在线| 亚洲欧美日韩一区二区| 欧美日韩精品免费| 狠狠色狠狠色综合| 日韩理论片在线| 欧美午夜宅男影院| 另类小说图片综合网| 国产亚洲精品资源在线26u| 99久久久久免费精品国产 | 欧美日韩精品欧美日韩精品| 久久国产综合精品| 综合久久一区二区三区| 欧美人伦禁忌dvd放荡欲情| 国产美女视频一区| 亚洲乱码国产乱码精品精小说| 欧美肥胖老妇做爰| 国产很黄免费观看久久| 亚洲美女精品一区| 欧美成人福利视频| 色香蕉成人二区免费| 男男成人高潮片免费网站| 亚洲国产成人在线| 欧美一级日韩免费不卡| 成人a级免费电影| 青椒成人免费视频| 亚洲男人的天堂一区二区 | 欧美一级在线视频| 色婷婷综合视频在线观看| 美女一区二区在线观看| 亚洲综合色噜噜狠狠| 日本一区二区三区在线不卡| 欧美肥胖老妇做爰| 日本丶国产丶欧美色综合| 天天色综合天天| 1区2区3区精品视频| 2020国产精品| 欧美日韩成人综合在线一区二区 | 国产日韩欧美在线一区| 欧美一区二区播放| 欧美少妇性性性| 99久久亚洲一区二区三区青草| 九九**精品视频免费播放| 日韩影院精彩在线| 亚洲影院在线观看| 亚洲欧美偷拍三级| 中文字幕一区av| 久久久www成人免费无遮挡大片| 欧美电影影音先锋| 在线观看日韩高清av| 91精品国产91综合久久蜜臀| 99热这里都是精品| 成人少妇影院yyyy| 国产老妇另类xxxxx| 日本成人在线电影网| 亚洲午夜精品网| 一区二区在线免费观看| **性色生活片久久毛片| 国产精品电影院| 国产欧美日韩另类一区| 国产丝袜美腿一区二区三区| www国产成人| 久久免费美女视频| 久久久久一区二区三区四区| 精品国产免费一区二区三区香蕉| 欧美一级日韩免费不卡| 日韩免费成人网| 精品福利在线导航| 久久久久久久综合日本| 国产日韩亚洲欧美综合| 国产精品国产自产拍在线| 国产精品久久毛片av大全日韩| 国产精品国模大尺度视频| 亚洲人午夜精品天堂一二香蕉| 一区二区不卡在线播放| 午夜久久久久久久久| 水蜜桃久久夜色精品一区的特点| 日韩av一级电影| 激情综合色播五月| 高清成人免费视频| 99久久伊人精品| 欧美色区777第一页| 日韩欧美国产综合| 日本一区二区视频在线| 亚洲天堂成人在线观看| 日日夜夜免费精品视频| 国产在线视视频有精品| 99在线热播精品免费| 欧美日韩国产电影| 26uuu亚洲| 中文字幕一区二区在线观看| 亚洲成人精品一区二区| 国内精品伊人久久久久av一坑| 99久精品国产| 欧美一二区视频| 中国色在线观看另类| 亚洲一区二区三区视频在线播放 | 看电视剧不卡顿的网站| 粉嫩在线一区二区三区视频| 91久久精品午夜一区二区| 日韩免费看的电影| 中文字幕在线观看一区二区| 午夜日韩在线电影| 黑人巨大精品欧美黑白配亚洲 | 国产乱码精品一区二区三区忘忧草 | 亚洲国产精品99久久久久久久久 | 国产美女精品在线| 色婷婷激情一区二区三区| 日韩一区二区在线观看| 中文字幕一区二区5566日韩| 蜜桃视频在线一区| 色婷婷综合久久久中文字幕| www国产精品av| 亚洲一区二区三区影院| 成人毛片视频在线观看| 欧美日本精品一区二区三区| 国产精品拍天天在线| 久久丁香综合五月国产三级网站| 99精品视频一区二区| 欧美va亚洲va| 香蕉影视欧美成人| 97国产一区二区| 日本一区二区三区电影| 韩国精品久久久| 666欧美在线视频| 亚洲免费观看高清完整版在线观看| 国产一区二区免费看| 欧美一区二区免费视频| 亚洲国产wwwccc36天堂| 色综合色综合色综合| 久久免费午夜影院| 久久国产精品色| 91精品国产综合久久香蕉麻豆 | 亚洲桃色在线一区| 国产成人亚洲综合a∨婷婷| 欧美草草影院在线视频| 日韩av一区二区在线影视| 欧美三级中文字幕| 一区二区欧美精品| 91蝌蚪porny成人天涯| 成人免费在线视频观看| 99久久精品久久久久久清纯| 国产亚洲欧美在线| 懂色av一区二区三区蜜臀| 久久久久久久久久久久久女国产乱| 美女尤物国产一区| 精品美女被调教视频大全网站| 五月天激情小说综合| 欧美色男人天堂| 日韩精品视频网| 日韩欧美你懂的| 国产最新精品免费|