📄 uart0.lst
字号:
1 .file "uart0.c"
2 .arch atmega128
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
85 .global usart_putchar
87 usart_putchar:
1:uart0.c **** //----------------------------------------------------//
2:uart0.c **** //-------Institute Of Computing Technology-----------//
3:uart0.c **** //------------Chinese Academic Science---------------//
4:uart0.c **** //-----中国科学院计算技术研究所先进测试技术实验室-----//
5:uart0.c **** //----------------------------------------------------//
6:uart0.c ****
7:uart0.c **** /**
8:uart0.c **** * www.wsn.net.cn
9:uart0.c **** * @copyright:nbicc_lpp
10:uart0.c **** * @data:2005.11.22
11:uart0.c **** * @version:0.0.1
12:uart0.c **** * @updata:$
13:uart0.c **** *
14:uart0.c **** */
15:uart0.c **** #include "uart0.h"
16:uart0.c ****
17:uart0.c **** int usart_putchar(char c)
18:uart0.c **** {
89 .LM1:
90 /* prologue: frame size=0 */
91 0000 CF93 push r28
92 /* prologue end (size=1) */
93 0002 C82F mov r28,r24
19:uart0.c **** if(c=='\n')
95 .LM2:
96 0004 8A30 cpi r24,lo8(10)
97 0006 19F4 brne .L4
20:uart0.c **** usart_putchar('\r');
99 .LM3:
100 0008 8DE0 ldi r24,lo8(13)
101 000a 0E94 0000 call usart_putchar
102 .L4:
21:uart0.c **** loop_until_bit_is_set(UCSR0A,UDRE0);
104 .LM4:
105 000e 5D9B sbis 43-0x20,5
106 0010 FECF rjmp .L4
22:uart0.c **** UDR0=c;
108 .LM5:
109 0012 CCB9 out 44-0x20,r28
23:uart0.c **** return 0;
24:uart0.c **** }
111 .LM6:
112 0014 80E0 ldi r24,lo8(0)
113 0016 90E0 ldi r25,hi8(0)
114 /* epilogue: frame size=0 */
115 0018 CF91 pop r28
116 001a 0895 ret
117 /* epilogue end (size=2) */
118 /* function usart_putchar size 14 (11) */
122 .global usart_putbyte
124 usart_putbyte:
25:uart0.c **** //-----------------------------------------------------------
26:uart0.c **** int usart_putbyte(uint8_t c)
27:uart0.c **** {
126 .LM7:
127 /* prologue: frame size=0 */
128 /* prologue end (size=0) */
129 .L8:
28:uart0.c ****
29:uart0.c **** loop_until_bit_is_set(UCSR0A,UDRE0);
131 .LM8:
132 001c 5D9B sbis 43-0x20,5
133 001e FECF rjmp .L8
30:uart0.c **** UDR0=c;
135 .LM9:
136 0020 8CB9 out 44-0x20,r24
31:uart0.c **** return 0;
32:uart0.c **** }
138 .LM10:
139 0022 80E0 ldi r24,lo8(0)
140 0024 90E0 ldi r25,hi8(0)
141 /* epilogue: frame size=0 */
142 0026 0895 ret
143 /* epilogue end (size=1) */
144 /* function usart_putbyte size 6 (5) */
147 .global usart_getchar
149 usart_getchar:
33:uart0.c ****
34:uart0.c **** //-----------------------------------------------------------
35:uart0.c **** int usart_getchar(void)
36:uart0.c **** {
151 .LM11:
152 /* prologue: frame size=0 */
153 /* prologue end (size=0) */
154 .L12:
37:uart0.c **** loop_until_bit_is_set(UCSR0A,RXC0);
156 .LM12:
157 0028 5F9B sbis 43-0x20,7
158 002a FECF rjmp .L12
38:uart0.c **** return UDR0;
160 .LM13:
161 002c 8CB1 in r24,44-0x20
39:uart0.c **** }
163 .LM14:
164 002e 9927 clr r25
165 /* epilogue: frame size=0 */
166 0030 0895 ret
167 /* epilogue end (size=1) */
168 /* function usart_getchar size 5 (4) */
171 .global IoInit
173 IoInit:
40:uart0.c ****
41:uart0.c **** void IoInit(void)
42:uart0.c **** {
175 .LM15:
176 /* prologue: frame size=0 */
177 /* prologue end (size=0) */
43:uart0.c **** //UART初始化
44:uart0.c **** UCSR0B=_BV(RXEN0)|_BV(TXEN0);/*(1<<RXCIE)|(1<<TXCIE)|*/
179 .LM16:
180 0032 88E1 ldi r24,lo8(24)
181 0034 8AB9 out 42-0x20,r24
45:uart0.c **** UBRR0L=8; //57600 baud
183 .LM17:
184 0036 88E0 ldi r24,lo8(8)
185 0038 89B9 out 41-0x20,r24
46:uart0.c ****
47:uart0.c **** //i/o流UART连接
48:uart0.c **** fdevopen(usart_putchar,usart_getchar,0);
187 .LM18:
188 003a 40E0 ldi r20,lo8(0)
189 003c 50E0 ldi r21,hi8(0)
190 003e 60E0 ldi r22,lo8(pm(usart_getchar))
191 0040 70E0 ldi r23,hi8(pm(usart_getchar))
192 0042 80E0 ldi r24,lo8(pm(usart_putchar))
193 0044 90E0 ldi r25,hi8(pm(usart_putchar))
194 0046 0E94 0000 call fdevopen
195 /* epilogue: frame size=0 */
196 004a 0895 ret
197 /* epilogue end (size=1) */
198 /* function IoInit size 13 (12) */
200 .text
202 Letext:
203 /* File "uart0.c": code 38 = 0x0026 ( 32), prologues 1, epilogues 5 */
DEFINED SYMBOLS
*ABS*:00000000 uart0.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\bt\LOCALS~1\Temp/ccicbaaa.s:87 .text:00000000 usart_putchar
C:\DOCUME~1\bt\LOCALS~1\Temp/ccicbaaa.s:124 .text:0000001c usart_putbyte
C:\DOCUME~1\bt\LOCALS~1\Temp/ccicbaaa.s:149 .text:00000028 usart_getchar
C:\DOCUME~1\bt\LOCALS~1\Temp/ccicbaaa.s:173 .text:00000032 IoInit
C:\DOCUME~1\bt\LOCALS~1\Temp/ccicbaaa.s:202 .text:0000004c Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
fdevopen
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -