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

📄 upsd3400_usb_app.ls1

📁 uPSD34xx Disk driver
💻 LS1
📖 第 1 页 / 共 5 页
字号:
  00B4               195     PWMF0   DATA    0B4H
  00C7               196     PWMF1   DATA    0C7H
  0094               197     ADCPS   DATA    094H
  00DD               198     S1STA   DATA    0DDH
  0091               199     P3SFS   DATA    091H
  00E2               200     UADDR   DATA    0E2H
  00D5               201     F0      BIT     0D0H.5
  00D0               202     PSW     DATA    0D0H
  00DA               203     RB81    BIT     0D8H.2
                     204     ?PR?ReturnCSW?UPSD3400_USB_APP           SEGMENT CODE 
                     205     ?PR?SpecificIncrementSectorAddress?UPSD3400_USB_APP SEGMENT CODE 
                     206     ?PR?EraseMainFlashSector?UPSD3400_USB_APP SEGMENT CODE 
                     207     ?PR?_WriteToMainFlash?UPSD3400_USB_APP   SEGMENT CODE 
                     208     ?PR?WriteBufferToFlash?UPSD3400_USB_APP  SEGMENT CODE 
                     209     ?DT?WriteBufferToFlash?UPSD3400_USB_APP  SEGMENT DATA OVERLAYABLE 
                     210     ?PR?ReadBufferFromFlash?UPSD3400_USB_APP SEGMENT CODE 
                     211     ?PR?DoReadWrite?UPSD3400_USB_APP         SEGMENT CODE 
                     212     ?DT?DoReadWrite?UPSD3400_USB_APP         SEGMENT DATA OVERLAYABLE 
                     213     ?PR?OnRequestSense?UPSD3400_USB_APP      SEGMENT CODE 
                     214     ?PR?OnInquiry?UPSD3400_USB_APP           SEGMENT CODE 
                     215     ?PR?OnModeSelect6?UPSD3400_USB_APP       SEGMENT CODE 
                     216     ?PR?OnModeSense6?UPSD3400_USB_APP        SEGMENT CODE 
                     217     ?PR?OnModeSelect10?UPSD3400_USB_APP      SEGMENT CODE 
                     218     ?PR?OnModeSense10?UPSD3400_USB_APP       SEGMENT CODE 
                     219     ?PR?DoReadCapacity?UPSD3400_USB_APP      SEGMENT CODE 
                     220     ?PR?DoReadFormatCapacity?UPSD3400_USB_APP SEGMENT CODE 
                     221     ?PR?CheckReceiveCBW?UPSD3400_USB_APP     SEGMENT CODE 
                     222     ?PR?UsbIsr?UPSD3400_USB_APP              SEGMENT CODE 
                     223     ?DT?UPSD3400_USB_APP SEGMENT DATA 
                     224             EXTRN   DATA (setupPacket)
                     225             EXTRN   CODE (TransmitEP0)
                     226             EXTRN   CODE (STALL_EP1)
                     227             EXTRN   CODE (OnSetupPacket)
                     228             EXTRN   DATA (usbState)
                     229             EXTRN   CODE (OnUsbSuspend)
                     230             EXTRN   XDATA (UPSD_xreg)
                     231             EXTRN   CODE (OnUsbResume)
                     232             EXTRN   CODE (ReadSetupPacket)
                     233             EXTRN   CODE (OnUsbReset)
                     234             EXTRN   CODE (?C?LSHL)
                     235             EXTRN   CODE (?C?ULSHR)
                     236             EXTRN   CODE (?C?CCASE)
                     237             PUBLIC  gbBulkPipeStage
                     238             PUBLIC  gdwCBWDataTransferLength
                     239             PUBLIC  gbCSWStatus
                     240             PUBLIC  gdwCBWTag
                     241             PUBLIC  gbCBWCB
                     242             PUBLIC  gbCBWFlags
                     243             PUBLIC  gbCBWLUN
                     244             PUBLIC  gbCBWCBLength
                     245             PUBLIC  USB_ISR_Counter
                     246             PUBLIC  UsbIsr
                     247             PUBLIC  CheckReceiveCBW
                     248             PUBLIC  DoReadFormatCapacity
                     249             PUBLIC  DoReadCapacity
                     250             PUBLIC  OnModeSense10
                     251             PUBLIC  OnModeSelect10
                     252             PUBLIC  OnModeSense6
                     253             PUBLIC  OnModeSelect6
                     254             PUBLIC  OnInquiry
                     255             PUBLIC  OnRequestSense
A51 MACRO ASSEMBLER  UPSD3400_USB_APP                                                     09/13/2005 18:00:20 PAGE     5

                     256             PUBLIC  DoReadWrite
                     257             PUBLIC  ReadBufferFromFlash
                     258             PUBLIC  WriteBufferToFlash
                     259             PUBLIC  _WriteToMainFlash
                     260             PUBLIC  EraseMainFlashSector
                     261             PUBLIC  SpecificIncrementSectorAddress
                     262             PUBLIC  ReturnCSW
                     263     
----                 264             RSEG  ?DT?WriteBufferToFlash?UPSD3400_USB_APP
0000                 265     ?WriteBufferToFlash?BYTE:
0000                 266               j?451:   DS   1
0001                 267            page?452:   DS   1
0002                 268               i?453:   DS   2
0004                 269     SectorEndPhysicalDataAddr?454:   DS   2
                     270     
----                 271             RSEG  ?DT?DoReadWrite?UPSD3400_USB_APP
0000                 272     ?DoReadWrite?BYTE:
0000                 273     LogicalBlockAddr?655:   DS   4
                     274     
----                 275             RSEG  ?DT?UPSD3400_USB_APP
0000                 276     USB_ISR_Counter:   DS   1
0001                 277       gbCBWCBLength:   DS   1
0002                 278            gbCBWLUN:   DS   1
0003                 279          gbCBWFlags:   DS   1
0004                 280             gbCBWCB:   DS   16
0014                 281      TransferLength:   DS   2
0016                 282     PhysicalDataAddr:   DS   2
0018                 283           gdwCBWTag:   DS   4
001C                 284         gbCSWStatus:   DS   1
001D                 285     gdwCBWDataTransferLength:   DS   4
0021                 286     gbBulkPipeStage:   DS   1
                     287     ; /*------------------------------------------------------------------------------
                     288     ; upsd3400_usb_app.c
                     289     ; 
                     290     ; Version:
                     291     ; September 13, 2005 Ver 1.1 - Updated disclaimer, renamed file.
                     292     ; March 22, 2005 - Version 1.0 - Initial Release.
                     293     ; 
                     294     ; Description:  USB Mass Storage Class application module. 
                     295     ; 
                     296     ; Compilers:
                     297     ; Raisonance, Keil
                     298     ; 
                     299     ; THIS INFORMATION (or THIS SOFTWARE or THIS DOCUMENT) IS FOR GUIDANCE ONLY. ST 
                     300     ; MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS 
                     301     ; SOFTWARE nor for any infringement of patents or other rights of third parties 
                     302     ; which may result from its use. ST MICROELECTRONICS SHALL NOT BE HELD LIABLE FOR 
                     303     ; ANY DIRECT, INDIRECT INCIDENTAL OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY 
                     304     ; CLAIMS ARISING IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, 
                     305     ; OR USE OF THIS SOFTWARE. Specifications mentioned in this publication are 
                     306     ; subject to change without notice. This publication supersedes and replaces all 
                     307     ; information previously supplied. STMicroelectronics products are not authorized 
                     308     ; for use as critical components in life support devices or systems without the 
                     309     ; express written approval of STMicroelectronics.
                     310     ; ------------------------------------------------------------------------------*/
                     311     ; 
                     312     ; #pragma NOAREGS
                     313     ; 
                     314     ; #include "upsd3400.h"
                     315     ; #include "upsd3400_hardware.h"
                     316     ; #include "upsd3400_usb.h"
                     317     ; #include "upsd3400_upsd_usb.h"
                     318     ; #include "upsd3400_usb_app.h"
                     319     ; 
                     320     ; #define USB_MS_SectorSize 512
                     321     ; #define USB_MS_UnitSize   (USB_MS_SectorSize*9*64)
A51 MACRO ASSEMBLER  UPSD3400_USB_APP                                                     09/13/2005 18:00:20 PAGE     6

                     322     ; 
                     323     ; extern xdata PSD_REGS UPSD_xreg;
                     324     ; 
                     325     ; data unsigned      char gbCBWCB[16];
                     326     ; data unsigned long  int gdwCBWTag;
                     327     ; data unsigned long  int gdwCBWDataTransferLength;
                     328     ; data unsigned      char gbCBWFlags;
                     329     ; data unsigned      char gbCBWLUN;
                     330     ; data unsigned      char gbCBWCBLength;
                     331     ; data unsigned      char gbCSWStatus;
                     332     ; data unsigned      char gbBulkPipeStage;
                     333     ; 
                     334     ; static data unsigned int TransferLength;
                     335     ; static data unsigned int PhysicalDataAddr;
                     336     ; 
                     337     ; extern unsigned char data usbState, ep0state, ep1state;
                     338     ; extern setup_buffer setupPacket;
                     339     ; 
                     340     ; #define USB_FIFO ((unsigned char volatile xdata *) USB_BASE_ADDR)
                     341     ; 
                     342     ; #define UMSC_IN_ENDPOINT SELEP1
                     343     ; #define UMSC_OUT_ENDPOINT SELEP1
                     344     ; 
                     345     ; #define UMSC_MASK_IN_ENDPOINT IN1F
                     346     ; #define UMSC_MASK_OUT_ENDPOINT OUT1F
                     347     ; 
                     348     ; 
                     349     ; void ReturnCSW(void)
                     350     
----                 351             RSEG  ?PR?ReturnCSW?UPSD3400_USB_APP
0000                 352     ReturnCSW:
                     353                             ; SOURCE LINE # 63
                     354     ; /******************************************************************************
                     355     ;   Function   : void ReturnCSW(void)
                     356     ;   Parameters : none
                     357     ;   Description: Handle CSW package.
                     358     ;                Command Status Wrapper (CSW) shall start on a packet boundary
                     359     ;                and shall end as a short packet with exactly 13 (0Dh) bytes
                     360     ;                transferred. Fields appear aligned to byte offsets equal to
                     361     ;                a multiple of their byte size. All CSW transfers shall
                     362     ;                be ordered with the LSB (byte 0) first (little endian).
                     363     ;    ******************************************************************************/
                     364     ;  {
                     365                             ; SOURCE LINE # 74
                     366     ;   USEL  = INDIR | UMSC_IN_ENDPOINT;          //Select EP1 IN
                     367                             ; SOURCE LINE # 75
0000 75EF01          368             MOV     USEL,#01H
                     369     ; 
                     370     ; /*dCSWSignature:
                     371     ;   Signature that helps identify this data packet as a CSW. The signature field
                     372     ;   shall contain the value 53425355h (little endian), indicating CSW. */
                     373     ;   USB_FIFO[ 0] = 0x55;                       // dCSWSignature
                     374                             ; SOURCE LINE # 80
0003 907000          375             MOV     DPTR,#07000H
0006 7455            376             MOV     A,#055H
0008 F0              377             MOVX    @DPTR,A
                     378     ;   USB_FIFO[ 1] = 0x53;
                     379                             ; SOURCE LINE # 81
0009 A3              380             INC     DPTR
000A 7453            381             MOV     A,#053H
000C F0              382             MOVX    @DPTR,A
                     383     ;   USB_FIFO[ 2] = 0x42;
                     384                             ; SOURCE LINE # 82
000D A3              385             INC     DPTR
000E 7442            386             MOV     A,#042H
0010 F0              387             MOVX    @DPTR,A
A51 MACRO ASSEMBLER  UPSD3400_USB_APP                                                     09/13/2005 18:00:20 PAGE     7

                     388     ;   USB_FIFO[ 3] = 0x53;
                     389                             ; SOURCE LINE # 83
0011 A3              390             INC     DPTR
0012 7453            391             MOV     A,#053H
0014 F0              392             MOVX    @DPTR,A
                     393     ; /*dCSWTag:
                     394     ;   The device shall set this field to the value received in the dCBWTag
                     395     ;   of the associated CBW.*/
                     396     ;   USB_FIFO[ 4] = *((uchar *)&gdwCBWTag+3);   // dCSWTag, LSB read first
                     397                             ; SOURCE LINE # 87
0015 A3              398             INC     DPTR

⌨️ 快捷键说明

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