⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 softuart.lst

📁 AVR单片机软件模拟串口实现全双工的例子。
💻 LST
📖 第 1 页 / 共 2 页
字号:
 266               	/* epilogue: frame size=0 */
 267 016a 0895      		ret
 268               	/* epilogue end (size=1) */
 269               	/* function softuart_turn_rx_off size 4 (3) */
 270               	.LFE8:
 272               	.global	softuart_getchar
 274               	softuart_getchar:
 275               	.LFB9:
 276               	.LM52:
 277               	/* prologue: frame size=0 */
 278               	/* prologue end (size=0) */
 279               	.LM53:
 280 016c 2091 0000 		lds r18,qout
 281               	.L33:
 282               	.LM54:
 283 0170 8091 0000 		lds r24,qin
 284 0174 2817      		cp r18,r24
 285 0176 01F0      		breq .L33
 286               	.LM55:
 287 0178 E22F      		mov r30,r18
 288 017a FF27      		clr r31
 289 017c E050      		subi r30,lo8(-(inbuf))
 290 017e F040      		sbci r31,hi8(-(inbuf))
 291 0180 E081      		ld r30,Z
 292               	.LVL5:
 293               	.LM56:
 294 0182 822F      		mov r24,r18
 295 0184 8F5F      		subi r24,lo8(-(1))
 296 0186 8093 0000 		sts qout,r24
 297 018a 8032      		cpi r24,lo8(32)
 298 018c 00F0      		brlo .L35
 299               	.LM57:
 300 018e 1092 0000 		sts qout,__zero_reg__
 301               	.L35:
 302               	.LM58:
 303 0192 8E2F      		mov r24,r30
 304 0194 9927      		clr r25
 305               	/* epilogue: frame size=0 */
 306 0196 0895      		ret
 307               	/* epilogue end (size=1) */
 308               	/* function softuart_getchar size 22 (21) */
 309               	.LFE9:
 311               	.global	softuart_kbhit
 313               	softuart_kbhit:
 314               	.LFB10:
 315               	.LM59:
 316               	/* prologue: frame size=0 */
 317               	/* prologue end (size=0) */
 318               	.LM60:
 319 0198 9091 0000 		lds r25,qin
 320 019c 20E0      		ldi r18,lo8(0)
 321 019e 30E0      		ldi r19,hi8(0)
 322 01a0 8091 0000 		lds r24,qout
 323 01a4 9817      		cp r25,r24
 324 01a6 01F0      		breq .L41
 325               	.LM61:
 326 01a8 21E0      		ldi r18,lo8(1)
 327 01aa 30E0      		ldi r19,hi8(1)
 328               	.L41:
 329               	.LM62:
 330 01ac C901      		movw r24,r18
 331               	/* epilogue: frame size=0 */
 332 01ae 0895      		ret
 333               	/* epilogue end (size=1) */
 334               	/* function softuart_kbhit size 12 (11) */
 335               	.LFE10:
 337               	.global	softuart_flush_input_buffer
 339               	softuart_flush_input_buffer:
 340               	.LFB11:
 341               	.LM63:
 342               	/* prologue: frame size=0 */
 343               	/* prologue end (size=0) */
 344               	.LM64:
 345 01b0 1092 0000 		sts qin,__zero_reg__
 346               	.LM65:
 347 01b4 1092 0000 		sts qout,__zero_reg__
 348               	/* epilogue: frame size=0 */
 349 01b8 0895      		ret
 350               	/* epilogue end (size=1) */
 351               	/* function softuart_flush_input_buffer size 5 (4) */
 352               	.LFE11:
 354               	.global	softuart_can_transmit
 356               	softuart_can_transmit:
 357               	.LFB12:
 358               	.LM66:
 359               	/* prologue: frame size=0 */
 360               	/* prologue end (size=0) */
 361               	.LM67:
 362 01ba 8091 0000 		lds r24,flag_tx_ready
 363               	.LM68:
 364 01be 9927      		clr r25
 365               	/* epilogue: frame size=0 */
 366 01c0 0895      		ret
 367               	/* epilogue end (size=1) */
 368               	/* function softuart_can_transmit size 4 (3) */
 369               	.LFE12:
 371               	.global	softuart_putchar
 373               	softuart_putchar:
 374               	.LFB13:
 375               	.LM69:
 376               	/* prologue: frame size=0 */
 377               	/* prologue end (size=0) */
 378               	.LVL6:
 379 01c2 982F      		mov r25,r24
 380               	.LVL7:
 381               	.L49:
 382               	.LM70:
 383 01c4 8091 0000 		lds r24,flag_tx_ready
 384 01c8 8823      		tst r24
 385 01ca 01F4      		brne .L49
 386               	.LM71:
 387 01cc 83E0      		ldi r24,lo8(3)
 388 01ce 8093 0000 		sts timer_tx_ctr,r24
 389               	.LM72:
 390 01d2 8AE0      		ldi r24,lo8(10)
 391 01d4 8093 0000 		sts bits_left_in_tx,r24
 392               	.LM73:
 393 01d8 892F      		mov r24,r25
 394 01da 9927      		clr r25
 395 01dc 880F      		lsl r24
 396 01de 991F      		rol r25
 397 01e0 9260      		ori r25,hi8(512)
 398 01e2 9093 0000 		sts (internal_tx_buffer)+1,r25
 399 01e6 8093 0000 		sts internal_tx_buffer,r24
 400               	.LM74:
 401 01ea 81E0      		ldi r24,lo8(1)
 402 01ec 8093 0000 		sts flag_tx_ready,r24
 403               	/* epilogue: frame size=0 */
 404 01f0 0895      		ret
 405               	/* epilogue end (size=1) */
 406               	/* function softuart_putchar size 24 (23) */
 407               	.LFE13:
 409               	.global	softuart_puts
 411               	softuart_puts:
 412               	.LFB14:
 413               	.LM75:
 414               	/* prologue: frame size=0 */
 415 01f2 CF93      		push r28
 416 01f4 DF93      		push r29
 417               	/* prologue end (size=2) */
 418               	.LVL8:
 419 01f6 EC01      		movw r28,r24
 420 01f8 00C0      		rjmp .L55
 421               	.LVL9:
 422               	.L56:
 423               	.LM76:
 424 01fa 2196      		adiw r28,1
 425 01fc 00D0      		rcall softuart_putchar
 426               	.LVL10:
 427               	.L55:
 428               	.LM77:
 429 01fe 8881      		ld r24,Y
 430 0200 8823      		tst r24
 431 0202 01F4      		brne .L56
 432               	/* epilogue: frame size=0 */
 433 0204 DF91      		pop r29
 434 0206 CF91      		pop r28
 435 0208 0895      		ret
 436               	/* epilogue end (size=3) */
 437               	/* function softuart_puts size 12 (7) */
 438               	.LFE14:
 440               	.global	softuart_puts_p
 442               	softuart_puts_p:
 443               	.LFB15:
 444               	.LM78:
 445               	/* prologue: frame size=0 */
 446 020a CF93      		push r28
 447 020c DF93      		push r29
 448               	/* prologue end (size=2) */
 449               	.LVL11:
 450 020e EC01      		movw r28,r24
 451 0210 00C0      		rjmp .L60
 452               	.LVL12:
 453               	.L61:
 454               	.LM79:
 455 0212 00D0      		rcall softuart_putchar
 456               	.LVL13:
 457               	.L60:
 458 0214 FE01      		movw r30,r28
 459               	.LVL14:
 460               	.LBB12:
 461               	.LM80:
 462 0216 2196      		adiw r28,1
 463               	/* #APP */
 464 0218 8491      		lpm r24, Z
 465               		
 466               	.LVL15:
 467               	/* #NOAPP */
 468               	.LBE12:
 469 021a 8823      		tst r24
 470 021c 01F4      		brne .L61
 471               	/* epilogue: frame size=0 */
 472 021e DF91      		pop r29
 473 0220 CF91      		pop r28
 474 0222 0895      		ret
 475               	/* epilogue end (size=3) */
 476               	/* function softuart_puts_p size 16 (11) */
 477               	.LFE15:
 479               		.lcomm qin,1
 480               		.lcomm qout,1
 481               		.lcomm internal_rx_buffer.1384,1
 482               		.lcomm bits_left_in_rx.1383,1
 483               		.lcomm timer_rx_ctr.1382,1
 484               		.lcomm rx_mask.1381,1
 485               		.lcomm flag_rx_waiting_for_stop_bit.1380,1
 486               		.lcomm inbuf,32
 487               		.lcomm flag_rx_off,1
 488               		.lcomm flag_rx_ready,1
 489               		.lcomm flag_tx_ready,1
 490               		.lcomm timer_tx_ctr,1
 491               		.lcomm bits_left_in_tx,1
 492               		.lcomm internal_tx_buffer,2
 585               	.Letext0:
DEFINED SYMBOLS
                            *ABS*:00000000 softuart.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:3      *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:4      *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:5      *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:6      *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:7      *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:20     .text:00000000 __vector_9
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:488    .bss:00000029 flag_tx_ready
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:489    .bss:0000002a timer_tx_ctr
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:491    .bss:0000002c internal_tx_buffer
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:490    .bss:0000002b bits_left_in_tx
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:486    .bss:00000027 flag_rx_off
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:484    .bss:00000006 flag_rx_waiting_for_stop_bit.1380
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:482    .bss:00000004 timer_rx_ctr.1382
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:487    .bss:00000028 flag_rx_ready
                             .bss:00000000 qin
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:480    .bss:00000002 internal_rx_buffer.1384
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:485    .bss:00000007 inbuf
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:481    .bss:00000003 bits_left_in_rx.1383
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:483    .bss:00000005 rx_mask.1381
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:192    .text:00000138 softuart_init
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:243    .text:0000015e softuart_turn_rx_on
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:258    .text:00000164 softuart_turn_rx_off
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:274    .text:0000016c softuart_getchar
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:479    .bss:00000001 qout
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:313    .text:00000198 softuart_kbhit
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:339    .text:000001b0 softuart_flush_input_buffer
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:356    .text:000001ba softuart_can_transmit
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:373    .text:000001c2 softuart_putchar
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:411    .text:000001f2 softuart_puts
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:442    .text:0000020a softuart_puts_p

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -