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

📄 fw_cmd.lst

📁 at91sam7x256 FREERTOS sd卡的读写程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
    269            {
    270              // DIR = 1, IN
    271              AT91F_UDP_EpSet( USBDEV_BASE_UDP, FW_EP_CTRL, AT91C_UDP_DIR );
   \                     ??fw_changedir_1:
   \   0000001A   2068               LDR         R0,[R4, #+0]
   \   0000001C   8021               MOV         R1,#+128
   \   0000001E   0143               ORR         R1,R0
   \   00000020   2160               STR         R1,[R4, #+0]
    272              while ( !( AT91F_UDP_EpStatus( USBDEV_BASE_UDP, FW_EP_CTRL ) & AT91C_UDP_DIR ) );
   \                     ??fw_changedir_4:
   \   00000022   2068               LDR         R0,[R4, #+0]
   \   00000024   0006               LSL         R0,R0,#+24
   \   00000026   FCD5               BPL         ??fw_changedir_4
    273            }
    274          }
   \                     ??fw_changedir_3:
   \   00000028   ....               B           ?Subroutine10
   \   0000002A   C046               NOP         
   \                     ??fw_changedir_0:
   \   0000002C   3000FBFF           DC32        0xfffb0030

   \                                 In segment CODE, align 4, keep-with-next
   \                     ?Subroutine10:
   \   00000000   10BC               POP         {R4}
   \   00000002   01BC               POP         {R0}
   \   00000004   0047               BX          R0                 ;; return
    275          
    276          
    277          /*****************************************************************
    278          *
    279          * ROUTINE     fw_resetEP
    280          *
    281          *-----------------------------------------------------------------
    282          *
    283          * Object :  Disable  Endpoint
    284          *
    285          *
    286          * Input parameters :
    287          *
    288          * Output parameters :
    289          *
    290          * Global variables :
    291          *****************************************************************/
    292          #ifdef ADS_COMPIL
    293          void fw_resetEP(EPx bEndp)
    294          #else

   \                                 In segment CODE_I, align 4, keep-with-next
    295          void fw_resetEP(EPx bEndp)
    296          #endif
    297          {
   \                     fw_resetEP:
   \   00000000   00B5               PUSH        {LR}
    298            AT91F_UDP_EpClear( USBDEV_BASE_UDP, bEndp, AT91C_UDP_EPEDS );
                                                                               ^
Warning[Ta023]: Call to a non __ramfunc function (AT91F_UDP_EpClear) from
          within a __ramfunc function
   \   00000002   8022               MOV         R2,#+128
   \   00000004   1202               LSL         R2,R2,#+8          ;; #+32768
   \   00000006   011C               MOV         R1,R0
   \   00000008   0248               LDR         R0,??fw_resetEP_0  ;; 0xfffb0000
   \   0000000A   ........           _BLF        AT91F_UDP_EpClear,??AT91F_UDP_EpClear??rT?CODE_I
    299          }
   \   0000000E   01BC               POP         {R0}
   \   00000010   0047               BX          R0                 ;; return
   \   00000012   C046               NOP         
   \                     ??fw_resetEP_0:
   \   00000014   0000FBFF           DC32        0xfffb0000
    300          
    301          
    302          /*****************************************************************
    303          *
    304          * ROUTINE     fw_activateEP
    305          *
    306          *-----------------------------------------------------------------
    307          *
    308          * Object :  Activate  Endpoint
    309          *
    310          *
    311          * Input parameters :
    312          *
    313          * Output parameters :
    314          *
    315          * Global variables :
    316          *****************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    317          void fw_activateEP(EPx bEndp)
    318          {
    319            switch(bEndp)
   \                     fw_activateEP:
   \   00000000   011C               MOV         R1,R0
   \   00000002   0128               CMP         R0,#+1
   \   00000004   02D0               BEQ         ??fw_activateEP_0
   \   00000006   0229               CMP         R1,#+2
   \   00000008   05D0               BEQ         ??fw_activateEP_1
   \   0000000A   0AE0               B           ??fw_activateEP_2
    320            {
    321              case FW_EP_BULK_IN:
    322                AT91F_UDP_EpSet( USBDEV_BASE_UDP, FW_EP_BULK_IN, AT91C_UDP_EPTYPE_BULK_IN );
   \                     ??fw_activateEP_0:
   \   0000000C   0A49               LDR         R1,??fw_activateEP_3  ;; 0xfffb0034
   \   0000000E   0A68               LDR         R2,[R1, #+0]
   \   00000010   C023               MOV         R3,#+192
   \   00000012   DB00               LSL         R3,R3,#+3          ;; #+1536
   \   00000014   03E0               B           ??fw_activateEP_4
    323              break;
    324          
    325              case FW_EP_BULK_OUT:
    326                AT91F_UDP_EpSet( USBDEV_BASE_UDP, FW_EP_BULK_OUT, AT91C_UDP_EPTYPE_BULK_OUT );
   \                     ??fw_activateEP_1:
   \   00000016   0949               LDR         R1,??fw_activateEP_3+0x4  ;; 0xfffb0038
   \   00000018   0A68               LDR         R2,[R1, #+0]
   \   0000001A   8023               MOV         R3,#+128
   \   0000001C   9B00               LSL         R3,R3,#+2          ;; #+512
   \                     ??fw_activateEP_4:
   \   0000001E   1343               ORR         R3,R2
   \   00000020   0B60               STR         R3,[R1, #+0]
    327              break;
    328          
    329              default:
    330                TRACE_ERROR( "ER_1 \n\r");
    331            }
    332            AT91F_UDP_EpSet( USBDEV_BASE_UDP, bEndp, AT91C_UDP_EPEDS );
   \                     ??fw_activateEP_2:
   \   00000022   8000               LSL         R0,R0,#+2
   \   00000024   ....               LDR         R1,??DataTable10   ;; 0xfffb0000
   \   00000026   0818               ADD         R0,R1,R0
   \   00000028   016B               LDR         R1,[R0, #+48]
   \   0000002A   8022               MOV         R2,#+128
   \   0000002C   1202               LSL         R2,R2,#+8          ;; #+32768
   \   0000002E   0A43               ORR         R2,R1
   \   00000030   0263               STR         R2,[R0, #+48]
    333          }
   \   00000032   00B0               ADD         SP,#+0
   \   00000034   7047               BX          LR                 ;; return
   \   00000036   C046               NOP         
   \                     ??fw_activateEP_3:
   \   00000038   3400FBFF           DC32        0xfffb0034
   \   0000003C   3800FBFF           DC32        0xfffb0038
    334          
    335          
    336          /*****************************************************************
    337          *
    338          * ROUTINE     fw_IsSetupPacket
    339          *
    340          *-----------------------------------------------------------------
    341          *
    342          * Object :  return 1 if SETUP PACKET is received
    343          *
    344          *
    345          * Input parameters :
    346          *
    347          * Output parameters :
    348          *
    349          * Global variables :
    350          *****************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    351          int fw_IsSetupPacket(EPx bEndp)
    352          {
    353            return( AT91F_UDP_EpStatus( USBDEV_BASE_UDP, bEndp ) & AT91C_UDP_RXSETUP ) ? 1 : 0;
   \                     fw_IsSetupPacket:
   \   00000000   8000               LSL         R0,R0,#+2
   \   00000002   ....               LDR         R1,??DataTable10   ;; 0xfffb0000
   \   00000004   0818               ADD         R0,R1,R0
   \   00000006   006B               LDR         R0,[R0, #+48]
   \   00000008   0106               LSL         R1,R0,#+24
   \   0000000A   090E               LSR         R1,R1,#+24
   \   0000000C   8908               LSR         R1,R1,#+2
   \   0000000E   0120               MOV         R0,#+1
   \   00000010   0840               AND         R0,R1
   \   00000012   7047               BX          LR                 ;; return
    354          }
    355          
    356          
    357          /*****************************************************************
    358          *
    359          * ROUTINE     fw_acknowledgeSetup
    360          *
    361          *-----------------------------------------------------------------
    362          *
    363          * Object :
    364          *
    365          *
    366          * Input parameters :
    367          *
    368          * Output parameters :
    369          *
    370          * Global variables :
    371          *****************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    372          void fw_acknowledgeSetup(EPx bEndp)
    373          {
   \                     fw_acknowledgeSetup:
   \   00000000   10B5               PUSH        {R4,LR}
   \   00000002   041C               MOV         R4,R0
    374            AT91F_UDP_EpClear( USBDEV_BASE_UDP, bEndp, AT91C_UDP_RXSETUP );
   \   00000004   0422               MOV         R2,#+4
   \   00000006   011C               MOV         R1,R0
   \   00000008   ....               LDR         R0,??DataTable10   ;; 0xfffb0000
   \   0000000A   ........           _BLF        AT91F_UDP_EpClear,??AT91F_UDP_EpClear??rT
   \   0000000E   ....               LDR         R1,??DataTable10   ;; 0xfffb0000
    375            while( ( AT91F_UDP_EpStatus( USBDEV_BASE_UDP, bEndp ) & AT91C_UDP_RXSETUP ) );
   \                     ??fw_acknowledgeSetup_0:
   \   00000010   A000               LSL         R0,R4,#+2
   \   00000012   0818               ADD         R0,R1,R0
   \   00000014   006B               LDR         R0,[R0, #+48]
   \   00000016   4007               LSL         R0,R0,#+29
   \   00000018   FAD4               BMI         ??fw_acknowledgeSetup_0
   \   0000001A   C046               NOP         
    376          }
   \   0000001C                      REQUIRE ?Subroutine10
   \   0000001C                      ;; // Fall through to label ?Subroutine10

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable10:
   \   00000000   0000FBFF           DC32        0xfffb0000
    377          
    378          

   Maximum stack usage in bytes:

     Function                 CSTACK
     --------                 ------
     AT91F_UDP_EpClear            0
     fw_IsSetupPacket             0
     fw_acknowledgeSetup          8
     fw_activateEP                4
     fw_changedir                 8
     fw_readEndpoint             20
     fw_readInterruptRegister     4
     fw_resetEP                   4
     fw_setAddressEnable          0
     fw_setEndpointStatus        12
     fw_writeEndpoint            24


   Segment part sizes:

     Function/Label           Bytes
     --------------           -----
     AT91F_UDP_EpClear          12
     fw_setAddressEnable        40
     fw_readInterruptRegister   36
     fw_setEndpointStatus       52
     fw_readEndpoint           128
     fw_writeEndpoint           90
     fw_changedir               48
     ?Subroutine10               6
     fw_resetEP                 24
     fw_activateEP              64
     fw_IsSetupPacket           20
     fw_acknowledgeSetup        28
     ??DataTable10               4
      Others                   108

 
 564 bytes in segment CODE
  84 bytes in segment CODE_I
  12 bytes in segment INITTAB
 
 540 bytes of CODE memory (+ 120 bytes shared)

Errors: none
Warnings: 1

⌨️ 快捷键说明

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