?? serial.lst
字號:
?
+
ARM COMPILER V2.42, serial 19/06/07 11:55:42 PAGE 1
ARM COMPILER V2.42, COMPILATION OF MODULE serial
OBJECT MODULE PLACED IN .\Output\Keil\serial.obj
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe serial.c THUMB INCDIR(C:\Keil\ARM\INC\ADI) DEBUG PRINT(.\OUTPUT\KEIL\SERIAL.
-LST) TABS(4) OBJECT(.\Output\Keil\serial.obj)
stmt level source
1 /***********************************************************************/
2 /* */
3 /* SERIAL.C: Low Level Serial Routines */
4 /* */
5 /***********************************************************************/
6
7 #include <aduc7028.H> /* ADuC7024 definitions */
8
9 #define CR 0x0D
10
11 int putchar(int ch) { /* Write character to Serial Port */
12 1
13 1 if (ch == '\n') {
14 2 while(!(0x020==(COMSTA0 & 0x020)))
15 2 {}
16 2 COMTX = CR; /* output CR */
17 2 }
18 1 while(!(0x020==(COMSTA0 & 0x020)))
19 1 {}
20 1
21 1 return (COMTX = ch);
22 1 }
23
24
25 int getchar (void) { /* Read character from Serial Port */
26 1
27 1 while(!(0x01==(COMSTA0 & 0x01)))
28 1 {}
29 1 return (COMRX);
30 1 }
31
32 int write (int file, char * ptr, int len) {
33 1 int i;
34 1
35 1 for (i = 0; i < len; i++) putchar (*ptr++);
36 1 return len;
37 1 }
*** WARNING C47 IN LINE 32 OF SERIAL.C: 'file': unreferenced parameter
38
ARM COMPILER V2.42, serial 19/06/07 11:55:42 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** PUBLICS:
PUBLIC putchar?T
PUBLIC getchar?T
PUBLIC write?T
*** CODE SEGMENT '?PR?putchar?T?serial':
11: int putchar(int ch) { /* Write character to Serial Port */
00000000 1C01 MOV R1,R0 ; ch
00000002 ---- Variable 'ch' assigned to Register 'R1' ----
13: if (ch == '\n') {
00000002 1C08 MOV R0,R1 ; ch
00000004 280A CMP R0,#0xA ; ch
00000006 D107 BNE L_9 ; T=0x00000018
15: {}
00000008 L_2:
00000008 4800 LDR R0,=0xFFFF0714
0000000A 6800 LDR R0,[R0,#0x0]
0000000C 2220 MOV R2,#0x20
0000000E 4210 TST R0,R2
00000010 D0FA BEQ L_2 ; T=0x00000008
16: COMTX = CR; /* output CR */
00000012 220D MOV R2,#0xD
00000014 4800 LDR R0,=0xFFFF0700
00000016 6002 STR R2,[R0,#0x0]
18: while(!(0x020==(COMSTA0 & 0x020)))
00000018 L_9:
19: {}
00000018 L_6:
00000018 4800 LDR R0,=0xFFFF0714
0000001A 6800 LDR R0,[R0,#0x0]
0000001C 2220 MOV R2,#0x20
0000001E 4210 TST R0,R2
00000020 D0FA BEQ L_6 ; T=0x00000018
21: return (COMTX = ch);
00000022 1C08 MOV R0,R1 ; ch
00000024 4800 LDR R1,=0xFFFF0700
00000026 6008 STR R0,[R1,#0x0]
22: }
00000028 4770 BX R14
0000002A ENDP ; 'putchar?T'
*** CODE SEGMENT '?PR?getchar?T?serial':
28: {}
00000000 L_11:
00000000 4800 LDR R0,=0xFFFF0714
00000002 6800 LDR R0,[R0,#0x0]
00000004 2101 MOV R1,#0x1
00000006 4008 AND R0,R1
00000008 2801 CMP R0,#0x1
0000000A D1F9 BNE L_11 ; T=0x00000000
29: return (COMRX);
0000000C 4800 LDR R0,=0xFFFF0700
0000000E 6800 LDR R0,[R0,#0x0]
30: }
00000010 4770 BX R14
00000012 ENDP ; 'getchar?T'
*** CODE SEGMENT '?PR?write?T?serial':
32: int write (int file, char * ptr, int len) {
00000000 B530 PUSH {R4-R5,LR}
00000002 1C13 MOV R3,R2 ; len
00000004 ---- Variable 'len' assigned to Register 'R3' ----
00000004 1C0D MOV R5,R1 ; ptr
00000006 ---- Variable 'ptr' assigned to Register 'R5' ----
00000006 ; SCOPE-START
ARM COMPILER V2.42, serial 19/06/07 11:55:42 PAGE 3
35: for (i = 0; i < len; i++) putchar (*ptr++);
00000006 2400 MOV R4,#0x0
00000008 ---- Variable 'i' assigned to Register 'R4' ----
00000008 E005 B L_18 ; T=0x00000016
0000000A L_19:
0000000A 1C28 MOV R0,R5 ; ptr
0000000C 3501 ADD R5,#0x1
0000000E 7800 LDRB R0,[R0,#0x0] ; ptr
00000010 F7FF BL putchar?T ; T=0x0001 (1)
00000012 FFF6 BL putchar?T ; T=0x0001 (2)
00000014 3401 ADD R4,#0x1
00000016 L_18:
00000016 1C19 MOV R1,R3 ; len
00000018 1C20 MOV R0,R4 ; i
0000001A 4288 CMP R0,R1 ; i
0000001C DBF5 BLT L_19 ; T=0x0000000A
36: return len;
0000001E 1C18 MOV R0,R3 ; len
00000020 ; SCOPE-END
37: }
00000020 BC30 POP {R4-R5}
00000022 BC08 POP {R3}
00000024 4718 BX R3
00000026 ENDP ; 'write?T'
Module Information Static
----------------------------------
code size = ------
data size = ------
const size = ------
End of Module Information.
ARM COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -