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

📄 ms_api.lst

📁 at91sam7x256 FREERTOS sd卡的读写程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.31A/W32 EVALUATION    29/Nov/2007  16:54:00 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  interwork                                            #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\MASSSTORAGE\ms_api #
#                       .c                                                   #
#    Command line    =  G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\MASSSTORAGE\ms_api #
#                       .c -D AT91SAM7X256 -D PULL_UP_USB -D USE_LED -lC     #
#                       "G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass    #
#                       Storage\compil\Binary\List\" -o                      #
#                       "G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass    #
#                       Storage\compil\Binary\Obj\" -z9 --debug --cpu_mode   #
#                       thumb --endian little --cpu ARM7TDMI --stack_align   #
#                       4 --interwork -e --fpu None --dlib_config            #
#                       "C:\Program Files\IAR Systems\Embedded Workbench     #
#                       4.0 Evaluation\ARM\LIB\dl4tptinl8f.h" -I             #
#                       "G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass    #
#                       Storage\compil\srcIAR\" -I                           #
#                       "G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass    #
#                       Storage\compil\..\src\" -I                           #
#                       "G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass    #
#                       Storage\compil\..\..\" -I                            #
#                       "G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass    #
#                       Storage\compil\..\..\FILESYSTEM\inc\" -I             #
#                       "G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass    #
#                       Storage\compil\..\..\MASSSTORAGE\inc\" -I            #
#                       "G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass    #
#                       Storage\compil\..\..\AT91SAM7X256\" -I               #
#                       "G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass    #
#                       Storage\compil\..\inc\" -I                           #
#                       "G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass    #
#                       Storage\compil\..\..\mmc_sd\" -I                     #
#                       "G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass    #
#                       Storage\compil\..\..\COMMON_FS_MS\" -I "C:\Program   #
#                       Files\IAR Systems\Embedded Workbench 4.0             #
#                       Evaluation\ARM\INC\"                                 #
#    List file       =  G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass     #
#                       Storage\compil\Binary\List\ms_api.lst                #
#    Object file     =  G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass     #
#                       Storage\compil\Binary\Obj\ms_api.r79                 #
#                                                                            #
#                                                                            #
##############################################################################

G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\MASSSTORAGE\ms_api.c
      1          //  ----------------------------------------------------------------------------
      2          //          ATMEL Microcontroller Software Support  -  ROUSSET  -
      3          //  ----------------------------------------------------------------------------
      4          //  DISCLAIMER:  CONDITIONS AS PER SIGNED LIMITED LICENSE AGREEMENT (AT91
      5          //  SOFTWARE AND USER DOCUMENTATION)
      6          //  ALL SOFTWARE IS PROVIDED AS IS, WITH ALL FAULTS, AND WITH NO WARRANTY
      7          //  WHATSOEVER.  ATMEL EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED,
      8          //  OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY WARRANTIES OF MERCHANTABILITY,
      9          //  FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.
     10          //  ----------------------------------------------------------------------------
     11          // File Name           : ms_api.c
     12          // Object              : command sent to the chip
     13          // Creation            : JCB 15/apr/2005
     14          // Modif               :
     15          // ----------------------------------------------------------------------------
     16          #include "po_types.h"
     17          #include "trace.h"
     18          #include "fw_usb.h"
     19          #include "po_kernel.h"
     20          #include "ms_device.h"
     21          
     22          /*****************************************************************
     23          *
     24          * ROUTINE : usbms_init
     25          *
     26          *-----------------------------------------------------------------
     27          *
     28          * Purpose : some initializations, TB, FIFO, flags
     29          *
     30          * Input Parameters  : NONE
     31          *
     32          * Output Parameters : USBMS_OK
     33          *                     USBMS_ERROR
     34          *
     35          *****************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     36          USBMS_RETURN usbms_init( void )
     37          {
   \                     usbms_init:
   \   00000000   F0B5               PUSH        {R4-R7,LR}
   \   00000002   87B0               SUB         SP,#+28
     38            USBMS_RETURN _status = USBMS_OK;
   \   00000004   6846               MOV         R0,SP
   \   00000006   0021               MOV         R1,#+0
   \   00000008   0170               STRB        R1,[R0, #+0]
     39            UCHAR _error = 0,_i = 0,_j = 0;
     40          
     41            ms_initAutomat();
   \   0000000A   ........           _BLF        ms_initAutomat,??ms_initAutomat??rT
     42          
     43            USB_RX = 0;
   \   0000000E   ....               LDR         R0,??DataTable6    ;; USB_RX
   \   00000010   0021               MOV         R1,#+0
   \   00000012   0160               STR         R1,[R0, #+0]
     44          
     45            /*initialize the ms internal buffer*/
     46            for(_i = 0; _i < MAX_LUN_NUM; _i ++)
   \   00000014   0024               MOV         R4,#+0
   \   00000016   374E               LDR         R6,??usbms_init_0  ;; usbms_context
   \   00000018   8025               MOV         R5,#+128
   \   0000001A   AD00               LSL         R5,R5,#+2          ;; #+512
     47            {
     48              usbms_context.usb_lun[_i].cur_request.data_buff = po_rngCreate(MAX_TRANSFER_SIZE);
   \                     ??usbms_init_1:
   \   0000001C   291C               MOV         R1,R5
   \   0000001E   01A8               ADD         R0,SP,#+4
   \   00000020   ........           _BLF        po_rngCreate,??po_rngCreate??rT
   \   00000024   3820               MOV         R0,#+56
   \   00000026   6043               MUL         R0,R4
   \   00000028   311C               MOV         R1,R6
   \   0000002A   1431               ADD         R1,#+20
   \   0000002C   0918               ADD         R1,R1,R0
   \   0000002E   01AA               ADD         R2,SP,#+4
   \   00000030   1827               MOV         R7,#+24
   \                     ??usbms_init_2:
   \   00000032   3F1F               SUB         R7,R7,#+4
   \   00000034   D359               LDR         R3,[R2, R7]
   \   00000036   CB51               STR         R3,[R1, R7]
   \   00000038   FBD1               BNE         ??usbms_init_2
     49              if(usbms_context.usb_lun[_i].cur_request.data_buff.status != 1)
   \   0000003A   311C               MOV         R1,R6
   \   0000003C   2831               ADD         R1,#+40
   \   0000003E   0858               LDR         R0,[R1, R0]
   \   00000040   0128               CMP         R0,#+1
   \   00000042   02D0               BEQ         ??usbms_init_3
     50              {
     51                /*allocation failed*/
     52                TRACE_ERROR( "buffer failed\n\r");
     53                return USBMS_ERROR;
   \   00000044   0020               MOV         R0,#+0
   \   00000046   C043               MVN         R0,R0              ;; #-1
   \   00000048   39E0               B           ??usbms_init_4
     54              }
     55            }
   \                     ??usbms_init_3:
   \   0000004A   641C               ADD         R4,R4,#+1
   \   0000004C   2006               LSL         R0,R4,#+24
   \   0000004E   E5D0               BEQ         ??usbms_init_1
     56          
     57            /* create the FIFO  == output fifo*/
     58            fw_fifoId = po_rngCreate(FW_FIFO_SIZE);
   \   00000050   ....               LDR         R6,??DataTable9    ;; fw_fifoId
   \   00000052   291C               MOV         R1,R5
   \   00000054   301C               MOV         R0,R6
   \   00000056   ........           _BLF        po_rngCreate,??po_rngCreate??rT
     59          
     60            if(fw_fifoId.status == 1)
   \   0000005A   7069               LDR         R0,[R6, #+20]
   \   0000005C   0128               CMP         R0,#+1
   \   0000005E   19D1               BNE         ??usbms_init_5
     61            {
     62              /* allocate the TBs */
     63              for(_i = 0; _i < FW_TB_NUM; _i++)
   \   00000060   0024               MOV         R4,#+0
   \   00000062   ....               LDR         R5,??DataTable7    ;; fw_TB
     64              {
     65                fw_TB[_i] = (structTB *) po_malloc(sizeof(structTB));
   \                     ??usbms_init_6:
   \   00000064   A000               LSL         R0,R4,#+2
   \   00000066   2F18               ADD         R7,R5,R0
   \   00000068   4C20               MOV         R0,#+76
   \   0000006A   ........           _BLF        po_malloc,??po_malloc??rT
   \   0000006E   3860               STR         R0,[R7, #+0]
     66          
     67                if(!fw_TB[_i])
   \   00000070   0028               CMP         R0,#+0
   \   00000072   26D1               BNE         ??usbms_init_7
     68                {
     69                  TRACE_ERROR( "_i= : %d  ERROR\n\r",_i);
     70                  for(_j = 0;_j < _i ; _j++)
   \   00000074   0027               MOV         R7,#+0
   \   00000076   04E0               B           ??usbms_init_8
     71                  {
     72                    /* free the TB already allocated */
     73                    po_free(fw_TB[_j]);
   \                     ??usbms_init_9:
   \   00000078   B800               LSL         R0,R7,#+2
   \   0000007A   2858               LDR         R0,[R5, R0]
   \   0000007C   ........           _BLF        po_free,??po_free??rT
     74                  }
   \   00000080   7F1C               ADD         R7,R7,#+1
   \                     ??usbms_init_8:
   \   00000082   3806               LSL         R0,R7,#+24
   \   00000084   000E               LSR         R0,R0,#+24
   \   00000086   2106               LSL         R1,R4,#+24
   \   00000088   090E               LSR         R1,R1,#+24
   \   0000008A   8842               CMP         R0,R1
   \   0000008C   F4D3               BCC         ??usbms_init_9
     75                  _error++;
     76                  break;
     77                }
     78              }
     79              if(_error == 0)
     80              {
     81                /* initialize all TBs */
     82                fw_writeTB = fw_TB;
     83                fw_readTB = fw_TB;

⌨️ 快捷键说明

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