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

📄 fw_task.lst

📁 at91sam7x256 FREERTOS sd卡的读写程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.31A/W32 EVALUATION    16/Nov/2007  09:02:45 #
# 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_tas #
#                       k.c                                                  #
#    Command line    =  G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\MASSSTORAGE\fw_tas #
#                       k.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_task.lst            #
#    Object file     =  G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\AT91SAM7X-Mass     #
#                       Storage\compil\RAM_Debug\Obj\fw_task.r79             #
#                                                                            #
#                                                                            #
##############################################################################

G:\AT91_ENERGY\ATMEL_ARM\x256_mmc\MASSSTORAGE\fw_task.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_task.c
     12          // Object              : initializations,firmware task and isr
     13          // Creation            : JCB   27/oct/2002
     14          // Modif               : JCB   18/feb/2005
     15          // ----------------------------------------------------------------------------
     16          #include "board.h"
     17          #include "po_types.h"
     18          #include "trace.h"
     19          #include "fw_usb.h"
     20          #include "po_kernel.h"
     21          #include "ms_device.h"
     22          #include "ms_rbc.h"
     23          #include "dbgu.h"
     24          
     25          extern void AT91F_ASM_UDP_Handler(void);
     26          
     27          /*****************************************************************
     28          *
     29          * ROUTINE    fw_init
     30          *
     31          *-----------------------------------------------------------------
     32          *
     33          * Purpose : Initialization of the registers
     34          *
     35          * Input parameters  :
     36          *
     37          * Output parameters :
     38          *
     39          * Global data :
     40          *
     41          *****************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     42          void fw_init( void )
     43          {
     44            fw_databk = 0;
   \                     fw_init:
   \   00000000   0C48               LDR         R0,??fw_init_0     ;; fw_databk
   \   00000002   0021               MOV         R1,#+0
   \   00000004   0160               STR         R1,[R0, #+0]
     45          
     46          #ifdef AT91SAM9265
     47            // Enable USB
     48            AT91F_UDPHS_EnableUSB( USBDEV_BASE_UDP );
     49          #else
     50            // Specific Chip USB Initialisation
     51            // Enables the 48MHz USB clock UDPCK and System Peripheral USB Clock
     52            AT91F_PMC_CfgSysClkEnableReg( AT91C_BASE_PMC, AT91C_PMC_UDP );
   \   00000006   0C48               LDR         R0,??fw_init_0+0x4  ;; 0xfffffc00
   \   00000008   8021               MOV         R1,#+128
   \   0000000A   0160               STR         R1,[R0, #+0]
     53          
     54            // Enables the corresponding peripheral clock.
     55            AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC,(1 << AT91C_ID_UDP) );
   \   0000000C   0801               LSL         R0,R1,#+4
   \   0000000E   0B49               LDR         R1,??fw_init_0+0x8  ;; 0xfffffc10
   \   00000010   0860               STR         R0,[R1, #+0]
     56          
     57          #ifdef PULL_UP_USB
     58            // Enable UDP Pull Up (USB_DP_PUP)
     59            #ifdef AT91SAM7A3
     60              #ifdef REV_A  // old board
     61                AT91F_PIO_SetOutput( AT91C_BASE_PIOB, AT91C_PIO_PB1 );
     62              #else  // new board
     63                AT91F_PIO_ClearOutput( AT91C_BASE_PIOB, AT91C_PIO_PB1 );
     64              #endif
     65            #else
     66              AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, AT91C_PIO_PA16 );
   \   00000012   0B49               LDR         R1,??fw_init_0+0xC  ;; 0xfffff434
   \   00000014   4201               LSL         R2,R0,#+5
   \   00000016   0A60               STR         R2,[R1, #+0]
     67            #endif
     68          #endif
     69          #endif
     70          
     71          #ifndef AT91SAM9265
     72            /* Acquire an interrupt vector and assign an ISR routine. */
     73            AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_UDP, AT91C_AIC_PRIOR_MIDDLE, AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, fw_isr );
   \   00000018   0A49               LDR         R1,??fw_init_0+0x10  ;; 0xfffff0ac
   \   0000001A   0A68               LDR         R2,[R1, #+0]
   \   0000001C   0A4A               LDR         R2,??fw_init_0+0x14  ;; 0xfffff124
   \   0000001E   1060               STR         R0,[R2, #+0]
   \   00000020   0A4A               LDR         R2,??fw_init_0+0x18  ;; fw_isr
   \   00000022   0A60               STR         R2,[R1, #+0]
   \   00000024   0A49               LDR         R1,??fw_init_0+0x1C  ;; 0xfffff02c
   \   00000026   0422               MOV         R2,#+4
   \   00000028   0A60               STR         R2,[R1, #+0]
   \   0000002A   0A49               LDR         R1,??fw_init_0+0x20  ;; 0xfffff128
   \   0000002C   0860               STR         R0,[R1, #+0]
     74            // Enable corresponding IT number
     75            AT91F_AIC_EnableIt( AT91C_BASE_AIC, AT91C_ID_UDP );
   \   0000002E   0A49               LDR         R1,??fw_init_0+0x24  ;; 0xfffff120
   \   00000030   0860               STR         R0,[R1, #+0]
     76          #else
     77            // Acquire an interrupt vector and assign an ISR routine
     78          #ifdef ADS_COMPIL
     79            AT91F_AIC_ConfigureIt( AT91C_BASE_AIC, AT91C_ID_UDPHS, AT91C_AIC_PRIOR_MIDDLE, AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE, AT91F_ASM_UDP_Handler );
     80          #else
     81            AT91F_AIC_ConfigureIt( AT91C_BASE_AIC, AT91C_ID_UDPHS, AT91C_AIC_PRIOR_MIDDLE, AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE, fw_isr );
     82          #endif
     83            // Enable corresponding IT number
     84            AT91F_AIC_EnableIt( AT91C_BASE_AIC, AT91C_ID_UDPHS );
     85          #endif
     86          
     87            // On AT91SAM7Sxxx the "End Of Bus Reset" is NO-MASK. So we not need to enable it.
     88          }
   \   00000032   7047               BX          LR                 ;; return
   \                     ??fw_init_0:
   \   00000034   ........           DC32        fw_databk
   \   00000038   00FCFFFF           DC32        0xfffffc00
   \   0000003C   10FCFFFF           DC32        0xfffffc10
   \   00000040   34F4FFFF           DC32        0xfffff434
   \   00000044   ACF0FFFF           DC32        0xfffff0ac
   \   00000048   24F1FFFF           DC32        0xfffff124
   \   0000004C   ........           DC32        fw_isr
   \   00000050   2CF0FFFF           DC32        0xfffff02c
   \   00000054   28F1FFFF           DC32        0xfffff128
   \   00000058   20F1FFFF           DC32        0xfffff120
     89          
     90          
     91          /*****************************************************************
     92          *
     93          * ROUTINE : usb_task
     94          *
     95          *-----------------------------------------------------------------
     96          *
     97          * Purpose :  Main loop of USB-MS.
     98          *            Not an API function but is provided for system whitout
     99          *            operating system.
    100          *            In this case, usbms_loop should be called in the main
    101          *            loop
    102          *
    103          * Input parameters  : NONE
    104          *
    105          * Output parameters : NONE
    106          *
    107          * Global data :
    108          *
    109          *****************************************************************/
    110          #ifdef ADS_COMPIL
    111          void usb_task( void )
    112          #else

   \                                 In segment CODE_I, align 4, keep-with-next
    113          void usb_task( void )
    114          #endif
    115          {
   \                     usb_task:
   \   00000000   10B5               PUSH        {R4,LR}
    116            /* Flags set by ISR: USB_EVENT, USB_RX, USB_TX */
    117            if( 0 != USB_EVENT )
   \   00000002   ....               LDR         R0,??DataTable0    ;; USB_EVENT
   \   00000004   0178               LDRB        R1,[R0, #+0]
   \   00000006   0029               CMP         R1,#+0
   \   00000008   03D0               BEQ         ??usb_task_0
    118            {
    119              TRACE_DEBUG_L( "USB_EVENT 0x%X\n\r", USB_EVENT);
    120              ms_usbEvent( USB_EVENT );
   \   0000000A   0078               LDRB        R0,[R0, #+0]
   \   0000000C   ........           _BLF        ms_usbEvent,??ms_usbEvent??rT?CODE_I
   \   00000010   12E0               B           ??usb_task_1
    121            }
    122            else
    123            {
    124              if( 0 != USB_RX )
   \                     ??usb_task_0:
   \   00000012   0B48               LDR         R0,??usb_task_2    ;; USB_RX
   \   00000014   0068               LDR         R0,[R0, #+0]
   \   00000016   0028               CMP         R0,#+0
   \   00000018   02D0               BEQ         ??usb_task_3
    125              {
    126               TRACE_DEBUG_L( "ms_dataRec 0x%X\n\r", (int)USB_RX);
    127               ms_dataReceived();
                                       ^
Warning[Ta023]: Call to a non __ramfunc function (ms_dataReceived) from within
          a __ramfunc function
   \   0000001A   ........           _BLF        ms_dataReceived,??ms_dataReceived??rT?CODE_I
   \   0000001E   0BE0               B           ??usb_task_1
    128                /* USB_RX is updated when data is read */
    129              }
    130              else
    131              {
    132                if( 1 == USB_TX )
   \                     ??usb_task_3:
   \   00000020   084C               LDR         R4,??usb_task_2+0x4  ;; USB_TX
   \   00000022   2068               LDR         R0,[R4, #+0]
   \   00000024   0128               CMP         R0,#+1
   \   00000026   07D1               BNE         ??usb_task_1
    133                {
    134                  TRACE_DEBUG_L( "ms_sendComplete\n\r");
    135                  ms_sendComplete();
                                          ^
Warning[Ta023]: Call to a non __ramfunc function (ms_sendComplete) from within
          a __ramfunc function
   \   00000028   ........           _BLF        ms_sendComplete,??ms_sendComplete??rT?CODE_I
    136                  po_lock();

⌨️ 快捷键说明

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