📄 uart.lst
字号:
307 012a 8FEF ldi r24,lo8(255)
308 012c 90E0 ldi r25,hi8(255)
309 012e 0895 ret
310 .L21:
311 .LM38:
312 0130 80E0 ldi r24,lo8(0)
313 0132 90E0 ldi r25,hi8(0)
314 .LM39:
315 0134 0895 ret
316 /* epilogue: frame size=0 */
317 /* epilogue: noreturn */
318 /* epilogue end (size=0) */
319 /* function uartReceiveBufferIsEmpty size 12 (12) */
320 .LFE12:
322 .global uartAddToTxBuffer
324 uartAddToTxBuffer:
325 .LFB13:
326 .LM40:
327 /* prologue: frame size=0 */
328 /* prologue end (size=0) */
329 .LM41:
330 0136 682F mov r22,r24
331 0138 80E0 ldi r24,lo8(uartTxBuffer)
332 013a 90E0 ldi r25,hi8(uartTxBuffer)
333 013c 0E94 0000 call bufferAddToEnd
334 .LM42:
335 0140 9927 clr r25
336 /* epilogue: frame size=0 */
337 0142 0895 ret
338 /* epilogue end (size=1) */
339 /* function uartAddToTxBuffer size 7 (6) */
340 .LFE13:
342 .global uartSendTxBuffer
344 uartSendTxBuffer:
345 .LFB14:
346 .LM43:
347 /* prologue: frame size=0 */
348 /* prologue end (size=0) */
349 .LM44:
350 0144 8FEF ldi r24,lo8(-1)
351 0146 8093 0000 sts uartBufferedTx,r24
352 .LM45:
353 014a 80E0 ldi r24,lo8(uartTxBuffer)
354 014c 90E0 ldi r25,hi8(uartTxBuffer)
355 014e 0E94 0000 call bufferGetFromFront
356 0152 0E94 0000 call uartSendByte
357 /* epilogue: frame size=0 */
358 0156 0895 ret
359 /* epilogue end (size=1) */
360 /* function uartSendTxBuffer size 10 (9) */
361 .LFE14:
363 .global uartSendBuffer
365 uartSendBuffer:
366 .LFB15:
367 .LM46:
368 /* prologue: frame size=0 */
369 0158 DF92 push r13
370 015a EF92 push r14
371 015c FF92 push r15
372 015e 0F93 push r16
373 0160 1F93 push r17
374 0162 CF93 push r28
375 0164 DF93 push r29
376 /* prologue end (size=7) */
377 0166 EC01 movw r28,r24
378 .LM47:
379 0168 8091 0000 lds r24,uartTxBuffer+4
380 016c 9091 0000 lds r25,(uartTxBuffer+4)+1
381 0170 860F add r24,r22
382 0172 971F adc r25,r23
383 0174 2091 0000 lds r18,uartTxBuffer+2
384 0178 3091 0000 lds r19,(uartTxBuffer+2)+1
385 017c 8217 cp r24,r18
386 017e 9307 cpc r25,r19
387 0180 F8F4 brsh .L26
388 .LM48:
389 0182 6115 cp r22,__zero_reg__
390 0184 7105 cpc r23,__zero_reg__
391 0186 E1F0 breq .L26
392 .LM49:
393 0188 D990 ld r13,Y+
394 .LM50:
395 018a 00E0 ldi r16,lo8(0)
396 018c 10E0 ldi r17,hi8(0)
397 018e 7B01 movw r14,r22
398 0190 0894 sec
399 0192 E108 sbc r14,__zero_reg__
400 0194 F108 sbc r15,__zero_reg__
401 .L34:
402 0196 0E15 cp r16,r14
403 0198 1F05 cpc r17,r15
404 019a 48F4 brsh .L33
405 .LM51:
406 019c 8991 ld r24,Y+
407 019e 682F mov r22,r24
408 01a0 80E0 ldi r24,lo8(uartTxBuffer)
409 01a2 90E0 ldi r25,hi8(uartTxBuffer)
410 01a4 0E94 0000 call bufferAddToEnd
411 .LM52:
412 01a8 0F5F subi r16,lo8(-(1))
413 01aa 1F4F sbci r17,hi8(-(1))
414 01ac F4CF rjmp .L34
415 .L33:
416 .LM53:
417 01ae 8FEF ldi r24,lo8(-1)
418 01b0 8093 0000 sts uartBufferedTx,r24
419 .LM54:
420 01b4 8D2D mov r24,r13
421 01b6 0E94 0000 call uartSendByte
422 .LM55:
423 01ba 8FEF ldi r24,lo8(255)
424 01bc 90E0 ldi r25,hi8(255)
425 01be 02C0 rjmp .L25
426 .L26:
427 .LM56:
428 01c0 80E0 ldi r24,lo8(0)
429 01c2 90E0 ldi r25,hi8(0)
430 .L25:
431 /* epilogue: frame size=0 */
432 01c4 DF91 pop r29
433 01c6 CF91 pop r28
434 01c8 1F91 pop r17
435 01ca 0F91 pop r16
436 01cc FF90 pop r15
437 01ce EF90 pop r14
438 01d0 DF90 pop r13
439 01d2 0895 ret
440 /* epilogue end (size=8) */
441 /* function uartSendBuffer size 62 (47) */
442 .LFE15:
444 .global __vector_15
446 __vector_15:
447 .LFB16:
448 .LM57:
449 /* prologue: frame size=0 */
450 01d4 1F92 push __zero_reg__
451 01d6 0F92 push __tmp_reg__
452 01d8 0FB6 in __tmp_reg__,__SREG__
453 01da 0F92 push __tmp_reg__
454 01dc 1124 clr __zero_reg__
455 01de 8F93 push r24
456 /* prologue end (size=6) */
457 .LM58:
458 01e0 8FEF ldi r24,lo8(-1)
459 01e2 8093 0000 sts uartReadyTx,r24
460 /* epilogue: frame size=0 */
461 01e6 8F91 pop r24
462 01e8 0F90 pop __tmp_reg__
463 01ea 0FBE out __SREG__,__tmp_reg__
464 01ec 0F90 pop __tmp_reg__
465 01ee 1F90 pop __zero_reg__
466 01f0 1895 reti
467 /* epilogue end (size=6) */
468 /* function __vector_15 size 15 (3) */
469 .LFE16:
471 .global __vector_13
473 __vector_13:
474 .LFB17:
475 .LM59:
476 /* prologue: frame size=0 */
477 01f2 1F92 push __zero_reg__
478 01f4 0F92 push __tmp_reg__
479 01f6 0FB6 in __tmp_reg__,__SREG__
480 01f8 0F92 push __tmp_reg__
481 01fa 1124 clr __zero_reg__
482 01fc 2F93 push r18
483 01fe 3F93 push r19
484 0200 4F93 push r20
485 0202 5F93 push r21
486 0204 6F93 push r22
487 0206 7F93 push r23
488 0208 8F93 push r24
489 020a 9F93 push r25
490 020c AF93 push r26
491 020e BF93 push r27
492 0210 CF93 push r28
493 0212 EF93 push r30
494 0214 FF93 push r31
495 /* prologue end (size=18) */
496 .LM60:
497 0216 CCB1 in r28,44-0x20
498 .LM61:
499 0218 6C2F mov r22,r28
500 021a 80E0 ldi r24,lo8(uartRxBuffer)
501 021c 90E0 ldi r25,hi8(uartRxBuffer)
502 021e 0E94 0000 call bufferAddToEnd
503 0222 8823 tst r24
504 0224 49F4 brne .L37
505 .LM62:
506 0226 8091 0000 lds r24,uartRxOverflow
507 022a 9091 0000 lds r25,(uartRxOverflow)+1
508 022e 0196 adiw r24,1
509 0230 9093 0000 sts (uartRxOverflow)+1,r25
510 0234 8093 0000 sts uartRxOverflow,r24
511 .L37:
512 .LM63:
513 0238 8091 0000 lds r24,UartRxFunc
514 023c 9091 0000 lds r25,(UartRxFunc)+1
515 0240 892B or r24,r25
516 0242 31F0 breq .L36
517 .LM64:
518 0244 E091 0000 lds r30,UartRxFunc
519 0248 F091 0000 lds r31,(UartRxFunc)+1
520 024c 8C2F mov r24,r28
521 024e 0995 icall
522 .L36:
523 /* epilogue: frame size=0 */
524 0250 FF91 pop r31
525 0252 EF91 pop r30
526 0254 CF91 pop r28
527 0256 BF91 pop r27
528 0258 AF91 pop r26
529 025a 9F91 pop r25
530 025c 8F91 pop r24
531 025e 7F91 pop r23
532 0260 6F91 pop r22
533 0262 5F91 pop r21
534 0264 4F91 pop r20
535 0266 3F91 pop r19
536 0268 2F91 pop r18
537 026a 0F90 pop __tmp_reg__
538 026c 0FBE out __SREG__,__tmp_reg__
539 026e 0F90 pop __tmp_reg__
540 0270 1F90 pop __zero_reg__
541 0272 1895 reti
542 /* epilogue end (size=18) */
543 /* function __vector_13 size 65 (29) */
544 .LFE17:
546 .comm uartReadyTx,1,1
547 .comm uartBufferedTx,1,1
548 .comm uartRxBuffer,8,1
549 .comm uartTxBuffer,8,1
550 .comm uartRxOverflow,2,1
551 .lcomm uartRxData,160
552 .lcomm uartTxData,16
553 .lcomm UartRxFunc,2
554 .Letext0:
DEFINED SYMBOLS
*ABS*:00000000 uart.c
f:\temp/ccEXaaaa.s:3 *ABS*:0000003f __SREG__
f:\temp/ccEXaaaa.s:4 *ABS*:0000003e __SP_H__
f:\temp/ccEXaaaa.s:5 *ABS*:0000003d __SP_L__
f:\temp/ccEXaaaa.s:6 *ABS*:00000000 __tmp_reg__
f:\temp/ccEXaaaa.s:7 *ABS*:00000001 __zero_reg__
f:\temp/ccEXaaaa.s:20 .text:00000000 uartSetBaudRate
f:\temp/ccEXaaaa.s:65 .text:0000003e uartInit
*COM*:00000001 uartReadyTx
f:\temp/ccEXaaaa.s:97 .text:0000005c uartInitBuffers
.bss:00000000 uartRxData
*COM*:00000008 uartRxBuffer
f:\temp/ccEXaaaa.s:551 .bss:000000a0 uartTxData
*COM*:00000008 uartTxBuffer
f:\temp/ccEXaaaa.s:126 .text:0000007e uartSetRxHandler
f:\temp/ccEXaaaa.s:552 .bss:000000b0 UartRxFunc
f:\temp/ccEXaaaa.s:142 .text:00000088 uartGetRxBuffer
f:\temp/ccEXaaaa.s:158 .text:0000008e uartGetTxBuffer
f:\temp/ccEXaaaa.s:174 .text:00000094 uartSendByte
f:\temp/ccEXaaaa.s:197 .text:000000a6 uartReceiveByte
f:\temp/ccEXaaaa.s:234 .text:000000d8 uartGetByte
f:\temp/ccEXaaaa.s:280 .text:00000114 uartFlushReceiveBuffer
f:\temp/ccEXaaaa.s:296 .text:0000011e uartReceiveBufferIsEmpty
f:\temp/ccEXaaaa.s:324 .text:00000136 uartAddToTxBuffer
f:\temp/ccEXaaaa.s:344 .text:00000144 uartSendTxBuffer
*COM*:00000001 uartBufferedTx
f:\temp/ccEXaaaa.s:365 .text:00000158 uartSendBuffer
f:\temp/ccEXaaaa.s:446 .text:000001d4 __vector_15
f:\temp/ccEXaaaa.s:473 .text:000001f2 __vector_13
*COM*:00000002 uartRxOverflow
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__udivmodsi4
bufferInit
bufferGetFromFront
bufferAddToEnd
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -