GAS LISTING /tmp/ccOYgVUX.s page 1 1 .file "spi_lcd_st7565r.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.St7565rIOCtl,"ax",@progbits 9 .type St7565rIOCtl, @function 10 St7565rIOCtl: 11 /* prologue: function */ 12 /* frame size = 0 */ 13 /* stack size = 0 */ 14 .L__stack_usage = 0 15 0000 80E0 ldi r24,0 16 0002 90E0 ldi r25,0 17 0004 0895 ret 18 .size St7565rIOCtl, .-St7565rIOCtl 19 .section .text.St7565rRead,"ax",@progbits 20 .type St7565rRead, @function 21 St7565rRead: 22 0000 AF92 push r10 23 0002 BF92 push r11 24 0004 CF92 push r12 25 0006 DF92 push r13 26 0008 EF92 push r14 27 000a FF92 push r15 28 000c 0F93 push r16 29 000e 1F93 push r17 30 0010 CF93 push r28 31 0012 DF93 push r29 32 /* prologue: function */ 33 /* frame size = 0 */ 34 /* stack size = 10 */ 35 .L__stack_usage = 10 36 0014 FB01 movw r30,r22 37 0016 EC01 movw r28,r24 38 0018 A881 ld r26,Y 39 001a B981 ldd r27,Y+1 40 001c 5196 adiw r26,17 41 001e 0D91 ld r16,X+ 42 0020 1C91 ld r17,X 43 0022 5297 sbiw r26,17+1 44 0024 E801 movw r28,r16 45 0026 AE81 ldd r26,Y+6 46 0028 BF81 ldd r27,Y+7 47 002a 1097 sbiw r26,0 48 002c 01F4 brne .+2 49 002e 00C0 rjmp .L21 50 0030 3097 sbiw r30,0 51 0032 01F4 brne .+2 52 0034 00C0 rjmp .L21 53 0036 8A81 ldd r24,Y+2 54 0038 9B81 ldd r25,Y+3 55 003a 7C01 movw r14,r24 56 003c 97FF sbrs r25,7 57 003e 00C0 rjmp .L4 GAS LISTING /tmp/ccOYgVUX.s page 2 58 0040 D7E0 ldi r29,7 59 0042 ED0E add r14,r29 60 0044 F11C adc r15,__zero_reg__ 61 .L4: 62 0046 23E0 ldi r18,3 63 1: 64 0048 F594 asr r15 65 004a E794 ror r14 66 004c 2A95 dec r18 67 004e 01F4 brne 1b 68 0050 E801 movw r28,r16 69 0052 2C81 ldd r18,Y+4 70 0054 3D81 ldd r19,Y+5 71 0056 829F mul r24,r18 72 0058 E001 movw r28,r0 73 005a 839F mul r24,r19 74 005c D00D add r29,r0 75 005e 929F mul r25,r18 76 0060 D00D add r29,r0 77 0062 1124 clr r1 78 0064 D7FD sbrc r29,7 79 0066 2796 adiw r28,7 80 .L5: 81 0068 83E0 ldi r24,3 82 1: 83 006a D595 asr r29 84 006c C795 ror r28 85 006e 8A95 dec r24 86 0070 01F4 brne 1b 87 0072 4C17 cp r20,r28 88 0074 5D07 cpc r21,r29 89 0076 04F4 brge .L6 90 0078 EA01 movw r28,r20 91 .L6: 92 007a C701 movw r24,r14 93 007c C12C mov r12,__zero_reg__ 94 007e D12C mov r13,__zero_reg__ 95 0080 21E0 ldi r18,lo8(1) 96 0082 41E0 ldi r20,lo8(1) 97 .L7: 98 0084 CC16 cp r12,r28 99 0086 DD06 cpc r13,r29 100 0088 04F0 brlt .+2 101 008a 00C0 rjmp .L47 102 008c 0197 sbiw r24,1 103 008e 1082 st Z,__zero_reg__ 104 0090 3FEF ldi r19,-1 105 0092 C31A sub r12,r19 106 0094 D30A sbc r13,r19 107 0096 3C91 ld r19,X 108 0098 3223 and r19,r18 109 009a 01F0 breq .L8 110 009c 4083 st Z,r20 111 .L8: 112 009e 1196 adiw r26,1 113 00a0 3C91 ld r19,X 114 00a2 1197 sbiw r26,1 GAS LISTING /tmp/ccOYgVUX.s page 3 115 00a4 3223 and r19,r18 116 00a6 01F0 breq .L9 117 00a8 3081 ld r19,Z 118 00aa 3260 ori r19,lo8(2) 119 00ac 3083 st Z,r19 120 .L9: 121 00ae 1296 adiw r26,2 122 00b0 3C91 ld r19,X 123 00b2 1297 sbiw r26,2 124 00b4 3223 and r19,r18 125 00b6 01F0 breq .L10 126 00b8 3081 ld r19,Z 127 00ba 3460 ori r19,lo8(4) 128 00bc 3083 st Z,r19 129 .L10: 130 00be 1396 adiw r26,3 131 00c0 3C91 ld r19,X 132 00c2 1397 sbiw r26,3 133 00c4 3223 and r19,r18 134 00c6 01F0 breq .L11 135 00c8 3081 ld r19,Z 136 00ca 3860 ori r19,lo8(8) 137 00cc 3083 st Z,r19 138 .L11: 139 00ce 1496 adiw r26,4 140 00d0 3C91 ld r19,X 141 00d2 1497 sbiw r26,4 142 00d4 3223 and r19,r18 143 00d6 01F0 breq .L12 144 00d8 3081 ld r19,Z 145 00da 3061 ori r19,lo8(16) 146 00dc 3083 st Z,r19 147 .L12: 148 00de 1596 adiw r26,5 149 00e0 3C91 ld r19,X 150 00e2 1597 sbiw r26,5 151 00e4 3223 and r19,r18 152 00e6 01F0 breq .L13 153 00e8 3081 ld r19,Z 154 00ea 3062 ori r19,lo8(32) 155 00ec 3083 st Z,r19 156 .L13: 157 00ee 1696 adiw r26,6 158 00f0 3C91 ld r19,X 159 00f2 1697 sbiw r26,6 160 00f4 3223 and r19,r18 161 00f6 01F0 breq .L14 162 00f8 3081 ld r19,Z 163 00fa 3064 ori r19,lo8(64) 164 00fc 3083 st Z,r19 165 .L14: 166 00fe 1796 adiw r26,7 167 0100 3C91 ld r19,X 168 0102 1797 sbiw r26,7 169 0104 3223 and r19,r18 170 0106 01F0 breq .L15 171 0108 3081 ld r19,Z GAS LISTING /tmp/ccOYgVUX.s page 4 172 010a 3068 ori r19,lo8(-128) 173 010c 3083 st Z,r19 174 .L15: 175 010e 0097 sbiw r24,0 176 0110 01F0 breq .L16 177 0112 1896 adiw r26,8 178 0114 00C0 rjmp .L17 179 .L16: 180 0116 220F lsl r18 181 0118 01F4 brne .L18 182 011a 21E0 ldi r18,lo8(1) 183 .L18: 184 011c D801 movw r26,r16 185 011e 1296 adiw r26,2 186 0120 AD90 ld r10,X+ 187 0122 BC90 ld r11,X 188 0124 1397 sbiw r26,2+1 189 0126 C601 movw r24,r12 190 0128 B501 movw r22,r10 191 012a 0E94 0000 call __divmodhi4 192 012e 6A9D mul r22,r10 193 0130 C001 movw r24,r0 194 0132 6B9D mul r22,r11 195 0134 900D add r25,r0 196 0136 7A9D mul r23,r10 197 0138 900D add r25,r0 198 013a 1124 clr r1 199 013c D801 movw r26,r16 200 013e 1696 adiw r26,6 201 0140 6D91 ld r22,X+ 202 0142 7C91 ld r23,X 203 0144 1797 sbiw r26,6+1 204 0146 DB01 movw r26,r22 205 0148 A80F add r26,r24 206 014a B91F adc r27,r25 207 014c C701 movw r24,r14 208 .L17: 209 014e 3196 adiw r30,1 210 0150 00C0 rjmp .L7 211 .L47: 212 0152 CE01 movw r24,r28 213 0154 00C0 rjmp .L3 214 .L21: 215 0156 80E0 ldi r24,0 216 0158 90E0 ldi r25,0 217 .L3: 218 /* epilogue start */ 219 015a DF91 pop r29 220 015c CF91 pop r28 221 015e 1F91 pop r17 222 0160 0F91 pop r16 223 0162 FF90 pop r15 224 0164 EF90 pop r14 225 0166 DF90 pop r13 226 0168 CF90 pop r12 227 016a BF90 pop r11 228 016c AF90 pop r10 GAS LISTING /tmp/ccOYgVUX.s page 5 229 016e 0895 ret 230 .size St7565rRead, .-St7565rRead 231 .section .text.St7565rWriteCmd,"ax",@progbits 232 .type St7565rWriteCmd, @function 233 St7565rWriteCmd: 234 0000 CF92 push r12 235 0002 DF92 push r13 236 0004 EF92 push r14 237 0006 FF92 push r15 238 0008 0F93 push r16 239 000a 1F93 push r17 240 000c CF93 push r28 241 000e DF93 push r29 242 0010 1F92 push __zero_reg__ 243 0012 CDB7 in r28,__SP_L__ 244 0014 DEB7 in r29,__SP_H__ 245 /* prologue: function */ 246 /* frame size = 1 */ 247 /* stack size = 9 */ 248 .L__stack_usage = 9 249 0016 8C01 movw r16,r24 250 0018 6983 std Y+1,r22 251 001a DC01 movw r26,r24 252 001c 1C96 adiw r26,12 253 001e ED91 ld r30,X+ 254 0020 FC91 ld r31,X 255 0022 1D97 sbiw r26,12+1 256 0024 CD90 ld r12,X+ 257 0026 DC90 ld r13,X 258 0028 6481 ldd r22,Z+4 259 002a 7581 ldd r23,Z+5 260 002c 8281 ldd r24,Z+2 261 002e 9381 ldd r25,Z+3 262 0030 0E94 0000 call GpioPinSetLow 263 0034 D601 movw r26,r12 264 0036 1A96 adiw r26,10 265 0038 ED91 ld r30,X+ 266 003a FC91 ld r31,X 267 003c 1B97 sbiw r26,10+1 268 003e 40E0 ldi r20,0 269 0040 50E0 ldi r21,0 270 0042 BA01 movw r22,r20 271 0044 C801 movw r24,r16 272 0046 1995 eicall 273 0048 7C01 movw r14,r24 274 004a 892B or r24,r25 275 004c 01F4 brne .L49 276 004e D601 movw r26,r12 277 0050 1E96 adiw r26,14 278 0052 ED91 ld r30,X+ 279 0054 FC91 ld r31,X 280 0056 1F97 sbiw r26,14+1 281 0058 21E0 ldi r18,lo8(1) 282 005a 30E0 ldi r19,0 283 005c 40E0 ldi r20,0 284 005e 50E0 ldi r21,0 285 0060 BE01 movw r22,r28 GAS LISTING /tmp/ccOYgVUX.s page 6 286 0062 6F5F subi r22,-1 287 0064 7F4F sbci r23,-1 288 0066 C801 movw r24,r16 289 0068 1995 eicall 290 006a 7C01 movw r14,r24 291 006c 892B or r24,r25 292 006e 01F4 brne .L50 293 0070 D601 movw r26,r12 294 0072 5096 adiw r26,16 295 0074 ED91 ld r30,X+ 296 0076 FC91 ld r31,X 297 0078 5197 sbiw r26,16+1 298 007a 40E0 ldi r20,0 299 007c 50E0 ldi r21,0 300 007e BA01 movw r22,r20 301 0080 C801 movw r24,r16 302 0082 1995 eicall 303 .L50: 304 0084 D601 movw r26,r12 305 0086 1C96 adiw r26,12 306 0088 ED91 ld r30,X+ 307 008a FC91 ld r31,X 308 008c 1D97 sbiw r26,12+1 309 008e C801 movw r24,r16 310 0090 1995 eicall 311 .L49: 312 0092 C701 movw r24,r14 313 /* epilogue start */ 314 0094 0F90 pop __tmp_reg__ 315 0096 DF91 pop r29 316 0098 CF91 pop r28 317 009a 1F91 pop r17 318 009c 0F91 pop r16 319 009e FF90 pop r15 320 00a0 EF90 pop r14 321 00a2 DF90 pop r13 322 00a4 CF90 pop r12 323 00a6 0895 ret 324 .size St7565rWriteCmd, .-St7565rWriteCmd 325 .section .text.St7565rClose,"ax",@progbits 326 .type St7565rClose, @function 327 St7565rClose: 328 /* prologue: function */ 329 /* frame size = 0 */ 330 /* stack size = 0 */ 331 .L__stack_usage = 0 332 0000 0097 sbiw r24,0 333 0002 01F0 breq .L53 334 0004 0E94 0000 call free 335 0008 80E0 ldi r24,0 336 000a 90E0 ldi r25,0 337 000c 0895 ret 338 .L53: 339 000e 8FEF ldi r24,lo8(-1) 340 0010 9FEF ldi r25,lo8(-1) 341 0012 0895 ret 342 .size St7565rClose, .-St7565rClose GAS LISTING /tmp/ccOYgVUX.s page 7 343 .section .text.St7565rOpen,"ax",@progbits 344 .type St7565rOpen, @function 345 St7565rOpen: 346 0000 CF93 push r28 347 0002 DF93 push r29 348 /* prologue: function */ 349 /* frame size = 0 */ 350 /* stack size = 2 */ 351 .L__stack_usage = 2 352 0004 EC01 movw r28,r24 353 0006 84E0 ldi r24,lo8(4) 354 0008 90E0 ldi r25,0 355 000a 0E94 0000 call malloc 356 000e FC01 movw r30,r24 357 0010 0097 sbiw r24,0 358 0012 01F0 breq .L56 359 0014 1382 std Z+3,__zero_reg__ 360 0016 1282 std Z+2,__zero_reg__ 361 0018 D183 std Z+1,r29 362 001a C083 st Z,r28 363 001c 00C0 rjmp .L55 364 .L56: 365 001e 8FEF ldi r24,lo8(-1) 366 0020 9FEF ldi r25,lo8(-1) 367 .L55: 368 /* epilogue start */ 369 0022 DF91 pop r29 370 0024 CF91 pop r28 371 0026 0895 ret 372 .size St7565rOpen, .-St7565rOpen 373 .section .text.St7565rNodeLock,"ax",@progbits 374 .global St7565rNodeLock 375 .type St7565rNodeLock, @function 376 St7565rNodeLock: 377 /* prologue: function */ 378 /* frame size = 0 */ 379 /* stack size = 0 */ 380 .L__stack_usage = 0 381 0000 DC01 movw r26,r24 382 0002 1F96 adiw r26,15 383 0004 ED91 ld r30,X+ 384 0006 FC91 ld r31,X 385 0008 5097 sbiw r26,15+1 386 000a 40E0 ldi r20,0 387 000c 50E0 ldi r21,0 388 000e BA01 movw r22,r20 389 0010 8485 ldd r24,Z+12 390 0012 9585 ldd r25,Z+13 391 0014 0C94 0000 jmp NutEventWait 392 .size St7565rNodeLock, .-St7565rNodeLock 393 .section .text.St7565rNodeUnlock,"ax",@progbits 394 .global St7565rNodeUnlock 395 .type St7565rNodeUnlock, @function 396 St7565rNodeUnlock: 397 /* prologue: function */ 398 /* frame size = 0 */ 399 /* stack size = 0 */ GAS LISTING /tmp/ccOYgVUX.s page 8 400 .L__stack_usage = 0 401 0000 DC01 movw r26,r24 402 0002 1F96 adiw r26,15 403 0004 ED91 ld r30,X+ 404 0006 FC91 ld r31,X 405 0008 5097 sbiw r26,15+1 406 000a 8485 ldd r24,Z+12 407 000c 9585 ldd r25,Z+13 408 000e 0C94 0000 jmp NutEventPost 409 .size St7565rNodeUnlock, .-St7565rNodeUnlock 410 .section .text.St7565rSetMode,"ax",@progbits 411 .global St7565rSetMode 412 .type St7565rSetMode, @function 413 St7565rSetMode: 414 /* prologue: function */ 415 /* frame size = 0 */ 416 /* stack size = 0 */ 417 .L__stack_usage = 0 418 0000 FC01 movw r30,r24 419 0002 8785 ldd r24,Z+15 420 0004 9089 ldd r25,Z+16 421 0006 672B or r22,r23 422 0008 01F4 brne .L61 423 000a 6DEA ldi r22,lo8(-83) 424 000c 00C0 rjmp .L60 425 .L61: 426 000e 6CEA ldi r22,lo8(-84) 427 .L60: 428 0010 0C94 0000 jmp St7565rWriteCmd 429 .size St7565rSetMode, .-St7565rSetMode 430 .section .text.St7565rSetPageAddress,"ax",@progbits 431 .global St7565rSetPageAddress 432 .type St7565rSetPageAddress, @function 433 St7565rSetPageAddress: 434 /* prologue: function */ 435 /* frame size = 0 */ 436 /* stack size = 0 */ 437 .L__stack_usage = 0 438 0000 6F70 andi r22,lo8(15) 439 0002 606B ori r22,lo8(-80) 440 0004 FC01 movw r30,r24 441 0006 8785 ldd r24,Z+15 442 0008 9089 ldd r25,Z+16 443 000a 0C94 0000 jmp St7565rWriteCmd 444 .size St7565rSetPageAddress, .-St7565rSetPageAddress 445 .section .text.St7565rSetColAddress,"ax",@progbits 446 .global St7565rSetColAddress 447 .type St7565rSetColAddress, @function 448 St7565rSetColAddress: 449 0000 EF92 push r14 450 0002 FF92 push r15 451 0004 0F93 push r16 452 0006 1F93 push r17 453 0008 CF93 push r28 454 /* prologue: function */ 455 /* frame size = 0 */ 456 /* stack size = 5 */ GAS LISTING /tmp/ccOYgVUX.s page 9 457 .L__stack_usage = 5 458 000a C62F mov r28,r22 459 000c FC01 movw r30,r24 460 000e 0785 ldd r16,Z+15 461 0010 1089 ldd r17,Z+16 462 0012 6295 swap r22 463 0014 6F70 andi r22,lo8(15) 464 0016 6061 ori r22,lo8(16) 465 0018 C801 movw r24,r16 466 001a 0E94 0000 call St7565rWriteCmd 467 001e 7C01 movw r14,r24 468 0020 6C2F mov r22,r28 469 0022 6F70 andi r22,lo8(15) 470 0024 C801 movw r24,r16 471 0026 0E94 0000 call St7565rWriteCmd 472 002a 8E29 or r24,r14 473 002c 9F29 or r25,r15 474 /* epilogue start */ 475 002e CF91 pop r28 476 0030 1F91 pop r17 477 0032 0F91 pop r16 478 0034 FF90 pop r15 479 0036 EF90 pop r14 480 0038 0895 ret 481 .size St7565rSetColAddress, .-St7565rSetColAddress 482 .section .text.St7565rSetDisplayStartLineAddress,"ax",@progbits 483 .global St7565rSetDisplayStartLineAddress 484 .type St7565rSetDisplayStartLineAddress, @function 485 St7565rSetDisplayStartLineAddress: 486 /* prologue: function */ 487 /* frame size = 0 */ 488 /* stack size = 0 */ 489 .L__stack_usage = 0 490 0000 6F73 andi r22,lo8(63) 491 0002 6064 ori r22,lo8(64) 492 0004 FC01 movw r30,r24 493 0006 8785 ldd r24,Z+15 494 0008 9089 ldd r25,Z+16 495 000a 0C94 0000 jmp St7565rWriteCmd 496 .size St7565rSetDisplayStartLineAddress, .-St7565rSetDisplayStartLineAddress 497 .section .text.St7565rDisplayEnable,"ax",@progbits 498 .global St7565rDisplayEnable 499 .type St7565rDisplayEnable, @function 500 St7565rDisplayEnable: 501 /* prologue: function */ 502 /* frame size = 0 */ 503 /* stack size = 0 */ 504 .L__stack_usage = 0 505 0000 FC01 movw r30,r24 506 0002 8785 ldd r24,Z+15 507 0004 9089 ldd r25,Z+16 508 0006 672B or r22,r23 509 0008 01F4 brne .L67 510 000a 6EEA ldi r22,lo8(-82) 511 000c 00C0 rjmp .L66 512 .L67: 513 000e 6FEA ldi r22,lo8(-81) GAS LISTING /tmp/ccOYgVUX.s page 10 514 .L66: 515 0010 0C94 0000 jmp St7565rWriteCmd 516 .size St7565rDisplayEnable, .-St7565rDisplayEnable 517 .section .text.St7565rSetContrast,"ax",@progbits 518 .global St7565rSetContrast 519 .type St7565rSetContrast, @function 520 St7565rSetContrast: 521 0000 EF92 push r14 522 0002 FF92 push r15 523 0004 0F93 push r16 524 0006 1F93 push r17 525 0008 CF93 push r28 526 /* prologue: function */ 527 /* frame size = 0 */ 528 /* stack size = 5 */ 529 .L__stack_usage = 5 530 000a C62F mov r28,r22 531 000c FC01 movw r30,r24 532 000e 0785 ldd r16,Z+15 533 0010 1089 ldd r17,Z+16 534 0012 6E31 cpi r22,lo8(30) 535 0014 00F0 brlo .L71 536 0016 6932 cpi r22,lo8(41) 537 0018 00F0 brlo .L70 538 001a C8E2 ldi r28,lo8(40) 539 001c 00C0 rjmp .L70 540 .L71: 541 001e CEE1 ldi r28,lo8(30) 542 .L70: 543 0020 61E8 ldi r22,lo8(-127) 544 0022 C801 movw r24,r16 545 0024 0E94 0000 call St7565rWriteCmd 546 0028 7C01 movw r14,r24 547 002a 6C2F mov r22,r28 548 002c 6095 com r22 549 002e 6F73 andi r22,lo8(63) 550 0030 C801 movw r24,r16 551 0032 0E94 0000 call St7565rWriteCmd 552 0036 8E29 or r24,r14 553 0038 9F29 or r25,r15 554 /* epilogue start */ 555 003a CF91 pop r28 556 003c 1F91 pop r17 557 003e 0F91 pop r16 558 0040 FF90 pop r15 559 0042 EF90 pop r14 560 0044 0895 ret 561 .size St7565rSetContrast, .-St7565rSetContrast 562 .section .text.St7565rDisplayInvert,"ax",@progbits 563 .global St7565rDisplayInvert 564 .type St7565rDisplayInvert, @function 565 St7565rDisplayInvert: 566 /* prologue: function */ 567 /* frame size = 0 */ 568 /* stack size = 0 */ 569 .L__stack_usage = 0 570 0000 FC01 movw r30,r24 GAS LISTING /tmp/ccOYgVUX.s page 11 571 0002 8785 ldd r24,Z+15 572 0004 9089 ldd r25,Z+16 573 0006 672B or r22,r23 574 0008 01F4 brne .L75 575 000a 66EA ldi r22,lo8(-90) 576 000c 00C0 rjmp .L74 577 .L75: 578 000e 67EA ldi r22,lo8(-89) 579 .L74: 580 0010 0C94 0000 jmp St7565rWriteCmd 581 .size St7565rDisplayInvert, .-St7565rDisplayInvert 582 .section .text.St7565rInit,"ax",@progbits 583 .type St7565rInit, @function 584 St7565rInit: 585 0000 AF92 push r10 586 0002 BF92 push r11 587 0004 CF92 push r12 588 0006 DF92 push r13 589 0008 EF92 push r14 590 000a FF92 push r15 591 000c 0F93 push r16 592 000e 1F93 push r17 593 0010 CF93 push r28 594 0012 DF93 push r29 595 /* prologue: function */ 596 /* frame size = 0 */ 597 /* stack size = 10 */ 598 .L__stack_usage = 10 599 0014 8C01 movw r16,r24 600 0016 FC01 movw r30,r24 601 0018 C784 ldd r12,Z+15 602 001a D088 ldd r13,Z+16 603 001c F601 movw r30,r12 604 001e C485 ldd r28,Z+12 605 0020 D585 ldd r29,Z+13 606 0022 8FEF ldi r24,lo8(-1) 607 0024 9FEF ldi r25,lo8(-1) 608 0026 9983 std Y+1,r25 609 0028 8883 st Y,r24 610 002a F801 movw r30,r16 611 002c E188 ldd r14,Z+17 612 002e F288 ldd r15,Z+18 613 0030 F701 movw r30,r14 614 0032 8681 ldd r24,Z+6 615 0034 9781 ldd r25,Z+7 616 0036 892B or r24,r25 617 0038 01F0 breq .L77 618 .L80: 619 003a 80E0 ldi r24,0 620 003c 90E0 ldi r25,0 621 003e 00C0 rjmp .L78 622 .L77: 623 0040 81E0 ldi r24,lo8(1) 624 0042 90E0 ldi r25,0 625 0044 F701 movw r30,r14 626 0046 9183 std Z+1,r25 627 0048 8083 st Z,r24 GAS LISTING /tmp/ccOYgVUX.s page 12 628 004a 2281 ldd r18,Z+2 629 004c 3381 ldd r19,Z+3 630 004e 8481 ldd r24,Z+4 631 0050 9581 ldd r25,Z+5 632 0052 289F mul r18,r24 633 0054 A001 movw r20,r0 634 0056 299F mul r18,r25 635 0058 500D add r21,r0 636 005a 389F mul r19,r24 637 005c 500D add r21,r0 638 005e 1124 clr r1 639 0060 57FF sbrs r21,7 640 0062 00C0 rjmp .L79 641 0064 495F subi r20,-7 642 0066 5F4F sbci r21,-1 643 .L79: 644 0068 5A01 movw r10,r20 645 006a 83E0 ldi r24,3 646 1: 647 006c B594 asr r11 648 006e A794 ror r10 649 0070 8A95 dec r24 650 0072 01F4 brne 1b 651 0074 C501 movw r24,r10 652 0076 0E94 0000 call malloc 653 007a F701 movw r30,r14 654 007c 9783 std Z+7,r25 655 007e 8683 std Z+6,r24 656 0080 0097 sbiw r24,0 657 0082 01F4 brne .+2 658 0084 00C0 rjmp .L81 659 0086 A501 movw r20,r10 660 0088 60E0 ldi r22,0 661 008a 70E0 ldi r23,0 662 008c 0E94 0000 call memset 663 0090 6C81 ldd r22,Y+4 664 0092 7D81 ldd r23,Y+5 665 0094 22E0 ldi r18,lo8(2) 666 0096 30E0 ldi r19,0 667 0098 40E0 ldi r20,0 668 009a 50E0 ldi r21,0 669 009c 8A81 ldd r24,Y+2 670 009e 9B81 ldd r25,Y+3 671 00a0 0E94 0000 call GpioPinConfigSet 672 00a4 6C81 ldd r22,Y+4 673 00a6 7D81 ldd r23,Y+5 674 00a8 8A81 ldd r24,Y+2 675 00aa 9B81 ldd r25,Y+3 676 00ac 0E94 0000 call GpioPinSetLow 677 00b0 6885 ldd r22,Y+8 678 00b2 7985 ldd r23,Y+9 679 00b4 22E0 ldi r18,lo8(2) 680 00b6 30E0 ldi r19,0 681 00b8 40E0 ldi r20,0 682 00ba 50E0 ldi r21,0 683 00bc 8E81 ldd r24,Y+6 684 00be 9F81 ldd r25,Y+7 GAS LISTING /tmp/ccOYgVUX.s page 13 685 00c0 0E94 0000 call GpioPinConfigSet 686 00c4 6885 ldd r22,Y+8 687 00c6 7985 ldd r23,Y+9 688 00c8 8E81 ldd r24,Y+6 689 00ca 9F81 ldd r25,Y+7 690 00cc 0E94 0000 call GpioPinSetHigh 691 00d0 F601 movw r30,r12 692 00d2 C485 ldd r28,Z+12 693 00d4 D585 ldd r29,Z+13 694 00d6 6885 ldd r22,Y+8 695 00d8 7985 ldd r23,Y+9 696 00da 8E81 ldd r24,Y+6 697 00dc 9F81 ldd r25,Y+7 698 00de 0E94 0000 call GpioPinSetHigh 699 00e2 6AE0 ldi r22,lo8(10) 700 00e4 70E0 ldi r23,0 701 00e6 80E0 ldi r24,0 702 00e8 90E0 ldi r25,0 703 00ea 0E94 0000 call NutMicroDelay 704 00ee 6885 ldd r22,Y+8 705 00f0 7985 ldd r23,Y+9 706 00f2 8E81 ldd r24,Y+6 707 00f4 9F81 ldd r25,Y+7 708 00f6 0E94 0000 call GpioPinSetLow 709 00fa 6AE0 ldi r22,lo8(10) 710 00fc 70E0 ldi r23,0 711 00fe 80E0 ldi r24,0 712 0100 90E0 ldi r25,0 713 0102 0E94 0000 call NutMicroDelay 714 0106 6885 ldd r22,Y+8 715 0108 7985 ldd r23,Y+9 716 010a 8E81 ldd r24,Y+6 717 010c 9F81 ldd r25,Y+7 718 010e 0E94 0000 call GpioPinSetHigh 719 0112 6AE0 ldi r22,lo8(10) 720 0114 70E0 ldi r23,0 721 0116 80E0 ldi r24,0 722 0118 90E0 ldi r25,0 723 011a 0E94 0000 call NutMicroDelay 724 011e 60E0 ldi r22,0 725 0120 70E0 ldi r23,0 726 0122 C801 movw r24,r16 727 0124 0E94 0000 call St7565rDisplayEnable 728 0128 EC01 movw r28,r24 729 012a 62EA ldi r22,lo8(-94) 730 012c C601 movw r24,r12 731 012e 0E94 0000 call St7565rWriteCmd 732 0132 C82B or r28,r24 733 0134 D92B or r29,r25 734 0136 60EA ldi r22,lo8(-96) 735 0138 C601 movw r24,r12 736 013a 0E94 0000 call St7565rWriteCmd 737 013e C82B or r28,r24 738 0140 D92B or r29,r25 739 0142 68EC ldi r22,lo8(-56) 740 0144 C601 movw r24,r12 741 0146 0E94 0000 call St7565rWriteCmd GAS LISTING /tmp/ccOYgVUX.s page 14 742 014a C82B or r28,r24 743 014c D92B or r29,r25 744 014e 62E2 ldi r22,lo8(34) 745 0150 C601 movw r24,r12 746 0152 0E94 0000 call St7565rWriteCmd 747 0156 C82B or r28,r24 748 0158 D92B or r29,r25 749 015a 6FE2 ldi r22,lo8(47) 750 015c C601 movw r24,r12 751 015e 0E94 0000 call St7565rWriteCmd 752 0162 C82B or r28,r24 753 0164 D92B or r29,r25 754 0166 68EF ldi r22,lo8(-8) 755 0168 C601 movw r24,r12 756 016a 0E94 0000 call St7565rWriteCmd 757 016e C82B or r28,r24 758 0170 D92B or r29,r25 759 0172 60E0 ldi r22,0 760 0174 C601 movw r24,r12 761 0176 0E94 0000 call St7565rWriteCmd 762 017a C82B or r28,r24 763 017c D92B or r29,r25 764 017e 68E2 ldi r22,lo8(40) 765 0180 C801 movw r24,r16 766 0182 0E94 0000 call St7565rSetContrast 767 0186 C82B or r28,r24 768 0188 D92B or r29,r25 769 018a 60E0 ldi r22,0 770 018c C801 movw r24,r16 771 018e 0E94 0000 call St7565rSetDisplayStartLineAddress 772 0192 C82B or r28,r24 773 0194 D92B or r29,r25 774 0196 60E0 ldi r22,0 775 0198 70E0 ldi r23,0 776 019a C801 movw r24,r16 777 019c 0E94 0000 call St7565rDisplayInvert 778 01a0 C82B or r28,r24 779 01a2 D92B or r29,r25 780 01a4 61E0 ldi r22,lo8(1) 781 01a6 70E0 ldi r23,0 782 01a8 C801 movw r24,r16 783 01aa 0E94 0000 call St7565rDisplayEnable 784 01ae 8C2B or r24,r28 785 01b0 9D2B or r25,r29 786 01b2 892B or r24,r25 787 01b4 01F4 brne .+2 788 01b6 00C0 rjmp .L80 789 01b8 F701 movw r30,r14 790 01ba 8681 ldd r24,Z+6 791 01bc 9781 ldd r25,Z+7 792 01be 0E94 0000 call free 793 .L81: 794 01c2 8FEF ldi r24,lo8(-1) 795 01c4 9FEF ldi r25,lo8(-1) 796 .L78: 797 /* epilogue start */ 798 01c6 DF91 pop r29 GAS LISTING /tmp/ccOYgVUX.s page 15 799 01c8 CF91 pop r28 800 01ca 1F91 pop r17 801 01cc 0F91 pop r16 802 01ce FF90 pop r15 803 01d0 EF90 pop r14 804 01d2 DF90 pop r13 805 01d4 CF90 pop r12 806 01d6 BF90 pop r11 807 01d8 AF90 pop r10 808 01da 0895 ret 809 .size St7565rInit, .-St7565rInit 810 .section .text.St7565rDebugPixelsAllOn,"ax",@progbits 811 .global St7565rDebugPixelsAllOn 812 .type St7565rDebugPixelsAllOn, @function 813 St7565rDebugPixelsAllOn: 814 /* prologue: function */ 815 /* frame size = 0 */ 816 /* stack size = 0 */ 817 .L__stack_usage = 0 818 0000 FC01 movw r30,r24 819 0002 8785 ldd r24,Z+15 820 0004 9089 ldd r25,Z+16 821 0006 672B or r22,r23 822 0008 01F4 brne .L87 823 000a 64EA ldi r22,lo8(-92) 824 000c 00C0 rjmp .L86 825 .L87: 826 000e 65EA ldi r22,lo8(-91) 827 .L86: 828 0010 0C94 0000 jmp St7565rWriteCmd 829 .size St7565rDebugPixelsAllOn, .-St7565rDebugPixelsAllOn 830 .section .text.St7565rUpdateFb,"ax",@progbits 831 .global St7565rUpdateFb 832 .type St7565rUpdateFb, @function 833 St7565rUpdateFb: 834 0000 2F92 push r2 835 0002 3F92 push r3 836 0004 4F92 push r4 837 0006 5F92 push r5 838 0008 6F92 push r6 839 000a 7F92 push r7 840 000c 8F92 push r8 841 000e 9F92 push r9 842 0010 AF92 push r10 843 0012 BF92 push r11 844 0014 CF92 push r12 845 0016 DF92 push r13 846 0018 EF92 push r14 847 001a FF92 push r15 848 001c 0F93 push r16 849 001e 1F93 push r17 850 0020 CF93 push r28 851 0022 DF93 push r29 852 0024 00D0 rcall . 853 0026 CDB7 in r28,__SP_L__ 854 0028 DEB7 in r29,__SP_H__ 855 /* prologue: function */ GAS LISTING /tmp/ccOYgVUX.s page 16 856 /* frame size = 3 */ 857 /* stack size = 21 */ 858 .L__stack_usage = 21 859 002a DC01 movw r26,r24 860 002c 1F96 adiw r26,15 861 002e 0D90 ld __tmp_reg__,X+ 862 0030 BC91 ld r27,X 863 0032 A02D mov r26,__tmp_reg__ 864 0034 BB83 std Y+3,r27 865 0036 AA83 std Y+2,r26 866 0038 FC01 movw r30,r24 867 003a 8188 ldd r8,Z+17 868 003c 9288 ldd r9,Z+18 869 003e D401 movw r26,r8 870 0040 1296 adiw r26,2 871 0042 2D91 ld r18,X+ 872 0044 3C91 ld r19,X 873 0046 1397 sbiw r26,2+1 874 0048 1496 adiw r26,4 875 004a 8D91 ld r24,X+ 876 004c 9C91 ld r25,X 877 004e 1597 sbiw r26,4+1 878 0050 289F mul r18,r24 879 0052 3001 movw r6,r0 880 0054 299F mul r18,r25 881 0056 700C add r7,r0 882 0058 389F mul r19,r24 883 005a 700C add r7,r0 884 005c 1124 clr r1 885 005e 77FE sbrs r7,7 886 0060 00C0 rjmp .L89 887 0062 B7E0 ldi r27,7 888 0064 6B0E add r6,r27 889 0066 711C adc r7,__zero_reg__ 890 .L89: 891 0068 83E0 ldi r24,3 892 1: 893 006a 7594 asr r7 894 006c 6794 ror r6 895 006e 8A95 dec r24 896 0070 01F4 brne 1b 897 0072 1982 std Y+1,__zero_reg__ 898 0074 412C mov r4,__zero_reg__ 899 0076 512C mov r5,__zero_reg__ 900 0078 E12C mov r14,__zero_reg__ 901 007a F12C mov r15,__zero_reg__ 902 .L90: 903 007c E614 cp r14,r6 904 007e F704 cpc r15,r7 905 0080 00F0 brlo .+2 906 0082 00C0 rjmp .L95 907 0084 6981 ldd r22,Y+1 908 0086 606B ori r22,lo8(-80) 909 0088 8A81 ldd r24,Y+2 910 008a 9B81 ldd r25,Y+3 911 008c 0E94 0000 call St7565rWriteCmd 912 0090 6C01 movw r12,r24 GAS LISTING /tmp/ccOYgVUX.s page 17 913 0092 60E1 ldi r22,lo8(16) 914 0094 8A81 ldd r24,Y+2 915 0096 9B81 ldd r25,Y+3 916 0098 0E94 0000 call St7565rWriteCmd 917 009c 8C29 or r24,r12 918 009e 9D29 or r25,r13 919 00a0 482A or r4,r24 920 00a2 592A or r5,r25 921 00a4 60E0 ldi r22,0 922 00a6 8A81 ldd r24,Y+2 923 00a8 9B81 ldd r25,Y+3 924 00aa 0E94 0000 call St7565rWriteCmd 925 00ae 482A or r4,r24 926 00b0 592A or r5,r25 927 00b2 F401 movw r30,r8 928 00b4 2680 ldd r2,Z+6 929 00b6 3780 ldd r3,Z+7 930 00b8 AA81 ldd r26,Y+2 931 00ba BB81 ldd r27,Y+3 932 00bc 1C96 adiw r26,12 933 00be CD90 ld r12,X+ 934 00c0 DC90 ld r13,X 935 00c2 1D97 sbiw r26,12+1 936 00c4 AD90 ld r10,X+ 937 00c6 BC90 ld r11,X 938 00c8 F601 movw r30,r12 939 00ca 6481 ldd r22,Z+4 940 00cc 7581 ldd r23,Z+5 941 00ce 8281 ldd r24,Z+2 942 00d0 9381 ldd r25,Z+3 943 00d2 0E94 0000 call GpioPinSetHigh 944 00d6 D501 movw r26,r10 945 00d8 1A96 adiw r26,10 946 00da ED91 ld r30,X+ 947 00dc FC91 ld r31,X 948 00de 1B97 sbiw r26,10+1 949 00e0 40E0 ldi r20,0 950 00e2 50E0 ldi r21,0 951 00e4 BA01 movw r22,r20 952 00e6 8A81 ldd r24,Y+2 953 00e8 9B81 ldd r25,Y+3 954 00ea 1995 eicall 955 00ec 8C01 movw r16,r24 956 00ee 892B or r24,r25 957 00f0 01F4 brne .L91 958 00f2 9301 movw r18,r6 959 00f4 2E19 sub r18,r14 960 00f6 3F09 sbc r19,r15 961 00f8 2138 cpi r18,-127 962 00fa 3105 cpc r19,__zero_reg__ 963 00fc 00F0 brlo .L92 964 00fe 20E8 ldi r18,lo8(-128) 965 0100 30E0 ldi r19,0 966 .L92: 967 0102 B101 movw r22,r2 968 0104 6E0D add r22,r14 969 0106 7F1D adc r23,r15 GAS LISTING /tmp/ccOYgVUX.s page 18 970 0108 D501 movw r26,r10 971 010a 1E96 adiw r26,14 972 010c ED91 ld r30,X+ 973 010e FC91 ld r31,X 974 0110 1F97 sbiw r26,14+1 975 0112 40E0 ldi r20,0 976 0114 50E0 ldi r21,0 977 0116 8A81 ldd r24,Y+2 978 0118 9B81 ldd r25,Y+3 979 011a 1995 eicall 980 011c 8C01 movw r16,r24 981 011e 892B or r24,r25 982 0120 01F4 brne .L93 983 0122 D501 movw r26,r10 984 0124 5096 adiw r26,16 985 0126 ED91 ld r30,X+ 986 0128 FC91 ld r31,X 987 012a 5197 sbiw r26,16+1 988 012c 40E0 ldi r20,0 989 012e 50E0 ldi r21,0 990 0130 BA01 movw r22,r20 991 0132 8A81 ldd r24,Y+2 992 0134 9B81 ldd r25,Y+3 993 0136 1995 eicall 994 .L93: 995 0138 D501 movw r26,r10 996 013a 1C96 adiw r26,12 997 013c ED91 ld r30,X+ 998 013e FC91 ld r31,X 999 0140 1D97 sbiw r26,12+1 1000 0142 8A81 ldd r24,Y+2 1001 0144 9B81 ldd r25,Y+3 1002 0146 1995 eicall 1003 .L91: 1004 0148 F601 movw r30,r12 1005 014a 6481 ldd r22,Z+4 1006 014c 7581 ldd r23,Z+5 1007 014e 8281 ldd r24,Z+2 1008 0150 9381 ldd r25,Z+3 1009 0152 0E94 0000 call GpioPinSetLow 1010 0156 402A or r4,r16 1011 0158 512A or r5,r17 1012 015a F0E8 ldi r31,-128 1013 015c EF0E add r14,r31 1014 015e F11C adc r15,__zero_reg__ 1015 0160 2981 ldd r18,Y+1 1016 0162 2F5F subi r18,lo8(-(1)) 1017 0164 2983 std Y+1,r18 1018 0166 00C0 rjmp .L90 1019 .L95: 1020 0168 C201 movw r24,r4 1021 /* epilogue start */ 1022 016a 0F90 pop __tmp_reg__ 1023 016c 0F90 pop __tmp_reg__ 1024 016e 0F90 pop __tmp_reg__ 1025 0170 DF91 pop r29 1026 0172 CF91 pop r28 GAS LISTING /tmp/ccOYgVUX.s page 19 1027 0174 1F91 pop r17 1028 0176 0F91 pop r16 1029 0178 FF90 pop r15 1030 017a EF90 pop r14 1031 017c DF90 pop r13 1032 017e CF90 pop r12 1033 0180 BF90 pop r11 1034 0182 AF90 pop r10 1035 0184 9F90 pop r9 1036 0186 8F90 pop r8 1037 0188 7F90 pop r7 1038 018a 6F90 pop r6 1039 018c 5F90 pop r5 1040 018e 4F90 pop r4 1041 0190 3F90 pop r3 1042 0192 2F90 pop r2 1043 0194 0895 ret 1044 .size St7565rUpdateFb, .-St7565rUpdateFb 1045 .section .text.St7565rWrite,"ax",@progbits 1046 .type St7565rWrite, @function 1047 St7565rWrite: 1048 0000 4F92 push r4 1049 0002 5F92 push r5 1050 0004 6F92 push r6 1051 0006 7F92 push r7 1052 0008 8F92 push r8 1053 000a 9F92 push r9 1054 000c AF92 push r10 1055 000e BF92 push r11 1056 0010 CF92 push r12 1057 0012 DF92 push r13 1058 0014 EF92 push r14 1059 0016 FF92 push r15 1060 0018 0F93 push r16 1061 001a 1F93 push r17 1062 001c CF93 push r28 1063 001e DF93 push r29 1064 /* prologue: function */ 1065 /* frame size = 0 */ 1066 /* stack size = 16 */ 1067 .L__stack_usage = 16 1068 0020 3C01 movw r6,r24 1069 0022 DC01 movw r26,r24 1070 0024 8D91 ld r24,X+ 1071 0026 9C91 ld r25,X 1072 0028 EC01 movw r28,r24 1073 002a E988 ldd r14,Y+17 1074 002c FA88 ldd r15,Y+18 1075 002e 6115 cp r22,__zero_reg__ 1076 0030 7105 cpc r23,__zero_reg__ 1077 0032 01F4 brne .L97 1078 0034 0E94 0000 call St7565rUpdateFb 1079 0038 00C0 rjmp .L122 1080 .L97: 1081 003a F701 movw r30,r14 1082 003c 0281 ldd r16,Z+2 1083 003e 1381 ldd r17,Z+3 GAS LISTING /tmp/ccOYgVUX.s page 20 1084 0040 8481 ldd r24,Z+4 1085 0042 9581 ldd r25,Z+5 1086 0044 089F mul r16,r24 1087 0046 E001 movw r28,r0 1088 0048 099F mul r16,r25 1089 004a D00D add r29,r0 1090 004c 189F mul r17,r24 1091 004e D00D add r29,r0 1092 0050 1124 clr r1 1093 0052 D7FD sbrc r29,7 1094 0054 2796 adiw r28,7 1095 .L99: 1096 0056 2E01 movw r4,r28 1097 0058 93E0 ldi r25,3 1098 1: 1099 005a 5594 asr r5 1100 005c 4794 ror r4 1101 005e 9A95 dec r25 1102 0060 01F4 brne 1b 1103 0062 4415 cp r20,r4 1104 0064 5505 cpc r21,r5 1105 0066 04F4 brge .L100 1106 0068 2A01 movw r4,r20 1107 .L100: 1108 006a D701 movw r26,r14 1109 006c 1696 adiw r26,6 1110 006e AD90 ld r10,X+ 1111 0070 BC90 ld r11,X 1112 0072 1797 sbiw r26,6+1 1113 0074 A114 cp r10,__zero_reg__ 1114 0076 B104 cpc r11,__zero_reg__ 1115 0078 01F4 brne .+2 1116 007a 00C0 rjmp .L122 1117 007c 17FF sbrs r17,7 1118 007e 00C0 rjmp .L101 1119 0080 095F subi r16,-7 1120 0082 1F4F sbci r17,-1 1121 .L101: 1122 0084 83E0 ldi r24,3 1123 1: 1124 0086 1595 asr r17 1125 0088 0795 ror r16 1126 008a 8A95 dec r24 1127 008c 01F4 brne 1b 1128 008e FB01 movw r30,r22 1129 0090 C801 movw r24,r16 1130 0092 C12C mov r12,__zero_reg__ 1131 0094 D12C mov r13,__zero_reg__ 1132 0096 21E0 ldi r18,lo8(1) 1133 0098 3EEF ldi r19,lo8(-2) 1134 .L102: 1135 009a C414 cp r12,r4 1136 009c D504 cpc r13,r5 1137 009e 04F0 brlt .+2 1138 00a0 00C0 rjmp .L130 1139 00a2 0197 sbiw r24,1 1140 00a4 4F01 movw r8,r30 GAS LISTING /tmp/ccOYgVUX.s page 21 1141 00a6 5081 ld r21,Z 1142 00a8 D501 movw r26,r10 1143 00aa 1196 adiw r26,1 1144 00ac E501 movw r28,r10 1145 00ae 4881 ld r20,Y 1146 00b0 50FF sbrs r21,0 1147 00b2 00C0 rjmp .L103 1148 00b4 422B or r20,r18 1149 00b6 00C0 rjmp .L123 1150 .L103: 1151 00b8 4323 and r20,r19 1152 00ba E501 movw r28,r10 1153 .L123: 1154 00bc 4883 st Y,r20 1155 00be 5081 ld r21,Z 1156 00c0 BD01 movw r22,r26 1157 00c2 6F5F subi r22,-1 1158 00c4 7F4F sbci r23,-1 1159 00c6 4C91 ld r20,X 1160 00c8 51FF sbrs r21,1 1161 00ca 00C0 rjmp .L105 1162 00cc 422B or r20,r18 1163 00ce 00C0 rjmp .L124 1164 .L105: 1165 00d0 4323 and r20,r19 1166 .L124: 1167 00d2 4C93 st X,r20 1168 00d4 A080 ld r10,Z 1169 00d6 AB01 movw r20,r22 1170 00d8 4F5F subi r20,-1 1171 00da 5F4F sbci r21,-1 1172 00dc 1196 adiw r26,1 1173 00de BC90 ld r11,X 1174 00e0 1197 sbiw r26,1 1175 00e2 A2FE sbrs r10,2 1176 00e4 00C0 rjmp .L107 1177 00e6 B22A or r11,r18 1178 00e8 00C0 rjmp .L125 1179 .L107: 1180 00ea B322 and r11,r19 1181 .L125: 1182 00ec 1196 adiw r26,1 1183 00ee BC92 st X,r11 1184 00f0 A080 ld r10,Z 1185 00f2 DA01 movw r26,r20 1186 00f4 1196 adiw r26,1 1187 00f6 EB01 movw r28,r22 1188 00f8 B980 ldd r11,Y+1 1189 00fa A3FE sbrs r10,3 1190 00fc 00C0 rjmp .L109 1191 00fe B22A or r11,r18 1192 0100 00C0 rjmp .L126 1193 .L109: 1194 0102 B322 and r11,r19 1195 0104 EB01 movw r28,r22 1196 .L126: 1197 0106 B982 std Y+1,r11 GAS LISTING /tmp/ccOYgVUX.s page 22 1198 0108 A080 ld r10,Z 1199 010a BD01 movw r22,r26 1200 010c 6F5F subi r22,-1 1201 010e 7F4F sbci r23,-1 1202 0110 EA01 movw r28,r20 1203 0112 B980 ldd r11,Y+1 1204 0114 A4FE sbrs r10,4 1205 0116 00C0 rjmp .L111 1206 0118 B22A or r11,r18 1207 011a 00C0 rjmp .L127 1208 .L111: 1209 011c B322 and r11,r19 1210 011e EA01 movw r28,r20 1211 .L127: 1212 0120 B982 std Y+1,r11 1213 0122 A080 ld r10,Z 1214 0124 AB01 movw r20,r22 1215 0126 4F5F subi r20,-1 1216 0128 5F4F sbci r21,-1 1217 012a 1196 adiw r26,1 1218 012c BC90 ld r11,X 1219 012e 1197 sbiw r26,1 1220 0130 A5FE sbrs r10,5 1221 0132 00C0 rjmp .L113 1222 0134 B22A or r11,r18 1223 0136 00C0 rjmp .L128 1224 .L113: 1225 0138 B322 and r11,r19 1226 .L128: 1227 013a 1196 adiw r26,1 1228 013c BC92 st X,r11 1229 013e A080 ld r10,Z 1230 0140 DA01 movw r26,r20 1231 0142 1196 adiw r26,1 1232 0144 EB01 movw r28,r22 1233 0146 B980 ldd r11,Y+1 1234 0148 A6FE sbrs r10,6 1235 014a 00C0 rjmp .L115 1236 014c B22A or r11,r18 1237 014e 00C0 rjmp .L129 1238 .L115: 1239 0150 B322 and r11,r19 1240 0152 EB01 movw r28,r22 1241 .L129: 1242 0154 B982 std Y+1,r11 1243 0156 DFEF ldi r29,-1 1244 0158 CD1A sub r12,r29 1245 015a DD0A sbc r13,r29 1246 015c 3196 adiw r30,1 1247 015e E401 movw r28,r8 1248 0160 7881 ld r23,Y 1249 0162 1196 adiw r26,1 1250 0164 EA01 movw r28,r20 1251 0166 6981 ldd r22,Y+1 1252 0168 5D01 movw r10,r26 1253 016a 77FF sbrs r23,7 1254 016c 00C0 rjmp .L117 GAS LISTING /tmp/ccOYgVUX.s page 23 1255 016e 622B or r22,r18 1256 0170 6983 std Y+1,r22 1257 0172 00C0 rjmp .L118 1258 .L117: 1259 0174 6323 and r22,r19 1260 0176 6983 std Y+1,r22 1261 .L118: 1262 0178 0097 sbiw r24,0 1263 017a 01F0 breq .+2 1264 017c 00C0 rjmp .L102 1265 017e 220F lsl r18 1266 0180 01F4 brne .L120 1267 0182 21E0 ldi r18,lo8(1) 1268 .L120: 1269 0184 322F mov r19,r18 1270 0186 3095 com r19 1271 0188 E701 movw r28,r14 1272 018a 8A80 ldd r8,Y+2 1273 018c 9B80 ldd r9,Y+3 1274 018e C601 movw r24,r12 1275 0190 B401 movw r22,r8 1276 0192 0E94 0000 call __divmodhi4 1277 0196 689D mul r22,r8 1278 0198 C001 movw r24,r0 1279 019a 699D mul r22,r9 1280 019c 900D add r25,r0 1281 019e 789D mul r23,r8 1282 01a0 900D add r25,r0 1283 01a2 1124 clr r1 1284 01a4 AE80 ldd r10,Y+6 1285 01a6 BF80 ldd r11,Y+7 1286 01a8 A80E add r10,r24 1287 01aa B91E adc r11,r25 1288 01ac C801 movw r24,r16 1289 01ae 00C0 rjmp .L102 1290 .L130: 1291 01b0 F301 movw r30,r6 1292 01b2 8081 ld r24,Z 1293 01b4 9181 ldd r25,Z+1 1294 01b6 0E94 0000 call St7565rUpdateFb 1295 01ba C201 movw r24,r4 1296 01bc 00C0 rjmp .L98 1297 .L122: 1298 01be 80E0 ldi r24,0 1299 01c0 90E0 ldi r25,0 1300 .L98: 1301 /* epilogue start */ 1302 01c2 DF91 pop r29 1303 01c4 CF91 pop r28 1304 01c6 1F91 pop r17 1305 01c8 0F91 pop r16 1306 01ca FF90 pop r15 1307 01cc EF90 pop r14 1308 01ce DF90 pop r13 1309 01d0 CF90 pop r12 1310 01d2 BF90 pop r11 1311 01d4 AF90 pop r10 GAS LISTING /tmp/ccOYgVUX.s page 24 1312 01d6 9F90 pop r9 1313 01d8 8F90 pop r8 1314 01da 7F90 pop r7 1315 01dc 6F90 pop r6 1316 01de 5F90 pop r5 1317 01e0 4F90 pop r4 1318 01e2 0895 ret 1319 .size St7565rWrite, .-St7565rWrite 1320 .global devSt7565rFb0 1321 .data 1322 .type devSt7565rFb0, @object 1323 .size devSt7565rFb0, 37 1324 devSt7565rFb0: 1325 0000 0000 .word 0 1326 0002 46 .byte 70 1327 0003 42 .byte 66 1328 0004 30 .byte 48 1329 0005 00 .byte 0 1330 0006 00 .byte 0 1331 0007 00 .byte 0 1332 0008 00 .byte 0 1333 0009 00 .byte 0 1334 000a 00 .byte 0 1335 000b 08 .byte 8 1336 000c 0000 .word 0 1337 000e 00 .byte 0 1338 000f 0000 .word nodeSt7565r0 1339 0011 0000 .word 0 1340 0013 0000 .word gs(St7565rInit) 1341 0015 0000 .word gs(St7565rIOCtl) 1342 0017 0000 .word gs(St7565rRead) 1343 0019 0000 .word gs(St7565rWrite) 1344 001b 0000 .word 0 1345 001d 0000 .word gs(St7565rOpen) 1346 001f 0000 .word gs(St7565rClose) 1347 0021 0000 .word 0 1348 0023 0000 .word 0 1349 .global nodeSt7565r0 1350 .type nodeSt7565r0, @object 1351 .size nodeSt7565r0, 14 1352 nodeSt7565r0: 1353 0025 0000 .word 0 1354 0027 0000 .word 0 1355 0029 00 .byte 0 1356 002a 2D .byte 45 1357 002b 31 .byte 49 1358 002c 01 .byte 1 1359 002d 0300 .word 3 1360 002f 08 .byte 8 1361 0030 00 .byte 0 1362 0031 0000 .word 0 1363 .ident "GCC: (GNU) 5.3.0" 1364 .global __do_copy_data GAS LISTING /tmp/ccOYgVUX.s page 25 DEFINED SYMBOLS *ABS*:0000000000000000 spi_lcd_st7565r.c /tmp/ccOYgVUX.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccOYgVUX.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccOYgVUX.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccOYgVUX.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccOYgVUX.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccOYgVUX.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccOYgVUX.s:10 .text.St7565rIOCtl:0000000000000000 St7565rIOCtl /tmp/ccOYgVUX.s:21 .text.St7565rRead:0000000000000000 St7565rRead /tmp/ccOYgVUX.s:233 .text.St7565rWriteCmd:0000000000000000 St7565rWriteCmd /tmp/ccOYgVUX.s:327 .text.St7565rClose:0000000000000000 St7565rClose /tmp/ccOYgVUX.s:345 .text.St7565rOpen:0000000000000000 St7565rOpen /tmp/ccOYgVUX.s:376 .text.St7565rNodeLock:0000000000000000 St7565rNodeLock /tmp/ccOYgVUX.s:396 .text.St7565rNodeUnlock:0000000000000000 St7565rNodeUnlock /tmp/ccOYgVUX.s:413 .text.St7565rSetMode:0000000000000000 St7565rSetMode /tmp/ccOYgVUX.s:433 .text.St7565rSetPageAddress:0000000000000000 St7565rSetPageAddress /tmp/ccOYgVUX.s:448 .text.St7565rSetColAddress:0000000000000000 St7565rSetColAddress /tmp/ccOYgVUX.s:485 .text.St7565rSetDisplayStartLineAddress:0000000000000000 St7565rSetDisplayStartLineAddress /tmp/ccOYgVUX.s:500 .text.St7565rDisplayEnable:0000000000000000 St7565rDisplayEnable /tmp/ccOYgVUX.s:520 .text.St7565rSetContrast:0000000000000000 St7565rSetContrast /tmp/ccOYgVUX.s:565 .text.St7565rDisplayInvert:0000000000000000 St7565rDisplayInvert /tmp/ccOYgVUX.s:584 .text.St7565rInit:0000000000000000 St7565rInit /tmp/ccOYgVUX.s:813 .text.St7565rDebugPixelsAllOn:0000000000000000 St7565rDebugPixelsAllOn /tmp/ccOYgVUX.s:833 .text.St7565rUpdateFb:0000000000000000 St7565rUpdateFb /tmp/ccOYgVUX.s:1047 .text.St7565rWrite:0000000000000000 St7565rWrite /tmp/ccOYgVUX.s:1324 .data:0000000000000000 devSt7565rFb0 /tmp/ccOYgVUX.s:1352 .data:0000000000000025 nodeSt7565r0 UNDEFINED SYMBOLS __divmodhi4 GpioPinSetLow free malloc NutEventWait NutEventPost memset GpioPinConfigSet GpioPinSetHigh NutMicroDelay __do_copy_data