?? alva.lst
字號:
ARM COMPILER V2.53, alva 02/11/07 08:22:56 PAGE 1
ARM COMPILER V2.53, COMPILATION OF MODULE alva
OBJECT MODULE PLACED IN alva.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe alva.c THUMB DEBUG PRINT(.\LST\ALVA.LST) TABS(4)
stmt level source
1 /*----------------------------------------------------------------------------
2 For Intellisence
3 *---------------------------------------------------------------------------*/
4
5 #include <AT91SAM7S64.H> /* AT91SAM7S64 definitions */
6 #include "Board.h"
7 #include "type.h"
8 #include "usb.h"
9 #include "usbcfg.h"
10 #include "usbhw.h"
11 #include "usbcore.h"
12
13 AT91S_PIO * pPIO = AT91C_BASE_PIOA; /* Global Pointer to PIO */
14 BYTE data;
15 /* Main Program */
16
17 int main (void) {
18 1 int timecount;
19 1 AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_PIOA); /* Enable Clock for PIO */
20 1 *AT91C_PIOA_PER=0x0000000F; /*PIOA0-2作為I/O使用*/
21 1 *AT91C_PIOA_OER=0x0000000F; /*PIOA0-2輸出使能 */
22 1 pPIO->PIO_PER = LED_MASK; /* Enable PIO for LED1..4 */
23 1 pPIO->PIO_OER = LED_MASK; /* LED1..4 are Outputs */
24 1 pPIO->PIO_SODR = LED_MASK; /* Turn off LED's ("1") */
25 1 data=0;
26 1
27 1 USB_Init(); /* USB Initialization */
28 1 USB_Connect(TRUE); /* USB Connect */
29 1
30 1 while (1) /* Loop forever */
31 1 {
32 2 if(data==49)
33 2 {
34 3 *AT91C_PIOA_CODR=0x00000001; /*開led1*/
35 3 for(timecount=0;timecount<6000000;timecount++);
36 3 *AT91C_PIOA_SODR=0x00000001; /*關led1*/
37 3 USB_WriteEP (1, &data, 1);
38 3 data=0;
39 3 }
40 2
41 2 if(data==50)
42 2 {
43 3 *AT91C_PIOA_CODR=0x00000002; /*開led2*/
44 3 for(timecount=0;timecount<6000000;timecount++);
45 3 *AT91C_PIOA_SODR=0x00000002;
46 3 USB_WriteEP (1, &data, 1); /*關led2*/
47 3 data=0;
48 3 }
49 2 if(data==51)
50 2 {
51 3 *AT91C_PIOA_CODR=0x00000004; /*開led3*/
52 3 for(timecount=0;timecount<6000000;timecount++);
53 3 *AT91C_PIOA_SODR=0x00000004;
54 3 USB_WriteEP (1, &data, 1); /*關led3*/
55 3 data=0;
56 3 }
57 2 }
58 1
59 1 }
ARM COMPILER V2.53, alva 02/11/07 08:22:56 PAGE 2
60
ARM COMPILER V2.53, alva 02/11/07 08:22:56 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN CODE16 (USB_Init?T)
EXTERN CODE16 (USB_Connect?T)
EXTERN CODE16 (USB_WriteEP?T)
EXTERN NUMBER (__startup)
*** PUBLICS:
PUBLIC main
PUBLIC pPIO
PUBLIC data
*** DATA SEGMENT '?DT0?alva':
00000000 pPIO:
00000000 BEGIN_INIT
00000000 FFFFF400 DD 0xFFFFF400
00000004 END_INIT
00000004 data:
00000004 DS 1
*** CODE SEGMENT '?PR?main?alva':
17: int main (void) {
00000000 B500 PUSH {LR}
00000002 ---- Variable 'timecount' assigned to Register 'R4' ----
00000002 ; SCOPE-START
19: AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_PIOA); /* Enable Clock for PIO */
00000002 2104 MOV R1,#0x4
00000004 4800 LDR R0,=0xFFFFFC10
00000006 6001 STR R1,[R0,#0x0]
20: *AT91C_PIOA_PER=0x0000000F; /*PIOA0-2作為I/O使用*/
00000008 210F MOV R1,#0xF
0000000A 4800 LDR R0,=0xFFFFF400
0000000C 6001 STR R1,[R0,#0x0]
21: *AT91C_PIOA_OER=0x0000000F; /*PIOA0-2輸出使能 */
0000000E 4800 LDR R0,=0xFFFFF410
00000010 6001 STR R1,[R0,#0x0]
22: pPIO->PIO_PER = LED_MASK; /* Enable PIO for LED1..4 */
00000012 4800 LDR R0,=pPIO ; pPIO
00000014 6800 LDR R0,[R0,#0x0] ; pPIO
00000016 6001 STR R1,[R0,#0x0]
23: pPIO->PIO_OER = LED_MASK; /* LED1..4 are Outputs */
00000018 200F MOV R0,#0xF
0000001A 4800 LDR R1,=pPIO ; pPIO
0000001C 6809 LDR R1,[R1,#0x0] ; pPIO
0000001E 6108 STR R0,[R1,#0x10]
24: pPIO->PIO_SODR = LED_MASK; /* Turn off LED's ("1") */
00000020 200F MOV R0,#0xF
00000022 4800 LDR R1,=pPIO ; pPIO
00000024 6809 LDR R1,[R1,#0x0] ; pPIO
00000026 6308 STR R0,[R1,#0x30]
25: data=0;
00000028 2100 MOV R1,#0x0
0000002A 4800 LDR R0,=data ; data
0000002C 7001 STRB R1,[R0,#0x0] ; data
27: USB_Init(); /* USB Initialization */
0000002E F7FF BL USB_Init?T ; T=0x0001 (1)
00000030 FFE7 BL USB_Init?T ; T=0x0001 (2)
28: USB_Connect(TRUE); /* USB Connect */
00000032 2001 MOV R0,#0x1
00000034 F7FF BL USB_Connect?T ; T=0x0001 (1)
00000036 FFE4 BL USB_Connect?T ; T=0x0001 (2)
30: while (1) /* Loop forever */
00000038 L_3:
32: if(data==49)
ARM COMPILER V2.53, alva 02/11/07 08:22:56 PAGE 4
00000038 4800 LDR R0,=data ; data
0000003A 7800 LDRB R0,[R0,#0x0] ; data
0000003C 2831 CMP R0,#0x31
0000003E D113 BNE L_5 ; T=0x00000068
34: *AT91C_PIOA_CODR=0x00000001; /*開led1*/
00000040 2101 MOV R1,#0x1
00000042 4800 LDR R0,=0xFFFFF434
00000044 6001 STR R1,[R0,#0x0]
35: for(timecount=0;timecount<6000000;timecount++);
00000046 2400 MOV R4,#0x0
00000048 L_6:
00000048 3401 ADD R4,#0x1
0000004A 1C20 MOV R0,R4 ; timecount
0000004C 4800 LDR R1,=0x5B8D80
0000004E 4288 CMP R0,R1 ; timecount
00000050 DBFA BLT L_6 ; T=0x00000048
36: *AT91C_PIOA_SODR=0x00000001; /*關led1*/
00000052 2101 MOV R1,#0x1
00000054 4800 LDR R0,=0xFFFFF430
00000056 6001 STR R1,[R0,#0x0]
37: USB_WriteEP (1, &data, 1);
00000058 4800 LDR R1,=data ; data
0000005A 2201 MOV R2,#0x1
0000005C 1C10 MOV R0,R2
0000005E F7FF BL USB_WriteEP?T ; T=0x0001 (1)
00000060 FFCF BL USB_WriteEP?T ; T=0x0001 (2)
38: data=0;
00000062 2100 MOV R1,#0x0
00000064 4800 LDR R0,=data ; data
00000066 7001 STRB R1,[R0,#0x0] ; data
39: }
00000068 L_5:
41: if(data==50)
00000068 4800 LDR R0,=data ; data
0000006A 7800 LDRB R0,[R0,#0x0] ; data
0000006C 2832 CMP R0,#0x32
0000006E D113 BNE L_11 ; T=0x00000098
43: *AT91C_PIOA_CODR=0x00000002; /*開led2*/
00000070 2102 MOV R1,#0x2
00000072 4800 LDR R0,=0xFFFFF434
00000074 6001 STR R1,[R0,#0x0]
44: for(timecount=0;timecount<6000000;timecount++);
00000076 2400 MOV R4,#0x0
00000078 L_12:
00000078 3401 ADD R4,#0x1
0000007A 1C20 MOV R0,R4 ; timecount
0000007C 4800 LDR R1,=0x5B8D80
0000007E 4288 CMP R0,R1 ; timecount
00000080 DBFA BLT L_12 ; T=0x00000078
45: *AT91C_PIOA_SODR=0x00000002;
00000082 2102 MOV R1,#0x2
00000084 4800 LDR R0,=0xFFFFF430
00000086 6001 STR R1,[R0,#0x0]
46: USB_WriteEP (1, &data, 1); /*關led2*/
00000088 4800 LDR R1,=data ; data
0000008A 2201 MOV R2,#0x1
0000008C 1C10 MOV R0,R2
0000008E F7FF BL USB_WriteEP?T ; T=0x0001 (1)
00000090 FFB7 BL USB_WriteEP?T ; T=0x0001 (2)
47: data=0;
00000092 2100 MOV R1,#0x0
00000094 4800 LDR R0,=data ; data
00000096 7001 STRB R1,[R0,#0x0] ; data
48: }
00000098 L_11:
49: if(data==51)
ARM COMPILER V2.53, alva 02/11/07 08:22:56 PAGE 5
00000098 4800 LDR R0,=data ; data
0000009A 7800 LDRB R0,[R0,#0x0] ; data
0000009C 2833 CMP R0,#0x33
0000009E D1CB BNE L_3 ; T=0x00000038
51: *AT91C_PIOA_CODR=0x00000004; /*開led3*/
000000A0 2104 MOV R1,#0x4
000000A2 4800 LDR R0,=0xFFFFF434
000000A4 6001 STR R1,[R0,#0x0]
52: for(timecount=0;timecount<6000000;timecount++);
000000A6 2400 MOV R4,#0x0
000000A8 L_18:
000000A8 3401 ADD R4,#0x1
000000AA 1C20 MOV R0,R4 ; timecount
000000AC 4800 LDR R1,=0x5B8D80
000000AE 4288 CMP R0,R1 ; timecount
000000B0 DBFA BLT L_18 ; T=0x000000A8
53: *AT91C_PIOA_SODR=0x00000004;
000000B2 2104 MOV R1,#0x4
000000B4 4800 LDR R0,=0xFFFFF430
000000B6 6001 STR R1,[R0,#0x0]
54: USB_WriteEP (1, &data, 1); /*關led3*/
000000B8 4800 LDR R1,=data ; data
000000BA 2201 MOV R2,#0x1
000000BC 1C10 MOV R0,R2
000000BE F7FF BL USB_WriteEP?T ; T=0x0001 (1)
000000C0 FF9F BL USB_WriteEP?T ; T=0x0001 (2)
55: data=0;
000000C2 2100 MOV R1,#0x0
000000C4 4800 LDR R0,=data ; data
000000C6 7001 STRB R1,[R0,#0x0] ; data
57: }
000000C8 E7B6 B L_3 ; T=0x00000038
000000CA ; SCOPE-END
59: }
000000CA BC08 POP {R3}
000000CC 4718 BX R3
000000CE ENDP ; 'main'
Module Information Static
----------------------------------
code size = ------
data size = 5
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 + -