406 lines
14 KiB
Plaintext
406 lines
14 KiB
Plaintext
1 .file "uart.c"
|
|
2 __SREG__ = 0x3f
|
|
3 __SP_H__ = 0x3e
|
|
4 __SP_L__ = 0x3d
|
|
5 __CCP__ = 0x34
|
|
6 __tmp_reg__ = 0
|
|
7 __zero_reg__ = 1
|
|
15 .Ltext0:
|
|
16 .global __vector_11
|
|
18 __vector_11:
|
|
19 .LFB0:
|
|
20 .LM1:
|
|
21 0000 1F92 push __zero_reg__
|
|
22 0002 0F92 push r0
|
|
23 0004 0FB6 in r0,__SREG__
|
|
24 0006 0F92 push r0
|
|
25 0008 1124 clr __zero_reg__
|
|
26 000a 2F93 push r18
|
|
27 000c 8F93 push r24
|
|
28 000e 9F93 push r25
|
|
29 0010 EF93 push r30
|
|
30 0012 FF93 push r31
|
|
31 /* prologue: Signal */
|
|
32 /* frame size = 0 */
|
|
33 /* stack size = 8 */
|
|
34 .L__stack_usage = 8
|
|
35 .LM2:
|
|
36 0014 8BB1 in r24,43-32
|
|
37 .LVL0:
|
|
38 .LM3:
|
|
39 0016 9CB1 in r25,44-32
|
|
40 .LVL1:
|
|
41 .LM4:
|
|
42 0018 E091 0000 lds r30,UART_RxHead
|
|
43 001c EF5F subi r30,lo8(-(1))
|
|
44 001e EF71 andi r30,lo8(31)
|
|
45 .LVL2:
|
|
46 .LM5:
|
|
47 0020 2091 0000 lds r18,UART_RxTail
|
|
48 0024 E217 cp r30,r18
|
|
49 0026 01F0 breq .L3
|
|
50 .LM6:
|
|
51 0028 8871 andi r24,lo8(24)
|
|
52 .LVL3:
|
|
53 .LM7:
|
|
54 002a E093 0000 sts UART_RxHead,r30
|
|
55 .LM8:
|
|
56 002e F0E0 ldi r31,lo8(0)
|
|
57 0030 E050 subi r30,lo8(-(UART_RxBuf))
|
|
58 0032 F040 sbci r31,hi8(-(UART_RxBuf))
|
|
59 .LVL4:
|
|
60 0034 9083 st Z,r25
|
|
61 0036 00C0 rjmp .L2
|
|
62 .LVL5:
|
|
63 .L3:
|
|
64 .LM9:
|
|
65 0038 82E0 ldi r24,lo8(2)
|
|
66 .LVL6:
|
|
67 .L2:
|
|
68 .LM10:
|
|
69 003a 8093 0000 sts UART_LastRxError,r24
|
|
70 /* epilogue start */
|
|
71 .LM11:
|
|
72 003e FF91 pop r31
|
|
73 0040 EF91 pop r30
|
|
74 0042 9F91 pop r25
|
|
75 .LVL7:
|
|
76 0044 8F91 pop r24
|
|
77 .LVL8:
|
|
78 0046 2F91 pop r18
|
|
79 0048 0F90 pop r0
|
|
80 004a 0FBE out __SREG__,r0
|
|
81 004c 0F90 pop r0
|
|
82 004e 1F90 pop __zero_reg__
|
|
83 0050 1895 reti
|
|
84 .LFE0:
|
|
86 .global __vector_12
|
|
88 __vector_12:
|
|
89 .LFB1:
|
|
90 .LM12:
|
|
91 0052 1F92 push __zero_reg__
|
|
92 0054 0F92 push r0
|
|
93 0056 0FB6 in r0,__SREG__
|
|
94 0058 0F92 push r0
|
|
95 005a 1124 clr __zero_reg__
|
|
96 005c 8F93 push r24
|
|
97 005e 9F93 push r25
|
|
98 0060 EF93 push r30
|
|
99 0062 FF93 push r31
|
|
100 /* prologue: Signal */
|
|
101 /* frame size = 0 */
|
|
102 /* stack size = 7 */
|
|
103 .L__stack_usage = 7
|
|
104 .LM13:
|
|
105 0064 9091 0000 lds r25,UART_TxHead
|
|
106 0068 8091 0000 lds r24,UART_TxTail
|
|
107 006c 9817 cp r25,r24
|
|
108 006e 01F0 breq .L5
|
|
109 .LM14:
|
|
110 0070 E091 0000 lds r30,UART_TxTail
|
|
111 0074 EF5F subi r30,lo8(-(1))
|
|
112 0076 EF71 andi r30,lo8(31)
|
|
113 .LVL9:
|
|
114 .LM15:
|
|
115 0078 E093 0000 sts UART_TxTail,r30
|
|
116 .LM16:
|
|
117 007c F0E0 ldi r31,lo8(0)
|
|
118 007e E050 subi r30,lo8(-(UART_TxBuf))
|
|
119 0080 F040 sbci r31,hi8(-(UART_TxBuf))
|
|
120 .LVL10:
|
|
121 0082 8081 ld r24,Z
|
|
122 0084 8CB9 out 44-32,r24
|
|
123 0086 00C0 rjmp .L4
|
|
124 .LVL11:
|
|
125 .L5:
|
|
126 .LM17:
|
|
127 0088 5598 cbi 42-32,5
|
|
128 .L4:
|
|
129 /* epilogue start */
|
|
130 .LM18:
|
|
131 008a FF91 pop r31
|
|
132 008c EF91 pop r30
|
|
133 008e 9F91 pop r25
|
|
134 0090 8F91 pop r24
|
|
135 0092 0F90 pop r0
|
|
136 0094 0FBE out __SREG__,r0
|
|
137 0096 0F90 pop r0
|
|
138 0098 1F90 pop __zero_reg__
|
|
139 009a 1895 reti
|
|
140 .LFE1:
|
|
142 .global uart_init
|
|
144 uart_init:
|
|
145 .LFB2:
|
|
146 .LM19:
|
|
147 .LVL12:
|
|
148 /* prologue: function */
|
|
149 /* frame size = 0 */
|
|
150 /* stack size = 0 */
|
|
151 .L__stack_usage = 0
|
|
152 .LM20:
|
|
153 009c 1092 0000 sts UART_TxHead,__zero_reg__
|
|
154 .LM21:
|
|
155 00a0 1092 0000 sts UART_TxTail,__zero_reg__
|
|
156 .LM22:
|
|
157 00a4 1092 0000 sts UART_RxHead,__zero_reg__
|
|
158 .LM23:
|
|
159 00a8 1092 0000 sts UART_RxTail,__zero_reg__
|
|
160 .LM24:
|
|
161 00ac 97FF sbrs r25,7
|
|
162 00ae 00C0 rjmp .L8
|
|
163 .LM25:
|
|
164 00b0 22E0 ldi r18,lo8(2)
|
|
165 00b2 2BB9 out 43-32,r18
|
|
166 .LM26:
|
|
167 00b4 9F77 andi r25,hi8(32767)
|
|
168 .LVL13:
|
|
169 .L8:
|
|
170 .LM27:
|
|
171 00b6 90BD out 64-32,r25
|
|
172 .LM28:
|
|
173 00b8 89B9 out 41-32,r24
|
|
174 .LM29:
|
|
175 00ba 88E9 ldi r24,lo8(-104)
|
|
176 .LVL14:
|
|
177 00bc 8AB9 out 42-32,r24
|
|
178 .LM30:
|
|
179 00be 86E8 ldi r24,lo8(-122)
|
|
180 00c0 80BD out 64-32,r24
|
|
181 /* epilogue start */
|
|
182 .LM31:
|
|
183 00c2 0895 ret
|
|
184 .LFE2:
|
|
186 .global uart_getc
|
|
188 uart_getc:
|
|
189 .LFB3:
|
|
190 .LM32:
|
|
191 /* prologue: function */
|
|
192 /* frame size = 0 */
|
|
193 /* stack size = 0 */
|
|
194 .L__stack_usage = 0
|
|
195 .LM33:
|
|
196 00c4 9091 0000 lds r25,UART_RxHead
|
|
197 00c8 8091 0000 lds r24,UART_RxTail
|
|
198 00cc 9817 cp r25,r24
|
|
199 00ce 01F0 breq .L11
|
|
200 .LM34:
|
|
201 00d0 E091 0000 lds r30,UART_RxTail
|
|
202 00d4 EF5F subi r30,lo8(-(1))
|
|
203 00d6 EF71 andi r30,lo8(31)
|
|
204 .LVL15:
|
|
205 .LM35:
|
|
206 00d8 E093 0000 sts UART_RxTail,r30
|
|
207 .LM36:
|
|
208 00dc F0E0 ldi r31,lo8(0)
|
|
209 00de E050 subi r30,lo8(-(UART_RxBuf))
|
|
210 00e0 F040 sbci r31,hi8(-(UART_RxBuf))
|
|
211 .LVL16:
|
|
212 00e2 8081 ld r24,Z
|
|
213 .LVL17:
|
|
214 .LM37:
|
|
215 00e4 9091 0000 lds r25,UART_LastRxError
|
|
216 00e8 392F mov r19,r25
|
|
217 00ea 20E0 ldi r18,lo8(0)
|
|
218 00ec 280F add r18,r24
|
|
219 00ee 311D adc r19,__zero_reg__
|
|
220 00f0 00C0 rjmp .L10
|
|
221 .LVL18:
|
|
222 .L11:
|
|
223 .LM38:
|
|
224 00f2 20E0 ldi r18,lo8(256)
|
|
225 00f4 31E0 ldi r19,hi8(256)
|
|
226 .L10:
|
|
227 .LM39:
|
|
228 00f6 C901 movw r24,r18
|
|
229 /* epilogue start */
|
|
230 00f8 0895 ret
|
|
231 .LFE3:
|
|
233 .global uart_putc
|
|
235 uart_putc:
|
|
236 .LFB4:
|
|
237 .LM40:
|
|
238 .LVL19:
|
|
239 /* prologue: function */
|
|
240 /* frame size = 0 */
|
|
241 /* stack size = 0 */
|
|
242 .L__stack_usage = 0
|
|
243 .LM41:
|
|
244 00fa 9091 0000 lds r25,UART_TxHead
|
|
245 00fe 9F5F subi r25,lo8(-(1))
|
|
246 0100 9F71 andi r25,lo8(31)
|
|
247 .LVL20:
|
|
248 .L13:
|
|
249 .LM42:
|
|
250 0102 2091 0000 lds r18,UART_TxTail
|
|
251 0106 9217 cp r25,r18
|
|
252 0108 01F0 breq .L13
|
|
253 .LM43:
|
|
254 010a E92F mov r30,r25
|
|
255 010c F0E0 ldi r31,lo8(0)
|
|
256 010e E050 subi r30,lo8(-(UART_TxBuf))
|
|
257 0110 F040 sbci r31,hi8(-(UART_TxBuf))
|
|
258 0112 8083 st Z,r24
|
|
259 .LM44:
|
|
260 0114 9093 0000 sts UART_TxHead,r25
|
|
261 .LM45:
|
|
262 0118 559A sbi 42-32,5
|
|
263 /* epilogue start */
|
|
264 .LM46:
|
|
265 011a 0895 ret
|
|
266 .LFE4:
|
|
268 .global uart_puts
|
|
270 uart_puts:
|
|
271 .LFB5:
|
|
272 .LM47:
|
|
273 .LVL21:
|
|
274 011c EF92 push r14
|
|
275 011e FF92 push r15
|
|
276 0120 CF93 push r28
|
|
277 0122 DF93 push r29
|
|
278 /* prologue: function */
|
|
279 /* frame size = 0 */
|
|
280 /* stack size = 4 */
|
|
281 .L__stack_usage = 4
|
|
282 .LM48:
|
|
283 0124 E82E mov r14,r24
|
|
284 0126 E701 movw r28,r14
|
|
285 0128 7E01 movw r14,r28
|
|
286 012a F92E mov r15,r25
|
|
287 012c E701 movw r28,r14
|
|
288 .LM49:
|
|
289 012e 00C0 rjmp .L16
|
|
290 .LVL22:
|
|
291 .L17:
|
|
292 .LM50:
|
|
293 0130 0E94 0000 call uart_putc
|
|
294 .L16:
|
|
295 .LM51:
|
|
296 0134 8991 ld r24,Y+
|
|
297 0136 8823 tst r24
|
|
298 0138 01F4 brne .L17
|
|
299 /* epilogue start */
|
|
300 .LM52:
|
|
301 013a DF91 pop r29
|
|
302 013c CF91 pop r28
|
|
303 013e FF90 pop r15
|
|
304 0140 EF90 pop r14
|
|
305 0142 0895 ret
|
|
306 .LFE5:
|
|
308 .global uart_puts_p
|
|
310 uart_puts_p:
|
|
311 .LFB6:
|
|
312 .LM53:
|
|
313 .LVL23:
|
|
314 0144 CF93 push r28
|
|
315 0146 DF93 push r29
|
|
316 /* prologue: function */
|
|
317 /* frame size = 0 */
|
|
318 /* stack size = 2 */
|
|
319 .L__stack_usage = 2
|
|
320 0148 EC01 movw r28,r24
|
|
321 .LM54:
|
|
322 014a 00C0 rjmp .L19
|
|
323 .LVL24:
|
|
324 .L20:
|
|
325 .LM55:
|
|
326 014c 0E94 0000 call uart_putc
|
|
327 .LVL25:
|
|
328 .L19:
|
|
329 .LM56:
|
|
330 0150 FE01 movw r30,r28
|
|
331 .LVL26:
|
|
332 .LBB2:
|
|
333 .LM57:
|
|
334 0152 2196 adiw r28,1
|
|
335 .LVL27:
|
|
336 /* #APP */
|
|
337 ; 538 "uart.c" 1
|
|
338 0154 8491 lpm r24, Z
|
|
339
|
|
340 ; 0 "" 2
|
|
341 .LVL28:
|
|
342 /* #NOAPP */
|
|
343 .LBE2:
|
|
344 0156 8823 tst r24
|
|
345 0158 01F4 brne .L20
|
|
346 /* epilogue start */
|
|
347 .LM58:
|
|
348 015a DF91 pop r29
|
|
349 015c CF91 pop r28
|
|
350 .LVL29:
|
|
351 015e 0895 ret
|
|
352 .LFE6:
|
|
354 .global uart_available
|
|
356 uart_available:
|
|
357 .LFB7:
|
|
358 .LM59:
|
|
359 /* prologue: function */
|
|
360 /* frame size = 0 */
|
|
361 /* stack size = 0 */
|
|
362 .L__stack_usage = 0
|
|
363 .LM60:
|
|
364 0160 8091 0000 lds r24,UART_RxHead
|
|
365 0164 2091 0000 lds r18,UART_RxTail
|
|
366 0168 90E0 ldi r25,lo8(0)
|
|
367 016a 4F96 adiw r24,31
|
|
368 016c 821B sub r24,r18
|
|
369 016e 9109 sbc r25,__zero_reg__
|
|
370 0170 6FE1 ldi r22,lo8(31)
|
|
371 0172 70E0 ldi r23,hi8(31)
|
|
372 0174 0E94 0000 call __divmodhi4
|
|
373 /* epilogue start */
|
|
374 .LM61:
|
|
375 0178 0895 ret
|
|
376 .LFE7:
|
|
378 .global uart_flush
|
|
380 uart_flush:
|
|
381 .LFB8:
|
|
382 .LM62:
|
|
383 /* prologue: function */
|
|
384 /* frame size = 0 */
|
|
385 /* stack size = 0 */
|
|
386 .L__stack_usage = 0
|
|
387 .LM63:
|
|
388 017a 8091 0000 lds r24,UART_RxTail
|
|
389 017e 8093 0000 sts UART_RxHead,r24
|
|
390 /* epilogue start */
|
|
391 .LM64:
|
|
392 0182 0895 ret
|
|
393 .LFE8:
|
|
395 .lcomm UART_RxTail,1
|
|
396 .lcomm UART_RxHead,1
|
|
397 .lcomm UART_TxHead,1
|
|
398 .lcomm UART_TxTail,1
|
|
399 .lcomm UART_TxBuf,32
|
|
400 .lcomm UART_RxBuf,32
|
|
401 .lcomm UART_LastRxError,1
|
|
490 .Letext0:
|
|
DEFINED SYMBOLS
|
|
*ABS*:0000000000000000 uart.c
|
|
/tmp/ccUnbh69.s:2 *ABS*:000000000000003f __SREG__
|
|
/tmp/ccUnbh69.s:3 *ABS*:000000000000003e __SP_H__
|
|
/tmp/ccUnbh69.s:4 *ABS*:000000000000003d __SP_L__
|
|
/tmp/ccUnbh69.s:5 *ABS*:0000000000000034 __CCP__
|
|
/tmp/ccUnbh69.s:6 *ABS*:0000000000000000 __tmp_reg__
|
|
/tmp/ccUnbh69.s:7 *ABS*:0000000000000001 __zero_reg__
|
|
/tmp/ccUnbh69.s:18 .text:0000000000000000 __vector_11
|
|
/tmp/ccUnbh69.s:395 .bss:0000000000000001 UART_RxHead
|
|
.bss:0000000000000000 UART_RxTail
|
|
/tmp/ccUnbh69.s:399 .bss:0000000000000024 UART_RxBuf
|
|
/tmp/ccUnbh69.s:400 .bss:0000000000000044 UART_LastRxError
|
|
/tmp/ccUnbh69.s:88 .text:0000000000000052 __vector_12
|
|
/tmp/ccUnbh69.s:396 .bss:0000000000000002 UART_TxHead
|
|
/tmp/ccUnbh69.s:397 .bss:0000000000000003 UART_TxTail
|
|
/tmp/ccUnbh69.s:398 .bss:0000000000000004 UART_TxBuf
|
|
/tmp/ccUnbh69.s:144 .text:000000000000009c uart_init
|
|
/tmp/ccUnbh69.s:188 .text:00000000000000c4 uart_getc
|
|
/tmp/ccUnbh69.s:235 .text:00000000000000fa uart_putc
|
|
/tmp/ccUnbh69.s:270 .text:000000000000011c uart_puts
|
|
/tmp/ccUnbh69.s:310 .text:0000000000000144 uart_puts_p
|
|
/tmp/ccUnbh69.s:356 .text:0000000000000160 uart_available
|
|
/tmp/ccUnbh69.s:380 .text:000000000000017a uart_flush
|
|
|
|
UNDEFINED SYMBOLS
|
|
__divmodhi4
|
|
__do_clear_bss
|