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

📄 wdf_cypress_lib.lst

📁 使用Jungo Windriver開發的USB driver 及其firmware,類型為mass storage,應用於FX2(Cypress CY68013A)上.
💻 LST
📖 第 1 页 / 共 5 页
字号:
 281   2          case 0x1:
 282   2              epBytesCntHigh = 0;
 283   2              epBytesCntLow = &EP1OUTBC;
 284   2              break;
 285   2          case 0x81:
 286   2              epBytesCntHigh = 0;
 287   2              epBytesCntLow = &EP1INBC;
 288   2              break;
 289   2          case 0x2:
 290   2          case 0x82:
 291   2              epBytesCntHigh = &EP2BCH;
 292   2              epBytesCntLow = &EP2BCL;
 293   2              break;
 294   2          case 0x4:
 295   2          case 0x84:
 296   2              epBytesCntHigh = &EP4BCH;
 297   2              epBytesCntLow = &EP4BCL;
 298   2              break;
 299   2          case 0x6:
 300   2          case 0x86:
 301   2              epBytesCntHigh = &EP6BCH;
 302   2              epBytesCntLow = &EP6BCL;
 303   2              break;
C51 COMPILER V7.06   WDF_CYPRESS_LIB                                                       02/13/2008 21:37:10 PAGE 6   

 304   2          case 0x8: 
 305   2          case 0x88:
 306   2              epBytesCntHigh = &EP8BCH;
 307   2              epBytesCntLow = &EP8BCL;
 308   2              break;
 309   2          }
 310   1      
 311   1          if (epBytesCntHigh)
 312   1          {
 313   2              DELAY;
 314   2              *epBytesCntHigh = MSB(bytes_count);
 315   2          }
 316   1          DELAY;
 317   1          *epBytesCntLow = LSB(bytes_count);
 318   1          
 319   1      }
 320          
 321          WORD WDF_GetEPByteCount(int ep)
 322          {
 323   1          WORD ret;
 324   1      
 325   1          switch (ep)
 326   1          {
 327   2          case 0x1:
 328   2              ret = EP1OUTBC;
 329   2              break;
 330   2          case 0x81:
 331   2              ret = EP1INBC;
 332   2              break;
 333   2          case 0x2:
 334   2          case 0x82:
 335   2              ret = (EP2BCH << 8) + EP2BCL;
 336   2              break;
 337   2          case 0x4:
 338   2          case 0x84:
 339   2              ret = (EP4BCH << 8) + EP4BCL;
 340   2              break;
 341   2          case 0x6:
 342   2          case 0x86:
 343   2              ret = (EP6BCH << 8) + EP6BCL;
 344   2              break;
 345   2          case 0x8:
 346   2          case 0x88:
 347   2              ret = (EP8BCH << 8) + EP8BCL;
 348   2              break;
 349   2          }
 350   1      
 351   1          return ret;
 352   1      }
 353          
 354          void WDF_I2CInit()
 355          {
 356   1          EZUSB_InitI2C();
 357   1      }
 358          
 359          BOOL WDF_I2CWrite(BYTE addr, BYTE len, BYTE xdata *dat)
 360          {
 361   1          return EZUSB_WriteI2C(addr, len, dat);
 362   1      }
 363          
 364          BOOL WDF_I2CRead(BYTE addr, BYTE len, BYTE xdata *dat)
 365          {
C51 COMPILER V7.06   WDF_CYPRESS_LIB                                                       02/13/2008 21:37:10 PAGE 7   

 366   1          return EZUSB_ReadI2C(addr, len, dat);
 367   1      }
 368          
 369          void WDF_I2CWaitForEEPROMWrite(BYTE addr)
 370          {
 371   1          EZUSB_WaitForEEPROMWrite(addr);
 372   1      }
 373          
 374          int WDF_I2CGetStatus()
 375          {
 376   1          return I2CPckt.status;
 377   1      }
 378          
 379          void WDF_I2CClearStatus()
 380          {
 381   1          if ((I2CPckt.status == I2C_BERROR) || (I2CPckt.status == I2C_NACK))
 382   1              I2CPckt.status = I2C_IDLE;
 383   1      }
 384          
 385          #define LED_ADDR                0x21
 386          void WDF_SetDigitLed(int digit)
 387          {
 388   1          BYTE xdata led_data;
 389   1          BYTE xdata digits[] = { 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 
 390   1              0xf8, 0x80, 0x98, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e };
 391   1      
 392   1          if (digit < 0x0 || digit > 0xE)
 393   1              led_data = 0x0; // Turn led off
 394   1          else
 395   1              led_data = digits[digit];
 396   1      
 397   1          WDF_I2CWrite(LED_ADDR, 0x01, &led_data);
 398   1          WDF_I2CWaitForEEPROMWrite(LED_ADDR);
 399   1      }
C51 COMPILER V7.06   WDF_CYPRESS_LIB                                                       02/13/2008 21:37:10 PAGE 8   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _DataToggleReset (BEGIN)
                                           ; SOURCE LINE # 16
;---- Variable 'dir' assigned to Register 'R5' ----
;---- Variable 'ep' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 17
                                           ; SOURCE LINE # 21
0000 ED                MOV     A,R5
0001 C4                SWAP    A
0002 54F0              ANL     A,#0F0H
0004 4F                ORL     A,R7
0005 900000      E     MOV     DPTR,#TOGCTL
0008 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 22
0009 4420              ORL     A,#020H
000B F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 23
000C 22                RET     
             ; FUNCTION _DataToggleReset (END)

             ; FUNCTION _WDF_EP1INConfig (BEGIN)
                                           ; SOURCE LINE # 25
;---- Variable 'type' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 26
                                           ; SOURCE LINE # 27
0000 900000      E     MOV     DPTR,#EP1INCFG
0003 7480              MOV     A,#080H
0005 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 28
0006 E0                MOVX    A,@DPTR
0007 FE                MOV     R6,A
0008 EF                MOV     A,R7
0009 C4                SWAP    A
000A 54F0              ANL     A,#0F0H
000C FF                MOV     R7,A
000D EE                MOV     A,R6
000E 4F                ORL     A,R7
000F F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 29
0010 7D01              MOV     R5,#01H
0012 7F01              MOV     R7,#01H
0014 7E00              MOV     R6,#00H
0016 020000      R     LJMP    _DataToggleReset
             ; FUNCTION _WDF_EP1INConfig (END)

             ; FUNCTION _WDF_EP1OUTConfig (BEGIN)
                                           ; SOURCE LINE # 32
;---- Variable 'type' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 33
                                           ; SOURCE LINE # 34
0000 900000      E     MOV     DPTR,#EP1OUTCFG
0003 7480              MOV     A,#080H
0005 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 35
0006 E0                MOVX    A,@DPTR
0007 FE                MOV     R6,A
0008 EF                MOV     A,R7
0009 C4                SWAP    A
000A 54F0              ANL     A,#0F0H
000C FF                MOV     R7,A
C51 COMPILER V7.06   WDF_CYPRESS_LIB                                                       02/13/2008 21:37:10 PAGE 9   

000D EE                MOV     A,R6
000E 4F                ORL     A,R7
000F F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 36
0010 E4                CLR     A
0011 FD                MOV     R5,A
0012 7F01              MOV     R7,#01H
0014 FE                MOV     R6,A
0015 020000      R     LJMP    _DataToggleReset
             ; FUNCTION _WDF_EP1OUTConfig (END)

             ; FUNCTION _WDF_EP2Config (BEGIN)
                                           ; SOURCE LINE # 39
;---- Variable 'dir' assigned to Register 'R2' ----
0000 AA07              MOV     R2,AR7
;---- Variable 'type' assigned to Register 'R5' ----
;---- Variable 'buffering' assigned to Register 'R3' ----
                                           ; SOURCE LINE # 41
                                           ; SOURCE LINE # 42
0002 900000      E     MOV     DPTR,#EP2CFG
0005 7480              MOV     A,#080H
0007 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 43
0008 00                NOP     
0009 00                NOP     
000A 00                NOP     
                                           ; SOURCE LINE # 44
000B E0                MOVX    A,@DPTR
000C FE                MOV     R6,A
000D EA                MOV     A,R2
000E C4                SWAP    A
000F 33                RLC     A
0010 33                RLC     A
0011 54C0              ANL     A,#0C0H
0013 FC                MOV     R4,A
0014 EE                MOV     A,R6
0015 4C                ORL     A,R4
0016 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 45
0017 00                NOP     
0018 00                NOP     
0019 00                NOP     
                                           ; SOURCE LINE # 46
001A E0                MOVX    A,@DPTR
001B FF                MOV     R7,A
001C ED                MOV     A,R5
001D C4                SWAP    A
001E 54F0              ANL     A,#0F0H
0020 FE                MOV     R6,A
0021 EF                MOV     A,R7
0022 4E                ORL     A,R6
0023 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 47
0024 00                NOP     
0025 00                NOP     
0026 00                NOP     
                                           ; SOURCE LINE # 48
0027 E0                MOVX    A,@DPTR
0028 FF                MOV     R7,A
0029 E4                CLR     A
002A B50009      R     CJNE    A,size+01H,?C0004
002D E500        R     MOV     A,size
C51 COMPILER V7.06   WDF_CYPRESS_LIB                                                       02/13/2008 21:37:10 PAGE 10  

002F B40404            CJNE    A,#04H,?C0004
0032 7E08              MOV     R6,#08H
0034 8002              SJMP    ?C0005
0036         ?C0004:
0036 7E00              MOV     R6,#00H
0038         ?C0005:
0038 EF                MOV     A,R7
0039 4E                ORL     A,R6
003A 900000      E     MOV     DPTR,#EP2CFG
003D F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 49
003E 00                NOP     
003F 00                NOP     
0040 00                NOP     
                                           ; SOURCE LINE # 50
0041 E0                MOVX    A,@DPTR
0042 4B                ORL     A,R3
0043 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 51
0044 00                NOP     
0045 00                NOP     
0046 00                NOP     
                                           ; SOURCE LINE # 53
0047 BD0110            CJNE    R5,#01H,?C0006
004A BA010D            CJNE    R2,#01H,?C0006
                                           ; SOURCE LINE # 54
                                           ; SOURCE LINE # 55
004D 900000      E     MOV     DPTR,#EP2ISOINPKTS
0050 7480              MOV     A,#080H
0052 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 57
0053 E0                MOVX    A,@DPTR
0054 4500        R     ORL     A,nPacketPerMF+01H
0056 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 58
0057 00                NOP     
0058 00                NOP     
0059 00                NOP     
                                           ; SOURCE LINE # 59
005A         ?C0006:
                                           ; SOURCE LINE # 60
005A AD02              MOV     R5,AR2
005C 7F02              MOV     R7,#02H
005E 7E00              MOV     R6,#00H

⌨️ 快捷键说明

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