📄 memory.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 + -