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

📄 memory.lst

📁 开发ARM,基于IAR环境下的C代码开发
💻 LST
字号:
ARM COMPILER V2.53,  memory                                                                24/09/06  22:23:20  PAGE 1   


ARM COMPILER V2.53, COMPILATION OF MODULE memory
OBJECT MODULE PLACED IN .\Obj\memory.obj
COMPILER INVOKED BY: d:\Keil\ARM\BIN\CA.exe memory.c THUMB DEBUG PRINT(.\LST\MEMORY.LST) TABS(4) OBJECT(.\Obj\memory.obj
                    -) 

stmt  level    source

    1          /*----------------------------------------------------------------------------
    2           *      Name:    MEMORY.C
    3           *      Purpose: USB Mass Storage Demo
    4           *      Version: V1.10
    5           *----------------------------------------------------------------------------
    6           *      This file is part of the uVision/ARM development tools.
    7           *      Copyright (c) 2005-2006 Keil Software. All rights reserved.
    8           *      This software may only be used under the terms of a valid, current,
    9           *      end user licence from KEIL for a compatible version of KEIL software
   10           *      development tools. Nothing else gives you the right to use it.
   11           *---------------------------------------------------------------------------*/
   12          
   13          #include <AT91SAM7S64.H>                    /* AT91SAM7S64 definitions */
   14          
   15          #include "..\..\Board.h"
   16          
   17          #include "type.h"
   18          
   19          #include "usb.h"
   20          #include "usbcfg.h"
   21          #include "usbhw.h"
   22          #include "usbcore.h"
   23          #include "mscuser.h"
   24          
   25          #include "memory.h"
   26          
   27          
   28          AT91S_PIO * pPIO = AT91C_BASE_PIOA;         /* Global Pointer to PIO */
   29          
   30          extern BYTE Memory[MSC_MemorySize];         /* MSC Memory in RAM */
   31          
   32          
   33          /* Main Program */
   34          
   35          int main (void) {
   36   1        DWORD n;
   37   1      
   38   1        /* Enable Clock for PIO */
   39   1        AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_PIOA);
   40   1      
   41   1        pPIO->PIO_PER  = LED_MASK;                /* Enable PIO for LED1..4  */
   42   1        pPIO->PIO_OER  = LED_MASK;                /* LED1..4 are Outputs     */
   43   1        pPIO->PIO_SODR = LED_MASK;                /* Turn off LED's ("1")    */
   44   1      
   45   1        for (n = 0; n < MSC_ImageSize; n++) {     /* Copy Initial Disk Image */
   46   2          Memory[n] = DiskImage[n];               /*   from Flash to RAM     */
   47   2        }
   48   1      
   49   1        USB_Init();                               /* USB Initialization */
   50   1        USB_Connect(TRUE);                        /* USB Connect */
   51   1      
   52   1        while (1);                                /* Loop forever */
   53   1      }
ARM COMPILER V2.53,  memory                                                                24/09/06  22:23:20  PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (USB_Init?T)
 EXTERN CODE16 (USB_Connect?T)
 EXTERN DATA (DiskImage)
 EXTERN DATA (Memory)
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         main
 PUBLIC         pPIO



*** DATA SEGMENT '?DT0?memory':
 00000000          pPIO:
 00000000           BEGIN_INIT
 00000000  FFFFF400  DD          0xFFFFF400
 00000004           END_INIT



*** CODE SEGMENT '?PR?main?memory':
   35: int main (void) {
 00000000  B500      PUSH        {LR}
 00000002            ; SCOPE-START
   39:   AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_PIOA);
 00000002  2104      MOV         R1,#0x4
 00000004  4800      LDR         R0,=0xFFFFFC10
 00000006  6001      STR         R1,[R0,#0x0]
   41:   pPIO->PIO_PER  = LED_MASK;                /* Enable PIO for LED1..4  */
 00000008  4800      LDR         R1,=0x107
 0000000A  4800      LDR         R0,=pPIO ; pPIO
 0000000C  6800      LDR         R0,[R0,#0x0] ; pPIO
 0000000E  6001      STR         R1,[R0,#0x0]
   42:   pPIO->PIO_OER  = LED_MASK;                /* LED1..4 are Outputs     */
 00000010  4800      LDR         R0,=0x107
 00000012  4800      LDR         R1,=pPIO ; pPIO
 00000014  6809      LDR         R1,[R1,#0x0] ; pPIO
 00000016  6108      STR         R0,[R1,#0x10]
   43:   pPIO->PIO_SODR = LED_MASK;                /* Turn off LED's ("1")    */
 00000018  4800      LDR         R0,=0x107
 0000001A  4800      LDR         R1,=pPIO ; pPIO
 0000001C  6809      LDR         R1,[R1,#0x0] ; pPIO
 0000001E  6308      STR         R0,[R1,#0x30]
   45:   for (n = 0; n < MSC_ImageSize; n++) {     /* Copy Initial Disk Image */
 00000020  2000      MOV         R0,#0x0
 00000022  ---- Variable 'n' assigned to Register 'R0' ----
 00000022          L_4:
   46:     Memory[n] = DiskImage[n];               /*   from Flash to RAM     */
 00000022  1C02      MOV         R2,R0 ; n
 00000024  4800      LDR         R1,=DiskImage ; DiskImage
 00000026  5C89      LDRB        R1,[R1,R2]
 00000028  1C03      MOV         R3,R0 ; n
 0000002A  4800      LDR         R2,=Memory ; Memory
 0000002C  54D1      STRB        R1,[R2,R3]
   47:   }
 0000002E  3001      ADD         R0,#0x1
 00000030  1C01      MOV         R1,R0 ; n
 00000032  4800      LDR         R2,=0x1000
 00000034  4291      CMP         R1,R2 ; n
 00000036  D3F4      BCC         L_4  ; T=0x00000022
   49:   USB_Init();                               /* USB Initialization */
 00000038  F7FF      BL          USB_Init?T  ; T=0x0001  (1)
 0000003A  FFE2      BL          USB_Init?T  ; T=0x0001  (2)
   50:   USB_Connect(TRUE);                        /* USB Connect */
 0000003C  2001      MOV         R0,#0x1
 0000003E  F7FF      BL          USB_Connect?T  ; T=0x0001  (1)
ARM COMPILER V2.53,  memory                                                                24/09/06  22:23:20  PAGE 3   

 00000040  FFDF      BL          USB_Connect?T  ; T=0x0001  (2)
   52:   while (1);                                /* Loop forever */
 00000042          L_6:
 00000042  E7FE      B           L_6  ; T=0x00000042
 00000044            ; SCOPE-END
   53: }
 00000044  BC08      POP         {R3}
 00000046  4718      BX          R3
 00000048          ENDP ; 'main'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =         4
  const size           =    ------
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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