GAS LISTING /tmp/ccQmRu1i.s page 1 1 .file "usart0avr.c" 2 __SP_H__ = 0x3e 3 __SP_L__ = 0x3d 4 __SREG__ = 0x3f 5 __RAMPZ__ = 0x3b 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .section .text.AvrUsartEnable,"ax",@progbits 9 .type AvrUsartEnable, @function 10 AvrUsartEnable: 11 /* prologue: function */ 12 /* frame size = 0 */ 13 /* stack size = 0 */ 14 .L__stack_usage = 0 15 /* #APP */ 16 ; 460 "../../nut/arch/avr/dev/usartavr.c" 1 17 0000 0FB6 in __tmp_reg__, __SREG__ 18 0002 F894 cli 19 0004 0F92 push __tmp_reg__ 20 21 ; 0 "" 2 22 /* #NOAPP */ 23 0006 88EB ldi r24,lo8(-72) 24 0008 8093 C100 sts 193,r24 25 /* #APP */ 26 ; 471 "../../nut/arch/avr/dev/usartavr.c" 1 27 000c 0F90 pop __tmp_reg__ 28 000e 0FBE out __SREG__, __tmp_reg__ 29 30 ; 0 "" 2 31 /* #NOAPP */ 32 0010 0895 ret 33 .size AvrUsartEnable, .-AvrUsartEnable 34 .section .text.AvrUsartGetStopBits,"ax",@progbits 35 .type AvrUsartGetStopBits, @function 36 AvrUsartGetStopBits: 37 /* prologue: function */ 38 /* frame size = 0 */ 39 /* stack size = 0 */ 40 .L__stack_usage = 0 41 0000 8091 C200 lds r24,194 42 0004 83FD sbrc r24,3 43 0006 00C0 rjmp .L4 44 0008 81E0 ldi r24,lo8(1) 45 000a 0895 ret 46 .L4: 47 000c 82E0 ldi r24,lo8(2) 48 000e 0895 ret 49 .size AvrUsartGetStopBits, .-AvrUsartGetStopBits 50 .section .text.AvrUsartGetStatus,"ax",@progbits 51 .type AvrUsartGetStatus, @function 52 AvrUsartGetStatus: 53 /* prologue: function */ 54 /* frame size = 0 */ 55 /* stack size = 0 */ 56 .L__stack_usage = 0 57 0000 2091 0000 lds r18,rx_errors GAS LISTING /tmp/ccQmRu1i.s page 2 58 0004 24FB bst r18,4 59 0006 8827 clr r24 60 0008 80F9 bld r24,0 61 000a 90E0 ldi r25,0 62 000c A0E0 ldi r26,0 63 000e B0E0 ldi r27,0 64 0010 23FD sbrc r18,3 65 0012 8260 ori r24,2 66 .L7: 67 0014 22FD sbrc r18,2 68 0016 8460 ori r24,4 69 .L8: 70 0018 2091 0000 lds r18,flow_control 71 001c 2223 tst r18 72 001e 01F0 breq .L9 73 0020 26FD sbrc r18,6 74 0022 A260 ori r26,2 75 .L10: 76 0024 27FD sbrc r18,7 77 0026 A860 ori r26,8 78 .L9: 79 0028 A1FF sbrs r26,1 80 002a A160 ori r26,1 81 .L11: 82 002c A3FF sbrs r26,3 83 002e A460 ori r26,4 84 .L12: 85 0030 2091 0000 lds r18,tx_aframe 86 0034 2223 tst r18 87 0036 01F0 breq .L13 88 0038 A064 ori r26,64 89 003a 00C0 rjmp .L14 90 .L13: 91 003c A068 ori r26,128 92 .L14: 93 003e 2091 C000 lds r18,192 94 0042 BC01 movw r22,r24 95 0044 CD01 movw r24,r26 96 0046 20FF sbrs r18,0 97 0048 00C0 rjmp .L15 98 004a 8061 ori r24,16 99 004c 0895 ret 100 .L15: 101 004e 8062 ori r24,32 102 0050 0895 ret 103 .size AvrUsartGetStatus, .-AvrUsartGetStatus 104 .section .text.AvrUsartSetStatus,"ax",@progbits 105 .type AvrUsartSetStatus, @function 106 AvrUsartSetStatus: 107 0000 CF92 push r12 108 0002 DF92 push r13 109 0004 EF92 push r14 110 0006 FF92 push r15 111 /* prologue: function */ 112 /* frame size = 0 */ 113 /* stack size = 4 */ 114 .L__stack_usage = 4 GAS LISTING /tmp/ccQmRu1i.s page 3 115 0008 6B01 movw r12,r22 116 000a 7C01 movw r14,r24 117 000c 8091 0000 lds r24,flow_control 118 0010 8823 tst r24 119 0012 01F0 breq .L30 120 /* #APP */ 121 ; 882 "../../nut/arch/avr/dev/usartavr.c" 1 122 0014 0FB6 in __tmp_reg__, __SREG__ 123 0016 F894 cli 124 0018 0F92 push __tmp_reg__ 125 126 ; 0 "" 2 127 /* #NOAPP */ 128 001a E0FE sbrs r14,0 129 001c 00C0 rjmp .L31 130 001e 8F7B andi r24,lo8(-65) 131 0020 00C0 rjmp .L73 132 .L31: 133 0022 E1FE sbrs r14,1 134 0024 00C0 rjmp .L32 135 0026 8064 ori r24,lo8(64) 136 .L73: 137 0028 8093 0000 sts flow_control,r24 138 .L32: 139 002c E2FE sbrs r14,2 140 002e 00C0 rjmp .L33 141 0030 8091 0000 lds r24,flow_control 142 0034 8F77 andi r24,lo8(127) 143 0036 00C0 rjmp .L74 144 .L33: 145 0038 E3FE sbrs r14,3 146 003a 00C0 rjmp .L34 147 003c 8091 0000 lds r24,flow_control 148 0040 8068 ori r24,lo8(-128) 149 .L74: 150 0042 8093 0000 sts flow_control,r24 151 .L34: 152 /* #APP */ 153 ; 903 "../../nut/arch/avr/dev/usartavr.c" 1 154 0046 0F90 pop __tmp_reg__ 155 0048 0FBE out __SREG__, __tmp_reg__ 156 157 ; 0 "" 2 158 /* #NOAPP */ 159 .L30: 160 004a E6FE sbrs r14,6 161 004c 00C0 rjmp .L35 162 004e 81E0 ldi r24,lo8(1) 163 0050 8093 0000 sts tx_aframe,r24 164 .L35: 165 0054 E7FC sbrc r14,7 166 0056 1092 0000 sts tx_aframe,__zero_reg__ 167 .L36: 168 005a E4FE sbrs r14,4 169 005c 00C0 rjmp .L37 170 005e 8091 C000 lds r24,192 171 0062 8160 ori r24,lo8(1) GAS LISTING /tmp/ccQmRu1i.s page 4 172 0064 8093 C000 sts 192,r24 173 .L37: 174 0068 E5FE sbrs r14,5 175 006a 00C0 rjmp .L38 176 006c 8091 C000 lds r24,192 177 0070 8E7F andi r24,lo8(-2) 178 0072 8093 C000 sts 192,r24 179 .L38: 180 0076 C0FE sbrs r12,0 181 0078 00C0 rjmp .L39 182 007a 8091 0000 lds r24,rx_errors 183 007e 8F7E andi r24,lo8(-17) 184 0080 8093 0000 sts rx_errors,r24 185 .L39: 186 0084 C1FE sbrs r12,1 187 0086 00C0 rjmp .L40 188 0088 8091 0000 lds r24,rx_errors 189 008c 877F andi r24,lo8(-9) 190 008e 8093 0000 sts rx_errors,r24 191 .L40: 192 0092 C2FE sbrs r12,2 193 0094 00C0 rjmp .L41 194 0096 8091 0000 lds r24,rx_errors 195 009a 8B7F andi r24,lo8(-5) 196 009c 8093 0000 sts rx_errors,r24 197 .L41: 198 00a0 0E94 0000 call AvrUsartGetStatus 199 00a4 DC01 movw r26,r24 200 00a6 CB01 movw r24,r22 201 00a8 887F andi r24,248 202 00aa 21E0 ldi r18,lo8(1) 203 00ac 30E0 ldi r19,0 204 00ae 8C15 cp r24,r12 205 00b0 9D05 cpc r25,r13 206 00b2 AE05 cpc r26,r14 207 00b4 BF05 cpc r27,r15 208 00b6 01F4 brne .L42 209 00b8 20E0 ldi r18,0 210 00ba 30E0 ldi r19,0 211 .L42: 212 00bc 8827 clr r24 213 00be 9927 clr r25 214 00c0 821B sub r24,r18 215 00c2 930B sbc r25,r19 216 /* epilogue start */ 217 00c4 FF90 pop r15 218 00c6 EF90 pop r14 219 00c8 DF90 pop r13 220 00ca CF90 pop r12 221 00cc 0895 ret 222 .size AvrUsartSetStatus, .-AvrUsartSetStatus 223 .section .text.AvrUsartGetFlowControl,"ax",@progbits 224 .type AvrUsartGetFlowControl, @function 225 AvrUsartGetFlowControl: 226 /* prologue: function */ 227 /* frame size = 0 */ 228 /* stack size = 0 */ GAS LISTING /tmp/ccQmRu1i.s page 5 229 .L__stack_usage = 0 230 0000 8091 0000 lds r24,flow_control 231 0004 8111 cpse r24,__zero_reg__ 232 0006 00C0 rjmp .L77 233 0008 60E0 ldi r22,0 234 000a 70E0 ldi r23,0 235 000c CB01 movw r24,r22 236 000e 0895 ret 237 .L77: 238 0010 60E2 ldi r22,lo8(32) 239 0012 70E0 ldi r23,0 240 0014 80E0 ldi r24,0 241 0016 90E0 ldi r25,0 242 0018 0895 ret 243 .size AvrUsartGetFlowControl, .-AvrUsartGetFlowControl 244 .section .text.AvrUsartSetFlowControl,"ax",@progbits 245 .type AvrUsartSetFlowControl, @function 246 AvrUsartSetFlowControl: 247 0000 CF92 push r12 248 0002 DF92 push r13 249 0004 EF92 push r14 250 0006 FF92 push r15 251 /* prologue: function */ 252 /* frame size = 0 */ 253 /* stack size = 4 */ 254 .L__stack_usage = 4 255 0008 6B01 movw r12,r22 256 000a 7C01 movw r14,r24 257 000c 65FF sbrs r22,5 258 000e 00C0 rjmp .L79 259 0010 8091 0000 lds r24,flow_control 260 0014 8111 cpse r24,__zero_reg__ 261 0016 00C0 rjmp .L80 262 /* #APP */ 263 ; 1138 "../../nut/arch/avr/dev/usartavr.c" 1 264 0018 0FB6 in __tmp_reg__, __SREG__ 265 001a F894 cli 266 001c 0F92 push __tmp_reg__ 267 268 ; 0 "" 2 269 /* #NOAPP */ 270 001e 81E4 ldi r24,lo8(65) 271 0020 8093 0000 sts flow_control,r24 272 0024 00C0 rjmp .L82 273 .L79: 274 /* #APP */ 275 ; 1143 "../../nut/arch/avr/dev/usartavr.c" 1 276 0026 0FB6 in __tmp_reg__, __SREG__ 277 0028 F894 cli 278 002a 0F92 push __tmp_reg__ 279 280 ; 0 "" 2 281 /* #NOAPP */ 282 002c 1092 0000 sts flow_control,__zero_reg__ 283 .L82: 284 /* #APP */ 285 ; 1145 "../../nut/arch/avr/dev/usartavr.c" 1 GAS LISTING /tmp/ccQmRu1i.s page 6 286 0030 0F90 pop __tmp_reg__ 287 0032 0FBE out __SREG__, __tmp_reg__ 288 289 ; 0 "" 2 290 /* #NOAPP */ 291 .L80: 292 0034 0E94 0000 call AvrUsartGetFlowControl 293 0038 21E0 ldi r18,lo8(1) 294 003a 30E0 ldi r19,0 295 003c C616 cp r12,r22 296 003e D706 cpc r13,r23 297 0040 E806 cpc r14,r24 298 0042 F906 cpc r15,r25 299 0044 01F4 brne .L81 300 0046 20E0 ldi r18,0 301 0048 30E0 ldi r19,0 302 .L81: 303 004a 8827 clr r24 304 004c 9927 clr r25 305 004e 821B sub r24,r18 306 0050 930B sbc r25,r19 307 /* epilogue start */ 308 0052 FF90 pop r15 309 0054 EF90 pop r14 310 0056 DF90 pop r13 311 0058 CF90 pop r12 312 005a 0895 ret 313 .size AvrUsartSetFlowControl, .-AvrUsartSetFlowControl 314 .section .text.AvrUsartTxStart,"ax",@progbits 315 .type AvrUsartTxStart, @function 316 AvrUsartTxStart: 317 /* prologue: function */ 318 /* frame size = 0 */ 319 /* stack size = 0 */ 320 .L__stack_usage = 0 321 0000 E1EC ldi r30,lo8(-63) 322 0002 F0E0 ldi r31,0 323 0004 8081 ld r24,Z 324 0006 8062 ori r24,lo8(32) 325 0008 8083 st Z,r24 326 000a 0895 ret 327 .size AvrUsartTxStart, .-AvrUsartTxStart 328 .section .text.AvrUsartDisable,"ax",@progbits 329 .type AvrUsartDisable, @function 330 AvrUsartDisable: 331 0000 CF93 push r28 332 0002 DF93 push r29 333 /* prologue: function */ 334 /* frame size = 0 */ 335 /* stack size = 2 */ 336 .L__stack_usage = 2 337 /* #APP */ 338 ; 482 "../../nut/arch/avr/dev/usartavr.c" 1 339 0004 0FB6 in __tmp_reg__, __SREG__ 340 0006 F894 cli 341 0008 0F92 push __tmp_reg__ 342 GAS LISTING /tmp/ccQmRu1i.s page 7 343 ; 0 "" 2 344 /* #NOAPP */ 345 000a C1EC ldi r28,lo8(-63) 346 000c D0E0 ldi r29,0 347 000e 8881 ld r24,Y 348 0010 8F77 andi r24,lo8(127) 349 0012 8883 st Y,r24 350 0014 8881 ld r24,Y 351 0016 8F7B andi r24,lo8(-65) 352 0018 8883 st Y,r24 353 001a 8881 ld r24,Y 354 001c 8F7D andi r24,lo8(-33) 355 001e 8883 st Y,r24 356 /* #APP */ 357 ; 486 "../../nut/arch/avr/dev/usartavr.c" 1 358 0020 0F90 pop __tmp_reg__ 359 0022 0FBE out __SREG__, __tmp_reg__ 360 361 ; 0 "" 2 362 /* #NOAPP */ 363 0024 8AE0 ldi r24,lo8(10) 364 0026 0E94 0000 call NutDelay 365 002a 8881 ld r24,Y 366 002c 8F7E andi r24,lo8(-17) 367 002e 8883 st Y,r24 368 0030 8881 ld r24,Y 369 0032 877F andi r24,lo8(-9) 370 0034 8883 st Y,r24 371 /* epilogue start */ 372 0036 DF91 pop r29 373 0038 CF91 pop r28 374 003a 0895 ret 375 .size AvrUsartDisable, .-AvrUsartDisable 376 .section .text.AvrUsartSetStopBits,"ax",@progbits 377 .type AvrUsartSetStopBits, @function 378 AvrUsartSetStopBits: 379 0000 CF93 push r28 380 /* prologue: function */ 381 /* frame size = 0 */ 382 /* stack size = 1 */ 383 .L__stack_usage = 1 384 0002 C82F mov r28,r24 385 0004 0E94 0000 call AvrUsartDisable 386 0008 C130 cpi r28,lo8(1) 387 000a 01F4 brne .L86 388 000c 8091 C200 lds r24,194 389 0010 877F andi r24,lo8(-9) 390 0012 00C0 rjmp .L89 391 .L86: 392 0014 C230 cpi r28,lo8(2) 393 0016 01F4 brne .L87 394 0018 8091 C200 lds r24,194 395 001c 8860 ori r24,lo8(8) 396 .L89: 397 001e 8093 C200 sts 194,r24 398 .L87: 399 0022 0E94 0000 call AvrUsartEnable GAS LISTING /tmp/ccQmRu1i.s page 8 400 0026 0E94 0000 call AvrUsartGetStopBits 401 002a 21E0 ldi r18,lo8(1) 402 002c 30E0 ldi r19,0 403 002e C813 cpse r28,r24 404 0030 00C0 rjmp .L88 405 0032 20E0 ldi r18,0 406 0034 30E0 ldi r19,0 407 .L88: 408 0036 8827 clr r24 409 0038 9927 clr r25 410 003a 821B sub r24,r18 411 003c 930B sbc r25,r19 412 /* epilogue start */ 413 003e CF91 pop r28 414 0040 0895 ret 415 .size AvrUsartSetStopBits, .-AvrUsartSetStopBits 416 .section .text.AvrUsartGetSpeed,"ax",@progbits 417 .type AvrUsartGetSpeed, @function 418 AvrUsartGetSpeed: 419 0000 8F92 push r8 420 0002 9F92 push r9 421 0004 AF92 push r10 422 0006 BF92 push r11 423 0008 CF92 push r12 424 000a DF92 push r13 425 000c EF92 push r14 426 000e FF92 push r15 427 0010 CF93 push r28 428 0012 DF93 push r29 429 /* prologue: function */ 430 /* frame size = 0 */ 431 /* stack size = 10 */ 432 .L__stack_usage = 10 433 0014 2091 C400 lds r18,196 434 0018 8091 C500 lds r24,197 435 001c 30E0 ldi r19,0 436 001e E901 movw r28,r18 437 0020 D82B or r29,r24 438 0022 8091 C200 lds r24,194 439 0026 86FD sbrc r24,6 440 0028 00C0 rjmp .L92 441 002a 8091 C000 lds r24,192 442 002e 81FD sbrc r24,1 443 0030 00C0 rjmp .L93 444 0032 20E1 ldi r18,lo8(16) 445 0034 C22E mov r12,r18 446 0036 D12C mov r13,__zero_reg__ 447 0038 E12C mov r14,__zero_reg__ 448 003a F12C mov r15,__zero_reg__ 449 003c 00C0 rjmp .L91 450 .L92: 451 003e 92E0 ldi r25,lo8(2) 452 0040 C92E mov r12,r25 453 0042 D12C mov r13,__zero_reg__ 454 0044 E12C mov r14,__zero_reg__ 455 0046 F12C mov r15,__zero_reg__ 456 0048 00C0 rjmp .L91 GAS LISTING /tmp/ccQmRu1i.s page 9 457 .L93: 458 004a 88E0 ldi r24,lo8(8) 459 004c C82E mov r12,r24 460 004e D12C mov r13,__zero_reg__ 461 0050 E12C mov r14,__zero_reg__ 462 0052 F12C mov r15,__zero_reg__ 463 .L91: 464 0054 0E94 0000 call NutGetCpuClock 465 0058 4B01 movw r8,r22 466 005a 5C01 movw r10,r24 467 005c CE01 movw r24,r28 468 005e A0E0 ldi r26,0 469 0060 B0E0 ldi r27,0 470 0062 9C01 movw r18,r24 471 0064 AD01 movw r20,r26 472 0066 2F5F subi r18,-1 473 0068 3F4F sbci r19,-1 474 006a 4F4F sbci r20,-1 475 006c 5F4F sbci r21,-1 476 006e C701 movw r24,r14 477 0070 B601 movw r22,r12 478 0072 0E94 0000 call __mulsi3 479 0076 9B01 movw r18,r22 480 0078 AC01 movw r20,r24 481 007a C501 movw r24,r10 482 007c B401 movw r22,r8 483 007e 0E94 0000 call __udivmodsi4 484 0082 CA01 movw r24,r20 485 0084 B901 movw r22,r18 486 /* epilogue start */ 487 0086 DF91 pop r29 488 0088 CF91 pop r28 489 008a FF90 pop r15 490 008c EF90 pop r14 491 008e DF90 pop r13 492 0090 CF90 pop r12 493 0092 BF90 pop r11 494 0094 AF90 pop r10 495 0096 9F90 pop r9 496 0098 8F90 pop r8 497 009a 0895 ret 498 .size AvrUsartGetSpeed, .-AvrUsartGetSpeed 499 .section .text.AvrUsartSetSpeed,"ax",@progbits 500 .type AvrUsartSetSpeed, @function 501 AvrUsartSetSpeed: 502 0000 CF93 push r28 503 0002 DF93 push r29 504 0004 00D0 rcall . 505 0006 1F92 push __zero_reg__ 506 0008 CDB7 in r28,__SP_L__ 507 000a DEB7 in r29,__SP_H__ 508 /* prologue: function */ 509 /* frame size = 4 */ 510 /* stack size = 6 */ 511 .L__stack_usage = 6 512 000c 9B01 movw r18,r22 513 000e AC01 movw r20,r24 GAS LISTING /tmp/ccQmRu1i.s page 10 514 0010 6983 std Y+1,r22 515 0012 3A83 std Y+2,r19 516 0014 4B83 std Y+3,r20 517 0016 5C83 std Y+4,r21 518 0018 0E94 0000 call AvrUsartDisable 519 001c 8091 C200 lds r24,194 520 0020 2981 ldd r18,Y+1 521 0022 3A81 ldd r19,Y+2 522 0024 4B81 ldd r20,Y+3 523 0026 5C81 ldd r21,Y+4 524 0028 86FD sbrc r24,6 525 002a 00C0 rjmp .L95 526 002c 8091 C000 lds r24,192 527 0030 81FF sbrs r24,1 528 0032 00C0 rjmp .L96 529 0034 72E0 ldi r23,2 530 1: 531 0036 220F lsl r18 532 0038 331F rol r19 533 003a 441F rol r20 534 003c 551F rol r21 535 003e 7A95 dec r23 536 0040 01F4 brne 1b 537 0042 00C0 rjmp .L95 538 .L96: 539 0044 63E0 ldi r22,3 540 1: 541 0046 220F lsl r18 542 0048 331F rol r19 543 004a 441F rol r20 544 004c 551F rol r21 545 004e 6A95 dec r22 546 0050 01F4 brne 1b 547 .L95: 548 0052 2983 std Y+1,r18 549 0054 3A83 std Y+2,r19 550 0056 4B83 std Y+3,r20 551 0058 5C83 std Y+4,r21 552 005a 0E94 0000 call NutGetCpuClock 553 005e 2981 ldd r18,Y+1 554 0060 3A81 ldd r19,Y+2 555 0062 4B81 ldd r20,Y+3 556 0064 5C81 ldd r21,Y+4 557 0066 0E94 0000 call __udivmodsi4 558 006a DA01 movw r26,r20 559 006c C901 movw r24,r18 560 006e 0196 adiw r24,1 561 0070 A11D adc r26,__zero_reg__ 562 0072 B11D adc r27,__zero_reg__ 563 0074 B695 lsr r27 564 0076 A795 ror r26 565 0078 9795 ror r25 566 007a 8795 ror r24 567 007c 9C01 movw r18,r24 568 007e 2150 subi r18,1 569 0080 3109 sbc r19,__zero_reg__ 570 0082 2093 C400 sts 196,r18 GAS LISTING /tmp/ccQmRu1i.s page 11 571 0086 3093 C500 sts 197,r19 572 008a 0E94 0000 call AvrUsartEnable 573 008e 80E0 ldi r24,0 574 0090 90E0 ldi r25,0 575 /* epilogue start */ 576 0092 0F90 pop __tmp_reg__ 577 0094 0F90 pop __tmp_reg__ 578 0096 0F90 pop __tmp_reg__ 579 0098 0F90 pop __tmp_reg__ 580 009a DF91 pop r29 581 009c CF91 pop r28 582 009e 0895 ret 583 .size AvrUsartSetSpeed, .-AvrUsartSetSpeed 584 .section .text.AvrUsartDeinit,"ax",@progbits 585 .type AvrUsartDeinit, @function 586 AvrUsartDeinit: 587 /* prologue: function */ 588 /* frame size = 0 */ 589 /* stack size = 0 */ 590 .L__stack_usage = 0 591 0000 40E0 ldi r20,0 592 0002 50E0 ldi r21,0 593 0004 60E0 ldi r22,0 594 0006 70E0 ldi r23,0 595 0008 80E0 ldi r24,lo8(sig_UART0_RECV) 596 000a 90E0 ldi r25,hi8(sig_UART0_RECV) 597 000c 0E94 0000 call NutRegisterIrqHandler 598 0010 40E0 ldi r20,0 599 0012 50E0 ldi r21,0 600 0014 60E0 ldi r22,0 601 0016 70E0 ldi r23,0 602 0018 80E0 ldi r24,lo8(sig_UART0_DATA) 603 001a 90E0 ldi r25,hi8(sig_UART0_DATA) 604 001c 0E94 0000 call NutRegisterIrqHandler 605 0020 80E0 ldi r24,0 606 0022 90E0 ldi r25,0 607 0024 0895 ret 608 .size AvrUsartDeinit, .-AvrUsartDeinit 609 .section .text.AvrUsartTxEmpty,"ax",@progbits 610 .type AvrUsartTxEmpty, @function 611 AvrUsartTxEmpty: 612 /* prologue: function */ 613 /* frame size = 0 */ 614 /* stack size = 0 */ 615 .L__stack_usage = 0 616 0000 FC01 movw r30,r24 617 0002 A281 ldd r26,Z+2 618 0004 B381 ldd r27,Z+3 619 0006 8091 0000 lds r24,flow_control 620 000a 982F mov r25,r24 621 000c 9073 andi r25,lo8(48) 622 000e 01F0 breq .L99 623 0010 84FF sbrs r24,4 624 0012 00C0 rjmp .L100 625 0014 83E1 ldi r24,lo8(19) 626 0016 8093 C600 sts 198,r24 627 001a 8091 0000 lds r24,flow_control GAS LISTING /tmp/ccQmRu1i.s page 12 628 001e 8064 ori r24,lo8(64) 629 0020 00C0 rjmp .L118 630 .L100: 631 0022 81E1 ldi r24,lo8(17) 632 0024 8093 C600 sts 198,r24 633 0028 8091 0000 lds r24,flow_control 634 002c 8F7B andi r24,lo8(-65) 635 .L118: 636 002e 8093 0000 sts flow_control,r24 637 0032 8091 0000 lds r24,flow_control 638 0036 8F7C andi r24,lo8(-49) 639 0038 8093 0000 sts flow_control,r24 640 003c 0895 ret 641 .L99: 642 003e 87FF sbrs r24,7 643 0040 00C0 rjmp .L103 644 0042 8091 C100 lds r24,193 645 0046 8F7D andi r24,lo8(-33) 646 0048 8093 C100 sts 193,r24 647 004c 0895 ret 648 .L103: 649 004e 8285 ldd r24,Z+10 650 0050 9385 ldd r25,Z+11 651 0052 892B or r24,r25 652 0054 01F0 breq .L104 653 0056 8285 ldd r24,Z+10 654 0058 9385 ldd r25,Z+11 655 005a 0197 sbiw r24,1 656 005c 9387 std Z+11,r25 657 005e 8287 std Z+10,r24 658 0060 8091 0000 lds r24,tx_aframe 659 0064 8823 tst r24 660 0066 01F0 breq .L105 661 0068 8091 C100 lds r24,193 662 006c 8160 ori r24,lo8(1) 663 006e 00C0 rjmp .L119 664 .L105: 665 0070 8091 C100 lds r24,193 666 0074 8E7F andi r24,lo8(-2) 667 .L119: 668 0076 8093 C100 sts 193,r24 669 007a 8D91 ld r24,X+ 670 007c 8093 C600 sts 198,r24 671 0080 8681 ldd r24,Z+6 672 0082 9781 ldd r25,Z+7 673 0084 A817 cp r26,r24 674 0086 B907 cpc r27,r25 675 0088 01F4 brne .L107 676 008a A481 ldd r26,Z+4 677 008c B581 ldd r27,Z+5 678 .L107: 679 008e B383 std Z+3,r27 680 0090 A283 std Z+2,r26 681 0092 2285 ldd r18,Z+10 682 0094 3385 ldd r19,Z+11 683 0096 8485 ldd r24,Z+12 684 0098 9585 ldd r25,Z+13 GAS LISTING /tmp/ccQmRu1i.s page 13 685 009a 2817 cp r18,r24 686 009c 3907 cpc r19,r25 687 009e 01F4 brne .L98 688 00a0 00C0 rjmp .L124 689 .L104: 690 00a2 8091 C100 lds r24,193 691 00a6 8F7D andi r24,lo8(-33) 692 00a8 8093 C100 sts 193,r24 693 00ac 1386 std Z+11,__zero_reg__ 694 00ae 1286 std Z+10,__zero_reg__ 695 .L124: 696 00b0 A089 ldd r26,Z+16 697 00b2 B189 ldd r27,Z+17 698 00b4 1097 sbiw r26,0 699 00b6 01F4 brne .L110 700 00b8 8FEF ldi r24,lo8(-1) 701 00ba 9FEF ldi r25,lo8(-1) 702 00bc 918B std Z+17,r25 703 00be 808B std Z+16,r24 704 00c0 00C0 rjmp .L111 705 .L110: 706 00c2 AF3F cpi r26,-1 707 00c4 8FEF ldi r24,-1 708 00c6 B807 cpc r27,r24 709 00c8 01F0 breq .L111 710 00ca 1496 adiw r26,4 711 00cc 8D91 ld r24,X+ 712 00ce 9C91 ld r25,X 713 00d0 1597 sbiw r26,4+1 714 00d2 0196 adiw r24,1 715 00d4 1596 adiw r26,4+1 716 00d6 9C93 st X,r25 717 00d8 8E93 st -X,r24 718 00da 1497 sbiw r26,4 719 .L111: 720 00dc 62E0 ldi r22,lo8(2) 721 00de 8689 ldd r24,Z+22 722 00e0 9789 ldd r25,Z+23 723 00e2 0C94 0000 jmp NutSelectWakeupFromIrq 724 .L98: 725 00e6 0895 ret 726 .size AvrUsartTxEmpty, .-AvrUsartTxEmpty 727 .section .text.AvrUsartRxComplete,"ax",@progbits 728 .type AvrUsartRxComplete, @function 729 AvrUsartRxComplete: 730 0000 EF92 push r14 731 0002 FF92 push r15 732 0004 1F93 push r17 733 0006 CF93 push r28 734 0008 DF93 push r29 735 /* prologue: function */ 736 /* frame size = 0 */ 737 /* stack size = 5 */ 738 .L__stack_usage = 5 739 000a EC01 movw r28,r24 740 000c 9091 C000 lds r25,192 741 0010 8091 0000 lds r24,rx_errors GAS LISTING /tmp/ccQmRu1i.s page 14 742 0014 982B or r25,r24 743 0016 9093 0000 sts rx_errors,r25 744 001a 1091 C600 lds r17,198 745 001e 8091 0000 lds r24,flow_control 746 0022 8823 tst r24 747 0024 01F0 breq .L126 748 0026 1331 cpi r17,lo8(19) 749 0028 01F4 brne .L127 750 002a 8091 C100 lds r24,193 751 002e 8F7D andi r24,lo8(-33) 752 0030 8093 C100 sts 193,r24 753 0034 8091 0000 lds r24,flow_control 754 0038 8068 ori r24,lo8(-128) 755 003a 00C0 rjmp .L146 756 .L127: 757 003c 1131 cpi r17,lo8(17) 758 003e 01F4 brne .L126 759 0040 8091 C100 lds r24,193 760 0044 8062 ori r24,lo8(32) 761 0046 8093 C100 sts 193,r24 762 004a 8091 0000 lds r24,flow_control 763 004e 8F77 andi r24,lo8(127) 764 .L146: 765 0050 8093 0000 sts flow_control,r24 766 0054 00C0 rjmp .L125 767 .L126: 768 0056 2A85 ldd r18,Y+10 769 0058 3B85 ldd r19,Y+11 770 005a 4885 ldd r20,Y+8 771 005c 5985 ldd r21,Y+9 772 005e 2417 cp r18,r20 773 0060 3507 cpc r19,r21 774 0062 00F0 brlo .L129 775 0064 9860 ori r25,lo8(8) 776 0066 9093 0000 sts rx_errors,r25 777 006a 00C0 rjmp .L125 778 .L129: 779 006c 7901 movw r14,r18 780 006e 9FEF ldi r25,-1 781 0070 E91A sub r14,r25 782 0072 F90A sbc r15,r25 783 0074 232B or r18,r19 784 0076 01F4 brne .L130 785 0078 E889 ldd r30,Y+16 786 007a F989 ldd r31,Y+17 787 007c 3097 sbiw r30,0 788 007e 01F4 brne .L131 789 0080 8FEF ldi r24,lo8(-1) 790 0082 9FEF ldi r25,lo8(-1) 791 0084 998B std Y+17,r25 792 0086 888B std Y+16,r24 793 0088 00C0 rjmp .L132 794 .L131: 795 008a EF3F cpi r30,-1 796 008c 8FEF ldi r24,-1 797 008e F807 cpc r31,r24 798 0090 01F0 breq .L132 GAS LISTING /tmp/ccQmRu1i.s page 15 799 0092 8481 ldd r24,Z+4 800 0094 9581 ldd r25,Z+5 801 0096 0196 adiw r24,1 802 0098 9583 std Z+5,r25 803 009a 8483 std Z+4,r24 804 .L132: 805 009c 61E0 ldi r22,lo8(1) 806 009e 8E89 ldd r24,Y+22 807 00a0 9F89 ldd r25,Y+23 808 00a2 0E94 0000 call NutSelectWakeupFromIrq 809 00a6 00C0 rjmp .L133 810 .L130: 811 00a8 8823 tst r24 812 00aa 01F0 breq .L133 813 00ac 2E85 ldd r18,Y+14 814 00ae 3F85 ldd r19,Y+15 815 00b0 E216 cp r14,r18 816 00b2 F306 cpc r15,r19 817 00b4 00F0 brlo .L133 818 00b6 86FD sbrc r24,6 819 00b8 00C0 rjmp .L133 820 00ba 9091 C000 lds r25,192 821 00be 95FF sbrs r25,5 822 00c0 00C0 rjmp .L134 823 00c2 83E1 ldi r24,lo8(19) 824 00c4 8093 C600 sts 198,r24 825 00c8 8091 0000 lds r24,flow_control 826 00cc 8F7D andi r24,lo8(-33) 827 00ce 8064 ori r24,lo8(64) 828 00d0 00C0 rjmp .L145 829 .L134: 830 00d2 8062 ori r24,lo8(32) 831 .L145: 832 00d4 8093 0000 sts flow_control,r24 833 .L133: 834 00d8 E881 ld r30,Y 835 00da F981 ldd r31,Y+1 836 00dc CF01 movw r24,r30 837 00de 0196 adiw r24,1 838 00e0 9983 std Y+1,r25 839 00e2 8883 st Y,r24 840 00e4 1083 st Z,r17 841 00e6 2881 ld r18,Y 842 00e8 3981 ldd r19,Y+1 843 00ea 8E81 ldd r24,Y+6 844 00ec 9F81 ldd r25,Y+7 845 00ee 2817 cp r18,r24 846 00f0 3907 cpc r19,r25 847 00f2 01F4 brne .L135 848 00f4 8C81 ldd r24,Y+4 849 00f6 9D81 ldd r25,Y+5 850 00f8 9983 std Y+1,r25 851 00fa 8883 st Y,r24 852 .L135: 853 00fc FB86 std Y+11,r15 854 00fe EA86 std Y+10,r14 855 .L125: GAS LISTING /tmp/ccQmRu1i.s page 16 856 /* epilogue start */ 857 0100 DF91 pop r29 858 0102 CF91 pop r28 859 0104 1F91 pop r17 860 0106 FF90 pop r15 861 0108 EF90 pop r14 862 010a 0895 ret 863 .size AvrUsartRxComplete, .-AvrUsartRxComplete 864 .section .text.AvrUsartGetDataBits,"ax",@progbits 865 .type AvrUsartGetDataBits, @function 866 AvrUsartGetDataBits: 867 /* prologue: function */ 868 /* frame size = 0 */ 869 /* stack size = 0 */ 870 .L__stack_usage = 0 871 0000 8091 C100 lds r24,193 872 0004 82FD sbrc r24,2 873 0006 00C0 rjmp .L150 874 0008 8091 C200 lds r24,194 875 000c 82FF sbrs r24,2 876 000e 00C0 rjmp .L149 877 0010 8091 C200 lds r24,194 878 0014 81FD sbrc r24,1 879 0016 00C0 rjmp .L151 880 0018 87E0 ldi r24,lo8(7) 881 001a 0895 ret 882 .L149: 883 001c 8091 C200 lds r24,194 884 0020 81FD sbrc r24,1 885 0022 00C0 rjmp .L152 886 0024 85E0 ldi r24,lo8(5) 887 0026 0895 ret 888 .L150: 889 0028 89E0 ldi r24,lo8(9) 890 002a 0895 ret 891 .L151: 892 002c 88E0 ldi r24,lo8(8) 893 002e 0895 ret 894 .L152: 895 0030 86E0 ldi r24,lo8(6) 896 0032 0895 ret 897 .size AvrUsartGetDataBits, .-AvrUsartGetDataBits 898 .section .text.AvrUsartSetDataBits,"ax",@progbits 899 .type AvrUsartSetDataBits, @function 900 AvrUsartSetDataBits: 901 0000 CF93 push r28 902 /* prologue: function */ 903 /* frame size = 0 */ 904 /* stack size = 1 */ 905 .L__stack_usage = 1 906 0002 C82F mov r28,r24 907 0004 0E94 0000 call AvrUsartDisable 908 0008 8091 C100 lds r24,193 909 000c 8B7F andi r24,lo8(-5) 910 000e 8093 C100 sts 193,r24 911 0012 8091 C200 lds r24,194 912 0016 8D7F andi r24,lo8(-3) GAS LISTING /tmp/ccQmRu1i.s page 17 913 0018 8093 C200 sts 194,r24 914 001c 8091 C200 lds r24,194 915 0020 8B7F andi r24,lo8(-5) 916 0022 8093 C200 sts 194,r24 917 0026 C730 cpi r28,lo8(7) 918 0028 01F0 breq .L155 919 002a 00F4 brsh .L156 920 002c C630 cpi r28,lo8(6) 921 002e 01F4 brne .L154 922 0030 8091 C200 lds r24,194 923 0034 8260 ori r24,lo8(2) 924 0036 00C0 rjmp .L167 925 .L156: 926 0038 C830 cpi r28,lo8(8) 927 003a 01F0 breq .L158 928 003c C930 cpi r28,lo8(9) 929 003e 01F4 brne .L154 930 0040 8091 C100 lds r24,193 931 0044 8460 ori r24,lo8(4) 932 0046 8093 C100 sts 193,r24 933 .L158: 934 004a 8091 C200 lds r24,194 935 004e 8260 ori r24,lo8(2) 936 0050 8093 C200 sts 194,r24 937 .L155: 938 0054 8091 C200 lds r24,194 939 0058 8460 ori r24,lo8(4) 940 .L167: 941 005a 8093 C200 sts 194,r24 942 .L154: 943 005e 0E94 0000 call AvrUsartEnable 944 0062 0E94 0000 call AvrUsartGetDataBits 945 0066 21E0 ldi r18,lo8(1) 946 0068 30E0 ldi r19,0 947 006a C813 cpse r28,r24 948 006c 00C0 rjmp .L160 949 006e 20E0 ldi r18,0 950 0070 30E0 ldi r19,0 951 .L160: 952 0072 8827 clr r24 953 0074 9927 clr r25 954 0076 821B sub r24,r18 955 0078 930B sbc r25,r19 956 /* epilogue start */ 957 007a CF91 pop r28 958 007c 0895 ret 959 .size AvrUsartSetDataBits, .-AvrUsartSetDataBits 960 .section .text.AvrUsartGetParity,"ax",@progbits 961 .type AvrUsartGetParity, @function 962 AvrUsartGetParity: 963 /* prologue: function */ 964 /* frame size = 0 */ 965 /* stack size = 0 */ 966 .L__stack_usage = 0 967 0000 9091 C200 lds r25,194 968 0004 892F mov r24,r25 969 0006 8072 andi r24,lo8(32) GAS LISTING /tmp/ccQmRu1i.s page 18 970 0008 95FF sbrs r25,5 971 000a 00C0 rjmp .L169 972 000c 8091 C200 lds r24,194 973 0010 84FD sbrc r24,4 974 0012 00C0 rjmp .L170 975 0014 82E0 ldi r24,lo8(2) 976 0016 0895 ret 977 .L170: 978 0018 81E0 ldi r24,lo8(1) 979 .L169: 980 001a 0895 ret 981 .size AvrUsartGetParity, .-AvrUsartGetParity 982 .section .text.AvrUsartSetParity,"ax",@progbits 983 .type AvrUsartSetParity, @function 984 AvrUsartSetParity: 985 0000 CF93 push r28 986 /* prologue: function */ 987 /* frame size = 0 */ 988 /* stack size = 1 */ 989 .L__stack_usage = 1 990 0002 C82F mov r28,r24 991 0004 0E94 0000 call AvrUsartDisable 992 0008 C130 cpi r28,lo8(1) 993 000a 01F0 breq .L176 994 000c 00F0 brlo .L177 995 000e C230 cpi r28,lo8(2) 996 0010 01F4 brne .L175 997 0012 8091 C200 lds r24,194 998 0016 8F7E andi r24,lo8(-17) 999 0018 00C0 rjmp .L181 1000 .L177: 1001 001a 8091 C200 lds r24,194 1002 001e 8F7E andi r24,lo8(-17) 1003 0020 8093 C200 sts 194,r24 1004 0024 8091 C200 lds r24,194 1005 0028 8F7D andi r24,lo8(-33) 1006 002a 00C0 rjmp .L180 1007 .L176: 1008 002c 8091 C200 lds r24,194 1009 0030 8061 ori r24,lo8(16) 1010 .L181: 1011 0032 8093 C200 sts 194,r24 1012 0036 8091 C200 lds r24,194 1013 003a 8062 ori r24,lo8(32) 1014 .L180: 1015 003c 8093 C200 sts 194,r24 1016 .L175: 1017 0040 0E94 0000 call AvrUsartEnable 1018 0044 0E94 0000 call AvrUsartGetParity 1019 0048 21E0 ldi r18,lo8(1) 1020 004a 30E0 ldi r19,0 1021 004c C813 cpse r28,r24 1022 004e 00C0 rjmp .L179 1023 0050 20E0 ldi r18,0 1024 0052 30E0 ldi r19,0 1025 .L179: 1026 0054 8827 clr r24 GAS LISTING /tmp/ccQmRu1i.s page 19 1027 0056 9927 clr r25 1028 0058 821B sub r24,r18 1029 005a 930B sbc r25,r19 1030 /* epilogue start */ 1031 005c CF91 pop r28 1032 005e 0895 ret 1033 .size AvrUsartSetParity, .-AvrUsartSetParity 1034 .section .text.AvrUsartGetClockMode,"ax",@progbits 1035 .type AvrUsartGetClockMode, @function 1036 AvrUsartGetClockMode: 1037 /* prologue: function */ 1038 /* frame size = 0 */ 1039 /* stack size = 0 */ 1040 .L__stack_usage = 0 1041 0000 8091 C200 lds r24,194 1042 0004 86FF sbrs r24,6 1043 0006 00C0 rjmp .L183 1044 0008 6A9B sbis 0xd,2 1045 000a 00C0 rjmp .L186 1046 000c 83E0 ldi r24,lo8(3) 1047 000e 00C0 rjmp .L184 1048 .L186: 1049 0010 81E0 ldi r24,lo8(1) 1050 .L184: 1051 0012 9091 C200 lds r25,194 1052 0016 90FF sbrs r25,0 1053 0018 00C0 rjmp .L185 1054 001a 8460 ori r24,lo8(4) 1055 001c 0895 ret 1056 .L183: 1057 001e 8091 C000 lds r24,192 1058 0022 81FF sbrs r24,1 1059 0024 00C0 rjmp .L187 1060 0026 80E2 ldi r24,lo8(32) 1061 0028 0895 ret 1062 .L187: 1063 002a 80E0 ldi r24,0 1064 .L185: 1065 002c 0895 ret 1066 .size AvrUsartGetClockMode, .-AvrUsartGetClockMode 1067 .section .text.AvrUsartSetClockMode,"ax",@progbits 1068 .type AvrUsartSetClockMode, @function 1069 AvrUsartSetClockMode: 1070 0000 CF93 push r28 1071 /* prologue: function */ 1072 /* frame size = 0 */ 1073 /* stack size = 1 */ 1074 .L__stack_usage = 1 1075 0002 C82F mov r28,r24 1076 0004 0E94 0000 call AvrUsartDisable 1077 0008 C0FF sbrs r28,0 1078 000a 00C0 rjmp .L192 1079 000c C1FF sbrs r28,1 1080 000e 00C0 rjmp .L193 1081 0010 6A9A sbi 0xd,2 1082 0012 00C0 rjmp .L194 1083 .L193: GAS LISTING /tmp/ccQmRu1i.s page 20 1084 0014 6A98 cbi 0xd,2 1085 .L194: 1086 0016 8091 C200 lds r24,194 1087 001a C2FF sbrs r28,2 1088 001c 00C0 rjmp .L195 1089 001e 8160 ori r24,lo8(1) 1090 0020 00C0 rjmp .L201 1091 .L195: 1092 0022 8E7F andi r24,lo8(-2) 1093 .L201: 1094 0024 8093 C200 sts 194,r24 1095 0028 8091 C000 lds r24,192 1096 002c 8D7F andi r24,lo8(-3) 1097 002e 8093 C000 sts 192,r24 1098 0032 8091 C200 lds r24,194 1099 0036 8064 ori r24,lo8(64) 1100 0038 00C0 rjmp .L203 1101 .L192: 1102 003a 8091 C000 lds r24,192 1103 003e C5FF sbrs r28,5 1104 0040 00C0 rjmp .L198 1105 0042 8260 ori r24,lo8(2) 1106 0044 00C0 rjmp .L202 1107 .L198: 1108 0046 8D7F andi r24,lo8(-3) 1109 .L202: 1110 0048 8093 C000 sts 192,r24 1111 004c 8091 C200 lds r24,194 1112 0050 8E7F andi r24,lo8(-2) 1113 0052 8093 C200 sts 194,r24 1114 0056 8091 C200 lds r24,194 1115 005a 8F7B andi r24,lo8(-65) 1116 .L203: 1117 005c 8093 C200 sts 194,r24 1118 0060 0E94 0000 call AvrUsartEnable 1119 0064 0E94 0000 call AvrUsartGetClockMode 1120 0068 21E0 ldi r18,lo8(1) 1121 006a 30E0 ldi r19,0 1122 006c C813 cpse r28,r24 1123 006e 00C0 rjmp .L200 1124 0070 20E0 ldi r18,0 1125 0072 30E0 ldi r19,0 1126 .L200: 1127 0074 8827 clr r24 1128 0076 9927 clr r25 1129 0078 821B sub r24,r18 1130 007a 930B sbc r25,r19 1131 /* epilogue start */ 1132 007c CF91 pop r28 1133 007e 0895 ret 1134 .size AvrUsartSetClockMode, .-AvrUsartSetClockMode 1135 .section .text.AvrUsartRxStart,"ax",@progbits 1136 .type AvrUsartRxStart, @function 1137 AvrUsartRxStart: 1138 /* prologue: function */ 1139 /* frame size = 0 */ 1140 /* stack size = 0 */ GAS LISTING /tmp/ccQmRu1i.s page 21 1141 .L__stack_usage = 0 1142 0000 8091 0000 lds r24,flow_control 1143 0004 8823 tst r24 1144 0006 01F0 breq .L204 1145 0008 86FF sbrs r24,6 1146 000a 00C0 rjmp .L204 1147 /* #APP */ 1148 ; 1249 "../../nut/arch/avr/dev/usartavr.c" 1 1149 000c 0FB6 in __tmp_reg__, __SREG__ 1150 000e F894 cli 1151 0010 0F92 push __tmp_reg__ 1152 1153 ; 0 "" 2 1154 /* #NOAPP */ 1155 0012 9091 C000 lds r25,192 1156 0016 95FF sbrs r25,5 1157 0018 00C0 rjmp .L206 1158 001a 81E1 ldi r24,lo8(17) 1159 001c 8093 C600 sts 198,r24 1160 0020 8091 0000 lds r24,flow_control 1161 0024 8F7E andi r24,lo8(-17) 1162 0026 00C0 rjmp .L214 1163 .L206: 1164 0028 8061 ori r24,lo8(16) 1165 .L214: 1166 002a 8093 0000 sts flow_control,r24 1167 002e 8091 0000 lds r24,flow_control 1168 0032 8F79 andi r24,lo8(-97) 1169 0034 8093 0000 sts flow_control,r24 1170 /* #APP */ 1171 ; 1257 "../../nut/arch/avr/dev/usartavr.c" 1 1172 0038 0F90 pop __tmp_reg__ 1173 003a 0FBE out __SREG__, __tmp_reg__ 1174 1175 ; 0 "" 2 1176 /* #NOAPP */ 1177 .L204: 1178 003c 0895 ret 1179 .size AvrUsartRxStart, .-AvrUsartRxStart 1180 .section .text.AvrUsartInit,"ax",@progbits 1181 .type AvrUsartInit, @function 1182 AvrUsartInit: 1183 /* prologue: function */ 1184 /* frame size = 0 */ 1185 /* stack size = 0 */ 1186 .L__stack_usage = 0 1187 0000 40E0 ldi r20,lo8(dcb_usart0+40) 1188 0002 50E0 ldi r21,hi8(dcb_usart0+40) 1189 0004 60E0 ldi r22,lo8(gs(AvrUsartRxComplete)) 1190 0006 70E0 ldi r23,hi8(gs(AvrUsartRxComplete)) 1191 0008 80E0 ldi r24,lo8(sig_UART0_RECV) 1192 000a 90E0 ldi r25,hi8(sig_UART0_RECV) 1193 000c 0E94 0000 call NutRegisterIrqHandler 1194 0010 892B or r24,r25 1195 0012 01F4 brne .L217 1196 0014 40E0 ldi r20,lo8(dcb_usart0+16) 1197 0016 50E0 ldi r21,hi8(dcb_usart0+16) GAS LISTING /tmp/ccQmRu1i.s page 22 1198 0018 60E0 ldi r22,lo8(gs(AvrUsartTxEmpty)) 1199 001a 70E0 ldi r23,hi8(gs(AvrUsartTxEmpty)) 1200 001c 80E0 ldi r24,lo8(sig_UART0_DATA) 1201 001e 90E0 ldi r25,hi8(sig_UART0_DATA) 1202 0020 0E94 0000 call NutRegisterIrqHandler 1203 0024 0097 sbiw r24,0 1204 0026 01F0 breq .L216 1205 0028 40E0 ldi r20,0 1206 002a 50E0 ldi r21,0 1207 002c 60E0 ldi r22,0 1208 002e 70E0 ldi r23,0 1209 0030 80E0 ldi r24,lo8(sig_UART0_RECV) 1210 0032 90E0 ldi r25,hi8(sig_UART0_RECV) 1211 0034 0E94 0000 call NutRegisterIrqHandler 1212 .L217: 1213 0038 8FEF ldi r24,lo8(-1) 1214 003a 9FEF ldi r25,lo8(-1) 1215 .L216: 1216 003c 0895 ret 1217 .size AvrUsartInit, .-AvrUsartInit 1218 .local tx_aframe 1219 .comm tx_aframe,1,1 1220 .local flow_control 1221 .comm flow_control,1,1 1222 .local rx_errors 1223 .comm rx_errors,1,1 1224 .global devUsartAvr0 1225 .data 1226 .type devUsartAvr0, @object 1227 .size devUsartAvr0, 37 1228 devUsartAvr0: 1229 0000 0000 .word 0 1230 0002 75 .byte 117 1231 0003 61 .byte 97 1232 0004 72 .byte 114 1233 0005 74 .byte 116 1234 0006 30 .byte 48 1235 0007 00 .byte 0 1236 0008 00 .byte 0 1237 0009 00 .byte 0 1238 000a 00 .byte 0 1239 000b 05 .byte 5 1240 000c 0000 .word 0 1241 000e 00 .byte 0 1242 000f 0000 .word 0 1243 0011 0000 .word dcb_usart0 1244 0013 0000 .word gs(UsartInit) 1245 0015 0000 .word gs(UsartIOCtl) 1246 0017 0000 .word gs(UsartRead) 1247 0019 0000 .word gs(UsartWrite) 1248 001b 0000 .word gs(UsartWrite_P) 1249 001d 0000 .word gs(UsartOpen) 1250 001f 0000 .word gs(UsartClose) 1251 0021 0000 .word gs(UsartSize) 1252 0023 0000 .word gs(UsartSelect) 1253 .type dcb_usart0, @object 1254 .size dcb_usart0, 101 GAS LISTING /tmp/ccQmRu1i.s page 23 1255 dcb_usart0: 1256 0025 00 .byte 0 1257 0026 00 .byte 0 1258 0027 00 .byte 0 1259 0028 00 .byte 0 1260 0029 00 .byte 0 1261 002a 00 .byte 0 1262 002b 00 .byte 0 1263 002c 00 .byte 0 1264 002d 00 .byte 0 1265 002e 00 .byte 0 1266 002f 00 .byte 0 1267 0030 00 .byte 0 1268 0031 00 .byte 0 1269 0032 00 .byte 0 1270 0033 00 .byte 0 1271 0034 00 .byte 0 1272 0035 0000 .word 0 1273 0037 0000 .word 0 1274 0039 0000 .word 0 1275 003b 0000 .word 0 1276 003d 0000 .word 0 1277 003f 0000 .word 0 1278 0041 0000 .word 0 1279 0043 0000 .word 0 1280 0045 0000 0000 .zero 8 1280 0000 0000 1281 004d 0000 .word 0 1282 004f 0000 .word 0 1283 0051 0000 .word 0 1284 0053 0000 .word 0 1285 0055 0000 .word 0 1286 0057 0000 .word 0 1287 0059 0000 .word 0 1288 005b 0000 .word 0 1289 005d 0000 0000 .zero 8 1289 0000 0000 1290 0065 00 .byte 0 1291 0066 0000 .word gs(AvrUsartInit) 1292 0068 0000 .word gs(AvrUsartDeinit) 1293 006a 0000 .word gs(AvrUsartTxStart) 1294 006c 0000 .word gs(AvrUsartRxStart) 1295 006e 0000 .word gs(AvrUsartSetFlowControl) 1296 0070 0000 .word gs(AvrUsartGetFlowControl) 1297 0072 0000 .word gs(AvrUsartSetSpeed) 1298 0074 0000 .word gs(AvrUsartGetSpeed) 1299 0076 0000 .word gs(AvrUsartSetDataBits) 1300 0078 0000 .word gs(AvrUsartGetDataBits) 1301 007a 0000 .word gs(AvrUsartSetParity) 1302 007c 0000 .word gs(AvrUsartGetParity) 1303 007e 0000 .word gs(AvrUsartSetStopBits) 1304 0080 0000 .word gs(AvrUsartGetStopBits) 1305 0082 0000 .word gs(AvrUsartSetStatus) 1306 0084 0000 .word gs(AvrUsartGetStatus) 1307 0086 0000 .word gs(AvrUsartSetClockMode) 1308 0088 0000 .word gs(AvrUsartGetClockMode) 1309 .ident "GCC: (GNU) 5.3.0" GAS LISTING /tmp/ccQmRu1i.s page 24 1310 .global __do_copy_data 1311 .global __do_clear_bss GAS LISTING /tmp/ccQmRu1i.s page 25 DEFINED SYMBOLS *ABS*:0000000000000000 usart0avr.c /tmp/ccQmRu1i.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccQmRu1i.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccQmRu1i.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccQmRu1i.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccQmRu1i.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccQmRu1i.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccQmRu1i.s:10 .text.AvrUsartEnable:0000000000000000 AvrUsartEnable /tmp/ccQmRu1i.s:36 .text.AvrUsartGetStopBits:0000000000000000 AvrUsartGetStopBits /tmp/ccQmRu1i.s:52 .text.AvrUsartGetStatus:0000000000000000 AvrUsartGetStatus /tmp/ccQmRu1i.s:1221 .bss:0000000000000002 rx_errors /tmp/ccQmRu1i.s:1219 .bss:0000000000000001 flow_control .bss:0000000000000000 tx_aframe /tmp/ccQmRu1i.s:106 .text.AvrUsartSetStatus:0000000000000000 AvrUsartSetStatus /tmp/ccQmRu1i.s:225 .text.AvrUsartGetFlowControl:0000000000000000 AvrUsartGetFlowControl /tmp/ccQmRu1i.s:246 .text.AvrUsartSetFlowControl:0000000000000000 AvrUsartSetFlowControl /tmp/ccQmRu1i.s:316 .text.AvrUsartTxStart:0000000000000000 AvrUsartTxStart /tmp/ccQmRu1i.s:330 .text.AvrUsartDisable:0000000000000000 AvrUsartDisable /tmp/ccQmRu1i.s:378 .text.AvrUsartSetStopBits:0000000000000000 AvrUsartSetStopBits /tmp/ccQmRu1i.s:418 .text.AvrUsartGetSpeed:0000000000000000 AvrUsartGetSpeed /tmp/ccQmRu1i.s:501 .text.AvrUsartSetSpeed:0000000000000000 AvrUsartSetSpeed /tmp/ccQmRu1i.s:586 .text.AvrUsartDeinit:0000000000000000 AvrUsartDeinit /tmp/ccQmRu1i.s:611 .text.AvrUsartTxEmpty:0000000000000000 AvrUsartTxEmpty /tmp/ccQmRu1i.s:729 .text.AvrUsartRxComplete:0000000000000000 AvrUsartRxComplete /tmp/ccQmRu1i.s:866 .text.AvrUsartGetDataBits:0000000000000000 AvrUsartGetDataBits /tmp/ccQmRu1i.s:900 .text.AvrUsartSetDataBits:0000000000000000 AvrUsartSetDataBits /tmp/ccQmRu1i.s:962 .text.AvrUsartGetParity:0000000000000000 AvrUsartGetParity /tmp/ccQmRu1i.s:984 .text.AvrUsartSetParity:0000000000000000 AvrUsartSetParity /tmp/ccQmRu1i.s:1036 .text.AvrUsartGetClockMode:0000000000000000 AvrUsartGetClockMode /tmp/ccQmRu1i.s:1069 .text.AvrUsartSetClockMode:0000000000000000 AvrUsartSetClockMode /tmp/ccQmRu1i.s:1137 .text.AvrUsartRxStart:0000000000000000 AvrUsartRxStart /tmp/ccQmRu1i.s:1182 .text.AvrUsartInit:0000000000000000 AvrUsartInit /tmp/ccQmRu1i.s:1255 .data:0000000000000025 dcb_usart0 /tmp/ccQmRu1i.s:1228 .data:0000000000000000 devUsartAvr0 UNDEFINED SYMBOLS NutDelay NutGetCpuClock __mulsi3 __udivmodsi4 sig_UART0_RECV NutRegisterIrqHandler sig_UART0_DATA NutSelectWakeupFromIrq UsartInit UsartIOCtl UsartRead UsartWrite UsartWrite_P UsartOpen UsartClose UsartSize UsartSelect __do_copy_data __do_clear_bss