GAS LISTING /tmp/ccUl05vQ.s page 1 1 .file "chat.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 .rodata.str1.1,"aMS",@progbits,1 9 .LC0: 10 0000 0D00 .string "\r" 11 .section .text.NutChatSendString,"ax",@progbits 12 .type NutChatSendString, @function 13 NutChatSendString: 14 0000 6F92 push r6 15 0002 7F92 push r7 16 0004 8F92 push r8 17 0006 9F92 push r9 18 0008 AF92 push r10 19 000a BF92 push r11 20 000c CF92 push r12 21 000e DF92 push r13 22 0010 EF92 push r14 23 0012 FF92 push r15 24 0014 0F93 push r16 25 0016 1F93 push r17 26 0018 CF93 push r28 27 001a DF93 push r29 28 001c 1F92 push __zero_reg__ 29 001e CDB7 in r28,__SP_L__ 30 0020 DEB7 in r29,__SP_H__ 31 /* prologue: function */ 32 /* frame size = 1 */ 33 /* stack size = 15 */ 34 .L__stack_usage = 15 35 0022 6C01 movw r12,r24 36 0024 8B01 movw r16,r22 37 0026 40E0 ldi r20,0 38 0028 50E0 ldi r21,0 39 002a 60E0 ldi r22,0 40 002c 70E0 ldi r23,0 41 002e 0E94 0000 call _read 42 0032 81E0 ldi r24,lo8(1) 43 0034 E12C mov r14,__zero_reg__ 44 0036 F12C mov r15,__zero_reg__ 45 0038 2DE0 ldi r18,lo8(13) 46 003a 922E mov r9,r18 47 003c 30E2 ldi r19,lo8(32) 48 003e 832E mov r8,r19 49 0040 49E0 ldi r20,lo8(9) 50 0042 742E mov r7,r20 51 0044 58E0 ldi r21,lo8(8) 52 0046 652E mov r6,r21 53 .L2: 54 0048 F801 movw r30,r16 55 004a 9081 ld r25,Z 56 004c 9923 tst r25 57 004e 01F4 brne .+2 GAS LISTING /tmp/ccUl05vQ.s page 2 58 0050 00C0 rjmp .L20 59 0052 8111 cpse r24,__zero_reg__ 60 0054 00C0 rjmp .L21 61 .L24: 62 0056 40E0 ldi r20,0 63 0058 50E0 ldi r21,0 64 005a 60E0 ldi r22,0 65 005c 70E0 ldi r23,0 66 005e C601 movw r24,r12 67 0060 0E94 0000 call _write 68 0064 00C0 rjmp .L35 69 .L21: 70 0066 E114 cp r14,__zero_reg__ 71 0068 F104 cpc r15,__zero_reg__ 72 006a 01F4 brne .L24 73 006c 9983 std Y+1,r25 74 006e 5801 movw r10,r16 75 0070 9E35 cpi r25,lo8(94) 76 0072 01F4 brne .L3 77 0074 42E0 ldi r20,2 78 0076 A40E add r10,r20 79 0078 B11C adc r11,__zero_reg__ 80 007a F801 movw r30,r16 81 007c 8181 ldd r24,Z+1 82 007e 8F71 andi r24,lo8(31) 83 0080 00C0 rjmp .L38 84 .L3: 85 0082 9C35 cpi r25,lo8(92) 86 0084 01F0 breq .+2 87 0086 00C0 rjmp .L5 88 0088 F2E0 ldi r31,2 89 008a AF0E add r10,r31 90 008c B11C adc r11,__zero_reg__ 91 008e F801 movw r30,r16 92 0090 2181 ldd r18,Z+1 93 0092 2983 std Y+1,r18 94 0094 2E36 cpi r18,lo8(110) 95 0096 01F0 breq .L7 96 0098 04F4 brge .L8 97 009a 2236 cpi r18,lo8(98) 98 009c 01F0 breq .L9 99 009e 04F4 brge .L10 100 00a0 2E34 cpi r18,lo8(78) 101 00a2 01F4 brne .L6 102 00a4 1982 std Y+1,__zero_reg__ 103 00a6 00C0 rjmp .L4 104 .L10: 105 00a8 2336 cpi r18,lo8(99) 106 00aa 01F4 brne .+2 107 00ac 00C0 rjmp .L27 108 00ae 2436 cpi r18,lo8(100) 109 00b0 01F4 brne .L6 110 00b2 68EE ldi r22,lo8(-24) 111 00b4 73E0 ldi r23,lo8(3) 112 00b6 80E0 ldi r24,0 113 00b8 90E0 ldi r25,0 114 00ba 0E94 0000 call NutSleep GAS LISTING /tmp/ccUl05vQ.s page 3 115 00be 00C0 rjmp .L37 116 .L8: 117 00c0 2237 cpi r18,lo8(114) 118 00c2 01F0 breq .L14 119 00c4 04F4 brge .L15 120 00c6 2037 cpi r18,lo8(112) 121 00c8 01F4 brne .L6 122 00ca 84E6 ldi r24,lo8(100) 123 00cc 0E94 0000 call NutDelay 124 00d0 00C0 rjmp .L37 125 .L15: 126 00d2 2337 cpi r18,lo8(115) 127 00d4 01F0 breq .L17 128 00d6 2437 cpi r18,lo8(116) 129 00d8 01F4 brne .L6 130 00da 7982 std Y+1,r7 131 00dc 00C0 rjmp .L4 132 .L9: 133 00de 6982 std Y+1,r6 134 00e0 00C0 rjmp .L4 135 .L7: 136 00e2 8AE0 ldi r24,lo8(10) 137 00e4 00C0 rjmp .L38 138 .L14: 139 00e6 9982 std Y+1,r9 140 00e8 00C0 rjmp .L4 141 .L17: 142 00ea 8982 std Y+1,r8 143 00ec 00C0 rjmp .L4 144 .L6: 145 00ee 80ED ldi r24,lo8(-48) 146 00f0 820F add r24,r18 147 00f2 8830 cpi r24,lo8(8) 148 00f4 00F4 brsh .L4 149 00f6 922F mov r25,r18 150 00f8 9770 andi r25,lo8(7) 151 00fa 9983 std Y+1,r25 152 00fc F801 movw r30,r16 153 00fe 2281 ldd r18,Z+2 154 0100 80ED ldi r24,lo8(-48) 155 0102 820F add r24,r18 156 0104 8830 cpi r24,lo8(8) 157 0106 00F4 brsh .L4 158 0108 822F mov r24,r18 159 010a 8770 andi r24,lo8(7) 160 010c F8E0 ldi r31,lo8(8) 161 010e 9F9F mul r25,r31 162 0110 9001 movw r18,r0 163 0112 1124 clr __zero_reg__ 164 0114 282B or r18,r24 165 0116 2983 std Y+1,r18 166 0118 F801 movw r30,r16 167 011a 8381 ldd r24,Z+3 168 011c 90ED ldi r25,lo8(-48) 169 011e 980F add r25,r24 170 0120 5801 movw r10,r16 171 0122 9830 cpi r25,lo8(8) GAS LISTING /tmp/ccUl05vQ.s page 4 172 0124 00F0 brlo .L19 173 0126 F3E0 ldi r31,3 174 0128 AF0E add r10,r31 175 012a B11C adc r11,__zero_reg__ 176 012c 00C0 rjmp .L4 177 .L19: 178 012e 44E0 ldi r20,4 179 0130 A40E add r10,r20 180 0132 B11C adc r11,__zero_reg__ 181 0134 382F mov r19,r24 182 0136 3770 andi r19,lo8(7) 183 0138 E8E0 ldi r30,lo8(8) 184 013a 2E02 muls r18,r30 185 013c C001 movw r24,r0 186 013e 1124 clr __zero_reg__ 187 0140 832B or r24,r19 188 .L38: 189 0142 8983 std Y+1,r24 190 0144 00C0 rjmp .L4 191 .L5: 192 0146 FFEF ldi r31,-1 193 0148 AF1A sub r10,r31 194 014a BF0A sbc r11,r31 195 .L4: 196 014c 8AE0 ldi r24,lo8(10) 197 014e 0E94 0000 call NutDelay 198 0152 41E0 ldi r20,lo8(1) 199 0154 50E0 ldi r21,0 200 0156 BE01 movw r22,r28 201 0158 6F5F subi r22,-1 202 015a 7F4F sbci r23,-1 203 015c C601 movw r24,r12 204 015e 0E94 0000 call _write 205 0162 0197 sbiw r24,1 206 0164 01F4 brne .L28 207 0166 40E0 ldi r20,0 208 0168 50E0 ldi r21,0 209 016a 60E0 ldi r22,0 210 016c 70E0 ldi r23,0 211 016e C601 movw r24,r12 212 0170 0E94 0000 call _write 213 .L37: 214 0174 81E0 ldi r24,lo8(1) 215 0176 00C0 rjmp .L25 216 .L28: 217 0178 81E0 ldi r24,lo8(1) 218 017a 92E0 ldi r25,lo8(2) 219 017c E92E mov r14,r25 220 017e F12C mov r15,__zero_reg__ 221 .L25: 222 0180 8501 movw r16,r10 223 0182 00C0 rjmp .L2 224 .L20: 225 0184 8823 tst r24 226 0186 01F4 brne .+2 227 0188 00C0 rjmp .L24 228 018a E114 cp r14,__zero_reg__ GAS LISTING /tmp/ccUl05vQ.s page 5 229 018c F104 cpc r15,__zero_reg__ 230 018e 01F0 breq .+2 231 0190 00C0 rjmp .L24 232 0192 41E0 ldi r20,lo8(1) 233 0194 50E0 ldi r21,0 234 0196 60E0 ldi r22,lo8(.LC0) 235 0198 70E0 ldi r23,hi8(.LC0) 236 019a C601 movw r24,r12 237 019c 0E94 0000 call _write 238 01a0 0197 sbiw r24,1 239 01a2 01F4 brne .+2 240 01a4 00C0 rjmp .L24 241 01a6 82E0 ldi r24,lo8(2) 242 01a8 E82E mov r14,r24 243 01aa F12C mov r15,__zero_reg__ 244 01ac 00C0 rjmp .L35 245 .L27: 246 01ae 80E0 ldi r24,0 247 01b0 00C0 rjmp .L25 248 .L35: 249 01b2 C701 movw r24,r14 250 /* epilogue start */ 251 01b4 0F90 pop __tmp_reg__ 252 01b6 DF91 pop r29 253 01b8 CF91 pop r28 254 01ba 1F91 pop r17 255 01bc 0F91 pop r16 256 01be FF90 pop r15 257 01c0 EF90 pop r14 258 01c2 DF90 pop r13 259 01c4 CF90 pop r12 260 01c6 BF90 pop r11 261 01c8 AF90 pop r10 262 01ca 9F90 pop r9 263 01cc 8F90 pop r8 264 01ce 7F90 pop r7 265 01d0 6F90 pop r6 266 01d2 0895 ret 267 .size NutChatSendString, .-NutChatSendString 268 .section .text.strechr.constprop.1,"ax",@progbits 269 .type strechr.constprop.1, @function 270 strechr.constprop.1: 271 /* prologue: function */ 272 /* frame size = 0 */ 273 /* stack size = 0 */ 274 .L__stack_usage = 0 275 0000 FC01 movw r30,r24 276 .L41: 277 0002 8081 ld r24,Z 278 0004 8823 tst r24 279 0006 01F0 breq .L49 280 0008 8C35 cpi r24,lo8(92) 281 000a 01F4 brne .L42 282 000c 8181 ldd r24,Z+1 283 000e 8823 tst r24 284 0010 01F0 breq .L48 285 0012 3296 adiw r30,2 GAS LISTING /tmp/ccUl05vQ.s page 6 286 0014 00C0 rjmp .L41 287 .L42: 288 0016 8D32 cpi r24,lo8(45) 289 0018 01F0 breq .L47 290 .L48: 291 001a 3196 adiw r30,1 292 001c 00C0 rjmp .L41 293 .L49: 294 001e 90E0 ldi r25,0 295 0020 0895 ret 296 .L47: 297 0022 CF01 movw r24,r30 298 0024 0895 ret 299 .size strechr.constprop.1, .-strechr.constprop.1 300 .section .text.NutChatExpectString,"ax",@progbits 301 .global NutChatExpectString 302 .type NutChatExpectString, @function 303 NutChatExpectString: 304 0000 8F92 push r8 305 0002 9F92 push r9 306 0004 AF92 push r10 307 0006 BF92 push r11 308 0008 CF92 push r12 309 000a DF92 push r13 310 000c EF92 push r14 311 000e FF92 push r15 312 0010 0F93 push r16 313 0012 1F93 push r17 314 0014 CF93 push r28 315 0016 DF93 push r29 316 0018 1F92 push __zero_reg__ 317 001a CDB7 in r28,__SP_L__ 318 001c DEB7 in r29,__SP_H__ 319 /* prologue: function */ 320 /* frame size = 1 */ 321 /* stack size = 13 */ 322 .L__stack_usage = 13 323 001e 8C01 movw r16,r24 324 0020 D62E mov r13,r22 325 0022 C72E mov r12,r23 326 0024 E62E mov r14,r22 327 0026 F72E mov r15,r23 328 0028 82E0 ldi r24,lo8(2) 329 002a B82E mov r11,r24 330 .L51: 331 002c D701 movw r26,r14 332 002e 8C91 ld r24,X 333 0030 8823 tst r24 334 0032 01F4 brne .+2 335 0034 00C0 rjmp .L72 336 0036 41E0 ldi r20,lo8(1) 337 0038 50E0 ldi r21,0 338 003a BE01 movw r22,r28 339 003c 6F5F subi r22,-1 340 003e 7F4F sbci r23,-1 341 0040 D801 movw r26,r16 342 0042 8D91 ld r24,X+ GAS LISTING /tmp/ccUl05vQ.s page 7 343 0044 9C91 ld r25,X 344 0046 0E94 0000 call _read 345 004a 0197 sbiw r24,1 346 004c 01F0 breq .+2 347 004e 00C0 rjmp .L70 348 0050 2981 ldd r18,Y+1 349 0052 F701 movw r30,r14 350 0054 8081 ld r24,Z 351 0056 8217 cp r24,r18 352 0058 01F0 breq .L53 353 005a ED2C mov r14,r13 354 005c FC2C mov r15,r12 355 .L53: 356 005e D701 movw r26,r14 357 0060 8C91 ld r24,X 358 0062 2813 cpse r18,r24 359 0064 00C0 rjmp .L54 360 0066 BFEF ldi r27,-1 361 0068 EB1A sub r14,r27 362 006a FB0A sbc r15,r27 363 .L54: 364 006c F801 movw r30,r16 365 006e A380 ldd r10,Z+3 366 0070 D801 movw r26,r16 367 0072 5896 adiw r26,24 368 0074 A801 movw r20,r16 369 0076 4C5F subi r20,-4 370 0078 5F4F sbci r21,-1 371 007a 80E0 ldi r24,0 372 007c 90E0 ldi r25,0 373 .L55: 374 007e 8A15 cp r24,r10 375 0080 00F4 brsh .L73 376 0082 3C91 ld r19,X 377 0084 FA01 movw r30,r20 378 0086 8190 ld r8,Z+ 379 0088 9190 ld r9,Z+ 380 008a AF01 movw r20,r30 381 008c B401 movw r22,r8 382 008e 630F add r22,r19 383 0090 711D adc r23,__zero_reg__ 384 0092 FB01 movw r30,r22 385 0094 6081 ld r22,Z 386 0096 2613 cpse r18,r22 387 0098 00C0 rjmp .L56 388 009a 3F5F subi r19,lo8(-(1)) 389 009c F401 movw r30,r8 390 009e E30F add r30,r19 391 00a0 F11D adc r31,__zero_reg__ 392 00a2 6081 ld r22,Z 393 00a4 6111 cpse r22,__zero_reg__ 394 00a6 00C0 rjmp .L57 395 00a8 0496 adiw r24,4 396 00aa 00C0 rjmp .L52 397 .L56: 398 00ac 31E0 ldi r19,lo8(1) 399 00ae F401 movw r30,r8 GAS LISTING /tmp/ccUl05vQ.s page 8 400 00b0 6081 ld r22,Z 401 00b2 6213 cpse r22,r18 402 00b4 30E0 ldi r19,0 403 .L57: 404 00b6 3D93 st X+,r19 405 00b8 0196 adiw r24,1 406 00ba 00C0 rjmp .L55 407 .L73: 408 00bc D801 movw r26,r16 409 00be 9596 adiw r26,37 410 00c0 9C91 ld r25,X 411 00c2 9597 sbiw r26,37 412 00c4 1916 cp __zero_reg__,r25 413 00c6 04F0 brlt .+2 414 00c8 00C0 rjmp .L51 415 00ca 9496 adiw r26,36 416 00cc 8C91 ld r24,X 417 00ce 482F mov r20,r24 418 00d0 50E0 ldi r21,0 419 00d2 9230 cpi r25,lo8(2) 420 00d4 01F4 brne .L61 421 00d6 8F5F subi r24,lo8(-(1)) 422 00d8 6091 0000 lds r22,chat_report 423 00dc 7091 0000 lds r23,chat_report+1 424 00e0 FB01 movw r30,r22 425 00e2 E40F add r30,r20 426 00e4 F51F adc r31,r21 427 00e6 2083 st Z,r18 428 00e8 00C0 rjmp .L62 429 .L61: 430 00ea D801 movw r26,r16 431 00ec 9296 adiw r26,34 432 00ee ED91 ld r30,X+ 433 00f0 FC91 ld r31,X 434 00f2 9397 sbiw r26,34+1 435 00f4 DF01 movw r26,r30 436 00f6 A40F add r26,r20 437 00f8 B51F adc r27,r21 438 00fa 9C91 ld r25,X 439 00fc 2913 cpse r18,r25 440 00fe 00C0 rjmp .L63 441 0100 8F5F subi r24,lo8(-(1)) 442 0102 6091 0000 lds r22,chat_report 443 0106 7091 0000 lds r23,chat_report+1 444 010a FB01 movw r30,r22 445 010c E40F add r30,r20 446 010e F51F adc r31,r21 447 0110 2083 st Z,r18 448 0112 D801 movw r26,r16 449 0114 9296 adiw r26,34 450 0116 ED91 ld r30,X+ 451 0118 FC91 ld r31,X 452 011a 9397 sbiw r26,34+1 453 011c E80F add r30,r24 454 011e F11D adc r31,__zero_reg__ 455 0120 9081 ld r25,Z 456 0122 9111 cpse r25,__zero_reg__ GAS LISTING /tmp/ccUl05vQ.s page 9 457 0124 00C0 rjmp .L62 458 0126 9596 adiw r26,37 459 0128 BC92 st X,r11 460 012a 00C0 rjmp .L62 461 .L63: 462 012c 81E0 ldi r24,lo8(1) 463 012e 9081 ld r25,Z 464 0130 9213 cpse r25,r18 465 0132 80E0 ldi r24,0 466 .L62: 467 0134 F801 movw r30,r16 468 0136 84A3 std Z+36,r24 469 0138 00C0 rjmp .L51 470 .L72: 471 013a F801 movw r30,r16 472 013c 85A1 ldd r24,Z+37 473 013e 8230 cpi r24,lo8(2) 474 0140 01F4 brne .L71 475 0142 D4A0 ldd r13,Z+36 476 .L66: 477 0144 ED2C mov r14,r13 478 0146 F12C mov r15,__zero_reg__ 479 0148 FFE1 ldi r31,lo8(31) 480 014a FD15 cp r31,r13 481 014c 00F0 brlo .L68 482 014e 41E0 ldi r20,lo8(1) 483 0150 50E0 ldi r21,0 484 0152 BE01 movw r22,r28 485 0154 6F5F subi r22,-1 486 0156 7F4F sbci r23,-1 487 0158 D801 movw r26,r16 488 015a 8D91 ld r24,X+ 489 015c 9C91 ld r25,X 490 015e 0E94 0000 call _read 491 0162 0197 sbiw r24,1 492 0164 01F0 breq .L67 493 .L68: 494 0166 F801 movw r30,r16 495 0168 15A2 std Z+37,__zero_reg__ 496 016a 8091 0000 lds r24,chat_report 497 016e 9091 0000 lds r25,chat_report+1 498 0172 FC01 movw r30,r24 499 0174 EE0D add r30,r14 500 0176 FF1D adc r31,r15 501 0178 1082 st Z,__zero_reg__ 502 017a 00C0 rjmp .L71 503 .L67: 504 017c 8981 ldd r24,Y+1 505 017e 8032 cpi r24,lo8(32) 506 0180 04F0 brlt .L68 507 0182 2091 0000 lds r18,chat_report 508 0186 3091 0000 lds r19,chat_report+1 509 018a F901 movw r30,r18 510 018c EE0D add r30,r14 511 018e FF1D adc r31,r15 512 0190 8083 st Z,r24 513 0192 D394 inc r13 GAS LISTING /tmp/ccUl05vQ.s page 10 514 0194 00C0 rjmp .L66 515 .L70: 516 0196 83E0 ldi r24,lo8(3) 517 0198 90E0 ldi r25,0 518 019a 00C0 rjmp .L52 519 .L71: 520 019c 80E0 ldi r24,0 521 019e 90E0 ldi r25,0 522 .L52: 523 /* epilogue start */ 524 01a0 0F90 pop __tmp_reg__ 525 01a2 DF91 pop r29 526 01a4 CF91 pop r28 527 01a6 1F91 pop r17 528 01a8 0F91 pop r16 529 01aa FF90 pop r15 530 01ac EF90 pop r14 531 01ae DF90 pop r13 532 01b0 CF90 pop r12 533 01b2 BF90 pop r11 534 01b4 AF90 pop r10 535 01b6 9F90 pop r9 536 01b8 8F90 pop r8 537 01ba 0895 ret 538 .size NutChatExpectString, .-NutChatExpectString 539 .section .rodata.str1.1 540 .LC1: 541 0002 4142 4F52 .string "ABORT" 541 5400 542 .LC2: 543 0008 5449 4D45 .string "TIMEOUT" 543 4F55 5400 544 .LC3: 545 0010 5245 504F .string "REPORT" 545 5254 00 546 .section .text.NutChatExpect,"ax",@progbits 547 .global NutChatExpect 548 .type NutChatExpect, @function 549 NutChatExpect: 550 0000 CF92 push r12 551 0002 DF92 push r13 552 0004 EF92 push r14 553 0006 FF92 push r15 554 0008 0F93 push r16 555 000a 1F93 push r17 556 000c CF93 push r28 557 000e DF93 push r29 558 /* prologue: function */ 559 /* frame size = 0 */ 560 /* stack size = 8 */ 561 .L__stack_usage = 8 562 0010 8C01 movw r16,r24 563 0012 EB01 movw r28,r22 564 0014 60E0 ldi r22,lo8(.LC1) 565 0016 70E0 ldi r23,hi8(.LC1) 566 0018 CE01 movw r24,r28 567 001a 0E94 0000 call strcmp GAS LISTING /tmp/ccUl05vQ.s page 11 568 001e 0097 sbiw r24,0 569 0020 01F4 brne .L75 570 0022 21E0 ldi r18,lo8(1) 571 0024 00C0 rjmp .L90 572 .L75: 573 0026 60E0 ldi r22,lo8(.LC2) 574 0028 70E0 ldi r23,hi8(.LC2) 575 002a CE01 movw r24,r28 576 002c 0E94 0000 call strcmp 577 0030 0097 sbiw r24,0 578 0032 01F4 brne .L77 579 0034 22E0 ldi r18,lo8(2) 580 .L90: 581 0036 F801 movw r30,r16 582 .L91: 583 0038 2283 std Z+2,r18 584 003a 00C0 rjmp .L76 585 .L77: 586 003c 60E0 ldi r22,lo8(.LC3) 587 003e 70E0 ldi r23,hi8(.LC3) 588 0040 CE01 movw r24,r28 589 0042 0E94 0000 call strcmp 590 0046 0097 sbiw r24,0 591 0048 01F4 brne .L89 592 004a F801 movw r30,r16 593 004c 14A2 std Z+36,__zero_reg__ 594 004e 21E0 ldi r18,lo8(1) 595 0050 25A3 std Z+37,r18 596 0052 23E0 ldi r18,lo8(3) 597 0054 00C0 rjmp .L91 598 .L81: 599 0056 CE01 movw r24,r28 600 0058 0E94 0000 call strechr.constprop.1 601 005c 0097 sbiw r24,0 602 005e 01F0 breq .L82 603 0060 6C01 movw r12,r24 604 0062 FFEF ldi r31,-1 605 0064 CF1A sub r12,r31 606 0066 DF0A sbc r13,r31 607 0068 FC01 movw r30,r24 608 006a 1082 st Z,__zero_reg__ 609 006c C601 movw r24,r12 610 006e 0E94 0000 call strechr.constprop.1 611 0072 7C01 movw r14,r24 612 0074 0097 sbiw r24,0 613 0076 01F0 breq .L79 614 0078 FC01 movw r30,r24 615 007a 1082 st Z,__zero_reg__ 616 007c 0196 adiw r24,1 617 007e 7C01 movw r14,r24 618 .L79: 619 0080 BE01 movw r22,r28 620 0082 C801 movw r24,r16 621 0084 0E94 0000 call NutChatExpectString 622 0088 8330 cpi r24,3 623 008a 9105 cpc r25,__zero_reg__ 624 008c 01F4 brne .L76 GAS LISTING /tmp/ccUl05vQ.s page 12 625 008e C114 cp r12,__zero_reg__ 626 0090 D104 cpc r13,__zero_reg__ 627 0092 01F0 breq .L84 628 0094 B601 movw r22,r12 629 0096 F801 movw r30,r16 630 0098 8081 ld r24,Z 631 009a 9181 ldd r25,Z+1 632 009c 0E94 0000 call NutChatSendString 633 00a0 0097 sbiw r24,0 634 00a2 01F4 brne .L76 635 00a4 E701 movw r28,r14 636 .L89: 637 00a6 2097 sbiw r28,0 638 00a8 01F4 brne .L81 639 00aa 00C0 rjmp .L92 640 .L82: 641 00ac C12C mov r12,__zero_reg__ 642 00ae D12C mov r13,__zero_reg__ 643 00b0 E12C mov r14,__zero_reg__ 644 00b2 F12C mov r15,__zero_reg__ 645 00b4 00C0 rjmp .L79 646 .L92: 647 00b6 80E0 ldi r24,0 648 00b8 90E0 ldi r25,0 649 00ba 00C0 rjmp .L76 650 .L84: 651 00bc 83E0 ldi r24,lo8(3) 652 00be 90E0 ldi r25,0 653 .L76: 654 /* epilogue start */ 655 00c0 DF91 pop r29 656 00c2 CF91 pop r28 657 00c4 1F91 pop r17 658 00c6 0F91 pop r16 659 00c8 FF90 pop r15 660 00ca EF90 pop r14 661 00cc DF90 pop r13 662 00ce CF90 pop r12 663 00d0 0895 ret 664 .size NutChatExpect, .-NutChatExpect 665 .section .text.NutChatSend,"ax",@progbits 666 .global NutChatSend 667 .type NutChatSend, @function 668 NutChatSend: 669 0000 DF92 push r13 670 0002 EF92 push r14 671 0004 FF92 push r15 672 0006 0F93 push r16 673 0008 1F93 push r17 674 000a CF93 push r28 675 000c DF93 push r29 676 000e 00D0 rcall . 677 0010 1F92 push __zero_reg__ 678 0012 CDB7 in r28,__SP_L__ 679 0014 DEB7 in r29,__SP_H__ 680 /* prologue: function */ 681 /* frame size = 4 */ GAS LISTING /tmp/ccUl05vQ.s page 13 682 /* stack size = 11 */ 683 .L__stack_usage = 11 684 0016 7C01 movw r14,r24 685 0018 8B01 movw r16,r22 686 001a DC01 movw r26,r24 687 001c 1296 adiw r26,2 688 001e 8C91 ld r24,X 689 0020 1297 sbiw r26,2 690 0022 8130 cpi r24,lo8(1) 691 0024 01F0 breq .+2 692 0026 00C0 rjmp .L94 693 0028 1296 adiw r26,2 694 002a 1C92 st X,__zero_reg__ 695 002c 1297 sbiw r26,2 696 002e 1396 adiw r26,3 697 0030 DC90 ld r13,X 698 0032 B9E0 ldi r27,lo8(9) 699 0034 BD15 cp r27,r13 700 0036 00F4 brsh .+2 701 0038 00C0 rjmp .L116 702 003a FB01 movw r30,r22 703 0: 704 003c 0190 ld __tmp_reg__,Z+ 705 003e 0020 tst __tmp_reg__ 706 0040 01F4 brne 0b 707 0042 CF01 movw r24,r30 708 0044 861B sub r24,r22 709 0046 970B sbc r25,r23 710 0048 0E94 0000 call malloc 711 004c FC01 movw r30,r24 712 004e 81E0 ldi r24,lo8(1) 713 0050 8D0D add r24,r13 714 0052 D701 movw r26,r14 715 0054 1396 adiw r26,3 716 0056 8C93 st X,r24 717 0058 1397 sbiw r26,3 718 005a AD0D add r26,r13 719 005c B11D adc r27,__zero_reg__ 720 005e AD0D add r26,r13 721 0060 B11D adc r27,__zero_reg__ 722 0062 1596 adiw r26,4+1 723 0064 FC93 st X,r31 724 0066 EE93 st -X,r30 725 0068 1497 sbiw r26,4 726 006a 6DE0 ldi r22,lo8(13) 727 006c 70E2 ldi r23,lo8(32) 728 006e 89E0 ldi r24,lo8(9) 729 0070 E82E mov r14,r24 730 0072 98E0 ldi r25,lo8(8) 731 0074 D92E mov r13,r25 732 0076 2AE0 ldi r18,lo8(10) 733 0078 F22E mov r15,r18 734 .L96: 735 007a D801 movw r26,r16 736 007c 8C91 ld r24,X 737 007e 8823 tst r24 738 0080 01F4 brne .+2 GAS LISTING /tmp/ccUl05vQ.s page 14 739 0082 00C0 rjmp .L122 740 0084 A801 movw r20,r16 741 0086 8E35 cpi r24,lo8(94) 742 0088 01F4 brne .L97 743 008a 4E5F subi r20,-2 744 008c 5F4F sbci r21,-1 745 008e D801 movw r26,r16 746 0090 1196 adiw r26,1 747 0092 8C91 ld r24,X 748 0094 8F71 andi r24,lo8(31) 749 0096 8083 st Z,r24 750 0098 00C0 rjmp .L98 751 .L97: 752 009a 8C35 cpi r24,lo8(92) 753 009c 01F0 breq .+2 754 009e 00C0 rjmp .L99 755 00a0 4E5F subi r20,-2 756 00a2 5F4F sbci r21,-1 757 00a4 D801 movw r26,r16 758 00a6 1196 adiw r26,1 759 00a8 8C91 ld r24,X 760 00aa 8237 cpi r24,lo8(114) 761 00ac 01F0 breq .L101 762 00ae 04F4 brge .L102 763 00b0 8236 cpi r24,lo8(98) 764 00b2 01F0 breq .L103 765 00b4 8E36 cpi r24,lo8(110) 766 00b6 01F4 brne .L100 767 00b8 F082 st Z,r15 768 00ba 00C0 rjmp .L120 769 .L102: 770 00bc 8337 cpi r24,lo8(115) 771 00be 01F0 breq .L105 772 00c0 8437 cpi r24,lo8(116) 773 00c2 01F4 brne .L100 774 00c4 E082 st Z,r14 775 00c6 00C0 rjmp .L120 776 .L103: 777 00c8 D082 st Z,r13 778 00ca 00C0 rjmp .L120 779 .L101: 780 00cc 6083 st Z,r22 781 00ce 00C0 rjmp .L120 782 .L105: 783 00d0 7083 st Z,r23 784 00d2 00C0 rjmp .L120 785 .L100: 786 00d4 90ED ldi r25,lo8(-48) 787 00d6 980F add r25,r24 788 00d8 9830 cpi r25,lo8(8) 789 00da 00F4 brsh .L107 790 00dc 8770 andi r24,lo8(7) 791 00de D801 movw r26,r16 792 00e0 1296 adiw r26,2 793 00e2 9C91 ld r25,X 794 00e4 20ED ldi r18,lo8(-48) 795 00e6 290F add r18,r25 GAS LISTING /tmp/ccUl05vQ.s page 15 796 00e8 2830 cpi r18,lo8(8) 797 00ea 00F4 brsh .L107 798 00ec B8E0 ldi r27,lo8(8) 799 00ee 8B9F mul r24,r27 800 00f0 9001 movw r18,r0 801 00f2 1124 clr __zero_reg__ 802 00f4 892F mov r24,r25 803 00f6 8770 andi r24,lo8(7) 804 00f8 822B or r24,r18 805 00fa D801 movw r26,r16 806 00fc 1396 adiw r26,3 807 00fe 2C91 ld r18,X 808 0100 90ED ldi r25,lo8(-48) 809 0102 920F add r25,r18 810 0104 9830 cpi r25,lo8(8) 811 0106 00F0 brlo .L108 812 0108 A801 movw r20,r16 813 010a 4D5F subi r20,-3 814 010c 5F4F sbci r21,-1 815 010e 00C0 rjmp .L107 816 .L108: 817 0110 B8E0 ldi r27,lo8(8) 818 0112 8B02 muls r24,r27 819 0114 C001 movw r24,r0 820 0116 1124 clr __zero_reg__ 821 0118 A801 movw r20,r16 822 011a 4C5F subi r20,-4 823 011c 5F4F sbci r21,-1 824 011e 2770 andi r18,lo8(7) 825 0120 822B or r24,r18 826 .L107: 827 0122 8823 tst r24 828 0124 01F0 breq .L98 829 0126 00C0 rjmp .L121 830 .L99: 831 0128 4F5F subi r20,-1 832 012a 5F4F sbci r21,-1 833 .L121: 834 012c 8083 st Z,r24 835 .L120: 836 012e 3196 adiw r30,1 837 .L98: 838 0130 8A01 movw r16,r20 839 0132 00C0 rjmp .L96 840 .L94: 841 0134 8230 cpi r24,lo8(2) 842 0136 01F4 brne .L110 843 0138 F701 movw r30,r14 844 013a 1282 std Z+2,__zero_reg__ 845 013c CB01 movw r24,r22 846 013e 0E94 0000 call atol 847 0142 9B01 movw r18,r22 848 0144 AC01 movw r20,r24 849 0146 A8EE ldi r26,lo8(-24) 850 0148 B3E0 ldi r27,lo8(3) 851 014a 0E94 0000 call __muluhisi3 852 014e 1616 cp __zero_reg__,r22 GAS LISTING /tmp/ccUl05vQ.s page 16 853 0150 1706 cpc __zero_reg__,r23 854 0152 1806 cpc __zero_reg__,r24 855 0154 1906 cpc __zero_reg__,r25 856 0156 04F4 brge .L111 857 0158 6983 std Y+1,r22 858 015a 7A83 std Y+2,r23 859 015c 8B83 std Y+3,r24 860 015e 9C83 std Y+4,r25 861 0160 00C0 rjmp .L112 862 .L111: 863 0162 88EC ldi r24,lo8(-56) 864 0164 9FEA ldi r25,lo8(-81) 865 0166 A0E0 ldi r26,0 866 0168 B0E0 ldi r27,0 867 016a 8983 std Y+1,r24 868 016c 9A83 std Y+2,r25 869 016e AB83 std Y+3,r26 870 0170 BC83 std Y+4,r27 871 .L112: 872 0172 AE01 movw r20,r28 873 0174 4F5F subi r20,-1 874 0176 5F4F sbci r21,-1 875 0178 6BE0 ldi r22,lo8(11) 876 017a 71E0 ldi r23,lo8(1) 877 017c D701 movw r26,r14 878 017e 8D91 ld r24,X+ 879 0180 9C91 ld r25,X 880 0182 0E94 0000 call _ioctl 881 0186 00C0 rjmp .L123 882 .L110: 883 0188 8330 cpi r24,lo8(3) 884 018a 01F4 brne .L113 885 018c F701 movw r30,r14 886 018e 1282 std Z+2,__zero_reg__ 887 0190 81E2 ldi r24,lo8(33) 888 0192 90E0 ldi r25,0 889 0194 0E94 0000 call malloc 890 0198 9093 0000 sts chat_report+1,r25 891 019c 8093 0000 sts chat_report,r24 892 01a0 D801 movw r26,r16 893 0: 894 01a2 0D90 ld __tmp_reg__,X+ 895 01a4 0020 tst __tmp_reg__ 896 01a6 01F4 brne 0b 897 01a8 CD01 movw r24,r26 898 01aa 801B sub r24,r16 899 01ac 910B sbc r25,r17 900 01ae 0E94 0000 call malloc 901 01b2 F701 movw r30,r14 902 01b4 82A3 std Z+34,r24 903 01b6 93A3 std Z+35,r25 904 01b8 D801 movw r26,r16 905 01ba FC01 movw r30,r24 906 .L114: 907 01bc 8D91 ld r24,X+ 908 01be 8823 tst r24 909 01c0 01F0 breq .L122 GAS LISTING /tmp/ccUl05vQ.s page 17 910 01c2 8193 st Z+,r24 911 01c4 00C0 rjmp .L114 912 .L122: 913 01c6 1082 st Z,__zero_reg__ 914 .L123: 915 01c8 80E0 ldi r24,0 916 01ca 90E0 ldi r25,0 917 01cc 00C0 rjmp .L95 918 .L113: 919 01ce D701 movw r26,r14 920 01d0 8D91 ld r24,X+ 921 01d2 9C91 ld r25,X 922 01d4 0E94 0000 call NutChatSendString 923 01d8 00C0 rjmp .L95 924 .L116: 925 01da 81E0 ldi r24,lo8(1) 926 01dc 90E0 ldi r25,0 927 .L95: 928 /* epilogue start */ 929 01de 0F90 pop __tmp_reg__ 930 01e0 0F90 pop __tmp_reg__ 931 01e2 0F90 pop __tmp_reg__ 932 01e4 0F90 pop __tmp_reg__ 933 01e6 DF91 pop r29 934 01e8 CF91 pop r28 935 01ea 1F91 pop r17 936 01ec 0F91 pop r16 937 01ee FF90 pop r15 938 01f0 EF90 pop r14 939 01f2 DF90 pop r13 940 01f4 0895 ret 941 .size NutChatSend, .-NutChatSend 942 .section .text.NutChatCreate,"ax",@progbits 943 .global NutChatCreate 944 .type NutChatCreate, @function 945 NutChatCreate: 946 0000 CF93 push r28 947 0002 DF93 push r29 948 /* prologue: function */ 949 /* frame size = 0 */ 950 /* stack size = 2 */ 951 .L__stack_usage = 2 952 0004 EC01 movw r28,r24 953 0006 86E2 ldi r24,lo8(38) 954 0008 90E0 ldi r25,0 955 000a 0E94 0000 call malloc 956 000e 0097 sbiw r24,0 957 0010 01F0 breq .L125 958 0012 26E2 ldi r18,lo8(38) 959 0014 FC01 movw r30,r24 960 0: 961 0016 1192 st Z+,__zero_reg__ 962 0018 2A95 dec r18 963 001a 01F4 brne 0b 964 001c FC01 movw r30,r24 965 001e D183 std Z+1,r29 966 0020 C083 st Z,r28 GAS LISTING /tmp/ccUl05vQ.s page 18 967 .L125: 968 /* epilogue start */ 969 0022 DF91 pop r29 970 0024 CF91 pop r28 971 0026 0895 ret 972 .size NutChatCreate, .-NutChatCreate 973 .section .text.NutChatDestroy,"ax",@progbits 974 .global NutChatDestroy 975 .type NutChatDestroy, @function 976 NutChatDestroy: 977 0000 0F93 push r16 978 0002 1F93 push r17 979 0004 CF93 push r28 980 /* prologue: function */ 981 /* frame size = 0 */ 982 /* stack size = 3 */ 983 .L__stack_usage = 3 984 0006 8C01 movw r16,r24 985 0008 892B or r24,r25 986 000a 01F0 breq .L129 987 000c C0E0 ldi r28,0 988 .L131: 989 000e F801 movw r30,r16 990 0010 8381 ldd r24,Z+3 991 0012 C817 cp r28,r24 992 0014 00F4 brsh .L133 993 0016 F801 movw r30,r16 994 0018 EC0F add r30,r28 995 001a F11D adc r31,__zero_reg__ 996 001c EC0F add r30,r28 997 001e F11D adc r31,__zero_reg__ 998 0020 8481 ldd r24,Z+4 999 0022 9581 ldd r25,Z+5 1000 0024 0E94 0000 call free 1001 0028 CF5F subi r28,lo8(-(1)) 1002 002a 00C0 rjmp .L131 1003 .L133: 1004 002c C801 movw r24,r16 1005 /* epilogue start */ 1006 002e CF91 pop r28 1007 0030 1F91 pop r17 1008 0032 0F91 pop r16 1009 0034 0C94 0000 jmp free 1010 .L129: 1011 /* epilogue start */ 1012 0038 CF91 pop r28 1013 003a 1F91 pop r17 1014 003c 0F91 pop r16 1015 003e 0895 ret 1016 .size NutChatDestroy, .-NutChatDestroy 1017 .section .text.NutChatProc,"ax",@progbits 1018 .type NutChatProc, @function 1019 NutChatProc: 1020 0000 7F92 push r7 1021 0002 8F92 push r8 1022 0004 9F92 push r9 1023 0006 AF92 push r10 GAS LISTING /tmp/ccUl05vQ.s page 19 1024 0008 BF92 push r11 1025 000a CF92 push r12 1026 000c DF92 push r13 1027 000e EF92 push r14 1028 0010 FF92 push r15 1029 0012 0F93 push r16 1030 0014 1F93 push r17 1031 0016 CF93 push r28 1032 0018 DF93 push r29 1033 001a CDB7 in r28,__SP_L__ 1034 001c DEB7 in r29,__SP_H__ 1035 001e 2C97 sbiw r28,12 1036 0020 0FB6 in __tmp_reg__,__SREG__ 1037 0022 F894 cli 1038 0024 DEBF out __SP_H__,r29 1039 0026 0FBE out __SREG__,__tmp_reg__ 1040 0028 CDBF out __SP_L__,r28 1041 /* prologue: function */ 1042 /* frame size = 12 */ 1043 /* stack size = 25 */ 1044 .L__stack_usage = 25 1045 002a 5C01 movw r10,r24 1046 002c 7B01 movw r14,r22 1047 002e 0E94 0000 call NutChatCreate 1048 0032 4C01 movw r8,r24 1049 0034 892B or r24,r25 1050 0036 01F4 brne .+2 1051 0038 00C0 rjmp .L153 1052 003a AE01 movw r20,r28 1053 003c 4B5F subi r20,-5 1054 003e 5F4F sbci r21,-1 1055 0040 6CE0 ldi r22,lo8(12) 1056 0042 71E0 ldi r23,lo8(1) 1057 0044 C501 movw r24,r10 1058 0046 0E94 0000 call _ioctl 1059 004a AE01 movw r20,r28 1060 004c 4F5F subi r20,-1 1061 004e 5F4F sbci r21,-1 1062 0050 6EE0 ldi r22,lo8(14) 1063 0052 71E0 ldi r23,lo8(1) 1064 0054 C501 movw r24,r10 1065 0056 0E94 0000 call _ioctl 1066 005a 88EC ldi r24,lo8(-56) 1067 005c 9FEA ldi r25,lo8(-81) 1068 005e A0E0 ldi r26,0 1069 0060 B0E0 ldi r27,0 1070 0062 8987 std Y+9,r24 1071 0064 9A87 std Y+10,r25 1072 0066 AB87 std Y+11,r26 1073 0068 BC87 std Y+12,r27 1074 006a AE01 movw r20,r28 1075 006c 475F subi r20,-9 1076 006e 5F4F sbci r21,-1 1077 0070 6BE0 ldi r22,lo8(11) 1078 0072 71E0 ldi r23,lo8(1) 1079 0074 C501 movw r24,r10 1080 0076 0E94 0000 call _ioctl GAS LISTING /tmp/ccUl05vQ.s page 20 1081 007a 88E8 ldi r24,lo8(-120) 1082 007c 93E1 ldi r25,lo8(19) 1083 007e A0E0 ldi r26,0 1084 0080 B0E0 ldi r27,0 1085 0082 8987 std Y+9,r24 1086 0084 9A87 std Y+10,r25 1087 0086 AB87 std Y+11,r26 1088 0088 BC87 std Y+12,r27 1089 008a AE01 movw r20,r28 1090 008c 475F subi r20,-9 1091 008e 5F4F sbci r21,-1 1092 0090 6DE0 ldi r22,lo8(13) 1093 0092 71E0 ldi r23,lo8(1) 1094 0094 C501 movw r24,r10 1095 0096 0E94 0000 call _ioctl 1096 009a 712C mov r7,__zero_reg__ 1097 009c C12C mov r12,__zero_reg__ 1098 009e D12C mov r13,__zero_reg__ 1099 .L136: 1100 00a0 F701 movw r30,r14 1101 00a2 8081 ld r24,Z 1102 00a4 8111 cpse r24,__zero_reg__ 1103 00a6 00C0 rjmp .L150 1104 .L152: 1105 00a8 AE01 movw r20,r28 1106 00aa 4B5F subi r20,-5 1107 00ac 5F4F sbci r21,-1 1108 00ae 6BE0 ldi r22,lo8(11) 1109 00b0 71E0 ldi r23,lo8(1) 1110 00b2 C501 movw r24,r10 1111 00b4 0E94 0000 call _ioctl 1112 00b8 AE01 movw r20,r28 1113 00ba 4F5F subi r20,-1 1114 00bc 5F4F sbci r21,-1 1115 00be 6DE0 ldi r22,lo8(13) 1116 00c0 71E0 ldi r23,lo8(1) 1117 00c2 C501 movw r24,r10 1118 00c4 0E94 0000 call _ioctl 1119 00c8 C401 movw r24,r8 1120 00ca 0E94 0000 call NutChatDestroy 1121 00ce C601 movw r24,r12 1122 00d0 00C0 rjmp .L135 1123 .L150: 1124 00d2 C114 cp r12,__zero_reg__ 1125 00d4 D104 cpc r13,__zero_reg__ 1126 00d6 01F4 brne .L152 1127 00d8 8032 cpi r24,lo8(32) 1128 00da 01F0 breq .L137 1129 00dc 97EF ldi r25,lo8(-9) 1130 00de 980F add r25,r24 1131 00e0 9230 cpi r25,lo8(2) 1132 00e2 00F0 brlo .L137 1133 00e4 8D30 cpi r24,lo8(13) 1134 00e6 01F4 brne .L138 1135 .L137: 1136 00e8 8701 movw r16,r14 1137 00ea 0F5F subi r16,-1 GAS LISTING /tmp/ccUl05vQ.s page 21 1138 00ec 1F4F sbci r17,-1 1139 00ee 00C0 rjmp .L139 1140 .L138: 1141 00f0 8232 cpi r24,lo8(34) 1142 00f2 01F0 breq .L140 1143 00f4 8732 cpi r24,lo8(39) 1144 00f6 01F0 breq .L140 1145 00f8 F701 movw r30,r14 1146 00fa 00C0 rjmp .L141 1147 .L140: 1148 00fc 9FEF ldi r25,-1 1149 00fe E91A sub r14,r25 1150 0100 F90A sbc r15,r25 1151 0102 8701 movw r16,r14 1152 .L142: 1153 0104 F801 movw r30,r16 1154 0106 9081 ld r25,Z 1155 0108 8917 cp r24,r25 1156 010a 01F0 breq .L143 1157 010c 9923 tst r25 1158 010e 01F0 breq .L154 1159 0110 9801 movw r18,r16 1160 0112 2F5F subi r18,-1 1161 0114 3F4F sbci r19,-1 1162 0116 9C35 cpi r25,lo8(92) 1163 0118 01F4 brne .L144 1164 011a F801 movw r30,r16 1165 011c 9181 ldd r25,Z+1 1166 011e 9923 tst r25 1167 0120 01F0 breq .L144 1168 0122 2F5F subi r18,-1 1169 0124 3F4F sbci r19,-1 1170 .L144: 1171 0126 8901 movw r16,r18 1172 0128 00C0 rjmp .L142 1173 .L179: 1174 012a 97EF ldi r25,lo8(-9) 1175 012c 980F add r25,r24 1176 012e 9230 cpi r25,lo8(2) 1177 0130 00F0 brlo .L143 1178 0132 8D30 cpi r24,lo8(13) 1179 0134 01F0 breq .L143 1180 .L141: 1181 0136 8F01 movw r16,r30 1182 0138 8191 ld r24,Z+ 1183 013a 982F mov r25,r24 1184 013c 9F7D andi r25,lo8(-33) 1185 013e 01F4 brne .L179 1186 0140 00C0 rjmp .L143 1187 .L154: 1188 0142 CC24 clr r12 1189 0144 C394 inc r12 1190 0146 D12C mov r13,__zero_reg__ 1191 .L143: 1192 0148 F801 movw r30,r16 1193 014a 8081 ld r24,Z 1194 014c 8823 tst r24 GAS LISTING /tmp/ccUl05vQ.s page 22 1195 014e 01F0 breq .L146 1196 0150 1082 st Z,__zero_reg__ 1197 0152 0F5F subi r16,-1 1198 0154 1F4F sbci r17,-1 1199 .L146: 1200 0156 CD28 or r12,r13 1201 0158 01F4 brne .L155 1202 015a B701 movw r22,r14 1203 015c C401 movw r24,r8 1204 015e 7720 tst r7 1205 0160 01F0 breq .L147 1206 0162 0E94 0000 call NutChatSend 1207 0166 00C0 rjmp .L178 1208 .L147: 1209 0168 0E94 0000 call NutChatExpect 1210 .L178: 1211 016c 6C01 movw r12,r24 1212 016e 81E0 ldi r24,lo8(1) 1213 0170 7110 cpse r7,__zero_reg__ 1214 0172 80E0 ldi r24,0 1215 .L149: 1216 0174 782E mov r7,r24 1217 0176 00C0 rjmp .L139 1218 .L155: 1219 0178 CC24 clr r12 1220 017a C394 inc r12 1221 017c D12C mov r13,__zero_reg__ 1222 .L139: 1223 017e 7801 movw r14,r16 1224 0180 00C0 rjmp .L136 1225 .L153: 1226 0182 82E0 ldi r24,lo8(2) 1227 0184 90E0 ldi r25,0 1228 .L135: 1229 /* epilogue start */ 1230 0186 2C96 adiw r28,12 1231 0188 0FB6 in __tmp_reg__,__SREG__ 1232 018a F894 cli 1233 018c DEBF out __SP_H__,r29 1234 018e 0FBE out __SREG__,__tmp_reg__ 1235 0190 CDBF out __SP_L__,r28 1236 0192 DF91 pop r29 1237 0194 CF91 pop r28 1238 0196 1F91 pop r17 1239 0198 0F91 pop r16 1240 019a FF90 pop r15 1241 019c EF90 pop r14 1242 019e DF90 pop r13 1243 01a0 CF90 pop r12 1244 01a2 BF90 pop r11 1245 01a4 AF90 pop r10 1246 01a6 9F90 pop r9 1247 01a8 8F90 pop r8 1248 01aa 7F90 pop r7 1249 01ac 0895 ret 1250 .size NutChatProc, .-NutChatProc 1251 .section .text.NutChat,"ax",@progbits GAS LISTING /tmp/ccUl05vQ.s page 23 1252 .global NutChat 1253 .type NutChat, @function 1254 NutChat: 1255 0000 0F93 push r16 1256 0002 1F93 push r17 1257 0004 CF93 push r28 1258 0006 DF93 push r29 1259 /* prologue: function */ 1260 /* frame size = 0 */ 1261 /* stack size = 4 */ 1262 .L__stack_usage = 4 1263 0008 8C01 movw r16,r24 1264 000a CB01 movw r24,r22 1265 000c 0E94 0000 call strdup 1266 0010 EC01 movw r28,r24 1267 0012 0097 sbiw r24,0 1268 0014 01F0 breq .L182 1269 0016 BC01 movw r22,r24 1270 0018 C801 movw r24,r16 1271 001a 0E94 0000 call NutChatProc 1272 001e 8C01 movw r16,r24 1273 0020 CE01 movw r24,r28 1274 0022 0E94 0000 call free 1275 0026 00C0 rjmp .L181 1276 .L182: 1277 0028 0FEF ldi r16,lo8(-1) 1278 002a 1FEF ldi r17,lo8(-1) 1279 .L181: 1280 002c C801 movw r24,r16 1281 /* epilogue start */ 1282 002e DF91 pop r29 1283 0030 CF91 pop r28 1284 0032 1F91 pop r17 1285 0034 0F91 pop r16 1286 0036 0895 ret 1287 .size NutChat, .-NutChat 1288 .section .text.NutChat_P,"ax",@progbits 1289 .global NutChat_P 1290 .type NutChat_P, @function 1291 NutChat_P: 1292 0000 EF92 push r14 1293 0002 FF92 push r15 1294 0004 0F93 push r16 1295 0006 1F93 push r17 1296 0008 CF93 push r28 1297 000a DF93 push r29 1298 000c 1F92 push __zero_reg__ 1299 000e 1F92 push __zero_reg__ 1300 0010 CDB7 in r28,__SP_L__ 1301 0012 DEB7 in r29,__SP_H__ 1302 /* prologue: function */ 1303 /* frame size = 2 */ 1304 /* stack size = 8 */ 1305 .L__stack_usage = 8 1306 0014 8C01 movw r16,r24 1307 0016 CB01 movw r24,r22 1308 0018 6983 std Y+1,r22 GAS LISTING /tmp/ccUl05vQ.s page 24 1309 001a 7A83 std Y+2,r23 1310 001c 0E94 0000 call __strlen_P 1311 0020 0196 adiw r24,1 1312 0022 0E94 0000 call malloc 1313 0026 7C01 movw r14,r24 1314 0028 6981 ldd r22,Y+1 1315 002a 7A81 ldd r23,Y+2 1316 002c 0097 sbiw r24,0 1317 002e 01F0 breq .L185 1318 0030 0E94 0000 call strcpy_P 1319 0034 B701 movw r22,r14 1320 0036 C801 movw r24,r16 1321 0038 0E94 0000 call NutChatProc 1322 003c 8C01 movw r16,r24 1323 003e C701 movw r24,r14 1324 0040 0E94 0000 call free 1325 0044 00C0 rjmp .L184 1326 .L185: 1327 0046 0FEF ldi r16,lo8(-1) 1328 0048 1FEF ldi r17,lo8(-1) 1329 .L184: 1330 004a C801 movw r24,r16 1331 /* epilogue start */ 1332 004c 0F90 pop __tmp_reg__ 1333 004e 0F90 pop __tmp_reg__ 1334 0050 DF91 pop r29 1335 0052 CF91 pop r28 1336 0054 1F91 pop r17 1337 0056 0F91 pop r16 1338 0058 FF90 pop r15 1339 005a EF90 pop r14 1340 005c 0895 ret 1341 .size NutChat_P, .-NutChat_P 1342 .comm chat_report,2,1 1343 .ident "GCC: (GNU) 5.3.0" 1344 .global __do_copy_data 1345 .global __do_clear_bss GAS LISTING /tmp/ccUl05vQ.s page 25 DEFINED SYMBOLS *ABS*:0000000000000000 chat.c /tmp/ccUl05vQ.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccUl05vQ.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccUl05vQ.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccUl05vQ.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccUl05vQ.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccUl05vQ.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccUl05vQ.s:13 .text.NutChatSendString:0000000000000000 NutChatSendString /tmp/ccUl05vQ.s:270 .text.strechr.constprop.1:0000000000000000 strechr.constprop.1 /tmp/ccUl05vQ.s:303 .text.NutChatExpectString:0000000000000000 NutChatExpectString *COM*:0000000000000002 chat_report /tmp/ccUl05vQ.s:549 .text.NutChatExpect:0000000000000000 NutChatExpect /tmp/ccUl05vQ.s:668 .text.NutChatSend:0000000000000000 NutChatSend /tmp/ccUl05vQ.s:945 .text.NutChatCreate:0000000000000000 NutChatCreate /tmp/ccUl05vQ.s:976 .text.NutChatDestroy:0000000000000000 NutChatDestroy /tmp/ccUl05vQ.s:1019 .text.NutChatProc:0000000000000000 NutChatProc /tmp/ccUl05vQ.s:1254 .text.NutChat:0000000000000000 NutChat /tmp/ccUl05vQ.s:1291 .text.NutChat_P:0000000000000000 NutChat_P UNDEFINED SYMBOLS _read _write NutSleep NutDelay strcmp malloc atol __muluhisi3 _ioctl free strdup __strlen_P strcpy_P __do_copy_data __do_clear_bss