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

📄 ms_api.lst

📁 at91sam7x256 FREERTOS sd卡的读写程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   0000003C   1C31               ADD         R1,#+28
   \   0000003E   3268               LDR         R2,[R6, #+0]
   \   00000040   9142               CMP         R1,R2
   \   00000042   00D2               BCS         ??ms_retreiveTb_2
    193                {
    194                  fw_readTB = fw_TB;
   \   00000044   3060               STR         R0,[R6, #+0]
    195                }
    196                _flag = 1;
   \                     ??ms_retreiveTb_2:
   \   00000046   6846               MOV         R0,SP
   \   00000048   0121               MOV         R1,#+1
   \   0000004A   0171               STRB        R1,[R0, #+4]
    197              }
   \                     ??ms_retreiveTb_0:
   \   0000004C   0398               LDR         R0,[SP, #+12]
   \   0000004E   8442               CMP         R4,R0
   \   00000050   21D0               BEQ         ??ms_retreiveTb_3
   \   00000052   3068               LDR         R0,[R6, #+0]
   \   00000054   0568               LDR         R5,[R0, #+0]
   \   00000056   2868               LDR         R0,[R5, #+0]
   \   00000058   0006               LSL         R0,R0,#+24
   \   0000005A   1CD5               BPL         ??ms_retreiveTb_3
   \   0000005C   2F1D               ADD         R7,R5,#+4
   \   0000005E   0398               LDR         R0,[SP, #+12]
   \   00000060   001B               SUB         R0,R0,R4
   \   00000062   0090               STR         R0,[SP, #+0]
   \   00000064   3868               LDR         R0,[R7, #+0]
   \   00000066   0099               LDR         R1,[SP, #+0]
   \   00000068   8842               CMP         R0,R1
   \   0000006A   00D2               BCS         ??ms_retreiveTb_4
   \   0000006C   0090               STR         R0,[SP, #+0]
   \                     ??ms_retreiveTb_4:
   \   0000006E   009A               LDR         R2,[SP, #+0]
   \   00000070   A868               LDR         R0,[R5, #+8]
   \   00000072   2918               ADD         R1,R5,R0
   \   00000074   0C31               ADD         R1,#+12
   \   00000076   0298               LDR         R0,[SP, #+8]
   \   00000078   0019               ADD         R0,R0,R4
   \   0000007A   ........           _BLF        po_memcpy,??po_memcpy??rT
   \   0000007E   3868               LDR         R0,[R7, #+0]
   \   00000080   0099               LDR         R1,[SP, #+0]
   \   00000082   401A               SUB         R0,R0,R1
   \   00000084   3860               STR         R0,[R7, #+0]
   \   00000086   0099               LDR         R1,[SP, #+0]
   \   00000088   6418               ADD         R4,R4,R1
   \   0000008A   0028               CMP         R0,#+0
   \   0000008C   BFD0               BEQ         ??ms_retreiveTb_1
    198              else
    199              {
    200                /* new read index of data buffer*/
    201                _TB->index += _len;
   \   0000008E   A868               LDR         R0,[R5, #+8]
   \   00000090   4018               ADD         R0,R0,R1
   \   00000092   A860               STR         R0,[R5, #+8]
   \   00000094   DAE7               B           ??ms_retreiveTb_0
    202              }
    203            }
    204          
    205            if((fw_deviceState & FW_DS_TB_FULL) && _flag)
   \                     ??ms_retreiveTb_3:
   \   00000096   ....               LDR         R0,??DataTable10   ;; fw_deviceState
   \   00000098   0178               LDRB        R1,[R0, #+0]
   \   0000009A   C906               LSL         R1,R1,#+27
   \   0000009C   07D5               BPL         ??ms_retreiveTb_5
   \   0000009E   6946               MOV         R1,SP
   \   000000A0   0979               LDRB        R1,[R1, #+4]
   \   000000A2   0029               CMP         R1,#+0
   \   000000A4   03D0               BEQ         ??ms_retreiveTb_5
    206            {
    207              TRACE_ERROR( "TB N FULL\n\r");
    208              /* the TB pool isn't full anymore */
    209              fw_deviceState &= ~FW_DS_TB_FULL;
   \   000000A6   0178               LDRB        R1,[R0, #+0]
   \   000000A8   EF22               MOV         R2,#+239
   \   000000AA   0A40               AND         R2,R1
   \   000000AC   0270               STRB        R2,[R0, #+0]
    210            }
    211          
    212            return _lengthRead;
   \                     ??ms_retreiveTb_5:
   \   000000AE   201C               MOV         R0,R4
   \   000000B0   04B0               ADD         SP,#+16
   \   000000B2   C046               NOP         
   \   000000B4                      REQUIRE ?Subroutine3
   \   000000B4                      ;; // Fall through to label ?Subroutine3
    213          }
    214          
    215          
    216          /*****************************************************************
    217          *
    218          * ROUTINE     usb_send
    219          *
    220          *-----------------------------------------------------------------
    221          *
    222          * Purpose :
    223          *   queues data in the IN FIFO and signal the driver if the fifo is
    224          *  full.
    225          *
    226          * Input parameters  : DataBuffer : buffer containing data
    227          *                     Length : length of data
    228          *
    229          * Output parameters : length of data put in the IN FIFO
    230          *
    231          * Global data : fw_fifoId : ID of the IN FIFO
    232          *
    233          *****************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    234          USHORT usb_send(char *DataBuffer, USHORT Length)
    235          {
   \                     usb_send:
   \   00000000   30B5               PUSH        {R4,R5,LR}
    236            USHORT _len = 0;
    237          
    238            _len = po_rngBufPut(&fw_fifoId, DataBuffer,Length);
   \   00000002   ....               LDR         R5,??DataTable9    ;; fw_fifoId
   \   00000004   0A1C               MOV         R2,R1
   \   00000006   011C               MOV         R1,R0
   \   00000008   281C               MOV         R0,R5
   \   0000000A   ........           _BLF        po_rngBufPut,??po_rngBufPut??rT
   \   0000000E   041C               MOV         R4,R0
    239          
    240            if( po_rngNBytes(&fw_fifoId) > FW_IN_FIFO_FULL )
   \   00000010   281C               MOV         R0,R5
   \   00000012   ........           _BLF        po_rngNBytes,??po_rngNBytes??rT
   \   00000016   CD21               MOV         R1,#+205
   \   00000018   4900               LSL         R1,R1,#+1          ;; #+410
   \   0000001A   8842               CMP         R0,R1
   \   0000001C   04DB               BLT         ??usb_send_0
    241            {
    242              fw_deviceState |= FW_DS_FIFO_FULL;
   \   0000001E   ....               LDR         R0,??DataTable10   ;; fw_deviceState
   \   00000020   0178               LDRB        R1,[R0, #+0]
   \   00000022   4022               MOV         R2,#+64
   \   00000024   0A43               ORR         R2,R1
   \   00000026   0270               STRB        R2,[R0, #+0]
    243            }
    244            return _len;
   \                     ??usb_send_0:
   \   00000028   2004               LSL         R0,R4,#+16
   \   0000002A   000C               LSR         R0,R0,#+16
   \   0000002C   30BC               POP         {R4,R5}
   \   0000002E   02BC               POP         {R1}
   \   00000030   0847               BX          R1                 ;; return
    245          }

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable5:
   \   00000000   ........           DC32        fw_readTB

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable6:
   \   00000000   ........           DC32        USB_RX

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable7:
   \   00000000   ........           DC32        fw_TB

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable9:
   \   00000000   ........           DC32        fw_fifoId

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable10:
   \   00000000   ........           DC32        fw_deviceState
    246          
    247          
    248          
    249          
    250          
    251          
    252          

   Maximum stack usage in bytes:

     Function      CSTACK
     --------      ------
     ms_retreiveTb    36
     usb_send         12
     usbms_init       48


   Segment part sizes:

     Function/Label Bytes
     -------------- -----
     usbms_init      264
     ?Subroutine3      6
     ms_retreiveTb   180
     usb_send         50
     ??DataTable5      4
     ??DataTable6      4
     ??DataTable7      4
     ??DataTable9      4
     ??DataTable10     4
      Others         104

 
 624 bytes in segment CODE
 
 520 bytes of CODE memory (+ 104 bytes shared)

Errors: none
Warnings: none

⌨️ 快捷键说明

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