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

📄 memory.txt

📁 MP3_PLAYER.rar
💻 TXT
📖 第 1 页 / 共 2 页
字号:
;;;125      SetEPRxStatus(ENDP2, EP_RX_VALID); /* enable the next transaction*/
00005a  6081              STR      r1,[r0,#8]  ; CSW
00005c  f44f5140          MOV      r1,#0x3000
000060  2002              MOVS     r0,#2
000062  f7fffffe          BL       SetEPRxStatus
;;;126    
;;;127      Led_RW_ON();
000066  f7fffffe          BL       Led_RW_ON
;;;128    
;;;129      if ((Transfer_Length == 0) || (Bot_State == BOT_CSW_Send))
00006a  68e0              LDR      r0,[r4,#0xc]  ; Transfer_Length
00006c  b118              CBZ      r0,|L2.118|
00006e  480c              LDR      r0,|L2.160|
000070  7800              LDRB     r0,[r0,#0]  ; Bot_State
000072  2804              CMP      r0,#4
000074  d108              BNE      |L2.136|
                  |L2.118|
;;;130      {
;;;131        Counter = 0;
000076  6065              STR      r5,[r4,#4]  ; Counter
;;;132        Set_CSW (CSW_CMD_PASSED, SEND_CSW_ENABLE);
000078  2101              MOVS     r1,#1
00007a  2000              MOVS     r0,#0
00007c  f7fffffe          BL       Set_CSW
;;;133        Led_RW_OFF();
000080  e8bd41f0          POP      {r4-r8,lr}
000084  f7ffbffe          B.W      Led_RW_OFF
                  |L2.136|
;;;134      }
;;;135    }
000088  e8bd81f0          POP      {r4-r8,pc}
;;;136    
                          ENDP

                  |L2.140|
00008c  00000000          DCD      ||.data||
                  |L2.144|
000090  00000000          DCD      Bulk_Data_Buff
                  |L2.148|
000094  00000000          DCD      ||.bss||
                  |L2.152|
000098  00000000          DCD      Data_Len
                  |L2.156|
00009c  00000000          DCD      ||CSW||
                  |L2.160|
0000a0  00000000          DCD      Bot_State

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

                  Address_Management_Test PROC
;;;144    bool Address_Management_Test(u8 Cmd)
;;;145    {
000000  b570              PUSH     {r4-r6,lr}
;;;146      vu32 temp1;
;;;147      vu32 temp2;
;;;148    
;;;149      /* Logical Block Address of First Block */
;;;150      temp1 = (CBW.CB[2] << 24) |
000002  4c1b              LDR      r4,|L3.112|
;;;151              (CBW.CB[3] << 16) |
;;;152              (CBW.CB[4] <<  8) |
;;;153              (CBW.CB[5] <<  0);
;;;154      /* Number of Blocks to transfer */
;;;155      temp2 = (CBW.CB[7] <<  8) |
;;;156              (CBW.CB[8] <<  0);
;;;157    
;;;158      Memory_Offset = temp1 * Mass_Block_Size;
000004  4b1c              LDR      r3,|L3.120|
000006  f8d41011          LDR      r1,[r4,#0x11]         ;150  ; CBW
00000a  7d22              LDRB     r2,[r4,#0x14]         ;150  ; CBW
00000c  ba09              REV      r1,r1                 ;150
00000e  f02105ff          BIC      r5,r1,#0xff           ;150
000012  4315              ORRS     r5,r5,r2              ;150
000014  4a17              LDR      r2,|L3.116|
000016  8ae1              LDRH     r1,[r4,#0x16]         ;155  ; CBW
000018  6812              LDR      r2,[r2,#0]  ; Mass_Block_Size
00001a  ba49              REV16    r1,r1                 ;155
00001c  4355              MULS     r5,r2,r5
00001e  609d              STR      r5,[r3,#8]  ; Memory_Offset
;;;159      Transfer_Length = temp2 * Mass_Block_Size;
000020  4351              MULS     r1,r2,r1
;;;160    
;;;161      if ((Memory_Offset + Transfer_Length) > Mass_Memory_Size)
000022  60d9              STR      r1,[r3,#0xc]  ; Transfer_Length
000024  689a              LDR      r2,[r3,#8]  ; Memory_Offset
000026  4b15              LDR      r3,|L3.124|
000028  440a              ADD      r2,r2,r1
00002a  681b              LDR      r3,[r3,#0]  ; Mass_Memory_Size
00002c  429a              CMP      r2,r3
00002e  d909              BLS      |L3.68|
;;;162      {
;;;163        if (Cmd == SCSI_WRITE10)
000030  282a              CMP      r0,#0x2a
000032  d102              BNE      |L3.58|
;;;164        {
;;;165          Bot_Abort(BOTH_DIR);
000034  2002              MOVS     r0,#2
000036  f7fffffe          BL       Bot_Abort
                  |L3.58|
;;;166        }
;;;167        Bot_Abort(DIR_IN);
00003a  2000              MOVS     r0,#0
00003c  f7fffffe          BL       Bot_Abort
;;;168        Set_Scsi_Sense_Data(ILLEGAL_REQUEST, ADDRESS_OUT_OF_RANGE);
000040  2121              MOVS     r1,#0x21
;;;169        Set_CSW (CSW_CMD_FAILED, SEND_CSW_DISABLE);
;;;170        return (FALSE);
000042  e00a              B        |L3.90|
                  |L3.68|
;;;171      }
;;;172    
;;;173    
;;;174      if (CBW.dDataLength != Transfer_Length)
000044  68a2              LDR      r2,[r4,#8]  ; CBW
000046  428a              CMP      r2,r1
000048  d010              BEQ      |L3.108|
;;;175      {
;;;176        if (Cmd == SCSI_WRITE10)
00004a  282a              CMP      r0,#0x2a
00004c  d101              BNE      |L3.82|
;;;177        {
;;;178          Bot_Abort(BOTH_DIR);
00004e  2002              MOVS     r0,#2
000050  e000              B        |L3.84|
                  |L3.82|
;;;179        }
;;;180        else
;;;181        {
;;;182          Bot_Abort(DIR_IN);
000052  2000              MOVS     r0,#0
                  |L3.84|
000054  f7fffffe          BL       Bot_Abort
;;;183        }
;;;184        Set_Scsi_Sense_Data(ILLEGAL_REQUEST, INVALID_FIELED_IN_COMMAND);
000058  2124              MOVS     r1,#0x24
                  |L3.90|
00005a  2005              MOVS     r0,#5
00005c  f7fffffe          BL       Set_Scsi_Sense_Data
;;;185        Set_CSW (CSW_CMD_FAILED, SEND_CSW_DISABLE);
000060  2100              MOVS     r1,#0
000062  2001              MOVS     r0,#1
000064  f7fffffe          BL       Set_CSW
;;;186        return (FALSE);
000068  2000              MOVS     r0,#0
;;;187      }
;;;188      return (TRUE);
;;;189    }
00006a  bd70              POP      {r4-r6,pc}
                  |L3.108|
00006c  2001              MOVS     r0,#1                 ;188
00006e  bd70              POP      {r4-r6,pc}
;;;190    
                          ENDP

                  |L3.112|
000070  00000000          DCD      ||CBW||
                  |L3.116|
000074  00000000          DCD      Mass_Block_Size
                  |L3.120|
000078  00000000          DCD      ||.data||
                  |L3.124|
00007c  00000000          DCD      Mass_Memory_Size

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

                  Block_Read_count
000000  00000000          DCD      0x00000000
                  Counter
000004  00000000          DCD      0x00000000
                  Memory_Offset
000008  00000000          DCD      0x00000000
                  Transfer_Length
00000c  00000000          DCD      0x00000000
                  Block_offset
000010  00000000          DCD      0x00000000
                  i
000014  00000000          DCD      0x00000000

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

                  Data_Buffer
                          %        512

⌨️ 快捷键说明

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