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

📄 fw_cmd.lst

📁 at91sam7x256 FREERTOS sd卡的读写程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.31A/W32 EVALUATION    16/Nov/2007  09:02:41 #
# 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\fw_cmd #
#                       .c                                                   #
#    Command line    =  G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\MASSSTORAGE\fw_cmd #
#                       .c -D AT91SAM7X256 -D PULL_UP_USB -D USE_LED -lC     #
#                       "G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass    #
#                       Storage\compil\RAM_Debug\List\" --remarks -o         #
#                       "G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass    #
#                       Storage\compil\RAM_Debug\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\RAM_Debug\List\fw_cmd.lst             #
#    Object file     =  G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass     #
#                       Storage\compil\RAM_Debug\Obj\fw_cmd.r79              #
#                                                                            #
#                                                                            #
##############################################################################

G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\MASSSTORAGE\fw_cmd.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           : fw_cmd.c
     12          // Object              : command sent to the chip.
     13          // Creation            : JCB      27/oct/2002
     14          // Modif               : JCB      18/fev/2005
     15          //                       JCB      18/mar/2005 add some checking loops
     16          //----------------------------------------------------------------------------
     17          #include "po_types.h"
     18          #include "trace.h"
     19          #include "fw_usb.h"

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code16?? __code __interwork __atpcs void AT91F_UDP_EpClear(AT91PS_UDP, unsigned char, unsigned int)
   \                     AT91F_UDP_EpClear:
   \   00000000   8900               LSL         R1,R1,#+2
   \   00000002   4018               ADD         R0,R0,R1
   \   00000004   016B               LDR         R1,[R0, #+48]
   \   00000006   9143               BIC         R1,R2
   \   00000008   0163               STR         R1,[R0, #+48]
   \   0000000A   7047               BX          LR                 ;; return
     20          #include "po_kernel.h"
     21          
     22          
     23          /*****************************************************************
     24          *
     25          * ROUTINE     fw_setAddressEnable
     26          *
     27          *-----------------------------------------------------------------
     28          *
     29          * Object :
     30          *   send a set address enable command
     31          *
     32          * Input parameters : bAddress : address of the device
     33          *                    bEnable  : set if we want to enable the device
     34          *
     35          * Output parameters : NONE
     36          *
     37          *****************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     38          void fw_setAddressEnable(UCHAR bAddress)
     39          {
     40            // UDP_FADDR : Function Address Register
     41            AT91F_UDP_SetAddress( USBDEV_BASE_UDP, bAddress );
   \                     fw_setAddressEnable:
   \   00000000   0749               LDR         R1,??fw_setAddressEnable_0  ;; 0xfffb0008
   \   00000002   8022               MOV         R2,#+128
   \   00000004   5200               LSL         R2,R2,#+1          ;; #+256
   \   00000006   0243               ORR         R2,R0
   \   00000008   0A60               STR         R2,[R1, #+0]
     42            // UDP_GLBSTATE : Global State Register
     43            AT91F_UDP_SetState( USBDEV_BASE_UDP, AT91C_UDP_FADDEN );
   \   0000000A   0648               LDR         R0,??fw_setAddressEnable_0+0x4  ;; 0xfffb0004
   \   0000000C   0168               LDR         R1,[R0, #+0]
   \   0000000E   0322               MOV         R2,#+3
   \   00000010   9143               BIC         R1,R2
   \   00000012   0160               STR         R1,[R0, #+0]
   \   00000014   0168               LDR         R1,[R0, #+0]
   \   00000016   0122               MOV         R2,#+1
   \   00000018   0A43               ORR         R2,R1
   \   0000001A   0260               STR         R2,[R0, #+0]
     44          }
   \   0000001C   7047               BX          LR                 ;; return
   \   0000001E   C046               NOP         
   \                     ??fw_setAddressEnable_0:
   \   00000020   0800FBFF           DC32        0xfffb0008
   \   00000024   0400FBFF           DC32        0xfffb0004
     45          
     46          
     47          /*****************************************************************
     48          *
     49          * ROUTINE     fw_setEndpointEnable
     50          *
     51          *-----------------------------------------------------------------
     52          *
     53          * Object :
     54          *   send a set endpoint enable command
     55          *
     56          * Input parameters : bEnable : set if we want to enable the EP
     57          *
     58          * Output parameters : NONE
     59          *
     60          *****************************************************************/
     61          /*void fw_setEndpointEnable(UCHAR bEnable)
     62          {
     63            // UDP_FADDR : Function Address Register
     64            USBDEV_BASE_UDP->UDP_FADDR |= ( bEnable ? AT91C_UDP_FEN:0 );
     65          }
     66          */
     67          
     68          /*****************************************************************
     69          *
     70          *
     71          * ROUTINE     fw_readInterruptRegister
     72          *
     73          *-----------------------------------------------------------------
     74          *
     75          * Object : read the IT register
     76          *
     77          * Input parameters : NONE
     78          *
     79          * Output parameters : register value
     80          *
     81          *****************************************************************/
     82          #ifdef ADS_COMPIL
     83          ULONG fw_readInterruptRegister(void)
     84          #else

   \                                 In segment CODE_I, align 4, keep-with-next
     85          ULONG fw_readInterruptRegister(void)
     86          #endif
     87          {
   \                     fw_readInterruptRegister:
   \   00000000   01B4               PUSH        {R0}
     88            volatile unsigned int tmp;
     89          
     90            tmp = AT91F_UDP_InterruptStatusRegister(USBDEV_BASE_UDP) & STATUS_ALL_IT;
   \   00000002   0548               LDR         R0,??fw_readInterruptRegister_0  ;; 0xfffb001c
   \   00000004   0068               LDR         R0,[R0, #+0]
   \   00000006   0549               LDR         R1,??fw_readInterruptRegister_0+0x4  ;; 0x3f0f
   \   00000008   0140               AND         R1,R0
   \   0000000A   0091               STR         R1,[SP, #+0]
     91            return( tmp & AT91F_UDP_GetInterruptMaskStatus( USBDEV_BASE_UDP ) );
   \   0000000C   0099               LDR         R1,[SP, #+0]
   \   0000000E   0448               LDR         R0,??fw_readInterruptRegister_0+0x8  ;; 0xfffb0018
   \   00000010   0068               LDR         R0,[R0, #+0]
   \   00000012   0840               AND         R0,R1
   \   00000014   08BC               POP         {R3}
   \   00000016   7047               BX          LR                 ;; return
   \                     ??fw_readInterruptRegister_0:
   \   00000018   1C00FBFF           DC32        0xfffb001c
   \   0000001C   0F3F0000           DC32        0x3f0f
   \   00000020   1800FBFF           DC32        0xfffb0018
     92          }
     93          
     94          /*****************************************************************
     95          *
     96          * ROUTINE     fw_setEndpointStatus
     97          *
     98          *-----------------------------------------------------------------
     99          *
    100          * Object :  set EP status (STALLED or not)
    101          *
    102          * Input parameters : bEndp    : number of the EP
    103          *                    bStalled : 1 if EP must be stalled
    104          *
    105          * Output parameters : NONE
    106          *
    107          * Global variables :
    108          *
    109          *****************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    110          void fw_setEndpointStatus(EPx bEndp, UCHAR bStalled)
    111          {
   \                     fw_setEndpointStatus:
   \   00000000   30B5               PUSH        {R4,R5,LR}
   \   00000002   041C               MOV         R4,R0
    112            if(bStalled)
   \   00000004   0029               CMP         R1,#+0
   \   00000006   07D0               BEQ         ??fw_setEndpointStatus_0
    113            {
    114              /* send STALL to the host */
    115              // UDP_CSR[8] : Endpoint Control and Status Register
    116              AT91F_UDP_EpSet( USBDEV_BASE_UDP, bEndp, AT91C_UDP_FORCESTALL );
   \   00000008   A000               LSL         R0,R4,#+2
   \   0000000A   ....               LDR         R1,??DataTable10   ;; 0xfffb0000
   \   0000000C   0818               ADD         R0,R1,R0
   \   0000000E   016B               LDR         R1,[R0, #+48]
   \   00000010   2022               MOV         R2,#+32
   \   00000012   0A43               ORR         R2,R1
   \   00000014   0263               STR         R2,[R0, #+48]
   \   00000016   0AE0               B           ??fw_setEndpointStatus_1
    117            }
    118            else
    119            {
    120              AT91F_UDP_EpClear( USBDEV_BASE_UDP, bEndp, AT91C_UDP_FORCESTALL );
   \                     ??fw_setEndpointStatus_0:
   \   00000018   ....               LDR         R5,??DataTable10   ;; 0xfffb0000
   \   0000001A   2022               MOV         R2,#+32
   \   0000001C   211C               MOV         R1,R4
   \   0000001E   281C               MOV         R0,R5
   \   00000020   ........           _BLF        AT91F_UDP_EpClear,??AT91F_UDP_EpClear??rT
    121              AT91F_UDP_EpClear( USBDEV_BASE_UDP, bEndp, AT91C_UDP_ISOERROR );
   \   00000024   0822               MOV         R2,#+8
   \   00000026   211C               MOV         R1,R4
   \   00000028   281C               MOV         R0,R5
   \   0000002A   ........           _BLF        AT91F_UDP_EpClear,??AT91F_UDP_EpClear??rT
    122            }
    123          }
   \                     ??fw_setEndpointStatus_1:
   \   0000002E   30BC               POP         {R4,R5}
   \   00000030   01BC               POP         {R0}
   \   00000032   0047               BX          R0                 ;; return
    124          
    125          /*****************************************************************
    126          *
    127          * ROUTINE     fw_readEndpoint
    128          *
    129          *-----------------------------------------------------------------
    130          *
    131          * Object :
    132          *   read a buffer of data in the EP buffer
    133          *
    134          * Input parameters : bEndp : number of the EP
    135          *                    buf   : data buffer
    136          *                    len   : length of the data
    137          *
    138          * Output parameters : length of data read
    139          *

⌨️ 快捷键说明

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