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

📄 usb_bot.txt

📁 STM32外部SRAM用作datamemery的程序 开发环境MDK
💻 TXT
📖 第 1 页 / 共 2 页
字号:
;;;200              /*Unsupported command*/
;;;201    
;;;202            case SCSI_MODE_SELECT10:
;;;203              SCSI_Mode_Select10_Cmd(CBW.bLUN);
;;;204              break;
;;;205            case SCSI_MODE_SELECT6:
;;;206              SCSI_Mode_Select6_Cmd(CBW.bLUN);
;;;207              break;
;;;208    
;;;209            case SCSI_SEND_DIAGNOSTIC:
;;;210              SCSI_Send_Diagnostic_Cmd(CBW.bLUN);
;;;211              break;
;;;212            case SCSI_READ6:
;;;213              SCSI_Read6_Cmd(CBW.bLUN);
;;;214              break;
;;;215            case SCSI_READ12:
;;;216              SCSI_Read12_Cmd(CBW.bLUN);
;;;217              break;
;;;218            case SCSI_READ16:
;;;219              SCSI_Read16_Cmd(CBW.bLUN);
;;;220              break;
;;;221            case SCSI_READ_CAPACITY16:
;;;222              SCSI_READ_CAPACITY16_Cmd(CBW.bLUN);
;;;223              break;
;;;224            case SCSI_WRITE6:
;;;225              SCSI_Write6_Cmd(CBW.bLUN);
;;;226              break;
;;;227            case SCSI_WRITE12:
;;;228              SCSI_Write12_Cmd(CBW.bLUN);
;;;229              break;
;;;230            case SCSI_WRITE16:
;;;231              SCSI_Write16_Cmd(CBW.bLUN);
;;;232              break;
;;;233            case SCSI_VERIFY12:
;;;234              SCSI_Verify12_Cmd(CBW.bLUN);
;;;235              break;
;;;236            case SCSI_VERIFY16:
;;;237              SCSI_Verify16_Cmd(CBW.bLUN);
;;;238              break;
;;;239    
;;;240            default:
;;;241            {
;;;242              Bot_Abort(BOTH_DIR);
;;;243              Set_Scsi_Sense_Data(CBW.bLUN, ILLEGAL_REQUEST, INVALID_COMMAND);
;;;244              Set_CSW (CSW_CMD_FAILED, SEND_CSW_DISABLE);
;;;245            }
;;;246          }
;;;247        }
;;;248      }
;;;249      else
;;;250      {
;;;251        /* Invalid CBW */
;;;252        Bot_Abort(BOTH_DIR);
;;;253        Set_Scsi_Sense_Data(CBW.bLUN, ILLEGAL_REQUEST, INVALID_COMMAND);
00007e  2105              MOVS     r1,#5
000080  f7fff7ff          BL       Set_Scsi_Sense_Data
;;;254        Set_CSW (CSW_CMD_FAILED, SEND_CSW_DISABLE);
000084  e8bde8bd          POP      {r4-r6,lr}
000088  2100              MOVS     r1,#0
00008a  2001              MOVS     r0,#1
00008c  f7fff7ff          B.W      Set_CSW
                  |L4.144|
000090  2925              CMP      r1,#0x25              ;159
000092  d05b              BEQ      |L4.332|
000094  dc20              BGT      |L4.216|
000096  2915              CMP      r1,#0x15              ;159
000098  d040              BEQ      |L4.284|
00009a  dc13              BGT      |L4.196|
00009c  2908              CMP      r1,#8                 ;159
00009e  d03d              BEQ      |L4.284|
0000a0  dc08              BGT      |L4.180|
0000a2  b3b1              CBZ      r1,|L4.274|
0000a4  2903              CMP      r1,#3                 ;159
0000a6  d03d              BEQ      |L4.292|
0000a8  2904              CMP      r1,#4                 ;159
0000aa  d165              BNE      |L4.376|
0000ac  e8bde8bd          POP      {r4-r6,lr}            ;198
0000b0  f7fff7ff          B.W      SCSI_Format_Cmd
                  |L4.180|
0000b4  290a              CMP      r1,#0xa               ;159
0000b6  d031              BEQ      |L4.284|
0000b8  2912              CMP      r1,#0x12              ;159
0000ba  d15d              BNE      |L4.376|
0000bc  e8bde8bd          POP      {r4-r6,lr}            ;165
0000c0  f7fff7ff          B.W      SCSI_Inquiry_Cmd
                  |L4.196|
0000c4  391a              SUBS     r1,r1,#0x1a           ;159
0000c6  290a              CMP      r1,#0xa               ;159
0000c8  d256              BCS      |L4.376|
0000ca  e8dfe8df          TBB      [pc,r1]               ;159
0000ce  332f5527          DCB      0x33,0x2f,0x55,0x27
0000d2  2f555555          DCB      0x2f,0x55,0x55,0x55
0000d6  553b              DCB      0x55,0x3b
                  |L4.216|
0000d8  298a              CMP      r1,#0x8a              ;159
0000da  d01f              BEQ      |L4.284|
0000dc  dc11              BGT      |L4.258|
0000de  2955              CMP      r1,#0x55              ;159
0000e0  d01c              BEQ      |L4.284|
0000e2  dc09              BGT      |L4.248|
0000e4  2928              CMP      r1,#0x28              ;159
0000e6  d039              BEQ      |L4.348|
0000e8  292a              CMP      r1,#0x2a              ;159
0000ea  d03f              BEQ      |L4.364|
0000ec  292f              CMP      r1,#0x2f              ;159
0000ee  d143              BNE      |L4.376|
0000f0  e8bde8bd          POP      {r4-r6,lr}            ;195
0000f4  f7fff7ff          B.W      SCSI_Verify10_Cmd
                  |L4.248|
0000f8  295a              CMP      r1,#0x5a              ;159
0000fa  d01f              BEQ      |L4.316|
0000fc  2988              CMP      r1,#0x88              ;159
0000fe  d13b              BNE      |L4.376|
000100  e00c              B        |L4.284|
                  |L4.258|
000102  29a8              CMP      r1,#0xa8              ;159
000104  d00a              BEQ      |L4.284|
000106  dc05              BGT      |L4.276|
000108  298f              CMP      r1,#0x8f              ;159
00010a  d007              BEQ      |L4.284|
00010c  299e              CMP      r1,#0x9e              ;159
00010e  d133              BNE      |L4.376|
000110  e004              B        |L4.284|
                  |L4.274|
000112  e01f              B        |L4.340|
                  |L4.276|
000114  29aa              CMP      r1,#0xaa              ;159
000116  d001              BEQ      |L4.284|
000118  29af              CMP      r1,#0xaf              ;159
00011a  d12d              BNE      |L4.376|
                  |L4.284|
00011c  e8bde8bd          POP      {r4-r6,lr}            ;237
000120  f7fff7ff          B.W      SCSI_Invalid_Cmd
                  |L4.292|
000124  e8bde8bd          POP      {r4-r6,lr}            ;162
000128  f7fff7ff          B.W      SCSI_RequestSense_Cmd
00012c  e8bde8bd          POP      {r4-r6,lr}            ;171
000130  f7fff7ff          B.W      SCSI_Start_Stop_Unit_Cmd
000134  e8bde8bd          POP      {r4-r6,lr}            ;174
000138  f7fff7ff          B.W      SCSI_ModeSense6_Cmd
                  |L4.316|
00013c  e8bde8bd          POP      {r4-r6,lr}            ;177
000140  f7fff7ff          B.W      SCSI_ModeSense10_Cmd
000144  e8bde8bd          POP      {r4-r6,lr}            ;180
000148  f7fff7ff          B.W      SCSI_ReadFormatCapacity_Cmd
                  |L4.332|
00014c  e8bde8bd          POP      {r4-r6,lr}            ;183
000150  f7fff7ff          B.W      SCSI_ReadCapacity10_Cmd
                  |L4.340|
000154  e8bde8bd          POP      {r4-r6,lr}            ;186
000158  f7fff7ff          B.W      SCSI_TestUnitReady_Cmd
                  |L4.348|
00015c  e000              B        |L4.352|
                  |L4.350|
00015e  e00b              B        |L4.376|
                  |L4.352|
000160  e9d3e9d3          LDRD     r1,r2,[r3,#4]         ;189
000164  e8bde8bd          POP      {r4-r6,lr}            ;189
000168  f7fff7ff          B.W      SCSI_Read10_Cmd
                  |L4.364|
00016c  e9d3e9d3          LDRD     r1,r2,[r3,#4]         ;192
000170  e8bde8bd          POP      {r4-r6,lr}            ;192
000174  f7fff7ff          B.W      SCSI_Write10_Cmd
                  |L4.376|
000178  2002              MOVS     r0,#2                 ;252
00017a  f7fff7ff          BL       Bot_Abort
00017e  7b60              LDRB     r0,[r4,#0xd]          ;253  ; CBW
000180  2220              MOVS     r2,#0x20              ;253
000182  e77c              B        |L4.126|
;;;255      }
;;;256    }
;;;257    
                          ENDP

                  |L4.388|
000184  00000000          DCD      ||.data||
                  |L4.392|
000188  00000040          DCD      ||.bss||+0x40
                  |L4.396|
00018c  43425355          DCD      0x43425355
                  |L4.400|
000190  00000000          DCD      Max_Lun

                          AREA ||i.Mass_Storage_Out||, CODE, READONLY, ALIGN=2

                  Mass_Storage_Out PROC
;;;81     void Mass_Storage_Out(void)
;;;82     {
000000  b570              PUSH     {r4-r6,lr}
;;;83       u8 CMD;
;;;84       CMD = CBW.CB[0];
000002  4c17              LDR      r4,|L5.96|
;;;85       Data_Len = GetEPRxCount(ENDP2);
000004  2002              MOVS     r0,#2
000006  7be6              LDRB     r6,[r4,#0xf]          ;84  ; CBW
000008  f7fff7ff          BL       GetEPRxCount
00000c  4d15              LDR      r5,|L5.100|
;;;86     
;;;87       PMAToUserBufferCopy(Bulk_Data_Buff, ENDP2_RXADDR, Data_Len);
00000e  b282              UXTH     r2,r0
000010  8068              STRH     r0,[r5,#2]            ;85  ; Data_Len
000012  21d8              MOVS     r1,#0xd8
000014  f1a4f1a4          SUB      r0,r4,#0x40
000018  f7fff7ff          BL       PMAToUserBufferCopy
;;;88     
;;;89       switch (Bot_State)
00001c  7828              LDRB     r0,[r5,#0]  ; Bot_State
00001e  b150              CBZ      r0,|L5.54|
000020  2801              CMP      r0,#1
000022  d11a              BNE      |L5.90|
;;;90       {
;;;91         case BOT_IDLE:
;;;92           CBW_Decode();
;;;93           break;
;;;94         case BOT_DATA_OUT:
;;;95           if (CMD == SCSI_WRITE10)
000024  2e2a              CMP      r6,#0x2a
000026  d10a              BNE      |L5.62|
;;;96           {
;;;97             SCSI_Write10_Cmd(CBW.bLUN , SCSI_LBA , SCSI_BlkLen);
000028  e9d5e9d5          LDRD     r1,r2,[r5,#4]
00002c  7b60              LDRB     r0,[r4,#0xd]  ; CBW
00002e  e8bde8bd          POP      {r4-r6,lr}
000032  f7fff7ff          B.W      SCSI_Write10_Cmd
                  |L5.54|
000036  e8bde8bd          POP      {r4-r6,lr}            ;92
00003a  f7fff7ff          B.W      CBW_Decode
                  |L5.62|
;;;98             break;
;;;99           }
;;;100          Bot_Abort(DIR_OUT);
00003e  2001              MOVS     r0,#1
                  |L5.64|
;;;101          Set_Scsi_Sense_Data(CBW.bLUN, ILLEGAL_REQUEST, INVALID_FIELED_IN_COMMAND);
;;;102          Set_CSW (CSW_PHASE_ERROR, SEND_CSW_DISABLE);
;;;103          break;
;;;104        default:
;;;105          Bot_Abort(BOTH_DIR);
000040  f7fff7ff          BL       Bot_Abort
;;;106          Set_Scsi_Sense_Data(CBW.bLUN, ILLEGAL_REQUEST, INVALID_FIELED_IN_COMMAND);
000044  7b60              LDRB     r0,[r4,#0xd]  ; CBW
000046  2224              MOVS     r2,#0x24
000048  2105              MOVS     r1,#5
00004a  f7fff7ff          BL       Set_Scsi_Sense_Data
;;;107          Set_CSW (CSW_PHASE_ERROR, SEND_CSW_DISABLE);
00004e  e8bde8bd          POP      {r4-r6,lr}
000052  2100              MOVS     r1,#0
000054  2002              MOVS     r0,#2
000056  f7fff7ff          B.W      Set_CSW
                  |L5.90|
00005a  2002              MOVS     r0,#2                 ;105
;;;108          break;
00005c  e7f0              B        |L5.64|
;;;109      }
;;;110    }
;;;111    
                          ENDP

00005e  0000              DCW      0x0000
                  |L5.96|
000060  00000040          DCD      ||.bss||+0x40
                  |L5.100|
000064  00000000          DCD      ||.data||

                          AREA ||i.Transfer_Data_Request||, CODE, READONLY, ALIGN=2

                  Transfer_Data_Request PROC
;;;266    void Transfer_Data_Request(u8* Data_Pointer, u16 Data_Len)
;;;267    {
000000  b510              PUSH     {r4,lr}
000002  460c              MOV      r4,r1
;;;268      UserToPMABufferCopy(Data_Pointer, ENDP1_TXADDR, Data_Len);
000004  460a              MOV      r2,r1
000006  2198              MOVS     r1,#0x98
000008  f7fff7ff          BL       UserToPMABufferCopy
;;;269    
;;;270      SetEPTxCount(ENDP1, Data_Len);
00000c  4621              MOV      r1,r4
00000e  2001              MOVS     r0,#1
000010  f7fff7ff          BL       SetEPTxCount
;;;271      SetEPTxStatus(ENDP1, EP_TX_VALID);
000014  2130              MOVS     r1,#0x30
000016  2001              MOVS     r0,#1
000018  f7fff7ff          BL       SetEPTxStatus
;;;272      Bot_State = BOT_DATA_IN_LAST;
00001c  4804              LDR      r0,|L6.48|
00001e  2103              MOVS     r1,#3
000020  7001              STRB     r1,[r0,#0]  ; Bot_State
;;;273      CSW.dDataResidue -= Data_Len;
000022  4804              LDR      r0,|L6.52|
000024  6881              LDR      r1,[r0,#8]  ; CSW
000026  1b09              SUBS     r1,r1,r4
;;;274      CSW.bStatus = CSW_CMD_PASSED;
000028  6081              STR      r1,[r0,#8]  ; CSW
00002a  2100              MOVS     r1,#0
00002c  7301              STRB     r1,[r0,#0xc]  ; CSW
;;;275    }
00002e  bd10              POP      {r4,pc}
;;;276    
                          ENDP

                  |L6.48|
000030  00000000          DCD      ||.data||
                  |L6.52|
000034  00000060          DCD      ||.bss||+0x60

                          AREA ||.data||, DATA, ALIGN=2

                  Bot_State
000000  0000              DCB      0x00,0x00
                  Data_Len
000002  0000              DCB      0x00,0x00
                  SCSI_LBA
000004  00000000          DCD      0x00000000
                  SCSI_BlkLen
000008  00000000          DCD      0x00000000

                          AREA ||.bss||, DATA, NOINIT, ALIGN=2

                  Bulk_Data_Buff
                          %        64
                  ||CBW||
                          %        32
                  ||CSW||
                          %        16

⌨️ 快捷键说明

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