📄 serial.lst
字号:
ARM GAS /cygdrive/c/DOCUME~1/yon/LOCALS~1/Temp/ccsXgoAH.s page 1 1 .file "Serial.c" 2 .file 1 "Serial.c" 3 .section .debug_abbrev,"",%progbits 4 .Ldebug_abbrev0: 5 .section .debug_info,"",%progbits 6 .Ldebug_info0: 7 .section .debug_line,"",%progbits 8 .Ldebug_line0: 9 0000 3E000000 .text 9 02001C00 9 00000201 9 FB0E0A00 9 01010101 10 .Ltext0: 11 .align 2 12 .global init_serial 13 .type init_serial, %function 14 init_serial: 15 .LFB3: 1:Serial.c **** /******************************************************************************/ 2:Serial.c **** /* This file is part of the uVision/ARM development tools */ 3:Serial.c **** /* Copyright KEIL ELEKTRONIK GmbH 2002-2004 */ 4:Serial.c **** /******************************************************************************/ 5:Serial.c **** /* */ 6:Serial.c **** /* SERIAL.C: Low Level Serial Routines */ 7:Serial.c **** /* */ 8:Serial.c **** /******************************************************************************/ 9:Serial.c **** 10:Serial.c **** #include <LPC21xx.H> /* LPC21xx definitions */ 11:Serial.c **** 12:Serial.c **** #define CR 0x0D 13:Serial.c **** 14:Serial.c **** 15:Serial.c **** void init_serial (void) { /* Initialize Serial Interface */ 16 .loc 1 15 0 17 @ Function supports interworking. 18 @ args = 0, pretend = 0, frame = 0 19 @ frame_needed = 0, uses_anonymous_args = 0 20 @ link register save eliminated. 21 @ lr needed for prologue 16:Serial.c **** PINSEL0 = 0x00050000; /* Enable RxD1 and TxD1 */ 22 .loc 1 16 0 23 0000 0E32A0E3 mov r3, #-536870912 24 0004 0B3983E2 add r3, r3, #180224 25 0008 0528A0E3 mov r2, #327680 26 000c 002083E5 str r2, [r3, #0] 17:Serial.c **** U1LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */ 27 .loc 1 17 0 28 0010 CE12A0E3 mov r1, #-536870900 29 0014 011881E2 add r1, r1, #65536 30 0018 7C30E0E3 mvn r3, #124 31 001c 0030C1E5 strb r3, [r1, #0] 18:Serial.c **** U1DLL = 97; /* 9600 Baud Rate @ 15MHz VPB Clock */ 32 .loc 1 18 0 33 0020 0E32A0E3 mov r3, #-536870912 34 0024 013883E2 add r3, r3, #65536 35 0028 6120A0E3 mov r2, #97ARM GAS /cygdrive/c/DOCUME~1/yon/LOCALS~1/Temp/ccsXgoAH.s page 2 36 002c 0020C3E5 strb r2, [r3, #0] 19:Serial.c **** U1LCR = 0x03; /* DLAB = 0 */ 37 .loc 1 19 0 38 0030 0330A0E3 mov r3, #3 39 0034 0030C1E5 strb r3, [r1, #0] 20:Serial.c **** } 40 .loc 1 20 0 41 0038 1EFF2FE1 bx lr 42 .LFE3: 43 .size init_serial, .-init_serial 44 .align 2 45 .global putchar 46 .type putchar, %function 47 putchar: 48 .LFB5: 21:Serial.c **** 22:Serial.c **** 23:Serial.c **** int putchar (int ch) { /* Write character to Serial Port */ 49 .loc 1 23 0 50 @ Function supports interworking. 51 @ args = 0, pretend = 0, frame = 0 52 @ frame_needed = 0, uses_anonymous_args = 0 53 @ link register save eliminated. 54 @ lr needed for prologue 24:Serial.c **** 25:Serial.c **** if (ch == '\n') { 55 .loc 1 25 0 56 003c 0A0050E3 cmp r0, #10 57 0040 1800001A bne .L3 26:Serial.c **** while (!(U1LSR & 0x20)); 58 .loc 1 26 0 59 0044 0E22A0E3 mov r2, #-536870912 60 0048 012882E2 add r2, r2, #65536 61 .L4: 62 004c 1430D2E5 ldrb r3, [r2, #20] @ zero_extendqisi2 63 0050 200013E3 tst r3, #32 64 0054 1100000A beq .L4 27:Serial.c **** U1THR = CR; /* output CR */ 65 .loc 1 27 0 66 0058 0E32A0E3 mov r3, #-536870912 67 005c 013883E2 add r3, r3, #65536 68 0060 0D20A0E3 mov r2, #13 69 0064 0020C3E5 strb r2, [r3, #0] 70 .L3: 28:Serial.c **** } 29:Serial.c **** while (!(U1LSR & 0x20)); 71 .loc 1 29 0 72 0068 0E22A0E3 mov r2, #-536870912 73 006c 012882E2 add r2, r2, #65536 74 .L7: 75 0070 1430D2E5 ldrb r3, [r2, #20] @ zero_extendqisi2 76 0074 200013E3 tst r3, #32 77 0078 1A00000A beq .L7 30:Serial.c **** return (U1THR = ch); 78 .loc 1 30 0 79 007c 0E32A0E3 mov r3, #-536870912 80 0080 013883E2 add r3, r3, #65536ARM GAS /cygdrive/c/DOCUME~1/yon/LOCALS~1/Temp/ccsXgoAH.s page 3 81 0084 0000C3E5 strb r0, [r3, #0] 82 0088 0000D3E5 ldrb r0, [r3, #0] @ zero_extendqisi2 83 008c FF0000E2 and r0, r0, #255 31:Serial.c **** } 84 .loc 1 31 0 85 0090 1EFF2FE1 bx lr 86 .LFE5: 87 .size putchar, .-putchar 88 .align 2 89 .global getchar 90 .type getchar, %function 91 getchar: 92 .LFB7: 32:Serial.c **** 33:Serial.c **** 34:Serial.c **** int getchar (void) { /* Read character from Serial Port */ 93 .loc 1 34 0 94 @ Function supports interworking. 95 @ args = 0, pretend = 0, frame = 0 96 @ frame_needed = 0, uses_anonymous_args = 0 97 @ link register save eliminated. 98 @ lr needed for prologue 35:Serial.c **** 36:Serial.c **** while (!(U1LSR & 0x01)); 99 .loc 1 36 0 100 0094 0E22A0E3 mov r2, #-536870912 101 0098 012882E2 add r2, r2, #65536 102 .L11: 103 009c 1430D2E5 ldrb r3, [r2, #20] @ zero_extendqisi2 104 00a0 010013E3 tst r3, #1 105 00a4 2500000A beq .L11 37:Serial.c **** 38:Serial.c **** return (U1RBR); 106 .loc 1 38 0 107 00a8 0E32A0E3 mov r3, #-536870912 108 00ac 013883E2 add r3, r3, #65536 109 00b0 0000D3E5 ldrb r0, [r3, #0] @ zero_extendqisi2 110 00b4 FF0000E2 and r0, r0, #255 39:Serial.c **** } 111 .loc 1 39 0 112 00b8 1EFF2FE1 bx lr 113 .LFE7: 114 .size getchar, .-getchar 115 .section .debug_frame,"",%progbits 116 .Lframe0: 117 0000 0C000000 .4byte .LECIE0-.LSCIE0 118 .LSCIE0: 119 0004 FFFFFFFF .4byte 0xffffffff 120 0008 01 .byte 0x1 121 0009 00 .ascii "\000" 122 000a 01 .uleb128 0x1 123 000b 7C .sleb128 -4 124 000c 0E .byte 0xe 125 000d 0C .byte 0xc 126 000e 0D .uleb128 0xd 127 000f 00 .uleb128 0x0 128 .align 2ARM GAS /cygdrive/c/DOCUME~1/yon/LOCALS~1/Temp/ccsXgoAH.s page 4 129 .LECIE0: 130 .LSFDE0: 131 0010 0C000000 .4byte .LEFDE0-.LASFDE0 132 .LASFDE0: 133 0014 00000000 .4byte .Lframe0 134 0018 00000000 .4byte .LFB3 135 001c 3C000000 .4byte .LFE3-.LFB3 136 .align 2 137 .LEFDE0: 138 .LSFDE2: 139 0020 0C000000 .4byte .LEFDE2-.LASFDE2 140 .LASFDE2: 141 0024 00000000 .4byte .Lframe0 142 0028 3C000000 .4byte .LFB5 143 002c 58000000 .4byte .LFE5-.LFB5 144 .align 2 145 .LEFDE2: 146 .LSFDE4: 147 0030 0C000000 .4byte .LEFDE4-.LASFDE4 148 .LASFDE4: 149 0034 00000000 .4byte .Lframe0 150 0038 94000000 .4byte .LFB7 151 003c 28000000 .4byte .LFE7-.LFB7 152 .align 2 153 .LEFDE4: 154 .text 155 .Letext0: 156 .section .debug_info 157 0000 7B000000 .4byte 0x7b 158 0004 0200 .2byte 0x2 159 0006 00000000 .4byte .Ldebug_abbrev0 160 000a 04 .byte 0x4 161 000b 01 .uleb128 0x1 162 000c 00000000 .4byte .Ldebug_line0 163 0010 BC000000 .4byte .Letext0 164 0014 00000000 .4byte .Ltext0 165 0018 39000000 .4byte .LC2 166 001c 1C000000 .4byte .LC3 167 0020 08000000 .4byte .LC4 168 0024 01 .byte 0x1 169 0025 02 .uleb128 0x2 170 0026 01 .byte 0x1 171 0027 42000000 .4byte .LC0 172 002b 01 .byte 0x1 173 002c 0F .byte 0xf 174 002d 01 .byte 0x1 175 002e 00000000 .4byte .LFB3 176 0032 3C000000 .4byte .LFE3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -