📄 uart.lst
字号:
1 .file "uart.c"
2 .arch atmega32
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
17 .Ltext0:
18 .global uartSetBaudRate
20 uartSetBaudRate:
21 .LFB5:
22 .LM1:
23 /* prologue: frame size=0 */
24 /* prologue end (size=0) */
25 0000 DC01 movw r26,r24
26 0002 CB01 movw r24,r22
27 .LM2:
28 0004 73E0 ldi r23,3
29 0006 880F 1: lsl r24
30 0008 991F rol r25
31 000a AA1F rol r26
32 000c BB1F rol r27
33 000e 7A95 dec r23
34 0010 D1F7 brne 1b
35 0012 9C01 movw r18,r24
36 0014 AD01 movw r20,r26
37 0016 220F lsl r18
38 0018 331F rol r19
39 001a 441F rol r20
40 001c 551F rol r21
41 001e 8050 subi r24,lo8(-(7372800))
42 0020 9048 sbci r25,hi8(-(7372800))
43 0022 AF48 sbci r26,hlo8(-(7372800))
44 0024 BF4F sbci r27,hhi8(-(7372800))
45 0026 BC01 movw r22,r24
46 0028 CD01 movw r24,r26
47 002a 0E94 0000 call __udivmodsi4
48 002e DA01 movw r26,r20
49 0030 C901 movw r24,r18
50 0032 0197 sbiw r24,1
51 .LM3:
52 0034 89B9 out 41-0x20,r24
53 .LM4:
54 0036 892F mov r24,r25
55 0038 9927 clr r25
56 003a 80BD out 64-0x20,r24
57 /* epilogue: frame size=0 */
58 003c 0895 ret
59 /* epilogue end (size=1) */
60 /* function uartSetBaudRate size 31 (30) */
61 .LFE5:
63 .global uartInit
65 uartInit:
66 .LFB2:
67 .LM5:
68 /* prologue: frame size=0 */
69 /* prologue end (size=0) */
70 .LM6:
71 003e 88ED ldi r24,lo8(-40)
72 0040 8AB9 out 42-0x20,r24
73 .LM7:
74 0042 86E8 ldi r24,lo8(-122)
75 0044 80BD out 64-0x20,r24
76 .LM8:
77 0046 60E8 ldi r22,lo8(9600)
78 0048 75E2 ldi r23,hi8(9600)
79 004a 80E0 ldi r24,hlo8(9600)
80 004c 90E0 ldi r25,hhi8(9600)
81 004e 0E94 0000 call uartSetBaudRate
82 .LM9:
83 0052 8FEF ldi r24,lo8(-1)
84 0054 8093 0000 sts uartReadyTx,r24
85 .LM10:
86 /* #APP */
87 0058 7894 sei
88 /* #NOAPP */
89 /* epilogue: frame size=0 */
90 005a 0895 ret
91 /* epilogue end (size=1) */
92 /* function uartInit size 16 (15) */
93 .LFE2:
95 .global uartInitBuffers
97 uartInitBuffers:
98 .LFB3:
99 .LM11:
100 /* prologue: frame size=0 */
101 /* prologue end (size=0) */
102 .LM12:
103 005c 40EA ldi r20,lo8(160)
104 005e 50E0 ldi r21,hi8(160)
105 0060 60E0 ldi r22,lo8(uartRxData)
106 0062 70E0 ldi r23,hi8(uartRxData)
107 0064 80E0 ldi r24,lo8(uartRxBuffer)
108 0066 90E0 ldi r25,hi8(uartRxBuffer)
109 0068 0E94 0000 call bufferInit
110 .LM13:
111 006c 40E1 ldi r20,lo8(16)
112 006e 50E0 ldi r21,hi8(16)
113 0070 60E0 ldi r22,lo8(uartTxData)
114 0072 70E0 ldi r23,hi8(uartTxData)
115 0074 80E0 ldi r24,lo8(uartTxBuffer)
116 0076 90E0 ldi r25,hi8(uartTxBuffer)
117 0078 0E94 0000 call bufferInit
118 /* epilogue: frame size=0 */
119 007c 0895 ret
120 /* epilogue end (size=1) */
121 /* function uartInitBuffers size 17 (16) */
122 .LFE3:
124 .global uartSetRxHandler
126 uartSetRxHandler:
127 .LFB4:
128 .LM14:
129 /* prologue: frame size=0 */
130 /* prologue end (size=0) */
131 .LM15:
132 007e 9093 0000 sts (UartRxFunc)+1,r25
133 0082 8093 0000 sts UartRxFunc,r24
134 /* epilogue: frame size=0 */
135 0086 0895 ret
136 /* epilogue end (size=1) */
137 /* function uartSetRxHandler size 5 (4) */
138 .LFE4:
140 .global uartGetRxBuffer
142 uartGetRxBuffer:
143 .LFB6:
144 .LM16:
145 /* prologue: frame size=0 */
146 /* prologue end (size=0) */
147 .LM17:
148 0088 80E0 ldi r24,lo8(uartRxBuffer)
149 008a 90E0 ldi r25,hi8(uartRxBuffer)
150 /* epilogue: frame size=0 */
151 008c 0895 ret
152 /* epilogue end (size=1) */
153 /* function uartGetRxBuffer size 3 (2) */
154 .LFE6:
156 .global uartGetTxBuffer
158 uartGetTxBuffer:
159 .LFB7:
160 .LM18:
161 /* prologue: frame size=0 */
162 /* prologue end (size=0) */
163 .LM19:
164 008e 80E0 ldi r24,lo8(uartTxBuffer)
165 0090 90E0 ldi r25,hi8(uartTxBuffer)
166 /* epilogue: frame size=0 */
167 0092 0895 ret
168 /* epilogue end (size=1) */
169 /* function uartGetTxBuffer size 3 (2) */
170 .LFE7:
172 .global uartSendByte
174 uartSendByte:
175 .LFB8:
176 .LM20:
177 /* prologue: frame size=0 */
178 /* prologue end (size=0) */
179 0094 982F mov r25,r24
180 .L8:
181 .LM21:
182 0096 8091 0000 lds r24,uartReadyTx
183 009a 8823 tst r24
184 009c E1F3 breq .L8
185 .LM22:
186 009e 9CB9 out 44-0x20,r25
187 .LM23:
188 00a0 1092 0000 sts uartReadyTx,__zero_reg__
189 /* epilogue: frame size=0 */
190 00a4 0895 ret
191 /* epilogue end (size=1) */
192 /* function uartSendByte size 9 (8) */
193 .LFE8:
195 .global uartReceiveByte
197 uartReceiveByte:
198 .LFB10:
199 .LM24:
200 /* prologue: frame size=0 */
201 00a6 CF93 push r28
202 00a8 DF93 push r29
203 /* prologue end (size=2) */
204 00aa EC01 movw r28,r24
205 .LM25:
206 00ac 8091 0000 lds r24,uartRxBuffer+2
207 00b0 9091 0000 lds r25,(uartRxBuffer+2)+1
208 00b4 0097 sbiw r24,0
209 00b6 69F0 breq .L11
210 .LM26:
211 00b8 8091 0000 lds r24,uartRxBuffer+4
212 00bc 9091 0000 lds r25,(uartRxBuffer+4)+1
213 00c0 0097 sbiw r24,0
214 00c2 39F0 breq .L11
215 .LM27:
216 00c4 80E0 ldi r24,lo8(uartRxBuffer)
217 00c6 90E0 ldi r25,hi8(uartRxBuffer)
218 00c8 0E94 0000 call bufferGetFromFront
219 00cc 8883 st Y,r24
220 .LM28:
221 00ce 8FEF ldi r24,lo8(255)
222 00d0 90E0 ldi r25,hi8(255)
223 .L11:
224 /* epilogue: frame size=0 */
225 00d2 DF91 pop r29
226 00d4 CF91 pop r28
227 00d6 0895 ret
228 /* epilogue end (size=3) */
229 /* function uartReceiveByte size 25 (20) */
230 .LFE10:
232 .global uartGetByte
234 uartGetByte:
235 .LFB9:
236 .LM29:
237 /* prologue: frame size=1 */
238 00d8 CF93 push r28
239 00da DF93 push r29
240 00dc CDB7 in r28,__SP_L__
241 00de DEB7 in r29,__SP_H__
242 00e0 2197 sbiw r28,1
243 00e2 0FB6 in __tmp_reg__,__SREG__
244 00e4 F894 cli
245 00e6 DEBF out __SP_H__,r29
246 00e8 0FBE out __SREG__,__tmp_reg__
247 00ea CDBF out __SP_L__,r28
248 /* prologue end (size=10) */
249 .LM30:
250 00ec CE01 movw r24,r28
251 00ee 0196 adiw r24,1
252 00f0 0E94 0000 call uartReceiveByte
253 00f4 8823 tst r24
254 00f6 19F0 breq .L17
255 .LM31:
256 00f8 8981 ldd r24,Y+1
257 00fa 9927 clr r25
258 00fc 02C0 rjmp .L16
259 .L17:
260 .LM32:
261 00fe 8FEF ldi r24,lo8(-1)
262 0100 9FEF ldi r25,hi8(-1)
263 .L16:
264 /* epilogue: frame size=1 */
265 0102 2196 adiw r28,1
266 0104 0FB6 in __tmp_reg__,__SREG__
267 0106 F894 cli
268 0108 DEBF out __SP_H__,r29
269 010a 0FBE out __SREG__,__tmp_reg__
270 010c CDBF out __SP_L__,r28
271 010e DF91 pop r29
272 0110 CF91 pop r28
273 0112 0895 ret
274 /* epilogue end (size=9) */
275 /* function uartGetByte size 30 (11) */
276 .LFE9:
278 .global uartFlushReceiveBuffer
280 uartFlushReceiveBuffer:
281 .LFB11:
282 .LM33:
283 /* prologue: frame size=0 */
284 /* prologue end (size=0) */
285 .LM34:
286 0114 1092 0000 sts (uartRxBuffer+4)+1,__zero_reg__
287 0118 1092 0000 sts uartRxBuffer+4,__zero_reg__
288 /* epilogue: frame size=0 */
289 011c 0895 ret
290 /* epilogue end (size=1) */
291 /* function uartFlushReceiveBuffer size 5 (4) */
292 .LFE11:
294 .global uartReceiveBufferIsEmpty
296 uartReceiveBufferIsEmpty:
297 .LFB12:
298 .LM35:
299 /* prologue: frame size=0 */
300 /* prologue end (size=0) */
301 .LM36:
302 011e 8091 0000 lds r24,uartRxBuffer+4
303 0122 9091 0000 lds r25,(uartRxBuffer+4)+1
304 0126 892B or r24,r25
305 0128 19F4 brne .L21
306 .LM37:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -