GAS LISTING /tmp/ccNtAUld.s page 1 1 .file "spi_at45dib.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.At45dibTransmitCmd,"ax",@progbits 9 .type At45dibTransmitCmd, @function 10 At45dibTransmitCmd: 11 0000 0F93 push r16 12 0002 1F93 push r17 13 0004 CF93 push r28 14 0006 DF93 push r29 15 0008 CDB7 in r28,__SP_L__ 16 000a DEB7 in r29,__SP_H__ 17 000c 2897 sbiw r28,8 18 000e 0FB6 in __tmp_reg__,__SREG__ 19 0010 F894 cli 20 0012 DEBF out __SP_H__,r29 21 0014 0FBE out __SREG__,__tmp_reg__ 22 0016 CDBF out __SP_L__,r28 23 /* prologue: function */ 24 /* frame size = 8 */ 25 /* stack size = 12 */ 26 .L__stack_usage = 12 27 0018 DE01 movw r26,r28 28 001a 1196 adiw r26,1 29 001c 78E0 ldi r23,lo8(8) 30 001e FD01 movw r30,r26 31 0: 32 0020 1192 st Z+,__zero_reg__ 33 0022 7A95 dec r23 34 0024 01F4 brne 0b 35 0026 6983 std Y+1,r22 36 0028 2115 cp r18,__zero_reg__ 37 002a 3105 cpc r19,__zero_reg__ 38 002c 4105 cpc r20,__zero_reg__ 39 002e 5105 cpc r21,__zero_reg__ 40 0030 01F0 breq .L2 41 0032 4A83 std Y+2,r20 42 0034 3B83 std Y+3,r19 43 0036 2C83 std Y+4,r18 44 .L2: 45 0038 202F mov r18,r16 46 003a 30E0 ldi r19,0 47 003c FC01 movw r30,r24 48 003e 4081 ld r20,Z 49 0040 5181 ldd r21,Z+1 50 0042 FA01 movw r30,r20 51 0044 0685 ldd r16,Z+14 52 0046 1785 ldd r17,Z+15 53 0048 40E0 ldi r20,0 54 004a 50E0 ldi r21,0 55 004c BD01 movw r22,r26 56 004e F801 movw r30,r16 57 0050 1995 eicall GAS LISTING /tmp/ccNtAUld.s page 2 58 /* epilogue start */ 59 0052 2896 adiw r28,8 60 0054 0FB6 in __tmp_reg__,__SREG__ 61 0056 F894 cli 62 0058 DEBF out __SP_H__,r29 63 005a 0FBE out __SREG__,__tmp_reg__ 64 005c CDBF out __SP_L__,r28 65 005e DF91 pop r29 66 0060 CF91 pop r28 67 0062 1F91 pop r17 68 0064 0F91 pop r16 69 0066 0895 ret 70 .size At45dibTransmitCmd, .-At45dibTransmitCmd 71 .section .text.At45dibTransfer,"ax",@progbits 72 .type At45dibTransfer, @function 73 At45dibTransfer: 74 0000 2F92 push r2 75 0002 3F92 push r3 76 0004 4F92 push r4 77 0006 5F92 push r5 78 0008 6F92 push r6 79 000a 7F92 push r7 80 000c 8F92 push r8 81 000e 9F92 push r9 82 0010 AF92 push r10 83 0012 BF92 push r11 84 0014 CF92 push r12 85 0016 DF92 push r13 86 0018 EF92 push r14 87 001a FF92 push r15 88 001c 0F93 push r16 89 001e 1F93 push r17 90 0020 CF93 push r28 91 0022 DF93 push r29 92 /* prologue: function */ 93 /* frame size = 0 */ 94 /* stack size = 18 */ 95 .L__stack_usage = 18 96 0024 EC01 movw r28,r24 97 0026 162F mov r17,r22 98 0028 2901 movw r4,r18 99 002a 3A01 movw r6,r20 100 002c 4701 movw r8,r14 101 002e E880 ld r14,Y 102 0030 F980 ldd r15,Y+1 103 0032 D701 movw r26,r14 104 0034 1A96 adiw r26,10 105 0036 ED91 ld r30,X+ 106 0038 FC91 ld r31,X 107 003a 1B97 sbiw r26,10+1 108 003c 40E0 ldi r20,0 109 003e 50E0 ldi r21,0 110 0040 BA01 movw r22,r20 111 0042 1995 eicall 112 0044 1C01 movw r2,r24 113 0046 892B or r24,r25 114 0048 01F4 brne .L8 GAS LISTING /tmp/ccNtAUld.s page 3 115 004a A301 movw r20,r6 116 004c 9201 movw r18,r4 117 004e 612F mov r22,r17 118 0050 CE01 movw r24,r28 119 0052 0E94 0000 call At45dibTransmitCmd 120 0056 1C01 movw r2,r24 121 0058 892B or r24,r25 122 005a 01F4 brne .L9 123 005c A114 cp r10,__zero_reg__ 124 005e B104 cpc r11,__zero_reg__ 125 0060 01F0 breq .L9 126 0062 D701 movw r26,r14 127 0064 1E96 adiw r26,14 128 0066 ED91 ld r30,X+ 129 0068 FC91 ld r31,X 130 006a 1F97 sbiw r26,14+1 131 006c 9501 movw r18,r10 132 006e A601 movw r20,r12 133 0070 B401 movw r22,r8 134 0072 CE01 movw r24,r28 135 0074 1995 eicall 136 0076 1C01 movw r2,r24 137 .L9: 138 0078 D701 movw r26,r14 139 007a 1C96 adiw r26,12 140 007c ED91 ld r30,X+ 141 007e FC91 ld r31,X 142 0080 1D97 sbiw r26,12+1 143 0082 CE01 movw r24,r28 144 0084 1995 eicall 145 .L8: 146 0086 C101 movw r24,r2 147 /* epilogue start */ 148 0088 DF91 pop r29 149 008a CF91 pop r28 150 008c 1F91 pop r17 151 008e 0F91 pop r16 152 0090 FF90 pop r15 153 0092 EF90 pop r14 154 0094 DF90 pop r13 155 0096 CF90 pop r12 156 0098 BF90 pop r11 157 009a AF90 pop r10 158 009c 9F90 pop r9 159 009e 8F90 pop r8 160 00a0 7F90 pop r7 161 00a2 6F90 pop r6 162 00a4 5F90 pop r5 163 00a6 4F90 pop r4 164 00a8 3F90 pop r3 165 00aa 2F90 pop r2 166 00ac 0895 ret 167 .size At45dibTransfer, .-At45dibTransfer 168 .section .text.At45dibCompare,"ax",@progbits 169 .type At45dibCompare, @function 170 At45dibCompare: 171 0000 2F92 push r2 GAS LISTING /tmp/ccNtAUld.s page 4 172 0002 3F92 push r3 173 0004 4F92 push r4 174 0006 5F92 push r5 175 0008 6F92 push r6 176 000a 7F92 push r7 177 000c 8F92 push r8 178 000e 9F92 push r9 179 0010 AF92 push r10 180 0012 BF92 push r11 181 0014 CF92 push r12 182 0016 DF92 push r13 183 0018 EF92 push r14 184 001a FF92 push r15 185 001c 0F93 push r16 186 001e 1F93 push r17 187 0020 CF93 push r28 188 0022 DF93 push r29 189 0024 1F92 push __zero_reg__ 190 0026 CDB7 in r28,__SP_L__ 191 0028 DEB7 in r29,__SP_H__ 192 /* prologue: function */ 193 /* frame size = 1 */ 194 /* stack size = 19 */ 195 .L__stack_usage = 19 196 002a 4C01 movw r8,r24 197 002c 162F mov r17,r22 198 002e 2901 movw r4,r18 199 0030 3A01 movw r6,r20 200 0032 DC01 movw r26,r24 201 0034 2D90 ld r2,X+ 202 0036 3C90 ld r3,X 203 0038 D101 movw r26,r2 204 003a 1A96 adiw r26,10 205 003c ED91 ld r30,X+ 206 003e FC91 ld r31,X 207 0040 1B97 sbiw r26,10+1 208 0042 40E0 ldi r20,0 209 0044 50E0 ldi r21,0 210 0046 BA01 movw r22,r20 211 0048 1995 eicall 212 004a 5C01 movw r10,r24 213 004c 892B or r24,r25 214 004e 01F4 brne .L14 215 0050 A301 movw r20,r6 216 0052 9201 movw r18,r4 217 0054 612F mov r22,r17 218 0056 C401 movw r24,r8 219 0058 0E94 0000 call At45dibTransmitCmd 220 005c 5C01 movw r10,r24 221 005e 892B or r24,r25 222 0060 01F4 brne .L15 223 0062 C114 cp r12,__zero_reg__ 224 0064 D104 cpc r13,__zero_reg__ 225 0066 01F0 breq .L15 226 0068 8701 movw r16,r14 227 .L16: 228 006a C801 movw r24,r16 GAS LISTING /tmp/ccNtAUld.s page 5 229 006c 8E19 sub r24,r14 230 006e 9F09 sbc r25,r15 231 0070 8C15 cp r24,r12 232 0072 9D05 cpc r25,r13 233 0074 04F4 brge .L15 234 0076 D101 movw r26,r2 235 0078 1E96 adiw r26,14 236 007a ED91 ld r30,X+ 237 007c FC91 ld r31,X 238 007e 1F97 sbiw r26,14+1 239 0080 21E0 ldi r18,lo8(1) 240 0082 30E0 ldi r19,0 241 0084 AE01 movw r20,r28 242 0086 4F5F subi r20,-1 243 0088 5F4F sbci r21,-1 244 008a 60E0 ldi r22,0 245 008c 70E0 ldi r23,0 246 008e C401 movw r24,r8 247 0090 1995 eicall 248 0092 0097 sbiw r24,0 249 0094 01F4 brne .L19 250 0096 F801 movw r30,r16 251 0098 9191 ld r25,Z+ 252 009a 8F01 movw r16,r30 253 009c 8981 ldd r24,Y+1 254 009e 9817 cp r25,r24 255 00a0 01F0 breq .L16 256 00a2 A82E mov r10,r24 257 00a4 B12C mov r11,__zero_reg__ 258 00a6 A91A sub r10,r25 259 00a8 B108 sbc r11,__zero_reg__ 260 00aa 00C0 rjmp .L15 261 .L19: 262 00ac 5C01 movw r10,r24 263 .L15: 264 00ae D101 movw r26,r2 265 00b0 1C96 adiw r26,12 266 00b2 ED91 ld r30,X+ 267 00b4 FC91 ld r31,X 268 00b6 1D97 sbiw r26,12+1 269 00b8 C401 movw r24,r8 270 00ba 1995 eicall 271 .L14: 272 00bc C501 movw r24,r10 273 /* epilogue start */ 274 00be 0F90 pop __tmp_reg__ 275 00c0 DF91 pop r29 276 00c2 CF91 pop r28 277 00c4 1F91 pop r17 278 00c6 0F91 pop r16 279 00c8 FF90 pop r15 280 00ca EF90 pop r14 281 00cc DF90 pop r13 282 00ce CF90 pop r12 283 00d0 BF90 pop r11 284 00d2 AF90 pop r10 285 00d4 9F90 pop r9 GAS LISTING /tmp/ccNtAUld.s page 6 286 00d6 8F90 pop r8 287 00d8 7F90 pop r7 288 00da 6F90 pop r6 289 00dc 5F90 pop r5 290 00de 4F90 pop r4 291 00e0 3F90 pop r3 292 00e2 2F90 pop r2 293 00e4 0895 ret 294 .size At45dibCompare, .-At45dibCompare 295 .section .text.At45dibUsed,"ax",@progbits 296 .type At45dibUsed, @function 297 At45dibUsed: 298 0000 2F92 push r2 299 0002 3F92 push r3 300 0004 4F92 push r4 301 0006 5F92 push r5 302 0008 6F92 push r6 303 000a 7F92 push r7 304 000c 8F92 push r8 305 000e 9F92 push r9 306 0010 AF92 push r10 307 0012 BF92 push r11 308 0014 CF92 push r12 309 0016 DF92 push r13 310 0018 EF92 push r14 311 001a FF92 push r15 312 001c 0F93 push r16 313 001e 1F93 push r17 314 0020 CF93 push r28 315 0022 DF93 push r29 316 0024 1F92 push __zero_reg__ 317 0026 CDB7 in r28,__SP_L__ 318 0028 DEB7 in r29,__SP_H__ 319 /* prologue: function */ 320 /* frame size = 1 */ 321 /* stack size = 19 */ 322 .L__stack_usage = 19 323 002a 6C01 movw r12,r24 324 002c 162F mov r17,r22 325 002e 1901 movw r2,r18 326 0030 2A01 movw r4,r20 327 0032 DC01 movw r26,r24 328 0034 AD90 ld r10,X+ 329 0036 BC90 ld r11,X 330 0038 D501 movw r26,r10 331 003a 1A96 adiw r26,10 332 003c ED91 ld r30,X+ 333 003e FC91 ld r31,X 334 0040 1B97 sbiw r26,10+1 335 0042 40E0 ldi r20,0 336 0044 50E0 ldi r21,0 337 0046 BA01 movw r22,r20 338 0048 1995 eicall 339 004a 3C01 movw r6,r24 340 004c 892B or r24,r25 341 004e 01F4 brne .L34 342 0050 A201 movw r20,r4 GAS LISTING /tmp/ccNtAUld.s page 7 343 0052 9101 movw r18,r2 344 0054 612F mov r22,r17 345 0056 C601 movw r24,r12 346 0058 0E94 0000 call At45dibTransmitCmd 347 005c 3C01 movw r6,r24 348 005e 892B or r24,r25 349 0060 01F4 brne .L26 350 0062 E114 cp r14,__zero_reg__ 351 0064 F104 cpc r15,__zero_reg__ 352 0066 01F0 breq .L26 353 0068 8824 clr r8 354 006a 8A94 dec r8 355 006c 982C mov r9,r8 356 006e 00E0 ldi r16,0 357 0070 10E0 ldi r17,0 358 .L27: 359 0072 0E15 cp r16,r14 360 0074 1F05 cpc r17,r15 361 0076 04F4 brge .L40 362 0078 D501 movw r26,r10 363 007a 1E96 adiw r26,14 364 007c ED91 ld r30,X+ 365 007e FC91 ld r31,X 366 0080 1F97 sbiw r26,14+1 367 0082 21E0 ldi r18,lo8(1) 368 0084 30E0 ldi r19,0 369 0086 AE01 movw r20,r28 370 0088 4F5F subi r20,-1 371 008a 5F4F sbci r21,-1 372 008c 60E0 ldi r22,0 373 008e 70E0 ldi r23,0 374 0090 C601 movw r24,r12 375 0092 1995 eicall 376 0094 3C01 movw r6,r24 377 0096 892B or r24,r25 378 0098 01F4 brne .L26 379 009a 8981 ldd r24,Y+1 380 009c 8F3F cpi r24,lo8(-1) 381 009e 01F0 breq .L29 382 00a0 4801 movw r8,r16 383 .L29: 384 00a2 0F5F subi r16,-1 385 00a4 1F4F sbci r17,-1 386 00a6 00C0 rjmp .L27 387 .L40: 388 00a8 3401 movw r6,r8 389 00aa BFEF ldi r27,-1 390 00ac 6B1A sub r6,r27 391 00ae 7B0A sbc r7,r27 392 .L26: 393 00b0 D501 movw r26,r10 394 00b2 1C96 adiw r26,12 395 00b4 ED91 ld r30,X+ 396 00b6 FC91 ld r31,X 397 00b8 1D97 sbiw r26,12+1 398 00ba C601 movw r24,r12 399 00bc 1995 eicall GAS LISTING /tmp/ccNtAUld.s page 8 400 .L34: 401 00be C301 movw r24,r6 402 /* epilogue start */ 403 00c0 0F90 pop __tmp_reg__ 404 00c2 DF91 pop r29 405 00c4 CF91 pop r28 406 00c6 1F91 pop r17 407 00c8 0F91 pop r16 408 00ca FF90 pop r15 409 00cc EF90 pop r14 410 00ce DF90 pop r13 411 00d0 CF90 pop r12 412 00d2 BF90 pop r11 413 00d4 AF90 pop r10 414 00d6 9F90 pop r9 415 00d8 8F90 pop r8 416 00da 7F90 pop r7 417 00dc 6F90 pop r6 418 00de 5F90 pop r5 419 00e0 4F90 pop r4 420 00e2 3F90 pop r3 421 00e4 2F90 pop r2 422 00e6 0895 ret 423 .size At45dibUsed, .-At45dibUsed 424 .section .text.At45dibStatus,"ax",@progbits 425 .type At45dibStatus, @function 426 At45dibStatus: 427 0000 CF92 push r12 428 0002 DF92 push r13 429 0004 EF92 push r14 430 0006 FF92 push r15 431 0008 0F93 push r16 432 000a 1F93 push r17 433 000c CF93 push r28 434 000e DF93 push r29 435 0010 1F92 push __zero_reg__ 436 0012 1F92 push __zero_reg__ 437 0014 CDB7 in r28,__SP_L__ 438 0016 DEB7 in r29,__SP_H__ 439 /* prologue: function */ 440 /* frame size = 2 */ 441 /* stack size = 10 */ 442 .L__stack_usage = 10 443 0018 7C01 movw r14,r24 444 001a 87ED ldi r24,lo8(-41) 445 001c 8983 std Y+1,r24 446 001e 8FEF ldi r24,lo8(-1) 447 0020 8A83 std Y+2,r24 448 0022 D701 movw r26,r14 449 0024 CD90 ld r12,X+ 450 0026 DC90 ld r13,X 451 0028 D601 movw r26,r12 452 002a 1A96 adiw r26,10 453 002c ED91 ld r30,X+ 454 002e FC91 ld r31,X 455 0030 1B97 sbiw r26,10+1 456 0032 40E0 ldi r20,0 GAS LISTING /tmp/ccNtAUld.s page 9 457 0034 50E0 ldi r21,0 458 0036 BA01 movw r22,r20 459 0038 C701 movw r24,r14 460 003a 1995 eicall 461 003c 8C01 movw r16,r24 462 003e 892B or r24,r25 463 0040 01F4 brne .L42 464 0042 D601 movw r26,r12 465 0044 1E96 adiw r26,14 466 0046 ED91 ld r30,X+ 467 0048 FC91 ld r31,X 468 004a 1F97 sbiw r26,14+1 469 004c 22E0 ldi r18,lo8(2) 470 004e 30E0 ldi r19,0 471 0050 AE01 movw r20,r28 472 0052 4F5F subi r20,-1 473 0054 5F4F sbci r21,-1 474 0056 BA01 movw r22,r20 475 0058 C701 movw r24,r14 476 005a 1995 eicall 477 005c 8C01 movw r16,r24 478 005e 892B or r24,r25 479 0060 01F4 brne .L43 480 0062 D601 movw r26,r12 481 0064 5096 adiw r26,16 482 0066 ED91 ld r30,X+ 483 0068 FC91 ld r31,X 484 006a 5197 sbiw r26,16+1 485 006c 40E0 ldi r20,0 486 006e 50E0 ldi r21,0 487 0070 BA01 movw r22,r20 488 0072 C701 movw r24,r14 489 0074 1995 eicall 490 0076 0A81 ldd r16,Y+2 491 .L43: 492 0078 D601 movw r26,r12 493 007a 1C96 adiw r26,12 494 007c ED91 ld r30,X+ 495 007e FC91 ld r31,X 496 0080 1D97 sbiw r26,12+1 497 0082 C701 movw r24,r14 498 0084 1995 eicall 499 .L42: 500 0086 802F mov r24,r16 501 /* epilogue start */ 502 0088 0F90 pop __tmp_reg__ 503 008a 0F90 pop __tmp_reg__ 504 008c DF91 pop r29 505 008e CF91 pop r28 506 0090 1F91 pop r17 507 0092 0F91 pop r16 508 0094 FF90 pop r15 509 0096 EF90 pop r14 510 0098 DF90 pop r13 511 009a CF90 pop r12 512 009c 0895 ret 513 .size At45dibStatus, .-At45dibStatus GAS LISTING /tmp/ccNtAUld.s page 10 514 .section .text.SpiAt45dibCheck,"ax",@progbits 515 .type SpiAt45dibCheck, @function 516 SpiAt45dibCheck: 517 /* prologue: function */ 518 /* frame size = 0 */ 519 /* stack size = 0 */ 520 .L__stack_usage = 0 521 0000 80E0 ldi r24,0 522 0002 90E0 ldi r25,0 523 0004 0895 ret 524 .size SpiAt45dibCheck, .-SpiAt45dibCheck 525 .section .text.SpiAt45dibUsed,"ax",@progbits 526 .type SpiAt45dibUsed, @function 527 SpiAt45dibUsed: 528 0000 8F92 push r8 529 0002 9F92 push r9 530 0004 AF92 push r10 531 0006 BF92 push r11 532 0008 EF92 push r14 533 000a FF92 push r15 534 000c 0F93 push r16 535 000e CF93 push r28 536 0010 DF93 push r29 537 /* prologue: function */ 538 /* frame size = 0 */ 539 /* stack size = 9 */ 540 .L__stack_usage = 9 541 0012 DC01 movw r26,r24 542 0014 1296 adiw r26,2 543 0016 ED91 ld r30,X+ 544 0018 FC91 ld r31,X 545 001a 1397 sbiw r26,2+1 546 001c 1496 adiw r26,4 547 001e ED90 ld r14,X+ 548 0020 FC90 ld r15,X 549 0022 1597 sbiw r26,4+1 550 0024 57FF sbrs r21,7 551 0026 00C0 rjmp .L46 552 0028 E40E add r14,r20 553 002a F51E adc r15,r21 554 002c 40E0 ldi r20,0 555 002e 50E0 ldi r21,0 556 0030 00C0 rjmp .L47 557 .L46: 558 0032 E41A sub r14,r20 559 0034 F50A sbc r15,r21 560 .L47: 561 0036 C081 ld r28,Z 562 0038 D181 ldd r29,Z+1 563 003a 8D91 ld r24,X+ 564 003c 9C91 ld r25,X 565 003e 9A01 movw r18,r20 566 0040 550F lsl r21 567 0042 440B sbc r20,r20 568 0044 550B sbc r21,r21 569 0046 6C17 cp r22,r28 570 0048 7D07 cpc r23,r29 GAS LISTING /tmp/ccNtAUld.s page 11 571 004a 01F0 breq .L55 572 004c A281 ldd r26,Z+2 573 004e B381 ldd r27,Z+3 574 0050 6A17 cp r22,r26 575 0052 7B07 cpc r23,r27 576 0054 01F4 brne .L49 577 0056 66ED ldi r22,lo8(-42) 578 0058 00C0 rjmp .L50 579 .L55: 580 005a 64ED ldi r22,lo8(-44) 581 .L50: 582 005c 05E0 ldi r16,lo8(5) 583 005e 00C0 rjmp .L58 584 .L49: 585 0060 4B01 movw r8,r22 586 0062 A12C mov r10,__zero_reg__ 587 0064 B12C mov r11,__zero_reg__ 588 0066 0484 ldd r0,Z+12 589 0068 00C0 rjmp 2f 590 1: 591 006a 880C lsl r8 592 006c 991C rol r9 593 006e AA1C rol r10 594 0070 BB1C rol r11 595 2: 596 0072 0A94 dec r0 597 0074 02F4 brpl 1b 598 0076 2829 or r18,r8 599 0078 3929 or r19,r9 600 007a 4A29 or r20,r10 601 007c 5B29 or r21,r11 602 007e 08E0 ldi r16,lo8(8) 603 0080 62ED ldi r22,lo8(-46) 604 .L58: 605 0082 0E94 0000 call At45dibUsed 606 /* epilogue start */ 607 0086 DF91 pop r29 608 0088 CF91 pop r28 609 008a 0F91 pop r16 610 008c FF90 pop r15 611 008e EF90 pop r14 612 0090 BF90 pop r11 613 0092 AF90 pop r10 614 0094 9F90 pop r9 615 0096 8F90 pop r8 616 0098 0895 ret 617 .size SpiAt45dibUsed, .-SpiAt45dibUsed 618 .section .text.SpiAt45dibExit,"ax",@progbits 619 .type SpiAt45dibExit, @function 620 SpiAt45dibExit: 621 /* prologue: function */ 622 /* frame size = 0 */ 623 /* stack size = 0 */ 624 .L__stack_usage = 0 625 0000 FC01 movw r30,r24 626 0002 8281 ldd r24,Z+2 627 0004 9381 ldd r25,Z+3 GAS LISTING /tmp/ccNtAUld.s page 12 628 0006 0C94 0000 jmp free 629 .size SpiAt45dibExit, .-SpiAt45dibExit 630 .section .text.SpiAt45dibInit,"ax",@progbits 631 .type SpiAt45dibInit, @function 632 SpiAt45dibInit: 633 0000 0F93 push r16 634 0002 1F93 push r17 635 0004 CF93 push r28 636 0006 DF93 push r29 637 /* prologue: function */ 638 /* frame size = 0 */ 639 /* stack size = 4 */ 640 .L__stack_usage = 4 641 0008 8C01 movw r16,r24 642 000a DC01 movw r26,r24 643 000c 8D91 ld r24,X+ 644 000e 9C91 ld r25,X 645 0010 0E94 0000 call At45dibStatus 646 0014 8D73 andi r24,lo8(61) 647 0016 9091 0000 lds r25,at45d_known_types 648 .L61: 649 001a 9150 subi r25,lo8(-(-1)) 650 001c 97FD sbrc r25,7 651 001e 00C0 rjmp .L65 652 0020 B8E0 ldi r27,lo8(8) 653 0022 9B02 muls r25,r27 654 0024 E001 movw r28,r0 655 0026 1124 clr __zero_reg__ 656 0028 C050 subi r28,lo8(-(at45d_info)) 657 002a D040 sbci r29,hi8(-(at45d_info)) 658 002c 2F81 ldd r18,Y+7 659 002e 8213 cpse r24,r18 660 0030 00C0 rjmp .L61 661 0032 6DE0 ldi r22,lo8(13) 662 0034 70E0 ldi r23,0 663 0036 81E0 ldi r24,lo8(1) 664 0038 90E0 ldi r25,0 665 003a 0E94 0000 call calloc 666 003e FC01 movw r30,r24 667 0040 892B or r24,r25 668 0042 01F4 brne .L62 669 .L65: 670 0044 8FEF ldi r24,lo8(-1) 671 0046 9FEF ldi r25,lo8(-1) 672 0048 00C0 rjmp .L63 673 .L62: 674 004a 8881 ld r24,Y 675 004c 8487 std Z+12,r24 676 004e 8FEF ldi r24,lo8(-1) 677 0050 9FEF ldi r25,lo8(-1) 678 0052 9183 std Z+1,r25 679 0054 8083 st Z,r24 680 0056 9383 std Z+3,r25 681 0058 8283 std Z+2,r24 682 005a D801 movw r26,r16 683 005c 1396 adiw r26,2+1 684 005e FC93 st X,r31 GAS LISTING /tmp/ccNtAUld.s page 13 685 0060 EE93 st -X,r30 686 0062 1297 sbiw r26,2 687 0064 8981 ldd r24,Y+1 688 0066 9A81 ldd r25,Y+2 689 0068 1796 adiw r26,6+1 690 006a 9C93 st X,r25 691 006c 8E93 st -X,r24 692 006e 1697 sbiw r26,6 693 0070 8D81 ldd r24,Y+5 694 0072 9E81 ldd r25,Y+6 695 0074 1596 adiw r26,4+1 696 0076 9C93 st X,r25 697 0078 8E93 st -X,r24 698 007a 1497 sbiw r26,4 699 007c 80E0 ldi r24,0 700 007e 90E0 ldi r25,0 701 .L63: 702 /* epilogue start */ 703 0080 DF91 pop r29 704 0082 CF91 pop r28 705 0084 1F91 pop r17 706 0086 0F91 pop r16 707 0088 0895 ret 708 .size SpiAt45dibInit, .-SpiAt45dibInit 709 .section .text.SpiAt45dibRead,"ax",@progbits 710 .type SpiAt45dibRead, @function 711 SpiAt45dibRead: 712 0000 8F92 push r8 713 0002 9F92 push r9 714 0004 AF92 push r10 715 0006 BF92 push r11 716 0008 CF92 push r12 717 000a DF92 push r13 718 000c EF92 push r14 719 000e FF92 push r15 720 0010 0F93 push r16 721 0012 1F93 push r17 722 /* prologue: function */ 723 /* frame size = 0 */ 724 /* stack size = 10 */ 725 .L__stack_usage = 10 726 0014 DC01 movw r26,r24 727 0016 4B01 movw r8,r22 728 0018 6901 movw r12,r18 729 001a 0115 cp r16,__zero_reg__ 730 001c 1105 cpc r17,__zero_reg__ 731 001e 01F0 breq .L74 732 0020 1296 adiw r26,2 733 0022 ED91 ld r30,X+ 734 0024 FC91 ld r31,X 735 0026 1397 sbiw r26,2+1 736 0028 57FF sbrs r21,7 737 002a 00C0 rjmp .L69 738 002c 1496 adiw r26,4 739 002e 8D91 ld r24,X+ 740 0030 9C91 ld r25,X 741 0032 1597 sbiw r26,4+1 GAS LISTING /tmp/ccNtAUld.s page 14 742 0034 480F add r20,r24 743 0036 591F adc r21,r25 744 .L69: 745 0038 6081 ld r22,Z 746 003a 7181 ldd r23,Z+1 747 003c 8D91 ld r24,X+ 748 003e 9C91 ld r25,X 749 0040 9A01 movw r18,r20 750 0042 550F lsl r21 751 0044 440B sbc r20,r20 752 0046 550B sbc r21,r21 753 0048 8616 cp r8,r22 754 004a 9706 cpc r9,r23 755 004c 01F0 breq .L77 756 004e 6281 ldd r22,Z+2 757 0050 7381 ldd r23,Z+3 758 0052 8616 cp r8,r22 759 0054 9706 cpc r9,r23 760 0056 01F4 brne .L71 761 0058 66ED ldi r22,lo8(-42) 762 005a 00C0 rjmp .L72 763 .L77: 764 005c 64ED ldi r22,lo8(-44) 765 .L72: 766 005e 5801 movw r10,r16 767 0060 E12C mov r14,__zero_reg__ 768 0062 F12C mov r15,__zero_reg__ 769 0064 05E0 ldi r16,lo8(5) 770 0066 00C0 rjmp .L80 771 .L74: 772 0068 80E0 ldi r24,0 773 006a 90E0 ldi r25,0 774 006c 00C0 rjmp .L79 775 .L71: 776 006e A12C mov r10,__zero_reg__ 777 0070 B12C mov r11,__zero_reg__ 778 0072 0484 ldd r0,Z+12 779 0074 00C0 rjmp 2f 780 1: 781 0076 880C lsl r8 782 0078 991C rol r9 783 007a AA1C rol r10 784 007c BB1C rol r11 785 2: 786 007e 0A94 dec r0 787 0080 02F4 brpl 1b 788 0082 2829 or r18,r8 789 0084 3929 or r19,r9 790 0086 4A29 or r20,r10 791 0088 5B29 or r21,r11 792 008a 5801 movw r10,r16 793 008c E12C mov r14,__zero_reg__ 794 008e F12C mov r15,__zero_reg__ 795 0090 08E0 ldi r16,lo8(8) 796 0092 62ED ldi r22,lo8(-46) 797 .L80: 798 0094 0E94 0000 call At45dibTransfer GAS LISTING /tmp/ccNtAUld.s page 15 799 .L79: 800 /* epilogue start */ 801 0098 1F91 pop r17 802 009a 0F91 pop r16 803 009c FF90 pop r15 804 009e EF90 pop r14 805 00a0 DF90 pop r13 806 00a2 CF90 pop r12 807 00a4 BF90 pop r11 808 00a6 AF90 pop r10 809 00a8 9F90 pop r9 810 00aa 8F90 pop r8 811 00ac 0895 ret 812 .size SpiAt45dibRead, .-SpiAt45dibRead 813 .section .text.SpiAt45dibCompare,"ax",@progbits 814 .type SpiAt45dibCompare, @function 815 SpiAt45dibCompare: 816 0000 8F92 push r8 817 0002 9F92 push r9 818 0004 AF92 push r10 819 0006 BF92 push r11 820 0008 CF92 push r12 821 000a DF92 push r13 822 000c EF92 push r14 823 000e FF92 push r15 824 0010 0F93 push r16 825 0012 1F93 push r17 826 /* prologue: function */ 827 /* frame size = 0 */ 828 /* stack size = 10 */ 829 .L__stack_usage = 10 830 0014 DC01 movw r26,r24 831 0016 4B01 movw r8,r22 832 0018 7901 movw r14,r18 833 001a 6801 movw r12,r16 834 001c 012B or r16,r17 835 001e 01F0 breq .L88 836 0020 1296 adiw r26,2 837 0022 ED91 ld r30,X+ 838 0024 FC91 ld r31,X 839 0026 1397 sbiw r26,2+1 840 0028 57FF sbrs r21,7 841 002a 00C0 rjmp .L83 842 002c 1496 adiw r26,4 843 002e 8D91 ld r24,X+ 844 0030 9C91 ld r25,X 845 0032 1597 sbiw r26,4+1 846 0034 480F add r20,r24 847 0036 591F adc r21,r25 848 .L83: 849 0038 6081 ld r22,Z 850 003a 7181 ldd r23,Z+1 851 003c 8D91 ld r24,X+ 852 003e 9C91 ld r25,X 853 0040 9A01 movw r18,r20 854 0042 550F lsl r21 855 0044 440B sbc r20,r20 GAS LISTING /tmp/ccNtAUld.s page 16 856 0046 550B sbc r21,r21 857 0048 8616 cp r8,r22 858 004a 9706 cpc r9,r23 859 004c 01F0 breq .L91 860 004e 6281 ldd r22,Z+2 861 0050 7381 ldd r23,Z+3 862 0052 8616 cp r8,r22 863 0054 9706 cpc r9,r23 864 0056 01F4 brne .L85 865 0058 66ED ldi r22,lo8(-42) 866 005a 00C0 rjmp .L86 867 .L91: 868 005c 64ED ldi r22,lo8(-44) 869 .L86: 870 005e 05E0 ldi r16,lo8(5) 871 0060 00C0 rjmp .L94 872 .L88: 873 0062 80E0 ldi r24,0 874 0064 90E0 ldi r25,0 875 0066 00C0 rjmp .L93 876 .L85: 877 0068 A12C mov r10,__zero_reg__ 878 006a B12C mov r11,__zero_reg__ 879 006c 0484 ldd r0,Z+12 880 006e 00C0 rjmp 2f 881 1: 882 0070 880C lsl r8 883 0072 991C rol r9 884 0074 AA1C rol r10 885 0076 BB1C rol r11 886 2: 887 0078 0A94 dec r0 888 007a 02F4 brpl 1b 889 007c 2829 or r18,r8 890 007e 3929 or r19,r9 891 0080 4A29 or r20,r10 892 0082 5B29 or r21,r11 893 0084 08E0 ldi r16,lo8(8) 894 0086 62ED ldi r22,lo8(-46) 895 .L94: 896 0088 0E94 0000 call At45dibCompare 897 .L93: 898 /* epilogue start */ 899 008c 1F91 pop r17 900 008e 0F91 pop r16 901 0090 FF90 pop r15 902 0092 EF90 pop r14 903 0094 DF90 pop r13 904 0096 CF90 pop r12 905 0098 BF90 pop r11 906 009a AF90 pop r10 907 009c 9F90 pop r9 908 009e 8F90 pop r8 909 00a0 0895 ret 910 .size SpiAt45dibCompare, .-SpiAt45dibCompare 911 .section .text.At45dibWaitReady.constprop.5,"ax",@progbits 912 .type At45dibWaitReady.constprop.5, @function GAS LISTING /tmp/ccNtAUld.s page 17 913 At45dibWaitReady.constprop.5: 914 0000 0F93 push r16 915 0002 1F93 push r17 916 0004 CF93 push r28 917 0006 DF93 push r29 918 /* prologue: function */ 919 /* frame size = 0 */ 920 /* stack size = 4 */ 921 .L__stack_usage = 4 922 0008 8C01 movw r16,r24 923 000a C0E0 ldi r28,0 924 000c D0E0 ldi r29,0 925 .L96: 926 000e C801 movw r24,r16 927 0010 0E94 0000 call At45dibStatus 928 0014 87FD sbrc r24,7 929 0016 00C0 rjmp .L100 930 0018 2196 adiw r28,1 931 001a C93E cpi r28,-23 932 001c 83E0 ldi r24,3 933 001e D807 cpc r29,r24 934 0020 01F4 brne .L96 935 0022 8FEF ldi r24,lo8(-1) 936 0024 9FEF ldi r25,lo8(-1) 937 0026 00C0 rjmp .L97 938 .L100: 939 0028 80E0 ldi r24,0 940 002a 90E0 ldi r25,0 941 .L97: 942 /* epilogue start */ 943 002c DF91 pop r29 944 002e CF91 pop r28 945 0030 1F91 pop r17 946 0032 0F91 pop r16 947 0034 0895 ret 948 .size At45dibWaitReady.constprop.5, .-At45dibWaitReady.constprop.5 949 .section .text.SpiAt45dibErase,"ax",@progbits 950 .type SpiAt45dibErase, @function 951 SpiAt45dibErase: 952 0000 4F92 push r4 953 0002 5F92 push r5 954 0004 6F92 push r6 955 0006 7F92 push r7 956 0008 8F92 push r8 957 000a 9F92 push r9 958 000c AF92 push r10 959 000e BF92 push r11 960 0010 CF92 push r12 961 0012 DF92 push r13 962 0014 EF92 push r14 963 0016 FF92 push r15 964 0018 0F93 push r16 965 001a CF93 push r28 966 001c DF93 push r29 967 /* prologue: function */ 968 /* frame size = 0 */ 969 /* stack size = 15 */ GAS LISTING /tmp/ccNtAUld.s page 18 970 .L__stack_usage = 15 971 001e 3C01 movw r6,r24 972 0020 2B01 movw r4,r22 973 0022 FC01 movw r30,r24 974 0024 C281 ldd r28,Z+2 975 0026 D381 ldd r29,Z+3 976 0028 8881 ld r24,Y 977 002a 9981 ldd r25,Y+1 978 002c 8617 cp r24,r22 979 002e 9707 cpc r25,r23 980 0030 00F0 brlo .L102 981 0032 9A01 movw r18,r20 982 0034 260F add r18,r22 983 0036 371F adc r19,r23 984 0038 8217 cp r24,r18 985 003a 9307 cpc r25,r19 986 003c 00F4 brsh .L102 987 003e 8FEF ldi r24,lo8(-1) 988 0040 9FEF ldi r25,lo8(-1) 989 0042 9983 std Y+1,r25 990 0044 8883 st Y,r24 991 0046 8C81 ldd r24,Y+4 992 0048 8E7F andi r24,lo8(-2) 993 004a 8C83 std Y+4,r24 994 .L102: 995 004c 8A81 ldd r24,Y+2 996 004e 9B81 ldd r25,Y+3 997 0050 8415 cp r24,r4 998 0052 9505 cpc r25,r5 999 0054 00F0 brlo .L103 1000 0056 9A01 movw r18,r20 1001 0058 240D add r18,r4 1002 005a 351D adc r19,r5 1003 005c 8217 cp r24,r18 1004 005e 9307 cpc r25,r19 1005 0060 00F4 brsh .L103 1006 0062 8FEF ldi r24,lo8(-1) 1007 0064 9FEF ldi r25,lo8(-1) 1008 0066 9B83 std Y+3,r25 1009 0068 8A83 std Y+2,r24 1010 006a 8D81 ldd r24,Y+5 1011 006c 8E7F andi r24,lo8(-2) 1012 006e 8D83 std Y+5,r24 1013 .L103: 1014 0070 4A01 movw r8,r20 1015 0072 F1E0 ldi r31,1 1016 0074 8F1A sub r8,r31 1017 0076 9108 sbc r9,__zero_reg__ 1018 .L104: 1019 0078 2FEF ldi r18,-1 1020 007a 8216 cp r8,r18 1021 007c 9206 cpc r9,r18 1022 007e 01F0 breq .L109 1023 0080 9201 movw r18,r4 1024 0082 280D add r18,r8 1025 0084 391D adc r19,r9 1026 0086 C901 movw r24,r18 GAS LISTING /tmp/ccNtAUld.s page 19 1027 0088 A0E0 ldi r26,0 1028 008a B0E0 ldi r27,0 1029 008c 9C01 movw r18,r24 1030 008e AD01 movw r20,r26 1031 0090 0C84 ldd r0,Y+12 1032 0092 00C0 rjmp 2f 1033 1: 1034 0094 220F lsl r18 1035 0096 331F rol r19 1036 0098 441F rol r20 1037 009a 551F rol r21 1038 2: 1039 009c 0A94 dec r0 1040 009e 02F4 brpl 1b 1041 00a0 A12C mov r10,__zero_reg__ 1042 00a2 B12C mov r11,__zero_reg__ 1043 00a4 C12C mov r12,__zero_reg__ 1044 00a6 D12C mov r13,__zero_reg__ 1045 00a8 E12C mov r14,__zero_reg__ 1046 00aa F12C mov r15,__zero_reg__ 1047 00ac 04E0 ldi r16,lo8(4) 1048 00ae 61E8 ldi r22,lo8(-127) 1049 00b0 F301 movw r30,r6 1050 00b2 8081 ld r24,Z 1051 00b4 9181 ldd r25,Z+1 1052 00b6 0E94 0000 call At45dibTransfer 1053 00ba 892B or r24,r25 1054 00bc 01F0 breq .L105 1055 .L107: 1056 00be 8FEF ldi r24,lo8(-1) 1057 00c0 9FEF ldi r25,lo8(-1) 1058 00c2 00C0 rjmp .L106 1059 .L105: 1060 00c4 F301 movw r30,r6 1061 00c6 8081 ld r24,Z 1062 00c8 9181 ldd r25,Z+1 1063 00ca 0E94 0000 call At45dibWaitReady.constprop.5 1064 00ce F1E0 ldi r31,1 1065 00d0 8F1A sub r8,r31 1066 00d2 9108 sbc r9,__zero_reg__ 1067 00d4 892B or r24,r25 1068 00d6 01F0 breq .L104 1069 00d8 00C0 rjmp .L107 1070 .L109: 1071 00da 80E0 ldi r24,0 1072 00dc 90E0 ldi r25,0 1073 .L106: 1074 /* epilogue start */ 1075 00de DF91 pop r29 1076 00e0 CF91 pop r28 1077 00e2 0F91 pop r16 1078 00e4 FF90 pop r15 1079 00e6 EF90 pop r14 1080 00e8 DF90 pop r13 1081 00ea CF90 pop r12 1082 00ec BF90 pop r11 1083 00ee AF90 pop r10 GAS LISTING /tmp/ccNtAUld.s page 20 1084 00f0 9F90 pop r9 1085 00f2 8F90 pop r8 1086 00f4 7F90 pop r7 1087 00f6 6F90 pop r6 1088 00f8 5F90 pop r5 1089 00fa 4F90 pop r4 1090 00fc 0895 ret 1091 .size SpiAt45dibErase, .-SpiAt45dibErase 1092 .section .text.At45dibFlash,"ax",@progbits 1093 .type At45dibFlash, @function 1094 At45dibFlash: 1095 0000 6F92 push r6 1096 0002 7F92 push r7 1097 0004 8F92 push r8 1098 0006 9F92 push r9 1099 0008 AF92 push r10 1100 000a BF92 push r11 1101 000c CF92 push r12 1102 000e DF92 push r13 1103 0010 EF92 push r14 1104 0012 FF92 push r15 1105 0014 0F93 push r16 1106 0016 CF93 push r28 1107 0018 DF93 push r29 1108 /* prologue: function */ 1109 /* frame size = 0 */ 1110 /* stack size = 13 */ 1111 .L__stack_usage = 13 1112 001a 3C01 movw r6,r24 1113 001c FC01 movw r30,r24 1114 001e 8280 ldd r8,Z+2 1115 0020 9380 ldd r9,Z+3 1116 0022 C62F mov r28,r22 1117 0024 062E mov __tmp_reg__,r22 1118 0026 000C lsl r0 1119 0028 DD0B sbc r29,r29 1120 002a FE01 movw r30,r28 1121 002c EE0F lsl r30 1122 002e FF1F rol r31 1123 0030 E80D add r30,r8 1124 0032 F91D adc r31,r9 1125 0034 2081 ld r18,Z 1126 0036 3181 ldd r19,Z+1 1127 0038 C901 movw r24,r18 1128 003a A0E0 ldi r26,0 1129 003c B0E0 ldi r27,0 1130 003e 9C01 movw r18,r24 1131 0040 AD01 movw r20,r26 1132 0042 F401 movw r30,r8 1133 0044 0484 ldd r0,Z+12 1134 0046 00C0 rjmp 2f 1135 1: 1136 0048 220F lsl r18 1137 004a 331F rol r19 1138 004c 441F rol r20 1139 004e 551F rol r21 1140 2: GAS LISTING /tmp/ccNtAUld.s page 21 1141 0050 0A94 dec r0 1142 0052 02F4 brpl 1b 1143 0054 6111 cpse r22,__zero_reg__ 1144 0056 00C0 rjmp .L113 1145 0058 68E8 ldi r22,lo8(-120) 1146 005a 00C0 rjmp .L111 1147 .L113: 1148 005c 69E8 ldi r22,lo8(-119) 1149 .L111: 1150 005e A12C mov r10,__zero_reg__ 1151 0060 B12C mov r11,__zero_reg__ 1152 0062 C12C mov r12,__zero_reg__ 1153 0064 D12C mov r13,__zero_reg__ 1154 0066 E12C mov r14,__zero_reg__ 1155 0068 F12C mov r15,__zero_reg__ 1156 006a 04E0 ldi r16,lo8(4) 1157 006c F301 movw r30,r6 1158 006e 8081 ld r24,Z 1159 0070 9181 ldd r25,Z+1 1160 0072 0E94 0000 call At45dibTransfer 1161 0076 0097 sbiw r24,0 1162 0078 01F4 brne .L112 1163 007a F301 movw r30,r6 1164 007c 8081 ld r24,Z 1165 007e 9181 ldd r25,Z+1 1166 0080 0E94 0000 call At45dibWaitReady.constprop.5 1167 0084 C80D add r28,r8 1168 0086 D91D adc r29,r9 1169 0088 2C81 ldd r18,Y+4 1170 008a 2E7F andi r18,lo8(-2) 1171 008c 2C83 std Y+4,r18 1172 .L112: 1173 /* epilogue start */ 1174 008e DF91 pop r29 1175 0090 CF91 pop r28 1176 0092 0F91 pop r16 1177 0094 FF90 pop r15 1178 0096 EF90 pop r14 1179 0098 DF90 pop r13 1180 009a CF90 pop r12 1181 009c BF90 pop r11 1182 009e AF90 pop r10 1183 00a0 9F90 pop r9 1184 00a2 8F90 pop r8 1185 00a4 7F90 pop r7 1186 00a6 6F90 pop r6 1187 00a8 0895 ret 1188 .size At45dibFlash, .-At45dibFlash 1189 .section .text.SpiAt45dibCommit,"ax",@progbits 1190 .type SpiAt45dibCommit, @function 1191 SpiAt45dibCommit: 1192 /* prologue: function */ 1193 /* frame size = 0 */ 1194 /* stack size = 0 */ 1195 .L__stack_usage = 0 1196 0000 DC01 movw r26,r24 1197 0002 1296 adiw r26,2 GAS LISTING /tmp/ccNtAUld.s page 22 1198 0004 ED91 ld r30,X+ 1199 0006 FC91 ld r31,X 1200 0008 1397 sbiw r26,2+1 1201 000a 2081 ld r18,Z 1202 000c 3181 ldd r19,Z+1 1203 000e 6217 cp r22,r18 1204 0010 7307 cpc r23,r19 1205 0012 01F0 breq .L118 1206 0014 2281 ldd r18,Z+2 1207 0016 3381 ldd r19,Z+3 1208 0018 6217 cp r22,r18 1209 001a 7307 cpc r23,r19 1210 001c 01F4 brne .L120 1211 001e 61E0 ldi r22,lo8(1) 1212 0020 00C0 rjmp .L115 1213 .L118: 1214 0022 60E0 ldi r22,0 1215 .L115: 1216 0024 E60F add r30,r22 1217 0026 F11D adc r31,__zero_reg__ 1218 0028 2481 ldd r18,Z+4 1219 002a 20FD sbrc r18,0 1220 002c 0C94 0000 jmp At45dibFlash 1221 .L120: 1222 0030 80E0 ldi r24,0 1223 0032 90E0 ldi r25,0 1224 0034 0895 ret 1225 .size SpiAt45dibCommit, .-SpiAt45dibCommit 1226 .section .text.At45dibAllocate,"ax",@progbits 1227 .type At45dibAllocate, @function 1228 At45dibAllocate: 1229 0000 2F92 push r2 1230 0002 3F92 push r3 1231 0004 4F92 push r4 1232 0006 5F92 push r5 1233 0008 6F92 push r6 1234 000a 7F92 push r7 1235 000c 8F92 push r8 1236 000e 9F92 push r9 1237 0010 AF92 push r10 1238 0012 BF92 push r11 1239 0014 CF92 push r12 1240 0016 DF92 push r13 1241 0018 EF92 push r14 1242 001a FF92 push r15 1243 001c 0F93 push r16 1244 001e 1F93 push r17 1245 0020 CF93 push r28 1246 0022 DF93 push r29 1247 0024 00D0 rcall . 1248 0026 1F92 push __zero_reg__ 1249 0028 CDB7 in r28,__SP_L__ 1250 002a DEB7 in r29,__SP_H__ 1251 /* prologue: function */ 1252 /* frame size = 4 */ 1253 /* stack size = 22 */ 1254 .L__stack_usage = 22 GAS LISTING /tmp/ccNtAUld.s page 23 1255 002c 4C01 movw r8,r24 1256 002e 3B01 movw r6,r22 1257 0030 FC01 movw r30,r24 1258 0032 0280 ldd __tmp_reg__,Z+2 1259 0034 F381 ldd r31,Z+3 1260 0036 E02D mov r30,__tmp_reg__ 1261 0038 FC83 std Y+4,r31 1262 003a EB83 std Y+3,r30 1263 003c 1F01 movw r2,r30 1264 003e FAE0 ldi r31,10 1265 0040 2F0E add r2,r31 1266 0042 311C adc r3,__zero_reg__ 1267 .L134: 1268 0044 EB81 ldd r30,Y+3 1269 0046 FC81 ldd r31,Y+4 1270 0048 8081 ld r24,Z 1271 004a 9181 ldd r25,Z+1 1272 004c 6816 cp r6,r24 1273 004e 7906 cpc r7,r25 1274 0050 01F0 breq .L138 1275 0052 8281 ldd r24,Z+2 1276 0054 9381 ldd r25,Z+3 1277 0056 6816 cp r6,r24 1278 0058 7906 cpc r7,r25 1279 005a 01F4 brne .L123 1280 005c 21E0 ldi r18,lo8(1) 1281 005e 30E0 ldi r19,0 1282 0060 81E0 ldi r24,lo8(1) 1283 0062 00C0 rjmp .L122 1284 .L138: 1285 0064 20E0 ldi r18,0 1286 0066 30E0 ldi r19,0 1287 0068 80E0 ldi r24,0 1288 .L122: 1289 006a F901 movw r30,r18 1290 006c EE0F lsl r30 1291 006e FF1F rol r31 1292 0070 4B81 ldd r20,Y+3 1293 0072 5C81 ldd r21,Y+4 1294 0074 E40F add r30,r20 1295 0076 F51F adc r31,r21 1296 0078 4681 ldd r20,Z+6 1297 007a 5781 ldd r21,Z+7 1298 007c 4F5F subi r20,-1 1299 007e 5F4F sbci r21,-1 1300 0080 5783 std Z+7,r21 1301 0082 4683 std Z+6,r20 1302 0084 EB81 ldd r30,Y+3 1303 0086 FC81 ldd r31,Y+4 1304 0088 E20F add r30,r18 1305 008a F31F adc r31,r19 1306 008c 9481 ldd r25,Z+4 1307 008e 9160 ori r25,lo8(1) 1308 0090 9483 std Z+4,r25 1309 0092 00C0 rjmp .L152 1310 .L123: 1311 0094 EB81 ldd r30,Y+3 GAS LISTING /tmp/ccNtAUld.s page 24 1312 0096 FC81 ldd r31,Y+4 1313 0098 4680 ldd r4,Z+6 1314 009a 5780 ldd r5,Z+7 1315 009c 4114 cp r4,__zero_reg__ 1316 009e 5104 cpc r5,__zero_reg__ 1317 00a0 01F4 brne .L125 1318 00a2 8481 ldd r24,Z+4 1319 00a4 80FF sbrs r24,0 1320 00a6 00C0 rjmp .L139 1321 .L125: 1322 00a8 EB81 ldd r30,Y+3 1323 00aa FC81 ldd r31,Y+4 1324 00ac 8085 ldd r24,Z+8 1325 00ae 9185 ldd r25,Z+9 1326 00b0 0097 sbiw r24,0 1327 00b2 01F0 breq .+2 1328 00b4 00C0 rjmp .L127 1329 00b6 2581 ldd r18,Z+5 1330 00b8 20FD sbrc r18,0 1331 00ba 00C0 rjmp .L128 1332 00bc 4424 clr r4 1333 00be 4394 inc r4 1334 00c0 512C mov r5,__zero_reg__ 1335 00c2 11E0 ldi r17,lo8(1) 1336 00c4 00C0 rjmp .L126 1337 .L139: 1338 00c6 10E0 ldi r17,0 1339 .L126: 1340 00c8 C301 movw r24,r6 1341 00ca A0E0 ldi r26,0 1342 00cc B0E0 ldi r27,0 1343 00ce 9C01 movw r18,r24 1344 00d0 AD01 movw r20,r26 1345 00d2 EB81 ldd r30,Y+3 1346 00d4 FC81 ldd r31,Y+4 1347 00d6 0484 ldd r0,Z+12 1348 00d8 00C0 rjmp 2f 1349 1: 1350 00da 220F lsl r18 1351 00dc 331F rol r19 1352 00de 441F rol r20 1353 00e0 551F rol r21 1354 2: 1355 00e2 0A94 dec r0 1356 00e4 02F4 brpl 1b 1357 00e6 1201 movw r2,r4 1358 00e8 220C lsl r2 1359 00ea 331C rol r3 1360 00ec E20D add r30,r2 1361 00ee F31D adc r31,r3 1362 00f0 FA83 std Y+2,r31 1363 00f2 E983 std Y+1,r30 1364 00f4 81E0 ldi r24,lo8(1) 1365 00f6 90E0 ldi r25,0 1366 00f8 9783 std Z+7,r25 1367 00fa 8683 std Z+6,r24 1368 00fc F401 movw r30,r8 GAS LISTING /tmp/ccNtAUld.s page 25 1369 00fe 8081 ld r24,Z 1370 0100 9181 ldd r25,Z+1 1371 0102 A12C mov r10,__zero_reg__ 1372 0104 B12C mov r11,__zero_reg__ 1373 0106 C12C mov r12,__zero_reg__ 1374 0108 D12C mov r13,__zero_reg__ 1375 010a E12C mov r14,__zero_reg__ 1376 010c F12C mov r15,__zero_reg__ 1377 010e 04E0 ldi r16,lo8(4) 1378 0110 1123 tst r17 1379 0112 01F0 breq .L129 1380 0114 65E5 ldi r22,lo8(85) 1381 0116 00C0 rjmp .L153 1382 .L129: 1383 0118 63E5 ldi r22,lo8(83) 1384 .L153: 1385 011a 0E94 0000 call At45dibTransfer 1386 011e 892B or r24,r25 1387 0120 01F4 brne .L131 1388 0122 F401 movw r30,r8 1389 0124 8081 ld r24,Z 1390 0126 9181 ldd r25,Z+1 1391 0128 0E94 0000 call At45dibWaitReady.constprop.5 1392 012c 892B or r24,r25 1393 012e 01F4 brne .L131 1394 0130 E981 ldd r30,Y+1 1395 0132 FA81 ldd r31,Y+2 1396 0134 7182 std Z+1,r7 1397 0136 6082 st Z,r6 1398 0138 EB81 ldd r30,Y+3 1399 013a FC81 ldd r31,Y+4 1400 013c E40D add r30,r4 1401 013e F51D adc r31,r5 1402 0140 8481 ldd r24,Z+4 1403 0142 8160 ori r24,lo8(1) 1404 0144 8483 std Z+4,r24 1405 0146 812F mov r24,r17 1406 0148 00C0 rjmp .L152 1407 .L131: 1408 014a F401 movw r30,r8 1409 014c 8281 ldd r24,Z+2 1410 014e 9381 ldd r25,Z+3 1411 0150 FC01 movw r30,r24 1412 0152 E20D add r30,r2 1413 0154 F31D adc r31,r3 1414 0156 2681 ldd r18,Z+6 1415 0158 3781 ldd r19,Z+7 1416 015a 2150 subi r18,1 1417 015c 3109 sbc r19,__zero_reg__ 1418 015e 3783 std Z+7,r19 1419 0160 2683 std Z+6,r18 1420 0162 0A96 adiw r24,10 1421 0164 0E94 0000 call NutEventPost 1422 0168 00C0 rjmp .L154 1423 .L128: 1424 016a 4528 or r4,r5 1425 016c 01F4 brne .L137 GAS LISTING /tmp/ccNtAUld.s page 26 1426 .L136: 1427 016e EB81 ldd r30,Y+3 1428 0170 FC81 ldd r31,Y+4 1429 0172 2481 ldd r18,Z+4 1430 0174 20FD sbrc r18,0 1431 0176 00C0 rjmp .L140 1432 0178 892B or r24,r25 1433 017a 01F4 brne .L133 1434 .L137: 1435 017c EB81 ldd r30,Y+3 1436 017e FC81 ldd r31,Y+4 1437 0180 8581 ldd r24,Z+5 1438 0182 80FF sbrs r24,0 1439 0184 00C0 rjmp .L133 1440 0186 61E0 ldi r22,lo8(1) 1441 .L132: 1442 0188 C401 movw r24,r8 1443 018a 0E94 0000 call At45dibFlash 1444 018e 892B or r24,r25 1445 0190 01F4 brne .+2 1446 0192 00C0 rjmp .L134 1447 .L154: 1448 0194 8FEF ldi r24,lo8(-1) 1449 0196 00C0 rjmp .L152 1450 .L140: 1451 0198 60E0 ldi r22,0 1452 019a 00C0 rjmp .L132 1453 .L127: 1454 019c 4528 or r4,r5 1455 019e 01F0 breq .L136 1456 .L133: 1457 01a0 40E0 ldi r20,0 1458 01a2 50E0 ldi r21,0 1459 01a4 BA01 movw r22,r20 1460 01a6 C101 movw r24,r2 1461 01a8 0E94 0000 call NutEventWait 1462 01ac 00C0 rjmp .L134 1463 .L152: 1464 /* epilogue start */ 1465 01ae 0F90 pop __tmp_reg__ 1466 01b0 0F90 pop __tmp_reg__ 1467 01b2 0F90 pop __tmp_reg__ 1468 01b4 0F90 pop __tmp_reg__ 1469 01b6 DF91 pop r29 1470 01b8 CF91 pop r28 1471 01ba 1F91 pop r17 1472 01bc 0F91 pop r16 1473 01be FF90 pop r15 1474 01c0 EF90 pop r14 1475 01c2 DF90 pop r13 1476 01c4 CF90 pop r12 1477 01c6 BF90 pop r11 1478 01c8 AF90 pop r10 1479 01ca 9F90 pop r9 1480 01cc 8F90 pop r8 1481 01ce 7F90 pop r7 1482 01d0 6F90 pop r6 GAS LISTING /tmp/ccNtAUld.s page 27 1483 01d2 5F90 pop r5 1484 01d4 4F90 pop r4 1485 01d6 3F90 pop r3 1486 01d8 2F90 pop r2 1487 01da 0895 ret 1488 .size At45dibAllocate, .-At45dibAllocate 1489 .section .text.SpiAt45dibCopy,"ax",@progbits 1490 .type SpiAt45dibCopy, @function 1491 SpiAt45dibCopy: 1492 0000 EF92 push r14 1493 0002 FF92 push r15 1494 0004 0F93 push r16 1495 0006 1F93 push r17 1496 0008 CF93 push r28 1497 000a DF93 push r29 1498 /* prologue: function */ 1499 /* frame size = 0 */ 1500 /* stack size = 6 */ 1501 .L__stack_usage = 6 1502 000c 8C01 movw r16,r24 1503 000e 7A01 movw r14,r20 1504 0010 6417 cp r22,r20 1505 0012 7507 cpc r23,r21 1506 0014 01F4 brne .L156 1507 0016 0E94 0000 call At45dibAllocate 1508 001a 87FF sbrs r24,7 1509 001c 00C0 rjmp .L157 1510 .L160: 1511 001e 8FEF ldi r24,lo8(-1) 1512 0020 9FEF ldi r25,lo8(-1) 1513 0022 00C0 rjmp .L158 1514 .L156: 1515 0024 FC01 movw r30,r24 1516 0026 C281 ldd r28,Z+2 1517 0028 D381 ldd r29,Z+3 1518 002a 8881 ld r24,Y 1519 002c 9981 ldd r25,Y+1 1520 002e 4817 cp r20,r24 1521 0030 5907 cpc r21,r25 1522 0032 01F4 brne .L159 1523 0034 8E81 ldd r24,Y+6 1524 0036 9F81 ldd r25,Y+7 1525 0038 892B or r24,r25 1526 003a 01F4 brne .L160 1527 003c 8FEF ldi r24,lo8(-1) 1528 003e 9FEF ldi r25,lo8(-1) 1529 0040 9983 std Y+1,r25 1530 0042 8883 st Y,r24 1531 .L159: 1532 0044 8A81 ldd r24,Y+2 1533 0046 9B81 ldd r25,Y+3 1534 0048 E816 cp r14,r24 1535 004a F906 cpc r15,r25 1536 004c 01F4 brne .L161 1537 004e 8885 ldd r24,Y+8 1538 0050 9985 ldd r25,Y+9 1539 0052 892B or r24,r25 GAS LISTING /tmp/ccNtAUld.s page 28 1540 0054 01F4 brne .L160 1541 0056 8FEF ldi r24,lo8(-1) 1542 0058 9FEF ldi r25,lo8(-1) 1543 005a 9B83 std Y+3,r25 1544 005c 8A83 std Y+2,r24 1545 .L161: 1546 005e C801 movw r24,r16 1547 0060 0E94 0000 call At45dibAllocate 1548 0064 87FD sbrc r24,7 1549 0066 00C0 rjmp .L160 1550 0068 282F mov r18,r24 1551 006a 220F lsl r18 1552 006c 330B sbc r19,r19 1553 006e C20F add r28,r18 1554 0070 D31F adc r29,r19 1555 0072 F982 std Y+1,r15 1556 0074 E882 st Y,r14 1557 .L157: 1558 0076 F801 movw r30,r16 1559 0078 4281 ldd r20,Z+2 1560 007a 5381 ldd r21,Z+3 1561 007c E82F mov r30,r24 1562 007e EE0F lsl r30 1563 0080 FF0B sbc r31,r31 1564 0082 E40F add r30,r20 1565 0084 F51F adc r31,r21 1566 0086 2681 ldd r18,Z+6 1567 0088 3781 ldd r19,Z+7 1568 008a 2150 subi r18,1 1569 008c 3109 sbc r19,__zero_reg__ 1570 008e 3783 std Z+7,r19 1571 0090 2683 std Z+6,r18 1572 0092 CA01 movw r24,r20 1573 0094 0A96 adiw r24,10 1574 0096 0E94 0000 call NutEventPost 1575 009a 80E0 ldi r24,0 1576 009c 90E0 ldi r25,0 1577 .L158: 1578 /* epilogue start */ 1579 009e DF91 pop r29 1580 00a0 CF91 pop r28 1581 00a2 1F91 pop r17 1582 00a4 0F91 pop r16 1583 00a6 FF90 pop r15 1584 00a8 EF90 pop r14 1585 00aa 0895 ret 1586 .size SpiAt45dibCopy, .-SpiAt45dibCopy 1587 .section .text.SpiAt45dibWrite,"ax",@progbits 1588 .type SpiAt45dibWrite, @function 1589 SpiAt45dibWrite: 1590 0000 8F92 push r8 1591 0002 9F92 push r9 1592 0004 AF92 push r10 1593 0006 BF92 push r11 1594 0008 CF92 push r12 1595 000a DF92 push r13 1596 000c EF92 push r14 GAS LISTING /tmp/ccNtAUld.s page 29 1597 000e FF92 push r15 1598 0010 0F93 push r16 1599 0012 1F93 push r17 1600 0014 CF93 push r28 1601 /* prologue: function */ 1602 /* frame size = 0 */ 1603 /* stack size = 11 */ 1604 .L__stack_usage = 11 1605 0016 4C01 movw r8,r24 1606 0018 6A01 movw r12,r20 1607 001a 7901 movw r14,r18 1608 001c 0115 cp r16,__zero_reg__ 1609 001e 1105 cpc r17,__zero_reg__ 1610 0020 01F0 breq .L166 1611 0022 57FF sbrs r21,7 1612 0024 00C0 rjmp .L164 1613 0026 FC01 movw r30,r24 1614 0028 8481 ldd r24,Z+4 1615 002a 9581 ldd r25,Z+5 1616 002c C80E add r12,r24 1617 002e D91E adc r13,r25 1618 .L164: 1619 0030 C401 movw r24,r8 1620 0032 0E94 0000 call At45dibAllocate 1621 0036 C82F mov r28,r24 1622 0038 87FD sbrc r24,7 1623 003a 00C0 rjmp .L167 1624 003c 9601 movw r18,r12 1625 003e DD0C lsl r13 1626 0040 440B sbc r20,r20 1627 0042 550B sbc r21,r21 1628 0044 8111 cpse r24,__zero_reg__ 1629 0046 00C0 rjmp .L168 1630 0048 64E8 ldi r22,lo8(-124) 1631 004a 00C0 rjmp .L165 1632 .L168: 1633 004c 67E8 ldi r22,lo8(-121) 1634 .L165: 1635 004e 5801 movw r10,r16 1636 0050 C12C mov r12,__zero_reg__ 1637 0052 D12C mov r13,__zero_reg__ 1638 0054 04E0 ldi r16,lo8(4) 1639 0056 F401 movw r30,r8 1640 0058 8081 ld r24,Z 1641 005a 9181 ldd r25,Z+1 1642 005c 0E94 0000 call At45dibTransfer 1643 0060 7C01 movw r14,r24 1644 0062 F401 movw r30,r8 1645 0064 8281 ldd r24,Z+2 1646 0066 9381 ldd r25,Z+3 1647 0068 EC2F mov r30,r28 1648 006a EE0F lsl r30 1649 006c FF0B sbc r31,r31 1650 006e E80F add r30,r24 1651 0070 F91F adc r31,r25 1652 0072 2681 ldd r18,Z+6 1653 0074 3781 ldd r19,Z+7 GAS LISTING /tmp/ccNtAUld.s page 30 1654 0076 2150 subi r18,1 1655 0078 3109 sbc r19,__zero_reg__ 1656 007a 3783 std Z+7,r19 1657 007c 2683 std Z+6,r18 1658 007e 0A96 adiw r24,10 1659 0080 0E94 0000 call NutEventPost 1660 0084 C701 movw r24,r14 1661 0086 00C0 rjmp .L163 1662 .L166: 1663 0088 80E0 ldi r24,0 1664 008a 90E0 ldi r25,0 1665 008c 00C0 rjmp .L163 1666 .L167: 1667 008e 8FEF ldi r24,lo8(-1) 1668 0090 9FEF ldi r25,lo8(-1) 1669 .L163: 1670 /* epilogue start */ 1671 0092 CF91 pop r28 1672 0094 1F91 pop r17 1673 0096 0F91 pop r16 1674 0098 FF90 pop r15 1675 009a EF90 pop r14 1676 009c DF90 pop r13 1677 009e CF90 pop r12 1678 00a0 BF90 pop r11 1679 00a2 AF90 pop r10 1680 00a4 9F90 pop r9 1681 00a6 8F90 pop r8 1682 00a8 0895 ret 1683 .size SpiAt45dibWrite, .-SpiAt45dibWrite 1684 .global flashAt45dib1 1685 .data 1686 .type flashAt45dib1, @object 1687 .size flashAt45dib1, 32 1688 flashAt45dib1: 1689 0000 0000 .word spiNode1 1690 0002 0000 .word 0 1691 0004 0000 .word 0 1692 0006 0000 .word 0 1693 0008 0000 .word 0 1694 000a 0100 .word 1 1695 000c 0000 .word gs(SpiAt45dibInit) 1696 000e 0000 .word gs(SpiAt45dibExit) 1697 0010 0000 .word gs(SpiAt45dibCheck) 1698 0012 0000 .word gs(SpiAt45dibRead) 1699 0014 0000 .word gs(SpiAt45dibCompare) 1700 0016 0000 .word gs(SpiAt45dibUsed) 1701 0018 0000 .word gs(SpiAt45dibWrite) 1702 001a 0000 .word gs(SpiAt45dibCopy) 1703 001c 0000 .word gs(SpiAt45dibCommit) 1704 001e 0000 .word gs(SpiAt45dibErase) 1705 .type spiNode1, @object 1706 .size spiNode1, 14 1707 spiNode1: 1708 0020 0000 .word 0 1709 0022 0000 .word 0 1710 0024 40 .byte 64 GAS LISTING /tmp/ccNtAUld.s page 31 1711 0025 8A .byte -118 1712 0026 F7 .byte -9 1713 0027 01 .byte 1 1714 0028 0300 .word 3 1715 002a 08 .byte 8 1716 002b 01 .byte 1 1717 002c 0000 .zero 2 1718 .global flashAt45dib0 1719 .type flashAt45dib0, @object 1720 .size flashAt45dib0, 32 1721 flashAt45dib0: 1722 002e 0000 .word spiNode0 1723 0030 0000 .word 0 1724 0032 0000 .word 0 1725 0034 0000 .word 0 1726 0036 0000 .word 0 1727 0038 0100 .word 1 1728 003a 0000 .word gs(SpiAt45dibInit) 1729 003c 0000 .word gs(SpiAt45dibExit) 1730 003e 0000 .word gs(SpiAt45dibCheck) 1731 0040 0000 .word gs(SpiAt45dibRead) 1732 0042 0000 .word gs(SpiAt45dibCompare) 1733 0044 0000 .word gs(SpiAt45dibUsed) 1734 0046 0000 .word gs(SpiAt45dibWrite) 1735 0048 0000 .word gs(SpiAt45dibCopy) 1736 004a 0000 .word gs(SpiAt45dibCommit) 1737 004c 0000 .word gs(SpiAt45dibErase) 1738 .type spiNode0, @object 1739 .size spiNode0, 14 1740 spiNode0: 1741 004e 0000 .word 0 1742 0050 0000 .word 0 1743 0052 40 .byte 64 1744 0053 8A .byte -118 1745 0054 F7 .byte -9 1746 0055 01 .byte 1 1747 0056 0300 .word 3 1748 0058 08 .byte 8 1749 0059 00 .byte 0 1750 005a 0000 .zero 2 1751 .ident "GCC: (GNU) 5.3.0" 1752 .global __do_copy_data GAS LISTING /tmp/ccNtAUld.s page 32 DEFINED SYMBOLS *ABS*:0000000000000000 spi_at45dib.c /tmp/ccNtAUld.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccNtAUld.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccNtAUld.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccNtAUld.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccNtAUld.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccNtAUld.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccNtAUld.s:10 .text.At45dibTransmitCmd:0000000000000000 At45dibTransmitCmd /tmp/ccNtAUld.s:73 .text.At45dibTransfer:0000000000000000 At45dibTransfer /tmp/ccNtAUld.s:170 .text.At45dibCompare:0000000000000000 At45dibCompare /tmp/ccNtAUld.s:297 .text.At45dibUsed:0000000000000000 At45dibUsed /tmp/ccNtAUld.s:426 .text.At45dibStatus:0000000000000000 At45dibStatus /tmp/ccNtAUld.s:516 .text.SpiAt45dibCheck:0000000000000000 SpiAt45dibCheck /tmp/ccNtAUld.s:527 .text.SpiAt45dibUsed:0000000000000000 SpiAt45dibUsed /tmp/ccNtAUld.s:620 .text.SpiAt45dibExit:0000000000000000 SpiAt45dibExit /tmp/ccNtAUld.s:632 .text.SpiAt45dibInit:0000000000000000 SpiAt45dibInit /tmp/ccNtAUld.s:711 .text.SpiAt45dibRead:0000000000000000 SpiAt45dibRead /tmp/ccNtAUld.s:815 .text.SpiAt45dibCompare:0000000000000000 SpiAt45dibCompare /tmp/ccNtAUld.s:913 .text.At45dibWaitReady.constprop.5:0000000000000000 At45dibWaitReady.constprop.5 /tmp/ccNtAUld.s:951 .text.SpiAt45dibErase:0000000000000000 SpiAt45dibErase /tmp/ccNtAUld.s:1094 .text.At45dibFlash:0000000000000000 At45dibFlash /tmp/ccNtAUld.s:1191 .text.SpiAt45dibCommit:0000000000000000 SpiAt45dibCommit /tmp/ccNtAUld.s:1228 .text.At45dibAllocate:0000000000000000 At45dibAllocate /tmp/ccNtAUld.s:1491 .text.SpiAt45dibCopy:0000000000000000 SpiAt45dibCopy /tmp/ccNtAUld.s:1589 .text.SpiAt45dibWrite:0000000000000000 SpiAt45dibWrite /tmp/ccNtAUld.s:1688 .data:0000000000000000 flashAt45dib1 /tmp/ccNtAUld.s:1707 .data:0000000000000020 spiNode1 /tmp/ccNtAUld.s:1721 .data:000000000000002e flashAt45dib0 /tmp/ccNtAUld.s:1740 .data:000000000000004e spiNode0 UNDEFINED SYMBOLS free at45d_known_types at45d_info calloc NutEventPost NutEventWait __do_copy_data