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

📄 memory.txt

📁 MP3_PLAYER.rar
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 938] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\memory.o --depend=.\Obj\memory.d --device=DARMSTM --apcs=interwork -O3 -I.\Code\FATSystem\INC -I.\Code\Library\INC -I.\Code\SDCard\INC -I.\Code\Speaker\INC -I.\Code\System\INC -I.\Code\USBMassStorage\INC -I.\Code\User\INC -I.\Code\VS1003\INC -ID:\Keil\ARM\INC\ST\STM32F10x --omf_browse=.\Obj\memory.crf Code\USBMassStorage\SRC\memory.c]
                          THUMB

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

                  Read_Memory PROC
;;;60     void Read_Memory(void)
;;;61     {
000000  b510              PUSH     {r4,lr}
;;;62       if (!Block_Read_count)
000002  4c21              LDR      r4,|L1.136|
000004  6820              LDR      r0,[r4,#0]  ; Block_Read_count
000006  b978              CBNZ     r0,|L1.40|
;;;63       {
;;;64         MSD_ReadBlock(Data_Buffer, Memory_Offset, 512);
000008  68a1              LDR      r1,[r4,#8]  ; Memory_Offset
00000a  f44f7200          MOV      r2,#0x200
00000e  481f              LDR      r0,|L1.140|
000010  f7fffffe          BL       MSD_ReadBlock
;;;65         UserToPMABufferCopy(Data_Buffer, ENDP1_TXADDR, BULK_MAX_PACKET_SIZE);
000014  2240              MOVS     r2,#0x40
000016  2198              MOVS     r1,#0x98
000018  481c              LDR      r0,|L1.140|
00001a  f7fffffe          BL       UserToPMABufferCopy
;;;66         Block_Read_count = 512 - BULK_MAX_PACKET_SIZE;
00001e  f44f70e0          MOV      r0,#0x1c0
000022  6020              STR      r0,[r4,#0]  ; Block_Read_count
;;;67         Block_offset = BULK_MAX_PACKET_SIZE;
000024  2040              MOVS     r0,#0x40
000026  e00b              B        |L1.64|
                  |L1.40|
;;;68       }
;;;69       else
;;;70       {
;;;71         UserToPMABufferCopy(Data_Buffer + Block_offset, ENDP1_TXADDR, BULK_MAX_PACKET_SIZE);
000028  4818              LDR      r0,|L1.140|
00002a  6921              LDR      r1,[r4,#0x10]  ; Block_offset
00002c  2240              MOVS     r2,#0x40
00002e  4408              ADD      r0,r0,r1
000030  2198              MOVS     r1,#0x98
000032  f7fffffe          BL       UserToPMABufferCopy
;;;72         Block_Read_count -= BULK_MAX_PACKET_SIZE;
000036  6820              LDR      r0,[r4,#0]  ; Block_Read_count
000038  3840              SUBS     r0,r0,#0x40
00003a  6020              STR      r0,[r4,#0]  ; Block_Read_count
;;;73         Block_offset += BULK_MAX_PACKET_SIZE;
00003c  6920              LDR      r0,[r4,#0x10]  ; Block_offset
00003e  3040              ADDS     r0,r0,#0x40
                  |L1.64|
000040  6120              STR      r0,[r4,#0x10]  ; Block_offset
;;;74       }
;;;75     
;;;76       SetEPTxCount(ENDP1, BULK_MAX_PACKET_SIZE);
000042  2140              MOVS     r1,#0x40
000044  2001              MOVS     r0,#1
000046  f7fffffe          BL       SetEPTxCount
;;;77       SetEPTxStatus(ENDP1, EP_TX_VALID);
00004a  2130              MOVS     r1,#0x30
00004c  2001              MOVS     r0,#1
00004e  f7fffffe          BL       SetEPTxStatus
;;;78     
;;;79     
;;;80       Memory_Offset += BULK_MAX_PACKET_SIZE;
000052  68a0              LDR      r0,[r4,#8]  ; Memory_Offset
000054  3040              ADDS     r0,r0,#0x40
000056  60a0              STR      r0,[r4,#8]  ; Memory_Offset
;;;81       Transfer_Length -= BULK_MAX_PACKET_SIZE;
000058  68e0              LDR      r0,[r4,#0xc]  ; Transfer_Length
;;;82     
;;;83       CSW.dDataResidue -= BULK_MAX_PACKET_SIZE;
00005a  490d              LDR      r1,|L1.144|
00005c  3840              SUBS     r0,r0,#0x40           ;81
00005e  60e0              STR      r0,[r4,#0xc]  ; Transfer_Length
000060  6888              LDR      r0,[r1,#8]  ; CSW
000062  3840              SUBS     r0,r0,#0x40
;;;84       Led_RW_ON();
000064  6088              STR      r0,[r1,#8]  ; CSW
000066  f7fffffe          BL       Led_RW_ON
;;;85     
;;;86       if (Transfer_Length == 0)
00006a  68e0              LDR      r0,[r4,#0xc]  ; Transfer_Length
00006c  2800              CMP      r0,#0
00006e  d109              BNE      |L1.132|
;;;87       {
;;;88         Block_Read_count = 0;
000070  6020              STR      r0,[r4,#0]  ; Block_Read_count
;;;89         Block_offset = 0;
000072  6120              STR      r0,[r4,#0x10]  ; Block_offset
;;;90         Memory_Offset = 0;
000074  60a0              STR      r0,[r4,#8]  ; Memory_Offset
;;;91         Bot_State = BOT_DATA_IN_LAST;
000076  4907              LDR      r1,|L1.148|
000078  2003              MOVS     r0,#3
00007a  7008              STRB     r0,[r1,#0]  ; Bot_State
;;;92         Led_RW_OFF();
00007c  e8bd4010          POP      {r4,lr}
000080  f7ffbffe          B.W      Led_RW_OFF
                  |L1.132|
;;;93       }
;;;94     }
000084  bd10              POP      {r4,pc}
;;;95     
                          ENDP

000086  0000              DCW      0x0000
                  |L1.136|
000088  00000000          DCD      ||.data||
                  |L1.140|
00008c  00000000          DCD      ||.bss||
                  |L1.144|
000090  00000000          DCD      ||CSW||
                  |L1.148|
000094  00000000          DCD      Bot_State

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

                  Write_Memory PROC
;;;103    void Write_Memory(void)
;;;104    {
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;105      u32 temp =  Counter + 64;
000004  4c21              LDR      r4,|L2.140|
000006  6862              LDR      r2,[r4,#4]  ; Counter
;;;106    
;;;107    
;;;108      i = 0;
000008  2500              MOVS     r5,#0
00000a  3240              ADDS     r2,r2,#0x40           ;105
00000c  4920              LDR      r1,|L2.144|
00000e  4b21              LDR      r3,|L2.148|
000010  6165              STR      r5,[r4,#0x14]  ; i
000012  e008              B        |L2.38|
                  |L2.20|
;;;109      for (; Counter < temp; Counter++)
;;;110      {
;;;111        Data_Buffer[Counter] = Bulk_Data_Buff[i];
000014  6960              LDR      r0,[r4,#0x14]  ; i
000016  6867              LDR      r7,[r4,#4]  ; Counter
000018  5c0e              LDRB     r6,[r1,r0]
;;;112        i++;
00001a  1c40              ADDS     r0,r0,#1
00001c  55de              STRB     r6,[r3,r7]            ;111
00001e  6160              STR      r0,[r4,#0x14]         ;109  ; i
000020  6860              LDR      r0,[r4,#4]            ;109  ; Counter
000022  1c40              ADDS     r0,r0,#1              ;109
000024  6060              STR      r0,[r4,#4]            ;109  ; Counter
                  |L2.38|
000026  6860              LDR      r0,[r4,#4]            ;109  ; Counter
000028  4290              CMP      r0,r2                 ;109
00002a  d3f3              BCC      |L2.20|
;;;113      }
;;;114    
;;;115      Memory_Offset += Data_Len;
00002c  68a1              LDR      r1,[r4,#8]  ; Memory_Offset
00002e  4e1a              LDR      r6,|L2.152|
000030  8830              LDRH     r0,[r6,#0]  ; Data_Len
000032  4401              ADD      r1,r1,r0
000034  60a1              STR      r1,[r4,#8]  ; Memory_Offset
;;;116      Transfer_Length -= Data_Len;
000036  68e1              LDR      r1,[r4,#0xc]  ; Transfer_Length
000038  1a08              SUBS     r0,r1,r0
;;;117    
;;;118      if (!(Transfer_Length % 512))
00003a  60e0              STR      r0,[r4,#0xc]  ; Transfer_Length
00003c  05c0              LSLS     r0,r0,#23
00003e  d108              BNE      |L2.82|
;;;119      {
;;;120        Counter = 0;
000040  6065              STR      r5,[r4,#4]  ; Counter
;;;121        MSD_WriteBlock(Data_Buffer, Memory_Offset - 512, 512);
000042  68a1              LDR      r1,[r4,#8]  ; Memory_Offset
000044  f44f7200          MOV      r2,#0x200
000048  f5a17100          SUB      r1,r1,#0x200
00004c  4811              LDR      r0,|L2.148|
00004e  f7fffffe          BL       MSD_WriteBlock
                  |L2.82|
;;;122      }
;;;123    
;;;124      CSW.dDataResidue -= Data_Len;
000052  4812              LDR      r0,|L2.156|
000054  8832              LDRH     r2,[r6,#0]  ; Data_Len
000056  6881              LDR      r1,[r0,#8]  ; CSW
000058  1a89              SUBS     r1,r1,r2

⌨️ 快捷键说明

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