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

📄 usb_bot.txt

📁 MP3_PLAYER.rar
💻 TXT
📖 第 1 页 / 共 2 页
字号:
;;;198              SCSI_Send_Diagnostic_Cmd();
;;;199              break;
;;;200            case SCSI_READ6:
;;;201              SCSI_Read6_Cmd();
;;;202              break;
;;;203            case SCSI_READ12:
;;;204              SCSI_Read12_Cmd();
;;;205              break;
;;;206            case SCSI_READ16:
;;;207              SCSI_Read16_Cmd();
;;;208              break;
;;;209            case SCSI_READ_CAPACITY16:
;;;210              SCSI_READ_CAPACITY16_Cmd();
;;;211              break;
;;;212            case SCSI_WRITE6:
;;;213              SCSI_Write6_Cmd();
;;;214              break;
;;;215            case SCSI_WRITE12:
;;;216              SCSI_Write12_Cmd();
;;;217              break;
;;;218            case SCSI_WRITE16:
;;;219              SCSI_Write16_Cmd();
;;;220              break;
;;;221            case SCSI_VERIFY12:
;;;222              SCSI_Verify12_Cmd();
;;;223              break;
;;;224            case SCSI_VERIFY16:
;;;225              SCSI_Verify16_Cmd();
;;;226              break;
;;;227    
;;;228            default:
;;;229            {
;;;230              Bot_Abort(BOTH_DIR);
;;;231              Set_Scsi_Sense_Data(ILLEGAL_REQUEST, INVALID_COMMAND);
;;;232              Set_CSW (CSW_CMD_FAILED, SEND_CSW_DISABLE);
;;;233            }
;;;234          }
;;;235        }
;;;236      }
;;;237      else
;;;238      {
;;;239        /* Invalid CBW */
;;;240        Bot_Abort(BOTH_DIR);
;;;241        Set_Scsi_Sense_Data(ILLEGAL_REQUEST, INVALID_COMMAND);
000054  2005              MOVS     r0,#5
000056  f7fffffe          BL       Set_Scsi_Sense_Data
;;;242        Set_CSW (CSW_CMD_FAILED, SEND_CSW_DISABLE);
00005a  2100              MOVS     r1,#0
00005c  e8bd4010          POP      {r4,lr}
000060  2001              MOVS     r0,#1
000062  f7ffbffe          B.W      Set_CSW
                  |L4.102|
000066  7be0              LDRB     r0,[r4,#0xf]          ;149  ; CBW
000068  2825              CMP      r0,#0x25              ;149
00006a  d05a              BEQ      |L4.290|
00006c  dc1d              BGT      |L4.170|
00006e  2815              CMP      r0,#0x15              ;149
000070  d03d              BEQ      |L4.238|
000072  dc10              BGT      |L4.150|
000074  2808              CMP      r0,#8                 ;149
000076  d03a              BEQ      |L4.238|
000078  dc05              BGT      |L4.134|
00007a  b398              CBZ      r0,|L4.228|
00007c  2803              CMP      r0,#3                 ;149
00007e  d03a              BEQ      |L4.246|
000080  2804              CMP      r0,#4                 ;149
000082  d160              BNE      |L4.326|
000084  e033              B        |L4.238|
                  |L4.134|
000086  280a              CMP      r0,#0xa               ;149
000088  d031              BEQ      |L4.238|
00008a  2812              CMP      r0,#0x12              ;149
00008c  d15b              BNE      |L4.326|
00008e  e8bd4010          POP      {r4,lr}               ;155
000092  f7ffbffe          B.W      SCSI_Inquiry_Cmd
                  |L4.150|
000096  381a              SUBS     r0,r0,#0x1a           ;149
000098  280a              CMP      r0,#0xa               ;149
00009a  d254              BCS      |L4.326|
00009c  e8dff000          TBB      [pc,r0]               ;149
0000a0  352f5327          DCB      0x35,0x2f,0x53,0x27
0000a4  31535353          DCB      0x31,0x53,0x53,0x53
0000a8  533d              DCB      0x53,0x3d
                  |L4.170|
0000aa  288a              CMP      r0,#0x8a              ;149
0000ac  d01f              BEQ      |L4.238|
0000ae  dc11              BGT      |L4.212|
0000b0  2855              CMP      r0,#0x55              ;149
0000b2  d01c              BEQ      |L4.238|
0000b4  dc09              BGT      |L4.202|
0000b6  2828              CMP      r0,#0x28              ;149
0000b8  d03b              BEQ      |L4.306|
0000ba  282a              CMP      r0,#0x2a              ;149
0000bc  d03d              BEQ      |L4.314|
0000be  282f              CMP      r0,#0x2f              ;149
0000c0  d141              BNE      |L4.326|
0000c2  e8bd4010          POP      {r4,lr}               ;184
0000c6  f7ffbffe          B.W      SCSI_Verify10_Cmd
                  |L4.202|
0000ca  285a              CMP      r0,#0x5a              ;149
0000cc  d021              BEQ      |L4.274|
0000ce  2888              CMP      r0,#0x88              ;149
0000d0  d139              BNE      |L4.326|
0000d2  e00c              B        |L4.238|
                  |L4.212|
0000d4  28a8              CMP      r0,#0xa8              ;149
0000d6  d00a              BEQ      |L4.238|
0000d8  dc05              BGT      |L4.230|
0000da  288f              CMP      r0,#0x8f              ;149
0000dc  d007              BEQ      |L4.238|
0000de  289e              CMP      r0,#0x9e              ;149
0000e0  d131              BNE      |L4.326|
0000e2  e004              B        |L4.238|
                  |L4.228|
0000e4  e021              B        |L4.298|
                  |L4.230|
0000e6  28aa              CMP      r0,#0xaa              ;149
0000e8  d001              BEQ      |L4.238|
0000ea  28af              CMP      r0,#0xaf              ;149
0000ec  d12b              BNE      |L4.326|
                  |L4.238|
0000ee  e8bd4010          POP      {r4,lr}               ;225
0000f2  f7ffbffe          B.W      SCSI_Invalid_Cmd
                  |L4.246|
0000f6  e8bd4010          POP      {r4,lr}               ;152
0000fa  f7ffbffe          B.W      SCSI_RequestSense_Cmd
0000fe  f7fffffe          BL       SCSI_Start_Stop_Unit_Cmd
000102  e8bd4010          POP      {r4,lr}               ;160
000106  f7ffbffe          B.W      SCSI_Start_Stop_Unit_Cmd
00010a  e8bd4010          POP      {r4,lr}               ;163
00010e  f7ffbffe          B.W      SCSI_ModeSense6_Cmd
                  |L4.274|
000112  e8bd4010          POP      {r4,lr}               ;166
000116  f7ffbffe          B.W      SCSI_ModeSense10_Cmd
00011a  e8bd4010          POP      {r4,lr}               ;169
00011e  f7ffbffe          B.W      SCSI_ReadFormatCapacity_Cmd
                  |L4.290|
000122  e8bd4010          POP      {r4,lr}               ;172
000126  f7ffbffe          B.W      SCSI_ReadCapacity10_Cmd
                  |L4.298|
00012a  e8bd4010          POP      {r4,lr}               ;175
00012e  f7ffbffe          B.W      SCSI_Valid_Cmd
                  |L4.306|
000132  e8bd4010          POP      {r4,lr}               ;178
000136  f7ffbffe          B.W      SCSI_Read10_Cmd
                  |L4.314|
00013a  e000              B        |L4.318|
                  |L4.316|
00013c  e003              B        |L4.326|
                  |L4.318|
00013e  e8bd4010          POP      {r4,lr}               ;181
000142  f7ffbffe          B.W      SCSI_Write10_Cmd
                  |L4.326|
000146  2002              MOVS     r0,#2                 ;240
000148  f7fffffe          BL       Bot_Abort
00014c  2120              MOVS     r1,#0x20              ;241
00014e  e781              B        |L4.84|
;;;243      }
;;;244    }
;;;245    
                          ENDP

                  |L4.336|
000150  00000000          DCD      ||.data||
                  |L4.340|
000154  00000040          DCD      ||.bss||+0x40
                  |L4.344|
000158  43425355          DCD      0x43425355

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

                  Mass_Storage_Out PROC
;;;79     void Mass_Storage_Out (void)
;;;80     {
000000  b570              PUSH     {r4-r6,lr}
;;;81       u8 CMD;
;;;82       CMD = CBW.CB[0];
000002  4815              LDR      r0,|L5.88|
000004  7bc5              LDRB     r5,[r0,#0xf]  ; CBW
;;;83       Data_Len = GetEPRxCount(ENDP2);
000006  2002              MOVS     r0,#2
000008  f7fffffe          BL       GetEPRxCount
00000c  4c13              LDR      r4,|L5.92|
;;;84     
;;;85       PMAToUserBufferCopy(Bulk_Data_Buff, ENDP2_RXADDR, Data_Len);
00000e  b282              UXTH     r2,r0
000010  8060              STRH     r0,[r4,#2]            ;83  ; Data_Len
000012  4811              LDR      r0,|L5.88|
000014  21d8              MOVS     r1,#0xd8
000016  3840              SUBS     r0,r0,#0x40
000018  f7fffffe          BL       PMAToUserBufferCopy
;;;86     
;;;87       switch (Bot_State)
00001c  7820              LDRB     r0,[r4,#0]  ; Bot_State
00001e  b138              CBZ      r0,|L5.48|
000020  2801              CMP      r0,#1
000022  d117              BNE      |L5.84|
;;;88       {
;;;89         case BOT_IDLE:
;;;90           CBW_Decode();
;;;91           break;
;;;92         case BOT_DATA_OUT:
;;;93           if (CMD == SCSI_WRITE10)
000024  2d2a              CMP      r5,#0x2a
000026  d107              BNE      |L5.56|
;;;94           {
;;;95             SCSI_Write10_Cmd();
000028  e8bd4070          POP      {r4-r6,lr}
00002c  f7ffbffe          B.W      SCSI_Write10_Cmd
                  |L5.48|
000030  e8bd4070          POP      {r4-r6,lr}            ;90
000034  f7ffbffe          B.W      CBW_Decode
                  |L5.56|
;;;96             break;
;;;97           }
;;;98           Bot_Abort(DIR_OUT);
000038  f05f0001          MOVS.W   r0,#1
                  |L5.60|
;;;99           Set_Scsi_Sense_Data(ILLEGAL_REQUEST, INVALID_FIELED_IN_COMMAND);
;;;100          Set_CSW (CSW_PHASE_ERROR, SEND_CSW_DISABLE);
;;;101          break;
;;;102        default:
;;;103          Bot_Abort(BOTH_DIR);
00003c  f7fffffe          BL       Bot_Abort
;;;104          Set_Scsi_Sense_Data(ILLEGAL_REQUEST, INVALID_FIELED_IN_COMMAND);
000040  2124              MOVS     r1,#0x24
000042  2005              MOVS     r0,#5
000044  f7fffffe          BL       Set_Scsi_Sense_Data
;;;105          Set_CSW (CSW_PHASE_ERROR, SEND_CSW_DISABLE);
000048  e8bd4070          POP      {r4-r6,lr}
00004c  2100              MOVS     r1,#0
00004e  2002              MOVS     r0,#2
000050  f7ffbffe          B.W      Set_CSW
                  |L5.84|
000054  2002              MOVS     r0,#2                 ;103
;;;106          break;
000056  e7f1              B        |L5.60|
;;;107      }
;;;108    }
;;;109    
                          ENDP

                  |L5.88|
000058  00000040          DCD      ||.bss||+0x40
                  |L5.92|
00005c  00000000          DCD      ||.data||

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

                  Transfer_Data_Request PROC
;;;254    void Transfer_Data_Request(u8* Data_Pointer, u16 Data_Len)
;;;255    {
000000  b510              PUSH     {r4,lr}
000002  460c              MOV      r4,r1
;;;256      UserToPMABufferCopy(Data_Pointer, ENDP1_TXADDR, Data_Len);
000004  460a              MOV      r2,r1
000006  2198              MOVS     r1,#0x98
000008  f7fffffe          BL       UserToPMABufferCopy
;;;257    
;;;258      SetEPTxCount(ENDP1, Data_Len);
00000c  4621              MOV      r1,r4
00000e  2001              MOVS     r0,#1
000010  f7fffffe          BL       SetEPTxCount
;;;259      SetEPTxStatus(ENDP1, EP_TX_VALID);
000014  2130              MOVS     r1,#0x30
000016  2001              MOVS     r0,#1
000018  f7fffffe          BL       SetEPTxStatus
;;;260      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
;;;261      CSW.dDataResidue -= Data_Len;
000022  4804              LDR      r0,|L6.52|
000024  6881              LDR      r1,[r0,#8]  ; CSW
000026  1b09              SUBS     r1,r1,r4
;;;262      CSW.bStatus = CSW_CMD_PASSED;
000028  6081              STR      r1,[r0,#8]  ; CSW
00002a  2100              MOVS     r1,#0
00002c  7301              STRB     r1,[r0,#0xc]  ; CSW
;;;263    }
00002e  bd10              POP      {r4,pc}
;;;264    
                          ENDP

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

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

                  Bot_State
000000  0000              DCB      0x00,0x00
                  Data_Len
000002  0000              DCB      0x00,0x00

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

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

⌨️ 快捷键说明

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