GAS LISTING /tmp/ccjPZxVo.s page 1 1 .file "uflashfs.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.FlashUnitCopy,"ax",@progbits 9 .type FlashUnitCopy, @function 10 FlashUnitCopy: 11 /* prologue: function */ 12 /* frame size = 0 */ 13 /* stack size = 0 */ 14 .L__stack_usage = 0 15 0000 DC01 movw r26,r24 16 0002 1896 adiw r26,8 17 0004 ED91 ld r30,X+ 18 0006 FC91 ld r31,X 19 0008 1997 sbiw r26,8+1 20 000a 2E0F add r18,r30 21 000c 3F1F adc r19,r31 22 000e 440F lsl r20 23 0010 551F rol r21 24 0012 440F lsl r20 25 0014 551F rol r21 26 0016 420F add r20,r18 27 0018 531F adc r21,r19 28 001a 660F lsl r22 29 001c 771F rol r23 30 001e 660F lsl r22 31 0020 771F rol r23 32 0022 620F add r22,r18 33 0024 731F adc r23,r19 34 0026 5A96 adiw r26,26 35 0028 ED91 ld r30,X+ 36 002a FC91 ld r31,X 37 002c 5B97 sbiw r26,26+1 38 002e 1994 eijmp 39 .size FlashUnitCopy, .-FlashUnitCopy 40 .section .text.FlashUnitCommit,"ax",@progbits 41 .type FlashUnitCommit, @function 42 FlashUnitCommit: 43 /* prologue: function */ 44 /* frame size = 0 */ 45 /* stack size = 0 */ 46 .L__stack_usage = 0 47 0000 DC01 movw r26,r24 48 0002 1896 adiw r26,8 49 0004 2D91 ld r18,X+ 50 0006 3C91 ld r19,X 51 0008 1997 sbiw r26,8+1 52 000a 420F add r20,r18 53 000c 531F adc r21,r19 54 000e 660F lsl r22 55 0010 771F rol r23 56 0012 660F lsl r22 57 0014 771F rol r23 GAS LISTING /tmp/ccjPZxVo.s page 2 58 0016 640F add r22,r20 59 0018 751F adc r23,r21 60 001a 5C96 adiw r26,28 61 001c ED91 ld r30,X+ 62 001e FC91 ld r31,X 63 0020 5D97 sbiw r26,28+1 64 0022 1994 eijmp 65 .size FlashUnitCommit, .-FlashUnitCommit 66 .section .text.FlashReadBlockHead,"ax",@progbits 67 .type FlashReadBlockHead, @function 68 FlashReadBlockHead: 69 0000 0F93 push r16 70 0002 1F93 push r17 71 /* prologue: function */ 72 /* frame size = 0 */ 73 /* stack size = 2 */ 74 .L__stack_usage = 2 75 0004 9A01 movw r18,r20 76 0006 660F lsl r22 77 0008 771F rol r23 78 000a 660F lsl r22 79 000c 771F rol r23 80 000e DC01 movw r26,r24 81 0010 1896 adiw r26,8 82 0012 ED91 ld r30,X+ 83 0014 FC91 ld r31,X 84 0016 1997 sbiw r26,8+1 85 0018 6E0F add r22,r30 86 001a 7F1F adc r23,r31 87 001c 5296 adiw r26,18 88 001e ED91 ld r30,X+ 89 0020 FC91 ld r31,X 90 0022 5397 sbiw r26,18+1 91 0024 08E0 ldi r16,lo8(8) 92 0026 10E0 ldi r17,0 93 0028 40E0 ldi r20,0 94 002a 50E0 ldi r21,0 95 002c 1995 eicall 96 /* epilogue start */ 97 002e 1F91 pop r17 98 0030 0F91 pop r16 99 0032 0895 ret 100 .size FlashReadBlockHead, .-FlashReadBlockHead 101 .section .text.FlashWriteBlockHead,"ax",@progbits 102 .type FlashWriteBlockHead, @function 103 FlashWriteBlockHead: 104 0000 0F93 push r16 105 0002 1F93 push r17 106 /* prologue: function */ 107 /* frame size = 0 */ 108 /* stack size = 2 */ 109 .L__stack_usage = 2 110 0004 9A01 movw r18,r20 111 0006 DA01 movw r26,r20 112 0008 1296 adiw r26,2 113 000a 4D91 ld r20,X+ 114 000c 5C91 ld r21,X GAS LISTING /tmp/ccjPZxVo.s page 3 115 000e 1397 sbiw r26,2+1 116 0010 4F5F subi r20,-1 117 0012 5F4F sbci r21,-1 118 0014 1396 adiw r26,2+1 119 0016 5C93 st X,r21 120 0018 4E93 st -X,r20 121 001a 1297 sbiw r26,2 122 001c 660F lsl r22 123 001e 771F rol r23 124 0020 660F lsl r22 125 0022 771F rol r23 126 0024 DC01 movw r26,r24 127 0026 1896 adiw r26,8 128 0028 ED91 ld r30,X+ 129 002a FC91 ld r31,X 130 002c 1997 sbiw r26,8+1 131 002e 6E0F add r22,r30 132 0030 7F1F adc r23,r31 133 0032 5896 adiw r26,24 134 0034 ED91 ld r30,X+ 135 0036 FC91 ld r31,X 136 0038 5997 sbiw r26,24+1 137 003a 08E0 ldi r16,lo8(8) 138 003c 10E0 ldi r17,0 139 003e 40E0 ldi r20,0 140 0040 50E0 ldi r21,0 141 0042 1995 eicall 142 /* epilogue start */ 143 0044 1F91 pop r17 144 0046 0F91 pop r16 145 0048 0895 ret 146 .size FlashWriteBlockHead, .-FlashWriteBlockHead 147 .section .text.FlashWriteEntry,"ax",@progbits 148 .type FlashWriteEntry, @function 149 FlashWriteEntry: 150 0000 AF92 push r10 151 0002 BF92 push r11 152 0004 CF92 push r12 153 0006 DF92 push r13 154 0008 EF92 push r14 155 000a FF92 push r15 156 000c 0F93 push r16 157 000e 1F93 push r17 158 0010 CF93 push r28 159 0012 DF93 push r29 160 /* prologue: function */ 161 /* frame size = 0 */ 162 /* stack size = 10 */ 163 .L__stack_usage = 10 164 0014 EC01 movw r28,r24 165 0016 5A01 movw r10,r20 166 0018 6901 movw r12,r18 167 001a 7B01 movw r14,r22 168 001c EE0C lsl r14 169 001e FF1C rol r15 170 0020 EE0C lsl r14 171 0022 FF1C rol r15 GAS LISTING /tmp/ccjPZxVo.s page 4 172 0024 6885 ldd r22,Y+8 173 0026 7985 ldd r23,Y+9 174 0028 6E0D add r22,r14 175 002a 7F1D adc r23,r15 176 002c E88D ldd r30,Y+24 177 002e F98D ldd r31,Y+25 178 0030 02E0 ldi r16,lo8(2) 179 0032 10E0 ldi r17,0 180 0034 9A01 movw r18,r20 181 0036 48E0 ldi r20,lo8(8) 182 0038 50E0 ldi r21,0 183 003a CE01 movw r24,r28 184 003c 1995 eicall 185 003e 0097 sbiw r24,0 186 0040 01F4 brne .L6 187 0042 F501 movw r30,r10 188 0044 0181 ldd r16,Z+1 189 0046 10E0 ldi r17,0 190 0048 6885 ldd r22,Y+8 191 004a 7985 ldd r23,Y+9 192 004c 6E0D add r22,r14 193 004e 7F1D adc r23,r15 194 0050 E88D ldd r30,Y+24 195 0052 F98D ldd r31,Y+25 196 0054 9601 movw r18,r12 197 0056 4AE0 ldi r20,lo8(10) 198 0058 50E0 ldi r21,0 199 005a CE01 movw r24,r28 200 005c 1995 eicall 201 .L6: 202 /* epilogue start */ 203 005e DF91 pop r29 204 0060 CF91 pop r28 205 0062 1F91 pop r17 206 0064 0F91 pop r16 207 0066 FF90 pop r15 208 0068 EF90 pop r14 209 006a DF90 pop r13 210 006c CF90 pop r12 211 006e BF90 pop r11 212 0070 AF90 pop r10 213 0072 0895 ret 214 .size FlashWriteEntry, .-FlashWriteEntry 215 .section .text.FlashReadBlockFoot,"ax",@progbits 216 .type FlashReadBlockFoot, @function 217 FlashReadBlockFoot: 218 0000 0F93 push r16 219 0002 1F93 push r17 220 /* prologue: function */ 221 /* frame size = 0 */ 222 /* stack size = 2 */ 223 .L__stack_usage = 2 224 0004 9A01 movw r18,r20 225 0006 6F5F subi r22,-1 226 0008 7F4F sbci r23,-1 227 000a 660F lsl r22 228 000c 771F rol r23 GAS LISTING /tmp/ccjPZxVo.s page 5 229 000e 660F lsl r22 230 0010 771F rol r23 231 0012 DC01 movw r26,r24 232 0014 1896 adiw r26,8 233 0016 ED91 ld r30,X+ 234 0018 FC91 ld r31,X 235 001a 1997 sbiw r26,8+1 236 001c 3197 sbiw r30,1 237 001e 6E0F add r22,r30 238 0020 7F1F adc r23,r31 239 0022 5296 adiw r26,18 240 0024 ED91 ld r30,X+ 241 0026 FC91 ld r31,X 242 0028 5397 sbiw r26,18+1 243 002a 01E0 ldi r16,lo8(1) 244 002c 10E0 ldi r17,0 245 002e 4FEF ldi r20,lo8(-1) 246 0030 5FEF ldi r21,lo8(-1) 247 0032 1995 eicall 248 /* epilogue start */ 249 0034 1F91 pop r17 250 0036 0F91 pop r16 251 0038 0895 ret 252 .size FlashReadBlockFoot, .-FlashReadBlockFoot 253 .section .text.FlashWriteBlockFoot,"ax",@progbits 254 .type FlashWriteBlockFoot, @function 255 FlashWriteBlockFoot: 256 0000 0F93 push r16 257 0002 1F93 push r17 258 /* prologue: function */ 259 /* frame size = 0 */ 260 /* stack size = 2 */ 261 .L__stack_usage = 2 262 0004 9A01 movw r18,r20 263 0006 DA01 movw r26,r20 264 0008 4C91 ld r20,X 265 000a 4F5F subi r20,lo8(-(1)) 266 000c 4C93 st X,r20 267 000e 6F5F subi r22,-1 268 0010 7F4F sbci r23,-1 269 0012 660F lsl r22 270 0014 771F rol r23 271 0016 660F lsl r22 272 0018 771F rol r23 273 001a DC01 movw r26,r24 274 001c 1896 adiw r26,8 275 001e ED91 ld r30,X+ 276 0020 FC91 ld r31,X 277 0022 1997 sbiw r26,8+1 278 0024 3197 sbiw r30,1 279 0026 6E0F add r22,r30 280 0028 7F1F adc r23,r31 281 002a 5896 adiw r26,24 282 002c ED91 ld r30,X+ 283 002e FC91 ld r31,X 284 0030 5997 sbiw r26,24+1 285 0032 01E0 ldi r16,lo8(1) GAS LISTING /tmp/ccjPZxVo.s page 6 286 0034 10E0 ldi r17,0 287 0036 4FEF ldi r20,lo8(-1) 288 0038 5FEF ldi r21,lo8(-1) 289 003a 1995 eicall 290 /* epilogue start */ 291 003c 1F91 pop r17 292 003e 0F91 pop r16 293 0040 0895 ret 294 .size FlashWriteBlockFoot, .-FlashWriteBlockFoot 295 .section .text.FlashEraseEntry,"ax",@progbits 296 .type FlashEraseEntry, @function 297 FlashEraseEntry: 298 /* prologue: function */ 299 /* frame size = 0 */ 300 /* stack size = 0 */ 301 .L__stack_usage = 0 302 0000 660F lsl r22 303 0002 771F rol r23 304 0004 660F lsl r22 305 0006 771F rol r23 306 0008 DC01 movw r26,r24 307 000a 1896 adiw r26,8 308 000c 2D91 ld r18,X+ 309 000e 3C91 ld r19,X 310 0010 1997 sbiw r26,8+1 311 0012 620F add r22,r18 312 0014 731F adc r23,r19 313 0016 5E96 adiw r26,30 314 0018 ED91 ld r30,X+ 315 001a FC91 ld r31,X 316 001c 5F97 sbiw r26,30+1 317 001e 41E0 ldi r20,lo8(1) 318 0020 50E0 ldi r21,0 319 0022 1994 eijmp 320 .size FlashEraseEntry, .-FlashEraseEntry 321 .section .text.FlashEraseBlockData,"ax",@progbits 322 .type FlashEraseBlockData, @function 323 FlashEraseBlockData: 324 /* prologue: function */ 325 /* frame size = 0 */ 326 /* stack size = 0 */ 327 .L__stack_usage = 0 328 0000 DC01 movw r26,r24 329 0002 1896 adiw r26,8 330 0004 2D91 ld r18,X+ 331 0006 3C91 ld r19,X 332 0008 1997 sbiw r26,8+1 333 000a 2F5F subi r18,-1 334 000c 3F4F sbci r19,-1 335 000e 660F lsl r22 336 0010 771F rol r23 337 0012 660F lsl r22 338 0014 771F rol r23 339 0016 620F add r22,r18 340 0018 731F adc r23,r19 341 001a 5E96 adiw r26,30 342 001c ED91 ld r30,X+ GAS LISTING /tmp/ccjPZxVo.s page 7 343 001e FC91 ld r31,X 344 0020 5F97 sbiw r26,30+1 345 0022 43E0 ldi r20,lo8(3) 346 0024 50E0 ldi r21,0 347 0026 1994 eijmp 348 .size FlashEraseBlockData, .-FlashEraseBlockData 349 .section .text.EntryPosSet,"ax",@progbits 350 .type EntryPosSet, @function 351 EntryPosSet: 352 0000 AF92 push r10 353 0002 BF92 push r11 354 0004 CF92 push r12 355 0006 DF92 push r13 356 0008 EF92 push r14 357 000a FF92 push r15 358 000c 0F93 push r16 359 000e 1F93 push r17 360 0010 CF93 push r28 361 0012 DF93 push r29 362 /* prologue: function */ 363 /* frame size = 0 */ 364 /* stack size = 10 */ 365 .L__stack_usage = 10 366 0014 DC01 movw r26,r24 367 0016 1296 adiw r26,2 368 0018 CD91 ld r28,X+ 369 001a DC91 ld r29,X 370 001c 1397 sbiw r26,2+1 371 001e ED91 ld r30,X+ 372 0020 FC91 ld r31,X 373 0022 0188 ldd __tmp_reg__,Z+17 374 0024 F289 ldd r31,Z+18 375 0026 E02D mov r30,__tmp_reg__ 376 0028 4A83 std Y+2,r20 377 002a 5B83 std Y+3,r21 378 002c 6C83 std Y+4,r22 379 002e 7D83 std Y+5,r23 380 0030 888D ldd r24,Y+24 381 0032 998D ldd r25,Y+25 382 0034 6A01 movw r12,r20 383 0036 7B01 movw r14,r22 384 0038 C80E add r12,r24 385 003a D91E adc r13,r25 386 003c E11C adc r14,__zero_reg__ 387 003e F11C adc r15,__zero_reg__ 388 0040 0190 ld __tmp_reg__,Z+ 389 0042 F081 ld r31,Z 390 0044 E02D mov r30,__tmp_reg__ 391 0046 0481 ldd r16,Z+4 392 0048 1581 ldd r17,Z+5 393 004a 5801 movw r10,r16 394 004c AA0C lsl r10 395 004e BB1C rol r11 396 0050 AA0C lsl r10 397 0052 BB1C rol r11 398 0054 B9E0 ldi r27,9 399 0056 AB1A sub r10,r27 GAS LISTING /tmp/ccjPZxVo.s page 8 400 0058 B108 sbc r11,__zero_reg__ 401 005a 9501 movw r18,r10 402 005c 40E0 ldi r20,0 403 005e 50E0 ldi r21,0 404 0060 C701 movw r24,r14 405 0062 B601 movw r22,r12 406 0064 0E94 0000 call __udivmodsi4 407 0068 8885 ldd r24,Y+8 408 006a 9985 ldd r25,Y+9 409 006c 8217 cp r24,r18 410 006e 9307 cpc r25,r19 411 0070 01F0 breq .L13 412 0072 3987 std Y+9,r19 413 0074 2887 std Y+8,r18 414 0076 8FEF ldi r24,lo8(-1) 415 0078 9FEF ldi r25,lo8(-1) 416 007a 9F83 std Y+7,r25 417 007c 8E83 std Y+6,r24 418 .L13: 419 007e 2885 ldd r18,Y+8 420 0080 3985 ldd r19,Y+9 421 0082 A29E mul r10,r18 422 0084 C001 movw r24,r0 423 0086 A39E mul r10,r19 424 0088 900D add r25,r0 425 008a B29E mul r11,r18 426 008c 900D add r25,r0 427 008e 1124 clr r1 428 0090 C81A sub r12,r24 429 0092 D90A sbc r13,r25 430 0094 E108 sbc r14,__zero_reg__ 431 0096 F108 sbc r15,__zero_reg__ 432 0098 C701 movw r24,r14 433 009a B601 movw r22,r12 434 009c 685F subi r22,-8 435 009e 7F4F sbci r23,-1 436 00a0 8F4F sbci r24,-1 437 00a2 9F4F sbci r25,-1 438 00a4 9801 movw r18,r16 439 00a6 40E0 ldi r20,0 440 00a8 50E0 ldi r21,0 441 00aa 0E94 0000 call __udivmodsi4 442 00ae 3B87 std Y+11,r19 443 00b0 2A87 std Y+10,r18 444 00b2 029F mul r16,r18 445 00b4 C001 movw r24,r0 446 00b6 039F mul r16,r19 447 00b8 900D add r25,r0 448 00ba 129F mul r17,r18 449 00bc 900D add r25,r0 450 00be 1124 clr r1 451 00c0 C81A sub r12,r24 452 00c2 D90A sbc r13,r25 453 00c4 E108 sbc r14,__zero_reg__ 454 00c6 F108 sbc r15,__zero_reg__ 455 00c8 E8E0 ldi r30,8 456 00ca CE0E add r12,r30 GAS LISTING /tmp/ccjPZxVo.s page 9 457 00cc D11C adc r13,__zero_reg__ 458 00ce DD86 std Y+13,r13 459 00d0 CC86 std Y+12,r12 460 /* epilogue start */ 461 00d2 DF91 pop r29 462 00d4 CF91 pop r28 463 00d6 1F91 pop r17 464 00d8 0F91 pop r16 465 00da FF90 pop r15 466 00dc EF90 pop r14 467 00de DF90 pop r13 468 00e0 CF90 pop r12 469 00e2 BF90 pop r11 470 00e4 AF90 pop r10 471 00e6 0895 ret 472 .size EntryPosSet, .-EntryPosSet 473 .section .text.EntryPosInc,"ax",@progbits 474 .type EntryPosInc, @function 475 EntryPosInc: 476 0000 0F93 push r16 477 0002 1F93 push r17 478 0004 CF93 push r28 479 0006 DF93 push r29 480 /* prologue: function */ 481 /* frame size = 0 */ 482 /* stack size = 4 */ 483 .L__stack_usage = 4 484 0008 DC01 movw r26,r24 485 000a 1296 adiw r26,2 486 000c ED91 ld r30,X+ 487 000e FC91 ld r31,X 488 0010 1397 sbiw r26,2+1 489 0012 0D90 ld __tmp_reg__,X+ 490 0014 BC91 ld r27,X 491 0016 A02D mov r26,__tmp_reg__ 492 0018 5196 adiw r26,17 493 001a CD91 ld r28,X+ 494 001c DC91 ld r29,X 495 001e 5297 sbiw r26,17+1 496 0020 CB01 movw r24,r22 497 0022 072E mov __tmp_reg__,r23 498 0024 000C lsl r0 499 0026 AA0B sbc r26,r26 500 0028 BB0B sbc r27,r27 501 002a 0281 ldd r16,Z+2 502 002c 1381 ldd r17,Z+3 503 002e 2481 ldd r18,Z+4 504 0030 3581 ldd r19,Z+5 505 0032 800F add r24,r16 506 0034 911F adc r25,r17 507 0036 A21F adc r26,r18 508 0038 B31F adc r27,r19 509 003a 8283 std Z+2,r24 510 003c 9383 std Z+3,r25 511 003e A483 std Z+4,r26 512 0040 B583 std Z+5,r27 513 0042 8485 ldd r24,Z+12 GAS LISTING /tmp/ccjPZxVo.s page 10 514 0044 9585 ldd r25,Z+13 515 0046 680F add r22,r24 516 0048 791F adc r23,r25 517 004a 7587 std Z+13,r23 518 004c 6487 std Z+12,r22 519 004e 2285 ldd r18,Z+10 520 0050 3385 ldd r19,Z+11 521 0052 A881 ld r26,Y 522 0054 B981 ldd r27,Y+1 523 0056 1496 adiw r26,4 524 0058 8D91 ld r24,X+ 525 005a 9C91 ld r25,X 526 005c 1597 sbiw r26,4+1 527 005e 2330 cpi r18,3 528 0060 3105 cpc r19,__zero_reg__ 529 0062 00F0 brlo .L19 530 0064 0197 sbiw r24,1 531 .L19: 532 0066 861B sub r24,r22 533 0068 970B sbc r25,r23 534 006a 01F4 brne .L14 535 006c C901 movw r24,r18 536 006e 0196 adiw r24,1 537 0070 9387 std Z+11,r25 538 0072 8287 std Z+10,r24 539 0074 0497 sbiw r24,4 540 0076 00F0 brlo .L18 541 0078 88E0 ldi r24,lo8(8) 542 007a 90E0 ldi r25,0 543 007c 9587 std Z+13,r25 544 007e 8487 std Z+12,r24 545 0080 1386 std Z+11,__zero_reg__ 546 0082 1286 std Z+10,__zero_reg__ 547 0084 8085 ldd r24,Z+8 548 0086 9185 ldd r25,Z+9 549 0088 0196 adiw r24,1 550 008a 9187 std Z+9,r25 551 008c 8087 std Z+8,r24 552 008e 8FEF ldi r24,lo8(-1) 553 0090 9FEF ldi r25,lo8(-1) 554 0092 9783 std Z+7,r25 555 0094 8683 std Z+6,r24 556 0096 00C0 rjmp .L14 557 .L18: 558 0098 1586 std Z+13,__zero_reg__ 559 009a 1486 std Z+12,__zero_reg__ 560 .L14: 561 /* epilogue start */ 562 009c DF91 pop r29 563 009e CF91 pop r28 564 00a0 1F91 pop r17 565 00a2 0F91 pop r16 566 00a4 0895 ret 567 .size EntryPosInc, .-EntryPosInc 568 .section .text.EntryTruncateSeq,"ax",@progbits 569 .type EntryTruncateSeq, @function 570 EntryTruncateSeq: GAS LISTING /tmp/ccjPZxVo.s page 11 571 0000 8F92 push r8 572 0002 9F92 push r9 573 0004 AF92 push r10 574 0006 BF92 push r11 575 0008 CF92 push r12 576 000a DF92 push r13 577 000c EF92 push r14 578 000e FF92 push r15 579 0010 0F93 push r16 580 0012 1F93 push r17 581 0014 CF93 push r28 582 0016 DF93 push r29 583 0018 CDB7 in r28,__SP_L__ 584 001a DEB7 in r29,__SP_H__ 585 001c 2897 sbiw r28,8 586 001e 0FB6 in __tmp_reg__,__SREG__ 587 0020 F894 cli 588 0022 DEBF out __SP_H__,r29 589 0024 0FBE out __SREG__,__tmp_reg__ 590 0026 CDBF out __SP_L__,r28 591 /* prologue: function */ 592 /* frame size = 8 */ 593 /* stack size = 20 */ 594 .L__stack_usage = 20 595 0028 8C01 movw r16,r24 596 002a 6B01 movw r12,r22 597 002c 30E8 ldi r19,lo8(-128) 598 002e 832E mov r8,r19 599 0030 912C mov r9,__zero_reg__ 600 0032 AA24 clr r10 601 0034 AA94 dec r10 602 0036 BA2C mov r11,r10 603 .L21: 604 0038 F801 movw r30,r16 605 003a 8581 ldd r24,Z+5 606 003c 9681 ldd r25,Z+6 607 003e 8816 cp r8,r24 608 0040 9906 cpc r9,r25 609 0042 00F4 brsh .L26 610 0044 7401 movw r14,r8 611 0046 EE0C lsl r14 612 0048 FF1C rol r15 613 004a D801 movw r26,r16 614 004c 1796 adiw r26,7 615 004e ED91 ld r30,X+ 616 0050 FC91 ld r31,X 617 0052 1897 sbiw r26,7+1 618 0054 EE0D add r30,r14 619 0056 FF1D adc r31,r15 620 0058 6081 ld r22,Z 621 005a 7181 ldd r23,Z+1 622 005c 6817 cp r22,r24 623 005e 7907 cpc r23,r25 624 0060 00F4 brsh .L23 625 0062 AE01 movw r20,r28 626 0064 4F5F subi r20,-1 627 0066 5F4F sbci r21,-1 GAS LISTING /tmp/ccjPZxVo.s page 12 628 0068 8D91 ld r24,X+ 629 006a 9C91 ld r25,X 630 006c 0E94 0000 call FlashReadBlockHead 631 0070 8D81 ldd r24,Y+5 632 0072 9E81 ldd r25,Y+6 633 0074 8C15 cp r24,r12 634 0076 9D05 cpc r25,r13 635 0078 01F4 brne .L23 636 007a D801 movw r26,r16 637 007c 1796 adiw r26,7 638 007e ED91 ld r30,X+ 639 0080 FC91 ld r31,X 640 0082 1897 sbiw r26,7+1 641 0084 EE0D add r30,r14 642 0086 FF1D adc r31,r15 643 0088 6081 ld r22,Z 644 008a 7181 ldd r23,Z+1 645 008c B182 std Z+1,r11 646 008e A082 st Z,r10 647 0090 8D91 ld r24,X+ 648 0092 9C91 ld r25,X 649 0094 0E94 0000 call FlashEraseEntry 650 .L23: 651 0098 BFEF ldi r27,-1 652 009a 8B1A sub r8,r27 653 009c 9B0A sbc r9,r27 654 009e 00C0 rjmp .L21 655 .L26: 656 00a0 80E0 ldi r24,0 657 00a2 90E0 ldi r25,0 658 /* epilogue start */ 659 00a4 2896 adiw r28,8 660 00a6 0FB6 in __tmp_reg__,__SREG__ 661 00a8 F894 cli 662 00aa DEBF out __SP_H__,r29 663 00ac 0FBE out __SREG__,__tmp_reg__ 664 00ae CDBF out __SP_L__,r28 665 00b0 DF91 pop r29 666 00b2 CF91 pop r28 667 00b4 1F91 pop r17 668 00b6 0F91 pop r16 669 00b8 FF90 pop r15 670 00ba EF90 pop r14 671 00bc DF90 pop r13 672 00be CF90 pop r12 673 00c0 BF90 pop r11 674 00c2 AF90 pop r10 675 00c4 9F90 pop r9 676 00c6 8F90 pop r8 677 00c8 0895 ret 678 .size EntryTruncateSeq, .-EntryTruncateSeq 679 .section .text.UFlashFileSize,"ax",@progbits 680 .type UFlashFileSize, @function 681 UFlashFileSize: 682 /* prologue: function */ 683 /* frame size = 0 */ 684 /* stack size = 0 */ GAS LISTING /tmp/ccjPZxVo.s page 13 685 .L__stack_usage = 0 686 0000 DC01 movw r26,r24 687 0002 1296 adiw r26,2 688 0004 ED91 ld r30,X+ 689 0006 FC91 ld r31,X 690 0008 1397 sbiw r26,2+1 691 000a 6489 ldd r22,Z+20 692 000c 7589 ldd r23,Z+21 693 000e 8689 ldd r24,Z+22 694 0010 9789 ldd r25,Z+23 695 0012 0895 ret 696 .size UFlashFileSize, .-UFlashFileSize 697 .section .text.UFlashFileWrite_P,"ax",@progbits 698 .type UFlashFileWrite_P, @function 699 UFlashFileWrite_P: 700 /* prologue: function */ 701 /* frame size = 0 */ 702 /* stack size = 0 */ 703 .L__stack_usage = 0 704 0000 8FEF ldi r24,lo8(-1) 705 0002 9FEF ldi r25,lo8(-1) 706 0004 0895 ret 707 .size UFlashFileWrite_P, .-UFlashFileWrite_P 708 .section .text.UFlashInit,"ax",@progbits 709 .type UFlashInit, @function 710 UFlashInit: 711 /* prologue: function */ 712 /* frame size = 0 */ 713 /* stack size = 0 */ 714 .L__stack_usage = 0 715 0000 80E0 ldi r24,0 716 0002 90E0 ldi r25,0 717 0004 0895 ret 718 .size UFlashInit, .-UFlashInit 719 .section .text.FlashReadEntry,"ax",@progbits 720 .type FlashReadEntry, @function 721 FlashReadEntry: 722 0000 AF92 push r10 723 0002 BF92 push r11 724 0004 CF92 push r12 725 0006 DF92 push r13 726 0008 EF92 push r14 727 000a FF92 push r15 728 000c 0F93 push r16 729 000e 1F93 push r17 730 0010 CF93 push r28 731 0012 DF93 push r29 732 /* prologue: function */ 733 /* frame size = 0 */ 734 /* stack size = 10 */ 735 .L__stack_usage = 10 736 0014 EC01 movw r28,r24 737 0016 6A01 movw r12,r20 738 0018 5901 movw r10,r18 739 001a 7B01 movw r14,r22 740 001c EE0C lsl r14 741 001e FF1C rol r15 GAS LISTING /tmp/ccjPZxVo.s page 14 742 0020 EE0C lsl r14 743 0022 FF1C rol r15 744 0024 6885 ldd r22,Y+8 745 0026 7985 ldd r23,Y+9 746 0028 6E0D add r22,r14 747 002a 7F1D adc r23,r15 748 002c EA89 ldd r30,Y+18 749 002e FB89 ldd r31,Y+19 750 0030 02E0 ldi r16,lo8(2) 751 0032 10E0 ldi r17,0 752 0034 9A01 movw r18,r20 753 0036 48E0 ldi r20,lo8(8) 754 0038 50E0 ldi r21,0 755 003a CE01 movw r24,r28 756 003c 1995 eicall 757 003e 0097 sbiw r24,0 758 0040 01F4 brne .L31 759 0042 A114 cp r10,__zero_reg__ 760 0044 B104 cpc r11,__zero_reg__ 761 0046 01F0 breq .L31 762 0048 F601 movw r30,r12 763 004a 8181 ldd r24,Z+1 764 004c 90E0 ldi r25,0 765 004e 0196 adiw r24,1 766 0050 0E94 0000 call malloc 767 0054 F501 movw r30,r10 768 0056 9183 std Z+1,r25 769 0058 8083 st Z,r24 770 005a 0097 sbiw r24,0 771 005c 01F0 breq .L32 772 005e F601 movw r30,r12 773 0060 0181 ldd r16,Z+1 774 0062 10E0 ldi r17,0 775 0064 FC01 movw r30,r24 776 0066 E00F add r30,r16 777 0068 F11F adc r31,r17 778 006a 1082 st Z,__zero_reg__ 779 006c 6885 ldd r22,Y+8 780 006e 7985 ldd r23,Y+9 781 0070 6E0D add r22,r14 782 0072 7F1D adc r23,r15 783 0074 EA89 ldd r30,Y+18 784 0076 FB89 ldd r31,Y+19 785 0078 9C01 movw r18,r24 786 007a 4AE0 ldi r20,lo8(10) 787 007c 50E0 ldi r21,0 788 007e CE01 movw r24,r28 789 0080 1995 eicall 790 0082 00C0 rjmp .L31 791 .L32: 792 0084 8FEF ldi r24,lo8(-1) 793 0086 9FEF ldi r25,lo8(-1) 794 .L31: 795 /* epilogue start */ 796 0088 DF91 pop r29 797 008a CF91 pop r28 798 008c 1F91 pop r17 GAS LISTING /tmp/ccjPZxVo.s page 15 799 008e 0F91 pop r16 800 0090 FF90 pop r15 801 0092 EF90 pop r14 802 0094 DF90 pop r13 803 0096 CF90 pop r12 804 0098 BF90 pop r11 805 009a AF90 pop r10 806 009c 0895 ret 807 .size FlashReadEntry, .-FlashReadEntry 808 .section .text.UFlashFileClose,"ax",@progbits 809 .type UFlashFileClose, @function 810 UFlashFileClose: 811 0000 CF93 push r28 812 0002 DF93 push r29 813 /* prologue: function */ 814 /* frame size = 0 */ 815 /* stack size = 2 */ 816 .L__stack_usage = 2 817 0004 EC01 movw r28,r24 818 0006 8A81 ldd r24,Y+2 819 0008 9B81 ldd r25,Y+3 820 000a 0E94 0000 call free 821 000e CE01 movw r24,r28 822 0010 0E94 0000 call free 823 0014 80E0 ldi r24,0 824 0016 90E0 ldi r25,0 825 /* epilogue start */ 826 0018 DF91 pop r29 827 001a CF91 pop r28 828 001c 0895 ret 829 .size UFlashFileClose, .-UFlashFileClose 830 .section .text.UFlashMount,"ax",@progbits 831 .type UFlashMount, @function 832 UFlashMount: 833 0000 CF92 push r12 834 0002 DF92 push r13 835 0004 EF92 push r14 836 0006 FF92 push r15 837 0008 0F93 push r16 838 000a 1F93 push r17 839 000c CF93 push r28 840 000e DF93 push r29 841 0010 CDB7 in r28,__SP_L__ 842 0012 DEB7 in r29,__SP_H__ 843 0014 6097 sbiw r28,16 844 0016 0FB6 in __tmp_reg__,__SREG__ 845 0018 F894 cli 846 001a DEBF out __SP_H__,r29 847 001c 0FBE out __SREG__,__tmp_reg__ 848 001e CDBF out __SP_L__,r28 849 /* prologue: function */ 850 /* frame size = 16 */ 851 /* stack size = 24 */ 852 .L__stack_usage = 24 853 0020 7C01 movw r14,r24 854 0022 69E0 ldi r22,lo8(9) 855 0024 70E0 ldi r23,0 GAS LISTING /tmp/ccjPZxVo.s page 16 856 0026 81E0 ldi r24,lo8(1) 857 0028 90E0 ldi r25,0 858 002a 0E94 0000 call calloc 859 002e 8C01 movw r16,r24 860 0030 0097 sbiw r24,0 861 0032 01F4 brne .+2 862 0034 00C0 rjmp .L51 863 0036 D701 movw r26,r14 864 0038 5296 adiw r26,17+1 865 003a 9C93 st X,r25 866 003c 8E93 st -X,r24 867 003e 5197 sbiw r26,17 868 0040 1F96 adiw r26,15 869 0042 ED91 ld r30,X+ 870 0044 FC91 ld r31,X 871 0046 5097 sbiw r26,15+1 872 0048 DC01 movw r26,r24 873 004a ED93 st X+,r30 874 004c FC93 st X,r31 875 004e 8681 ldd r24,Z+6 876 0050 9781 ldd r25,Z+7 877 0052 2085 ldd r18,Z+8 878 0054 3185 ldd r19,Z+9 879 0056 821B sub r24,r18 880 0058 930B sbc r25,r19 881 005a 2285 ldd r18,Z+10 882 005c 3385 ldd r19,Z+11 883 005e 821B sub r24,r18 884 0060 930B sbc r25,r19 885 0062 9695 lsr r25 886 0064 8795 ror r24 887 0066 9695 lsr r25 888 0068 8795 ror r24 889 006a 8130 cpi r24,1 890 006c B0E2 ldi r27,32 891 006e 9B07 cpc r25,r27 892 0070 00F4 brsh .L39 893 0072 F801 movw r30,r16 894 0074 9683 std Z+6,r25 895 0076 8583 std Z+5,r24 896 0078 00C0 rjmp .L40 897 .L39: 898 007a 80E0 ldi r24,0 899 007c 90E2 ldi r25,lo8(32) 900 007e D801 movw r26,r16 901 0080 1696 adiw r26,5+1 902 0082 9C93 st X,r25 903 0084 8E93 st -X,r24 904 0086 1597 sbiw r26,5 905 .L40: 906 0088 F801 movw r30,r16 907 008a E580 ldd r14,Z+5 908 008c F680 ldd r15,Z+6 909 008e EE0C lsl r14 910 0090 FF1C rol r15 911 0092 C701 movw r24,r14 912 0094 0E94 0000 call malloc GAS LISTING /tmp/ccjPZxVo.s page 17 913 0098 D801 movw r26,r16 914 009a 1896 adiw r26,7+1 915 009c 9C93 st X,r25 916 009e 8E93 st -X,r24 917 00a0 1797 sbiw r26,7 918 00a2 0097 sbiw r24,0 919 00a4 01F4 brne .L41 920 00a6 C801 movw r24,r16 921 00a8 0E94 0000 call free 922 00ac 00C0 rjmp .L51 923 .L41: 924 00ae A701 movw r20,r14 925 00b0 6FEF ldi r22,lo8(-1) 926 00b2 70E0 ldi r23,0 927 00b4 0E94 0000 call memset 928 00b8 40E6 ldi r20,lo8(96) 929 00ba 50E0 ldi r21,0 930 00bc 6FEF ldi r22,lo8(-1) 931 00be 70E0 ldi r23,0 932 00c0 80E0 ldi r24,lo8(min_used) 933 00c2 90E0 ldi r25,hi8(min_used) 934 00c4 0E94 0000 call memset 935 00c8 C12C mov r12,__zero_reg__ 936 00ca D12C mov r13,__zero_reg__ 937 00cc E12C mov r14,__zero_reg__ 938 00ce F12C mov r15,__zero_reg__ 939 .L42: 940 00d0 D801 movw r26,r16 941 00d2 1596 adiw r26,5 942 00d4 8D91 ld r24,X+ 943 00d6 9C91 ld r25,X 944 00d8 1697 sbiw r26,5+1 945 00da E816 cp r14,r24 946 00dc F906 cpc r15,r25 947 00de 00F0 brlo .+2 948 00e0 00C0 rjmp .L54 949 00e2 AE01 movw r20,r28 950 00e4 475F subi r20,-9 951 00e6 5F4F sbci r21,-1 952 00e8 B701 movw r22,r14 953 00ea F801 movw r30,r16 954 00ec 8081 ld r24,Z 955 00ee 9181 ldd r25,Z+1 956 00f0 0E94 0000 call FlashReadBlockHead 957 00f4 2985 ldd r18,Y+9 958 00f6 3A85 ldd r19,Y+10 959 00f8 D801 movw r26,r16 960 00fa 1596 adiw r26,5 961 00fc 8D91 ld r24,X+ 962 00fe 9C91 ld r25,X 963 0100 1697 sbiw r26,5+1 964 0102 2817 cp r18,r24 965 0104 3907 cpc r19,r25 966 0106 00F0 brlo .+2 967 0108 00C0 rjmp .L43 968 010a 8D91 ld r24,X+ 969 010c 9C91 ld r25,X GAS LISTING /tmp/ccjPZxVo.s page 18 970 010e FC01 movw r30,r24 971 0110 6085 ldd r22,Z+8 972 0112 7185 ldd r23,Z+9 973 0114 6C0D add r22,r12 974 0116 7D1D adc r23,r13 975 0118 0088 ldd __tmp_reg__,Z+16 976 011a F189 ldd r31,Z+17 977 011c E02D mov r30,__tmp_reg__ 978 011e 44E0 ldi r20,lo8(4) 979 0120 50E0 ldi r21,0 980 0122 1995 eicall 981 0124 892B or r24,r25 982 0126 01F0 breq .L44 983 0128 B701 movw r22,r14 984 012a D801 movw r26,r16 985 012c 8D91 ld r24,X+ 986 012e 9C91 ld r25,X 987 0130 00C0 rjmp .L53 988 .L44: 989 0132 E985 ldd r30,Y+9 990 0134 FA85 ldd r31,Y+10 991 0136 EE0F lsl r30 992 0138 FF1F rol r31 993 013a D801 movw r26,r16 994 013c 1796 adiw r26,7 995 013e 8D91 ld r24,X+ 996 0140 9C91 ld r25,X 997 0142 1897 sbiw r26,7+1 998 0144 E80F add r30,r24 999 0146 F91F adc r31,r25 1000 0148 6081 ld r22,Z 1001 014a 7181 ldd r23,Z+1 1002 014c 1596 adiw r26,5 1003 014e 8D91 ld r24,X+ 1004 0150 9C91 ld r25,X 1005 0152 1697 sbiw r26,5+1 1006 0154 6817 cp r22,r24 1007 0156 7907 cpc r23,r25 1008 0158 00F0 brlo .+2 1009 015a 00C0 rjmp .L45 1010 015c AE01 movw r20,r28 1011 015e 4F5F subi r20,-1 1012 0160 5F4F sbci r21,-1 1013 0162 8D91 ld r24,X+ 1014 0164 9C91 ld r25,X 1015 0166 0E94 0000 call FlashReadBlockHead 1016 016a 4B81 ldd r20,Y+3 1017 016c 5C81 ldd r21,Y+4 1018 016e 2B85 ldd r18,Y+11 1019 0170 3C85 ldd r19,Y+12 1020 0172 F801 movw r30,r16 1021 0174 6581 ldd r22,Z+5 1022 0176 7681 ldd r23,Z+6 1023 0178 8081 ld r24,Z 1024 017a 9181 ldd r25,Z+1 1025 017c 2417 cp r18,r20 1026 017e 3507 cpc r19,r21 GAS LISTING /tmp/ccjPZxVo.s page 19 1027 0180 00F4 brsh .L46 1028 0182 421B sub r20,r18 1029 0184 530B sbc r21,r19 1030 0186 6417 cp r22,r20 1031 0188 7507 cpc r23,r21 1032 018a 00F4 brsh .L49 1033 018c 00C0 rjmp .L52 1034 .L46: 1035 018e 241B sub r18,r20 1036 0190 350B sbc r19,r21 1037 0192 2617 cp r18,r22 1038 0194 3707 cpc r19,r23 1039 0196 00F4 brsh .L49 1040 .L52: 1041 0198 B701 movw r22,r14 1042 .L53: 1043 019a 0E94 0000 call FlashEraseEntry 1044 019e 00C0 rjmp .L48 1045 .L49: 1046 01a0 E985 ldd r30,Y+9 1047 01a2 FA85 ldd r31,Y+10 1048 01a4 EE0F lsl r30 1049 01a6 FF1F rol r31 1050 01a8 D801 movw r26,r16 1051 01aa 1796 adiw r26,7 1052 01ac 2D91 ld r18,X+ 1053 01ae 3C91 ld r19,X 1054 01b0 1897 sbiw r26,7+1 1055 01b2 E20F add r30,r18 1056 01b4 F31F adc r31,r19 1057 01b6 6081 ld r22,Z 1058 01b8 7181 ldd r23,Z+1 1059 01ba 0E94 0000 call FlashEraseEntry 1060 01be E985 ldd r30,Y+9 1061 01c0 FA85 ldd r31,Y+10 1062 01c2 EE0F lsl r30 1063 01c4 FF1F rol r31 1064 01c6 D801 movw r26,r16 1065 01c8 1796 adiw r26,7 1066 01ca 8D91 ld r24,X+ 1067 01cc 9C91 ld r25,X 1068 01ce 1897 sbiw r26,7+1 1069 01d0 E80F add r30,r24 1070 01d2 F91F adc r31,r25 1071 01d4 F182 std Z+1,r15 1072 01d6 E082 st Z,r14 1073 .L48: 1074 01d8 F801 movw r30,r16 1075 01da 8481 ldd r24,Z+4 1076 01dc 8068 ori r24,lo8(-128) 1077 01de 8483 std Z+4,r24 1078 01e0 00C0 rjmp .L43 1079 .L45: 1080 01e2 F182 std Z+1,r15 1081 01e4 E082 st Z,r14 1082 .L43: 1083 01e6 FFEF ldi r31,-1 GAS LISTING /tmp/ccjPZxVo.s page 20 1084 01e8 EF1A sub r14,r31 1085 01ea FF0A sbc r15,r31 1086 01ec 24E0 ldi r18,4 1087 01ee C20E add r12,r18 1088 01f0 D11C adc r13,__zero_reg__ 1089 01f2 00C0 rjmp .L42 1090 .L54: 1091 01f4 C801 movw r24,r16 1092 01f6 0296 adiw r24,2 1093 01f8 0E94 0000 call NutEventPost 1094 01fc 80E0 ldi r24,0 1095 01fe 90E0 ldi r25,0 1096 0200 00C0 rjmp .L38 1097 .L51: 1098 0202 8FEF ldi r24,lo8(-1) 1099 0204 9FEF ldi r25,lo8(-1) 1100 .L38: 1101 /* epilogue start */ 1102 0206 6096 adiw r28,16 1103 0208 0FB6 in __tmp_reg__,__SREG__ 1104 020a F894 cli 1105 020c DEBF out __SP_H__,r29 1106 020e 0FBE out __SREG__,__tmp_reg__ 1107 0210 CDBF out __SP_L__,r28 1108 0212 DF91 pop r29 1109 0214 CF91 pop r28 1110 0216 1F91 pop r17 1111 0218 0F91 pop r16 1112 021a FF90 pop r15 1113 021c EF90 pop r14 1114 021e DF90 pop r13 1115 0220 CF90 pop r12 1116 0222 0895 ret 1117 .size UFlashMount, .-UFlashMount 1118 .section .text.EntrySearchNext,"ax",@progbits 1119 .type EntrySearchNext, @function 1120 EntrySearchNext: 1121 0000 2F92 push r2 1122 0002 3F92 push r3 1123 0004 4F92 push r4 1124 0006 5F92 push r5 1125 0008 6F92 push r6 1126 000a 7F92 push r7 1127 000c 8F92 push r8 1128 000e 9F92 push r9 1129 0010 AF92 push r10 1130 0012 BF92 push r11 1131 0014 CF92 push r12 1132 0016 DF92 push r13 1133 0018 EF92 push r14 1134 001a FF92 push r15 1135 001c 0F93 push r16 1136 001e 1F93 push r17 1137 0020 CF93 push r28 1138 0022 DF93 push r29 1139 0024 00D0 rcall . 1140 0026 1F92 push __zero_reg__ GAS LISTING /tmp/ccjPZxVo.s page 21 1141 0028 CDB7 in r28,__SP_L__ 1142 002a DEB7 in r29,__SP_H__ 1143 /* prologue: function */ 1144 /* frame size = 4 */ 1145 /* stack size = 22 */ 1146 .L__stack_usage = 22 1147 002c 7C01 movw r14,r24 1148 002e 5B01 movw r10,r22 1149 0030 3A01 movw r6,r20 1150 0032 4901 movw r8,r18 1151 0034 FB01 movw r30,r22 1152 0: 1153 0036 0190 ld __tmp_reg__,Z+ 1154 0038 0020 tst __tmp_reg__ 1155 003a 01F4 brne 0b 1156 003c 3197 sbiw r30,1 1157 003e 2F01 movw r4,r30 1158 0040 461A sub r4,r22 1159 0042 570A sbc r5,r23 1160 0044 6C01 movw r12,r24 1161 0046 22E0 ldi r18,2 1162 0048 C20E add r12,r18 1163 004a D11C adc r13,__zero_reg__ 1164 004c 40E0 ldi r20,0 1165 004e 50E0 ldi r21,0 1166 0050 BA01 movw r22,r20 1167 0052 C601 movw r24,r12 1168 0054 0E94 0000 call NutEventWait 1169 0058 80E8 ldi r24,-128 1170 005a 8816 cp r8,r24 1171 005c 9104 cpc r9,__zero_reg__ 1172 005e 01F0 breq .L62 1173 0060 9C82 std Y+4,r9 1174 0062 8B82 std Y+3,r8 1175 0064 00C0 rjmp .L56 1176 .L62: 1177 0066 1C82 std Y+4,__zero_reg__ 1178 0068 1B82 std Y+3,__zero_reg__ 1179 .L56: 1180 006a 2B80 ldd r2,Y+3 1181 006c 3C80 ldd r3,Y+4 1182 006e 220C lsl r2 1183 0070 331C rol r3 1184 0072 D201 movw r26,r4 1185 0074 BB27 clr r27 1186 0076 BA83 std Y+2,r27 1187 0078 A983 std Y+1,r26 1188 .L57: 1189 007a AB81 ldd r26,Y+3 1190 007c BC81 ldd r27,Y+4 1191 007e A038 cpi r26,-128 1192 0080 B105 cpc r27,__zero_reg__ 1193 0082 00F0 brlo .+2 1194 0084 00C0 rjmp .L66 1195 0086 D701 movw r26,r14 1196 0088 1796 adiw r26,7 1197 008a ED91 ld r30,X+ GAS LISTING /tmp/ccjPZxVo.s page 22 1198 008c FC91 ld r31,X 1199 008e 1897 sbiw r26,7+1 1200 0090 E20D add r30,r2 1201 0092 F31D adc r31,r3 1202 0094 0081 ld r16,Z 1203 0096 1181 ldd r17,Z+1 1204 0098 1596 adiw r26,5 1205 009a 8D91 ld r24,X+ 1206 009c 9C91 ld r25,X 1207 009e 1697 sbiw r26,5+1 1208 00a0 0817 cp r16,r24 1209 00a2 1907 cpc r17,r25 1210 00a4 00F4 brsh .L58 1211 00a6 20E0 ldi r18,0 1212 00a8 30E0 ldi r19,0 1213 00aa A301 movw r20,r6 1214 00ac B801 movw r22,r16 1215 00ae 8D91 ld r24,X+ 1216 00b0 9C91 ld r25,X 1217 00b2 0E94 0000 call FlashReadEntry 1218 00b6 892B or r24,r25 1219 00b8 01F4 brne .L58 1220 00ba F301 movw r30,r6 1221 00bc 8181 ldd r24,Z+1 1222 00be 90E0 ldi r25,0 1223 00c0 4816 cp r4,r24 1224 00c2 5906 cpc r5,r25 1225 00c4 01F0 breq .L59 1226 00c6 F0E8 ldi r31,-128 1227 00c8 8F16 cp r8,r31 1228 00ca 9104 cpc r9,__zero_reg__ 1229 00cc 01F0 breq .L58 1230 00ce 8415 cp r24,r4 1231 00d0 9505 cpc r25,r5 1232 00d2 04F0 brlt .L58 1233 .L59: 1234 00d4 D701 movw r26,r14 1235 00d6 8D91 ld r24,X+ 1236 00d8 9C91 ld r25,X 1237 00da 000F lsl r16 1238 00dc 111F rol r17 1239 00de 000F lsl r16 1240 00e0 111F rol r17 1241 00e2 FC01 movw r30,r24 1242 00e4 6085 ldd r22,Z+8 1243 00e6 7185 ldd r23,Z+9 1244 00e8 600F add r22,r16 1245 00ea 711F adc r23,r17 1246 00ec 0488 ldd __tmp_reg__,Z+20 1247 00ee F589 ldd r31,Z+21 1248 00f0 E02D mov r30,__tmp_reg__ 1249 00f2 0981 ldd r16,Y+1 1250 00f4 1A81 ldd r17,Y+2 1251 00f6 9501 movw r18,r10 1252 00f8 4AE0 ldi r20,lo8(10) 1253 00fa 50E0 ldi r21,0 1254 00fc 1995 eicall GAS LISTING /tmp/ccjPZxVo.s page 23 1255 00fe 892B or r24,r25 1256 0100 01F4 brne .L58 1257 0102 C601 movw r24,r12 1258 0104 0E94 0000 call NutEventPost 1259 0108 8B81 ldd r24,Y+3 1260 010a 9C81 ldd r25,Y+4 1261 010c 00C0 rjmp .L60 1262 .L58: 1263 010e 8B81 ldd r24,Y+3 1264 0110 9C81 ldd r25,Y+4 1265 0112 0196 adiw r24,1 1266 0114 9C83 std Y+4,r25 1267 0116 8B83 std Y+3,r24 1268 0118 92E0 ldi r25,2 1269 011a 290E add r2,r25 1270 011c 311C adc r3,__zero_reg__ 1271 011e 00C0 rjmp .L57 1272 .L66: 1273 0120 C601 movw r24,r12 1274 0122 0E94 0000 call NutEventPost 1275 0126 80E8 ldi r24,lo8(-128) 1276 0128 90E0 ldi r25,0 1277 .L60: 1278 /* epilogue start */ 1279 012a 0F90 pop __tmp_reg__ 1280 012c 0F90 pop __tmp_reg__ 1281 012e 0F90 pop __tmp_reg__ 1282 0130 0F90 pop __tmp_reg__ 1283 0132 DF91 pop r29 1284 0134 CF91 pop r28 1285 0136 1F91 pop r17 1286 0138 0F91 pop r16 1287 013a FF90 pop r15 1288 013c EF90 pop r14 1289 013e DF90 pop r13 1290 0140 CF90 pop r12 1291 0142 BF90 pop r11 1292 0144 AF90 pop r10 1293 0146 9F90 pop r9 1294 0148 8F90 pop r8 1295 014a 7F90 pop r7 1296 014c 6F90 pop r6 1297 014e 5F90 pop r5 1298 0150 4F90 pop r4 1299 0152 3F90 pop r3 1300 0154 2F90 pop r2 1301 0156 0895 ret 1302 .size EntrySearchNext, .-EntrySearchNext 1303 .section .text.EntryScan.isra.1,"ax",@progbits 1304 .type EntryScan.isra.1, @function 1305 EntryScan.isra.1: 1306 0000 8F92 push r8 1307 0002 9F92 push r9 1308 0004 AF92 push r10 1309 0006 BF92 push r11 1310 0008 CF92 push r12 1311 000a DF92 push r13 GAS LISTING /tmp/ccjPZxVo.s page 24 1312 000c EF92 push r14 1313 000e FF92 push r15 1314 0010 0F93 push r16 1315 0012 1F93 push r17 1316 0014 CF93 push r28 1317 0016 DF93 push r29 1318 0018 CDB7 in r28,__SP_L__ 1319 001a DEB7 in r29,__SP_H__ 1320 001c 2897 sbiw r28,8 1321 001e 0FB6 in __tmp_reg__,__SREG__ 1322 0020 F894 cli 1323 0022 DEBF out __SP_H__,r29 1324 0024 0FBE out __SREG__,__tmp_reg__ 1325 0026 CDBF out __SP_L__,r28 1326 /* prologue: function */ 1327 /* frame size = 8 */ 1328 /* stack size = 20 */ 1329 .L__stack_usage = 20 1330 0028 8C01 movw r16,r24 1331 002a 4B01 movw r8,r22 1332 002c 5B01 movw r10,r22 1333 002e E12C mov r14,__zero_reg__ 1334 0030 F12C mov r15,__zero_reg__ 1335 0032 E0E8 ldi r30,lo8(-128) 1336 0034 CE2E mov r12,r30 1337 0036 D12C mov r13,__zero_reg__ 1338 .L68: 1339 0038 F801 movw r30,r16 1340 003a 2581 ldd r18,Z+5 1341 003c 3681 ldd r19,Z+6 1342 003e 0780 ldd __tmp_reg__,Z+7 1343 0040 F085 ldd r31,Z+8 1344 0042 E02D mov r30,__tmp_reg__ 1345 0044 C216 cp r12,r18 1346 0046 D306 cpc r13,r19 1347 0048 00F4 brsh .L76 1348 004a C601 movw r24,r12 1349 004c 880F lsl r24 1350 004e 991F rol r25 1351 0050 E80F add r30,r24 1352 0052 F91F adc r31,r25 1353 0054 6081 ld r22,Z 1354 0056 7181 ldd r23,Z+1 1355 0058 6217 cp r22,r18 1356 005a 7307 cpc r23,r19 1357 005c 00F4 brsh .L69 1358 005e AE01 movw r20,r28 1359 0060 4F5F subi r20,-1 1360 0062 5F4F sbci r21,-1 1361 0064 D801 movw r26,r16 1362 0066 8D91 ld r24,X+ 1363 0068 9C91 ld r25,X 1364 006a 0E94 0000 call FlashReadBlockHead 1365 006e 8D81 ldd r24,Y+5 1366 0070 9E81 ldd r25,Y+6 1367 0072 8815 cp r24,r8 1368 0074 9905 cpc r25,r9 GAS LISTING /tmp/ccjPZxVo.s page 25 1369 0076 01F4 brne .L69 1370 0078 8F81 ldd r24,Y+7 1371 007a 9885 ldd r25,Y+8 1372 007c E816 cp r14,r24 1373 007e F906 cpc r15,r25 1374 0080 00F4 brsh .L69 1375 0082 7C01 movw r14,r24 1376 0084 5601 movw r10,r12 1377 .L69: 1378 0086 BFEF ldi r27,-1 1379 0088 CB1A sub r12,r27 1380 008a DB0A sbc r13,r27 1381 008c 00C0 rjmp .L68 1382 .L76: 1383 008e D801 movw r26,r16 1384 0090 8D91 ld r24,X+ 1385 0092 9C91 ld r25,X 1386 0094 DC01 movw r26,r24 1387 0096 1496 adiw r26,4 1388 0098 8D91 ld r24,X+ 1389 009a 9C91 ld r25,X 1390 009c 1597 sbiw r26,4+1 1391 009e 880F lsl r24 1392 00a0 991F rol r25 1393 00a2 880F lsl r24 1394 00a4 991F rol r25 1395 00a6 0997 sbiw r24,9 1396 00a8 8E9D mul r24,r14 1397 00aa 6001 movw r12,r0 1398 00ac 8F9D mul r24,r15 1399 00ae D00C add r13,r0 1400 00b0 9E9D mul r25,r14 1401 00b2 D00C add r13,r0 1402 00b4 1124 clr r1 1403 00b6 E12C mov r14,__zero_reg__ 1404 00b8 F12C mov r15,__zero_reg__ 1405 00ba AA0C lsl r10 1406 00bc BB1C rol r11 1407 00be EA0D add r30,r10 1408 00c0 FB1D adc r31,r11 1409 00c2 8080 ld r8,Z 1410 00c4 9180 ldd r9,Z+1 1411 00c6 880C lsl r8 1412 00c8 991C rol r9 1413 00ca 880C lsl r8 1414 00cc 991C rol r9 1415 00ce 4FEF ldi r20,lo8(-1) 1416 00d0 5FEF ldi r21,lo8(-1) 1417 00d2 64E0 ldi r22,lo8(4) 1418 00d4 A62E mov r10,r22 1419 00d6 B12C mov r11,__zero_reg__ 1420 .L71: 1421 00d8 B1E0 ldi r27,1 1422 00da AB1A sub r10,r27 1423 00dc B108 sbc r11,__zero_reg__ 1424 00de 00F0 brcs .L72 1425 00e0 F801 movw r30,r16 GAS LISTING /tmp/ccjPZxVo.s page 26 1426 00e2 8081 ld r24,Z 1427 00e4 9181 ldd r25,Z+1 1428 00e6 DC01 movw r26,r24 1429 00e8 1896 adiw r26,8 1430 00ea 6D91 ld r22,X+ 1431 00ec 7C91 ld r23,X 1432 00ee 1997 sbiw r26,8+1 1433 00f0 9401 movw r18,r8 1434 00f2 2A0D add r18,r10 1435 00f4 3B1D adc r19,r11 1436 00f6 620F add r22,r18 1437 00f8 731F adc r23,r19 1438 00fa 5696 adiw r26,22 1439 00fc ED91 ld r30,X+ 1440 00fe FC91 ld r31,X 1441 0100 5797 sbiw r26,22+1 1442 0102 1995 eicall 1443 0104 40E0 ldi r20,0 1444 0106 50E0 ldi r21,0 1445 0108 0097 sbiw r24,0 1446 010a 01F0 breq .L71 1447 010c D801 movw r26,r16 1448 010e ED91 ld r30,X+ 1449 0110 FC91 ld r31,X 1450 0112 4481 ldd r20,Z+4 1451 0114 5581 ldd r21,Z+5 1452 0116 A49E mul r10,r20 1453 0118 9001 movw r18,r0 1454 011a A59E mul r10,r21 1455 011c 300D add r19,r0 1456 011e B49E mul r11,r20 1457 0120 300D add r19,r0 1458 0122 1124 clr r1 1459 0124 0897 sbiw r24,8 1460 0126 820F add r24,r18 1461 0128 931F adc r25,r19 1462 012a C80E add r12,r24 1463 012c D91E adc r13,r25 1464 012e E11C adc r14,__zero_reg__ 1465 0130 F11C adc r15,__zero_reg__ 1466 .L72: 1467 0132 C701 movw r24,r14 1468 0134 B601 movw r22,r12 1469 /* epilogue start */ 1470 0136 2896 adiw r28,8 1471 0138 0FB6 in __tmp_reg__,__SREG__ 1472 013a F894 cli 1473 013c DEBF out __SP_H__,r29 1474 013e 0FBE out __SREG__,__tmp_reg__ 1475 0140 CDBF out __SP_L__,r28 1476 0142 DF91 pop r29 1477 0144 CF91 pop r28 1478 0146 1F91 pop r17 1479 0148 0F91 pop r16 1480 014a FF90 pop r15 1481 014c EF90 pop r14 1482 014e DF90 pop r13 GAS LISTING /tmp/ccjPZxVo.s page 27 1483 0150 CF90 pop r12 1484 0152 BF90 pop r11 1485 0154 AF90 pop r10 1486 0156 9F90 pop r9 1487 0158 8F90 pop r8 1488 015a 0895 ret 1489 .size EntryScan.isra.1, .-EntryScan.isra.1 1490 .section .text.PhysBlkAllocate,"ax",@progbits 1491 .type PhysBlkAllocate, @function 1492 PhysBlkAllocate: 1493 0000 4F92 push r4 1494 0002 5F92 push r5 1495 0004 6F92 push r6 1496 0006 7F92 push r7 1497 0008 8F92 push r8 1498 000a 9F92 push r9 1499 000c AF92 push r10 1500 000e BF92 push r11 1501 0010 CF92 push r12 1502 0012 DF92 push r13 1503 0014 EF92 push r14 1504 0016 FF92 push r15 1505 0018 0F93 push r16 1506 001a 1F93 push r17 1507 001c CF93 push r28 1508 001e DF93 push r29 1509 0020 CDB7 in r28,__SP_L__ 1510 0022 DEB7 in r29,__SP_H__ 1511 0024 2997 sbiw r28,9 1512 0026 0FB6 in __tmp_reg__,__SREG__ 1513 0028 F894 cli 1514 002a DEBF out __SP_H__,r29 1515 002c 0FBE out __SREG__,__tmp_reg__ 1516 002e CDBF out __SP_L__,r28 1517 /* prologue: function */ 1518 /* frame size = 9 */ 1519 /* stack size = 25 */ 1520 .L__stack_usage = 25 1521 0030 8C01 movw r16,r24 1522 0032 6B01 movw r12,r22 1523 .L112: 1524 0034 D801 movw r26,r16 1525 0036 1596 adiw r26,5 1526 0038 8D91 ld r24,X+ 1527 003a 9C91 ld r25,X 1528 003c 1697 sbiw r26,5+1 1529 003e C114 cp r12,__zero_reg__ 1530 0040 D104 cpc r13,__zero_reg__ 1531 0042 01F4 brne .L78 1532 0044 2091 0000 lds r18,min_used+73 1533 0048 3091 0000 lds r19,min_used+73+1 1534 004c 2817 cp r18,r24 1535 004e 3907 cpc r19,r25 1536 0050 00F0 brlo .+2 1537 0052 00C0 rjmp .L79 1538 .L78: 1539 0054 E0E0 ldi r30,lo8(min_used+1) GAS LISTING /tmp/ccjPZxVo.s page 28 1540 0056 F0E0 ldi r31,hi8(min_used+1) 1541 0058 20E0 ldi r18,0 1542 005a 30E0 ldi r19,0 1543 .L89: 1544 005c E080 ld r14,Z 1545 005e F180 ldd r15,Z+1 1546 0060 E816 cp r14,r24 1547 0062 F906 cpc r15,r25 1548 0064 00F0 brlo .+2 1549 0066 00C0 rjmp .L80 1550 0068 F901 movw r30,r18 1551 006a EE0F lsl r30 1552 006c FF1F rol r31 1553 006e 2E0F add r18,r30 1554 0070 3F1F adc r19,r31 1555 0072 F901 movw r30,r18 1556 0074 E050 subi r30,lo8(-(min_used)) 1557 0076 F040 sbci r31,hi8(-(min_used)) 1558 0078 2FEF ldi r18,lo8(-1) 1559 007a 3FEF ldi r19,lo8(-1) 1560 007c 3283 std Z+2,r19 1561 007e 2183 std Z+1,r18 1562 0080 20E0 ldi r18,0 1563 0082 30E0 ldi r19,0 1564 .L81: 1565 0084 8217 cp r24,r18 1566 0086 9307 cpc r25,r19 1567 0088 01F4 brne .+2 1568 008a 00C0 rjmp .L87 1569 008c 4901 movw r8,r18 1570 008e 880C lsl r8 1571 0090 991C rol r9 1572 0092 D801 movw r26,r16 1573 0094 1796 adiw r26,7 1574 0096 ED91 ld r30,X+ 1575 0098 FC91 ld r31,X 1576 009a 1897 sbiw r26,7+1 1577 009c E80D add r30,r8 1578 009e F91D adc r31,r9 1579 00a0 A080 ld r10,Z 1580 00a2 B180 ldd r11,Z+1 1581 00a4 EA14 cp r14,r10 1582 00a6 FB04 cpc r15,r11 1583 00a8 01F0 breq .+2 1584 00aa 00C0 rjmp .L82 1585 00ac B601 movw r22,r12 1586 00ae 6F5F subi r22,-1 1587 00b0 7F4F sbci r23,-1 1588 00b2 C801 movw r24,r16 1589 00b4 0E94 0000 call PhysBlkAllocate 1590 00b8 6C01 movw r12,r24 1591 00ba F801 movw r30,r16 1592 00bc 8581 ldd r24,Z+5 1593 00be 9681 ldd r25,Z+6 1594 00c0 C816 cp r12,r24 1595 00c2 D906 cpc r13,r25 1596 00c4 00F0 brlo .+2 GAS LISTING /tmp/ccjPZxVo.s page 29 1597 00c6 00C0 rjmp .L116 1598 00c8 8781 ldd r24,Z+7 1599 00ca 9085 ldd r25,Z+8 1600 00cc FC01 movw r30,r24 1601 00ce E80D add r30,r8 1602 00d0 F91D adc r31,r9 1603 00d2 D182 std Z+1,r13 1604 00d4 C082 st Z,r12 1605 00d6 AE01 movw r20,r28 1606 00d8 4F5F subi r20,-1 1607 00da 5F4F sbci r21,-1 1608 00dc B701 movw r22,r14 1609 00de D801 movw r26,r16 1610 00e0 8D91 ld r24,X+ 1611 00e2 9C91 ld r25,X 1612 00e4 0E94 0000 call FlashReadBlockHead 1613 00e8 AE01 movw r20,r28 1614 00ea 475F subi r20,-9 1615 00ec 5F4F sbci r21,-1 1616 00ee B601 movw r22,r12 1617 00f0 F801 movw r30,r16 1618 00f2 8081 ld r24,Z 1619 00f4 9181 ldd r25,Z+1 1620 00f6 0E94 0000 call FlashReadBlockFoot 1621 00fa B601 movw r22,r12 1622 00fc D801 movw r26,r16 1623 00fe 8D91 ld r24,X+ 1624 0100 9C91 ld r25,X 1625 0102 0E94 0000 call FlashEraseBlockData 1626 0106 812C mov r8,__zero_reg__ 1627 0108 912C mov r9,__zero_reg__ 1628 .L86: 1629 010a 9401 movw r18,r8 1630 010c A601 movw r20,r12 1631 010e B501 movw r22,r10 1632 0110 F801 movw r30,r16 1633 0112 8081 ld r24,Z 1634 0114 9181 ldd r25,Z+1 1635 0116 0E94 0000 call FlashUnitCopy 1636 011a 282D mov r18,r8 1637 011c D801 movw r26,r16 1638 011e 8D91 ld r24,X+ 1639 0120 9C91 ld r25,X 1640 0122 8114 cp r8,__zero_reg__ 1641 0124 9104 cpc r9,__zero_reg__ 1642 0126 01F4 brne .L84 1643 0128 AE01 movw r20,r28 1644 012a 4F5F subi r20,-1 1645 012c 5F4F sbci r21,-1 1646 012e B601 movw r22,r12 1647 0130 0E94 0000 call FlashWriteBlockHead 1648 0134 00C0 rjmp .L85 1649 .L84: 1650 0136 2330 cpi r18,lo8(3) 1651 0138 01F4 brne .L85 1652 013a AE01 movw r20,r28 1653 013c 475F subi r20,-9 GAS LISTING /tmp/ccjPZxVo.s page 30 1654 013e 5F4F sbci r21,-1 1655 0140 B601 movw r22,r12 1656 0142 0E94 0000 call FlashWriteBlockFoot 1657 .L85: 1658 0146 A401 movw r20,r8 1659 0148 B601 movw r22,r12 1660 014a F801 movw r30,r16 1661 014c 8081 ld r24,Z 1662 014e 9181 ldd r25,Z+1 1663 0150 0E94 0000 call FlashUnitCommit 1664 0154 FFEF ldi r31,-1 1665 0156 8F1A sub r8,r31 1666 0158 9F0A sbc r9,r31 1667 015a 44E0 ldi r20,4 1668 015c 8416 cp r8,r20 1669 015e 9104 cpc r9,__zero_reg__ 1670 0160 01F4 brne .L86 1671 0162 B501 movw r22,r10 1672 0164 D801 movw r26,r16 1673 0166 8D91 ld r24,X+ 1674 0168 9C91 ld r25,X 1675 016a 0E94 0000 call FlashEraseEntry 1676 016e 00C0 rjmp .L87 1677 .L82: 1678 0170 2F5F subi r18,-1 1679 0172 3F4F sbci r19,-1 1680 0174 00C0 rjmp .L81 1681 .L80: 1682 0176 2F5F subi r18,-1 1683 0178 3F4F sbci r19,-1 1684 017a 3396 adiw r30,3 1685 017c 2032 cpi r18,32 1686 017e 3105 cpc r19,__zero_reg__ 1687 0180 01F0 breq .+2 1688 0182 00C0 rjmp .L89 1689 .L79: 1690 0184 61E0 ldi r22,lo8(1) 1691 0186 70E0 ldi r23,0 1692 0188 0E94 0000 call calloc 1693 018c 7C01 movw r14,r24 1694 018e 0097 sbiw r24,0 1695 0190 01F0 breq .L90 1696 0192 5C01 movw r10,r24 1697 0194 00C0 rjmp .L91 1698 .L126: 1699 0196 20E0 ldi r18,0 1700 0198 30E0 ldi r19,0 1701 .L94: 1702 019a 2417 cp r18,r20 1703 019c 3507 cpc r19,r21 1704 019e 01F0 breq .+2 1705 01a0 00C0 rjmp .L96 1706 01a2 F701 movw r30,r14 1707 01a4 9191 ld r25,Z+ 1708 01a6 D801 movw r26,r16 1709 01a8 1596 adiw r26,5 1710 01aa 4D91 ld r20,X+ GAS LISTING /tmp/ccjPZxVo.s page 31 1711 01ac 5C91 ld r21,X 1712 01ae 1697 sbiw r26,5+1 1713 01b0 292F mov r18,r25 1714 .L97: 1715 01b2 BF01 movw r22,r30 1716 01b4 6E19 sub r22,r14 1717 01b6 7F09 sbc r23,r15 1718 01b8 6417 cp r22,r20 1719 01ba 7507 cpc r23,r21 1720 01bc 00F4 brsh .+2 1721 01be 00C0 rjmp .L101 1722 .L104: 1723 01c0 40E6 ldi r20,lo8(96) 1724 01c2 50E0 ldi r21,0 1725 01c4 6FEF ldi r22,lo8(-1) 1726 01c6 70E0 ldi r23,0 1727 01c8 80E0 ldi r24,lo8(min_used) 1728 01ca 90E0 ldi r25,hi8(min_used) 1729 01cc 0E94 0000 call memset 1730 01d0 2701 movw r4,r14 1731 .L102: 1732 01d2 5201 movw r10,r4 1733 01d4 AE18 sub r10,r14 1734 01d6 BF08 sbc r11,r15 1735 01d8 F801 movw r30,r16 1736 01da 8581 ldd r24,Z+5 1737 01dc 9681 ldd r25,Z+6 1738 01de A816 cp r10,r24 1739 01e0 B906 cpc r11,r25 1740 01e2 00F4 brsh .+2 1741 01e4 00C0 rjmp .L111 1742 01e6 C701 movw r24,r14 1743 01e8 0E94 0000 call free 1744 01ec C114 cp r12,__zero_reg__ 1745 01ee D104 cpc r13,__zero_reg__ 1746 01f0 01F4 brne .+2 1747 01f2 00C0 rjmp .L112 1748 .L90: 1749 01f4 E12C mov r14,__zero_reg__ 1750 01f6 F12C mov r15,__zero_reg__ 1751 01f8 00C0 rjmp .L92 1752 .L91: 1753 01fa F801 movw r30,r16 1754 01fc 4581 ldd r20,Z+5 1755 01fe 5681 ldd r21,Z+6 1756 0200 B501 movw r22,r10 1757 0202 6E19 sub r22,r14 1758 0204 7F09 sbc r23,r15 1759 0206 6417 cp r22,r20 1760 0208 7507 cpc r23,r21 1761 020a 00F4 brsh .L126 1762 020c AE01 movw r20,r28 1763 020e 4F5F subi r20,-1 1764 0210 5F4F sbci r21,-1 1765 0212 F801 movw r30,r16 1766 0214 8081 ld r24,Z 1767 0216 9181 ldd r25,Z+1 GAS LISTING /tmp/ccjPZxVo.s page 32 1768 0218 0E94 0000 call FlashReadBlockFoot 1769 021c 8981 ldd r24,Y+1 1770 021e D501 movw r26,r10 1771 0220 8D93 st X+,r24 1772 0222 5D01 movw r10,r26 1773 0224 00C0 rjmp .L91 1774 .L96: 1775 0226 D801 movw r26,r16 1776 0228 1796 adiw r26,7 1777 022a ED91 ld r30,X+ 1778 022c FC91 ld r31,X 1779 022e 1897 sbiw r26,7+1 1780 0230 C901 movw r24,r18 1781 0232 880F lsl r24 1782 0234 991F rol r25 1783 0236 E80F add r30,r24 1784 0238 F91F adc r31,r25 1785 023a 0190 ld __tmp_reg__,Z+ 1786 023c F081 ld r31,Z 1787 023e E02D mov r30,__tmp_reg__ 1788 0240 E417 cp r30,r20 1789 0242 F507 cpc r31,r21 1790 0244 00F4 brsh .L95 1791 0246 EE0D add r30,r14 1792 0248 FF1D adc r31,r15 1793 024a 8081 ld r24,Z 1794 024c 815E subi r24,lo8(-(31)) 1795 024e 8083 st Z,r24 1796 .L95: 1797 0250 2F5F subi r18,-1 1798 0252 3F4F sbci r19,-1 1799 0254 00C0 rjmp .L94 1800 .L101: 1801 0256 8191 ld r24,Z+ 1802 0258 8917 cp r24,r25 1803 025a 00F4 brsh .L98 1804 025c 622F mov r22,r18 1805 025e 70E0 ldi r23,0 1806 0260 681B sub r22,r24 1807 0262 7109 sbc r23,__zero_reg__ 1808 0264 6038 cpi r22,-128 1809 0266 7105 cpc r23,__zero_reg__ 1810 0268 04F4 brge .L118 1811 026a 982F mov r25,r24 1812 026c 00C0 rjmp .L97 1813 .L98: 1814 026e 2817 cp r18,r24 1815 0270 00F0 brlo .+2 1816 0272 00C0 rjmp .L97 1817 0274 282F mov r18,r24 1818 0276 30E0 ldi r19,0 1819 0278 291B sub r18,r25 1820 027a 3109 sbc r19,__zero_reg__ 1821 027c 2038 cpi r18,-128 1822 027e 3105 cpc r19,__zero_reg__ 1823 0280 04F4 brge .L118 1824 0282 282F mov r18,r24 GAS LISTING /tmp/ccjPZxVo.s page 33 1825 0284 00C0 rjmp .L97 1826 .L118: 1827 0286 F701 movw r30,r14 1828 .L124: 1829 0288 CF01 movw r24,r30 1830 028a 8E19 sub r24,r14 1831 028c 9F09 sbc r25,r15 1832 028e 8417 cp r24,r20 1833 0290 9507 cpc r25,r21 1834 0292 00F0 brlo .+2 1835 0294 00C0 rjmp .L104 1836 0296 8081 ld r24,Z 1837 0298 8058 subi r24,lo8(-(-128)) 1838 029a 8193 st Z+,r24 1839 029c 00C0 rjmp .L124 1840 .L111: 1841 029e 2091 0000 lds r18,min_used+94 1842 02a2 3091 0000 lds r19,min_used+94+1 1843 02a6 8217 cp r24,r18 1844 02a8 9307 cpc r25,r19 1845 02aa 00F0 brlo .L105 1846 02ac 9091 0000 lds r25,min_used+93 1847 02b0 F201 movw r30,r4 1848 02b2 8081 ld r24,Z 1849 02b4 8917 cp r24,r25 1850 02b6 00F4 brsh .L106 1851 .L105: 1852 02b8 A0E0 ldi r26,lo8(min_used+96) 1853 02ba B0E0 ldi r27,hi8(min_used+96) 1854 02bc 8FE1 ldi r24,lo8(31) 1855 02be 90E0 ldi r25,0 1856 .L107: 1857 02c0 9C01 movw r18,r24 1858 02c2 2150 subi r18,1 1859 02c4 3109 sbc r19,__zero_reg__ 1860 02c6 00F0 brcs .L109 1861 02c8 F201 movw r30,r4 1862 02ca 6081 ld r22,Z 1863 02cc AD01 movw r20,r26 1864 02ce 4650 subi r20,6 1865 02d0 5109 sbc r21,__zero_reg__ 1866 02d2 FA01 movw r30,r20 1867 02d4 4081 ld r20,Z 1868 02d6 6417 cp r22,r20 1869 02d8 00F0 brlo .L108 1870 02da AD01 movw r20,r26 1871 02dc 4550 subi r20,5 1872 02de 5109 sbc r21,__zero_reg__ 1873 02e0 FA01 movw r30,r20 1874 02e2 6081 ld r22,Z 1875 02e4 7181 ldd r23,Z+1 1876 02e6 F801 movw r30,r16 1877 02e8 4581 ldd r20,Z+5 1878 02ea 5681 ldd r21,Z+6 1879 02ec 6417 cp r22,r20 1880 02ee 7507 cpc r23,r21 1881 02f0 00F0 brlo .L109 GAS LISTING /tmp/ccjPZxVo.s page 34 1882 .L108: 1883 02f2 1397 sbiw r26,3 1884 02f4 CD01 movw r24,r26 1885 02f6 0397 sbiw r24,3 1886 02f8 FC01 movw r30,r24 1887 02fa 6080 ld r6,Z 1888 02fc 7180 ldd r7,Z+1 1889 02fe 8280 ldd r8,Z+2 1890 0300 6D92 st X+,r6 1891 0302 7D92 st X+,r7 1892 0304 8C92 st X,r8 1893 0306 1297 sbiw r26,2 1894 0308 C901 movw r24,r18 1895 030a 00C0 rjmp .L107 1896 .L109: 1897 030c D201 movw r26,r4 1898 030e 2C91 ld r18,X 1899 0310 DC01 movw r26,r24 1900 0312 AA0F lsl r26 1901 0314 BB1F rol r27 1902 0316 8A0F add r24,r26 1903 0318 9B1F adc r25,r27 1904 031a DC01 movw r26,r24 1905 031c A050 subi r26,lo8(-(min_used)) 1906 031e B040 sbci r27,hi8(-(min_used)) 1907 0320 2C93 st X,r18 1908 0322 1296 adiw r26,1+1 1909 0324 BC92 st X,r11 1910 0326 AE92 st -X,r10 1911 0328 1197 sbiw r26,1 1912 .L106: 1913 032a BFEF ldi r27,-1 1914 032c 4B1A sub r4,r27 1915 032e 5B0A sbc r5,r27 1916 0330 00C0 rjmp .L102 1917 .L114: 1918 0332 AE01 movw r20,r28 1919 0334 4F5F subi r20,-1 1920 0336 5F4F sbci r21,-1 1921 0338 B701 movw r22,r14 1922 033a D801 movw r26,r16 1923 033c 8D91 ld r24,X+ 1924 033e 9C91 ld r25,X 1925 0340 0E94 0000 call FlashReadBlockHead 1926 0344 2981 ldd r18,Y+1 1927 0346 3A81 ldd r19,Y+2 1928 0348 F801 movw r30,r16 1929 034a 8581 ldd r24,Z+5 1930 034c 9681 ldd r25,Z+6 1931 034e 2817 cp r18,r24 1932 0350 3907 cpc r19,r25 1933 0352 00F4 brsh .L87 1934 0354 FFEF ldi r31,-1 1935 0356 EF1A sub r14,r31 1936 0358 FF0A sbc r15,r31 1937 .L92: 1938 035a D801 movw r26,r16 GAS LISTING /tmp/ccjPZxVo.s page 35 1939 035c 1596 adiw r26,5 1940 035e 8D91 ld r24,X+ 1941 0360 9C91 ld r25,X 1942 0362 1697 sbiw r26,5+1 1943 0364 E816 cp r14,r24 1944 0366 F906 cpc r15,r25 1945 0368 00F0 brlo .L114 1946 036a 00C0 rjmp .L87 1947 .L116: 1948 036c 8FEF ldi r24,lo8(-1) 1949 036e 9FEF ldi r25,lo8(-1) 1950 0370 00C0 rjmp .L125 1951 .L87: 1952 0372 C701 movw r24,r14 1953 .L125: 1954 /* epilogue start */ 1955 0374 2996 adiw r28,9 1956 0376 0FB6 in __tmp_reg__,__SREG__ 1957 0378 F894 cli 1958 037a DEBF out __SP_H__,r29 1959 037c 0FBE out __SREG__,__tmp_reg__ 1960 037e CDBF out __SP_L__,r28 1961 0380 DF91 pop r29 1962 0382 CF91 pop r28 1963 0384 1F91 pop r17 1964 0386 0F91 pop r16 1965 0388 FF90 pop r15 1966 038a EF90 pop r14 1967 038c DF90 pop r13 1968 038e CF90 pop r12 1969 0390 BF90 pop r11 1970 0392 AF90 pop r10 1971 0394 9F90 pop r9 1972 0396 8F90 pop r8 1973 0398 7F90 pop r7 1974 039a 6F90 pop r6 1975 039c 5F90 pop r5 1976 039e 4F90 pop r4 1977 03a0 0895 ret 1978 .size PhysBlkAllocate, .-PhysBlkAllocate 1979 .section .text.EntrySeek.part.4,"ax",@progbits 1980 .type EntrySeek.part.4, @function 1981 EntrySeek.part.4: 1982 0000 8F92 push r8 1983 0002 9F92 push r9 1984 0004 AF92 push r10 1985 0006 BF92 push r11 1986 0008 CF92 push r12 1987 000a DF92 push r13 1988 000c EF92 push r14 1989 000e FF92 push r15 1990 0010 0F93 push r16 1991 0012 1F93 push r17 1992 0014 CF93 push r28 1993 0016 DF93 push r29 1994 0018 CDB7 in r28,__SP_L__ 1995 001a DEB7 in r29,__SP_H__ GAS LISTING /tmp/ccjPZxVo.s page 36 1996 001c 2897 sbiw r28,8 1997 001e 0FB6 in __tmp_reg__,__SREG__ 1998 0020 F894 cli 1999 0022 DEBF out __SP_H__,r29 2000 0024 0FBE out __SREG__,__tmp_reg__ 2001 0026 CDBF out __SP_L__,r28 2002 /* prologue: function */ 2003 /* frame size = 8 */ 2004 /* stack size = 20 */ 2005 .L__stack_usage = 20 2006 0028 7C01 movw r14,r24 2007 002a 5B01 movw r10,r22 2008 002c 4A01 movw r8,r20 2009 002e 6C01 movw r12,r24 2010 0030 82E0 ldi r24,2 2011 0032 C80E add r12,r24 2012 0034 D11C adc r13,__zero_reg__ 2013 0036 40E0 ldi r20,0 2014 0038 50E0 ldi r21,0 2015 003a BA01 movw r22,r20 2016 003c C601 movw r24,r12 2017 003e 0E94 0000 call NutEventWait 2018 0042 00E8 ldi r16,lo8(-128) 2019 0044 10E0 ldi r17,0 2020 .L128: 2021 0046 F701 movw r30,r14 2022 0048 2581 ldd r18,Z+5 2023 004a 3681 ldd r19,Z+6 2024 004c 0217 cp r16,r18 2025 004e 1307 cpc r17,r19 2026 0050 00F4 brsh .L132 2027 0052 D701 movw r26,r14 2028 0054 1796 adiw r26,7 2029 0056 ED91 ld r30,X+ 2030 0058 FC91 ld r31,X 2031 005a 1897 sbiw r26,7+1 2032 005c C801 movw r24,r16 2033 005e 880F lsl r24 2034 0060 991F rol r25 2035 0062 E80F add r30,r24 2036 0064 F91F adc r31,r25 2037 0066 6081 ld r22,Z 2038 0068 7181 ldd r23,Z+1 2039 006a 6217 cp r22,r18 2040 006c 7307 cpc r23,r19 2041 006e 00F4 brsh .L129 2042 0070 AE01 movw r20,r28 2043 0072 4F5F subi r20,-1 2044 0074 5F4F sbci r21,-1 2045 0076 8D91 ld r24,X+ 2046 0078 9C91 ld r25,X 2047 007a 0E94 0000 call FlashReadBlockHead 2048 007e 8D81 ldd r24,Y+5 2049 0080 9E81 ldd r25,Y+6 2050 0082 8A15 cp r24,r10 2051 0084 9B05 cpc r25,r11 2052 0086 01F4 brne .L129 GAS LISTING /tmp/ccjPZxVo.s page 37 2053 0088 8F81 ldd r24,Y+7 2054 008a 9885 ldd r25,Y+8 2055 008c 8815 cp r24,r8 2056 008e 9905 cpc r25,r9 2057 0090 01F0 breq .L132 2058 .L129: 2059 0092 0F5F subi r16,-1 2060 0094 1F4F sbci r17,-1 2061 0096 00C0 rjmp .L128 2062 .L132: 2063 0098 C601 movw r24,r12 2064 009a 0E94 0000 call NutEventPost 2065 009e C801 movw r24,r16 2066 /* epilogue start */ 2067 00a0 2896 adiw r28,8 2068 00a2 0FB6 in __tmp_reg__,__SREG__ 2069 00a4 F894 cli 2070 00a6 DEBF out __SP_H__,r29 2071 00a8 0FBE out __SREG__,__tmp_reg__ 2072 00aa CDBF out __SP_L__,r28 2073 00ac DF91 pop r29 2074 00ae CF91 pop r28 2075 00b0 1F91 pop r17 2076 00b2 0F91 pop r16 2077 00b4 FF90 pop r15 2078 00b6 EF90 pop r14 2079 00b8 DF90 pop r13 2080 00ba CF90 pop r12 2081 00bc BF90 pop r11 2082 00be AF90 pop r10 2083 00c0 9F90 pop r9 2084 00c2 8F90 pop r8 2085 00c4 0895 ret 2086 .size EntrySeek.part.4, .-EntrySeek.part.4 2087 .section .text.UFlashFileRead,"ax",@progbits 2088 .type UFlashFileRead, @function 2089 UFlashFileRead: 2090 0000 2F92 push r2 2091 0002 3F92 push r3 2092 0004 4F92 push r4 2093 0006 5F92 push r5 2094 0008 6F92 push r6 2095 000a 7F92 push r7 2096 000c 8F92 push r8 2097 000e 9F92 push r9 2098 0010 AF92 push r10 2099 0012 BF92 push r11 2100 0014 CF92 push r12 2101 0016 DF92 push r13 2102 0018 EF92 push r14 2103 001a FF92 push r15 2104 001c 0F93 push r16 2105 001e 1F93 push r17 2106 0020 CF93 push r28 2107 0022 DF93 push r29 2108 0024 00D0 rcall . 2109 0026 1F92 push __zero_reg__ GAS LISTING /tmp/ccjPZxVo.s page 38 2110 0028 CDB7 in r28,__SP_L__ 2111 002a DEB7 in r29,__SP_H__ 2112 /* prologue: function */ 2113 /* frame size = 4 */ 2114 /* stack size = 22 */ 2115 .L__stack_usage = 22 2116 002c 1C01 movw r2,r24 2117 002e 3B01 movw r6,r22 2118 0030 672B or r22,r23 2119 0032 01F4 brne .+2 2120 0034 00C0 rjmp .L149 2121 0036 4115 cp r20,__zero_reg__ 2122 0038 5105 cpc r21,__zero_reg__ 2123 003a 01F4 brne .+2 2124 003c 00C0 rjmp .L149 2125 003e DC01 movw r26,r24 2126 0040 1296 adiw r26,2 2127 0042 0D90 ld __tmp_reg__,X+ 2128 0044 BC91 ld r27,X 2129 0046 A02D mov r26,__tmp_reg__ 2130 0048 BC83 std Y+4,r27 2131 004a AB83 std Y+3,r26 2132 004c DC01 movw r26,r24 2133 004e ED91 ld r30,X+ 2134 0050 FC91 ld r31,X 2135 0052 A188 ldd r10,Z+17 2136 0054 B288 ldd r11,Z+18 2137 0056 EB81 ldd r30,Y+3 2138 0058 FC81 ldd r31,Y+4 2139 005a 8489 ldd r24,Z+20 2140 005c 9589 ldd r25,Z+21 2141 005e 2281 ldd r18,Z+2 2142 0060 3381 ldd r19,Z+3 2143 0062 821B sub r24,r18 2144 0064 930B sbc r25,r19 2145 0066 2A01 movw r4,r20 2146 0068 8417 cp r24,r20 2147 006a 9507 cpc r25,r21 2148 006c 04F4 brge .L136 2149 006e 2C01 movw r4,r24 2150 .L136: 2151 0070 C12C mov r12,__zero_reg__ 2152 0072 D12C mov r13,__zero_reg__ 2153 0074 C501 movw r24,r10 2154 0076 0296 adiw r24,2 2155 0078 9A83 std Y+2,r25 2156 007a 8983 std Y+1,r24 2157 .L137: 2158 007c C414 cp r12,r4 2159 007e D504 cpc r13,r5 2160 0080 04F0 brlt .+2 2161 0082 00C0 rjmp .L153 2162 0084 AB81 ldd r26,Y+3 2163 0086 BC81 ldd r27,Y+4 2164 0088 1696 adiw r26,6 2165 008a 2D91 ld r18,X+ 2166 008c 3C91 ld r19,X GAS LISTING /tmp/ccjPZxVo.s page 39 2167 008e 1797 sbiw r26,6+1 2168 0090 F501 movw r30,r10 2169 0092 8581 ldd r24,Z+5 2170 0094 9681 ldd r25,Z+6 2171 0096 2817 cp r18,r24 2172 0098 3907 cpc r19,r25 2173 009a 00F0 brlo .L138 2174 009c 1896 adiw r26,8 2175 009e 4D91 ld r20,X+ 2176 00a0 5C91 ld r21,X 2177 00a2 1997 sbiw r26,8+1 2178 00a4 8D91 ld r24,X+ 2179 00a6 9C91 ld r25,X 2180 00a8 4115 cp r20,__zero_reg__ 2181 00aa 5105 cpc r21,__zero_reg__ 2182 00ac 01F0 breq .L139 2183 00ae BC01 movw r22,r24 2184 00b0 C501 movw r24,r10 2185 00b2 0E94 0000 call EntrySeek.part.4 2186 .L139: 2187 00b6 AB81 ldd r26,Y+3 2188 00b8 BC81 ldd r27,Y+4 2189 00ba 1796 adiw r26,6+1 2190 00bc 9C93 st X,r25 2191 00be 8E93 st -X,r24 2192 00c0 1697 sbiw r26,6 2193 00c2 F501 movw r30,r10 2194 00c4 2581 ldd r18,Z+5 2195 00c6 3681 ldd r19,Z+6 2196 00c8 8217 cp r24,r18 2197 00ca 9307 cpc r25,r19 2198 00cc 00F0 brlo .L138 2199 .L144: 2200 00ce 85E0 ldi r24,lo8(5) 2201 00d0 90E0 ldi r25,0 2202 00d2 9093 0000 sts errno+1,r25 2203 00d6 8093 0000 sts errno,r24 2204 00da 8FEF ldi r24,lo8(-1) 2205 00dc 9FEF ldi r25,lo8(-1) 2206 00de 00C0 rjmp .L135 2207 .L138: 2208 00e0 AB81 ldd r26,Y+3 2209 00e2 BC81 ldd r27,Y+4 2210 00e4 1A96 adiw r26,10 2211 00e6 8D90 ld r8,X+ 2212 00e8 9C90 ld r9,X 2213 00ea 1B97 sbiw r26,10+1 2214 .L140: 2215 00ec 24E0 ldi r18,4 2216 00ee 8216 cp r8,r18 2217 00f0 9104 cpc r9,__zero_reg__ 2218 00f2 04F4 brge .L137 2219 00f4 40E0 ldi r20,0 2220 00f6 50E0 ldi r21,0 2221 00f8 BA01 movw r22,r20 2222 00fa 8981 ldd r24,Y+1 2223 00fc 9A81 ldd r25,Y+2 GAS LISTING /tmp/ccjPZxVo.s page 40 2224 00fe 0E94 0000 call NutEventWait 2225 0102 7201 movw r14,r4 2226 0104 EC18 sub r14,r12 2227 0106 FD08 sbc r15,r13 2228 0108 EB81 ldd r30,Y+3 2229 010a FC81 ldd r31,Y+4 2230 010c 4485 ldd r20,Z+12 2231 010e 5585 ldd r21,Z+13 2232 0110 0680 ldd __tmp_reg__,Z+6 2233 0112 F781 ldd r31,Z+7 2234 0114 E02D mov r30,__tmp_reg__ 2235 0116 EE0F lsl r30 2236 0118 FF1F rol r31 2237 011a D501 movw r26,r10 2238 011c 1796 adiw r26,7 2239 011e 8D91 ld r24,X+ 2240 0120 9C91 ld r25,X 2241 0122 1897 sbiw r26,7+1 2242 0124 E80F add r30,r24 2243 0126 F91F adc r31,r25 2244 0128 6081 ld r22,Z 2245 012a 7181 ldd r23,Z+1 2246 012c 0D90 ld __tmp_reg__,X+ 2247 012e BC91 ld r27,X 2248 0130 A02D mov r26,__tmp_reg__ 2249 0132 1496 adiw r26,4 2250 0134 8D91 ld r24,X+ 2251 0136 9C91 ld r25,X 2252 0138 1597 sbiw r26,4+1 2253 013a 841B sub r24,r20 2254 013c 950B sbc r25,r21 2255 013e E3E0 ldi r30,3 2256 0140 8E16 cp r8,r30 2257 0142 9104 cpc r9,__zero_reg__ 2258 0144 01F4 brne .L142 2259 0146 0197 sbiw r24,1 2260 .L142: 2261 0148 8E15 cp r24,r14 2262 014a 9F05 cpc r25,r15 2263 014c 04F4 brge .L143 2264 014e 7C01 movw r14,r24 2265 .L143: 2266 0150 660F lsl r22 2267 0152 771F rol r23 2268 0154 660F lsl r22 2269 0156 771F rol r23 2270 0158 1896 adiw r26,8 2271 015a 8D91 ld r24,X+ 2272 015c 9C91 ld r25,X 2273 015e 1997 sbiw r26,8+1 2274 0160 680F add r22,r24 2275 0162 791F adc r23,r25 2276 0164 680D add r22,r8 2277 0166 791D adc r23,r9 2278 0168 5296 adiw r26,18 2279 016a ED91 ld r30,X+ 2280 016c FC91 ld r31,X GAS LISTING /tmp/ccjPZxVo.s page 41 2281 016e 5397 sbiw r26,18+1 2282 0170 8701 movw r16,r14 2283 0172 9301 movw r18,r6 2284 0174 CD01 movw r24,r26 2285 0176 1995 eicall 2286 0178 8981 ldd r24,Y+1 2287 017a 9A81 ldd r25,Y+2 2288 017c 0E94 0000 call NutEventPost 2289 0180 F7FC sbrc r15,7 2290 0182 00C0 rjmp .L144 2291 0184 CE0C add r12,r14 2292 0186 DF1C adc r13,r15 2293 0188 6E0C add r6,r14 2294 018a 7F1C adc r7,r15 2295 018c B701 movw r22,r14 2296 018e C101 movw r24,r2 2297 0190 0E94 0000 call EntryPosInc 2298 0194 FFEF ldi r31,-1 2299 0196 8F1A sub r8,r31 2300 0198 9F0A sbc r9,r31 2301 019a C414 cp r12,r4 2302 019c D504 cpc r13,r5 2303 019e 04F4 brge .+2 2304 01a0 00C0 rjmp .L140 2305 01a2 00C0 rjmp .L137 2306 .L153: 2307 01a4 C601 movw r24,r12 2308 01a6 00C0 rjmp .L135 2309 .L149: 2310 01a8 80E0 ldi r24,0 2311 01aa 90E0 ldi r25,0 2312 .L135: 2313 /* epilogue start */ 2314 01ac 0F90 pop __tmp_reg__ 2315 01ae 0F90 pop __tmp_reg__ 2316 01b0 0F90 pop __tmp_reg__ 2317 01b2 0F90 pop __tmp_reg__ 2318 01b4 DF91 pop r29 2319 01b6 CF91 pop r28 2320 01b8 1F91 pop r17 2321 01ba 0F91 pop r16 2322 01bc FF90 pop r15 2323 01be EF90 pop r14 2324 01c0 DF90 pop r13 2325 01c2 CF90 pop r12 2326 01c4 BF90 pop r11 2327 01c6 AF90 pop r10 2328 01c8 9F90 pop r9 2329 01ca 8F90 pop r8 2330 01cc 7F90 pop r7 2331 01ce 6F90 pop r6 2332 01d0 5F90 pop r5 2333 01d2 4F90 pop r4 2334 01d4 3F90 pop r3 2335 01d6 2F90 pop r2 2336 01d8 0895 ret 2337 .size UFlashFileRead, .-UFlashFileRead GAS LISTING /tmp/ccjPZxVo.s page 42 2338 .section .text.UFlashFileOpen,"ax",@progbits 2339 .type UFlashFileOpen, @function 2340 UFlashFileOpen: 2341 0000 2F92 push r2 2342 0002 3F92 push r3 2343 0004 4F92 push r4 2344 0006 5F92 push r5 2345 0008 6F92 push r6 2346 000a 7F92 push r7 2347 000c 8F92 push r8 2348 000e 9F92 push r9 2349 0010 AF92 push r10 2350 0012 BF92 push r11 2351 0014 CF92 push r12 2352 0016 DF92 push r13 2353 0018 EF92 push r14 2354 001a FF92 push r15 2355 001c 0F93 push r16 2356 001e 1F93 push r17 2357 0020 CF93 push r28 2358 0022 DF93 push r29 2359 0024 CDB7 in r28,__SP_L__ 2360 0026 DEB7 in r29,__SP_H__ 2361 0028 6597 sbiw r28,21 2362 002a 0FB6 in __tmp_reg__,__SREG__ 2363 002c F894 cli 2364 002e DEBF out __SP_H__,r29 2365 0030 0FBE out __SREG__,__tmp_reg__ 2366 0032 CDBF out __SP_L__,r28 2367 /* prologue: function */ 2368 /* frame size = 21 */ 2369 /* stack size = 39 */ 2370 .L__stack_usage = 39 2371 0034 1C01 movw r2,r24 2372 0036 4A01 movw r8,r20 2373 0038 DC01 movw r26,r24 2374 003a 5196 adiw r26,17 2375 003c 0D91 ld r16,X+ 2376 003e 1C91 ld r17,X 2377 0040 5297 sbiw r26,17+1 2378 0042 CB01 movw r24,r22 2379 .L155: 2380 0044 2C01 movw r4,r24 2381 0046 0196 adiw r24,1 2382 0048 F201 movw r30,r4 2383 004a 2081 ld r18,Z 2384 004c 2F32 cpi r18,lo8(47) 2385 004e 01F0 breq .L155 2386 0050 6AE1 ldi r22,lo8(26) 2387 0052 70E0 ldi r23,0 2388 0054 81E0 ldi r24,lo8(1) 2389 0056 90E0 ldi r25,0 2390 0058 0E94 0000 call calloc 2391 005c 6C01 movw r12,r24 2392 005e 892B or r24,r25 2393 0060 01F4 brne .+2 2394 0062 00C0 rjmp .L170 GAS LISTING /tmp/ccjPZxVo.s page 43 2395 0064 C401 movw r24,r8 2396 0066 092C mov __tmp_reg__,r9 2397 0068 000C lsl r0 2398 006a AA0B sbc r26,r26 2399 006c BB0B sbc r27,r27 2400 006e F601 movw r30,r12 2401 0070 8687 std Z+14,r24 2402 0072 9787 std Z+15,r25 2403 0074 A08B std Z+16,r26 2404 0076 B18B std Z+17,r27 2405 0078 20E8 ldi r18,lo8(-128) 2406 007a 30E0 ldi r19,0 2407 007c AE01 movw r20,r28 2408 007e 435F subi r20,-13 2409 0080 5F4F sbci r21,-1 2410 0082 B201 movw r22,r4 2411 0084 C801 movw r24,r16 2412 0086 0E94 0000 call EntrySearchNext 2413 008a 7C01 movw r14,r24 2414 008c 3801 movw r6,r16 2415 008e F2E0 ldi r31,2 2416 0090 6F0E add r6,r31 2417 0092 711C adc r7,__zero_reg__ 2418 0094 40E0 ldi r20,0 2419 0096 50E0 ldi r21,0 2420 0098 BA01 movw r22,r20 2421 009a C301 movw r24,r6 2422 009c 0E94 0000 call NutEventWait 2423 00a0 20E8 ldi r18,-128 2424 00a2 E216 cp r14,r18 2425 00a4 F104 cpc r15,__zero_reg__ 2426 00a6 00F0 brlo .+2 2427 00a8 00C0 rjmp .L157 2428 00aa C401 movw r24,r8 2429 00ac 8827 clr r24 2430 00ae 9570 andi r25,5 2431 00b0 8115 cp r24,__zero_reg__ 2432 00b2 9540 sbci r25,5 2433 00b4 01F4 brne .L158 2434 00b6 81E1 ldi r24,lo8(17) 2435 00b8 90E0 ldi r25,0 2436 00ba 00C0 rjmp .L178 2437 .L158: 2438 00bc 91FE sbrs r9,1 2439 00be 00C0 rjmp .L160 2440 00c0 1A86 std Y+10,__zero_reg__ 2441 00c2 1986 std Y+9,__zero_reg__ 2442 00c4 B701 movw r22,r14 2443 00c6 C801 movw r24,r16 2444 00c8 0E94 0000 call EntryTruncateSeq 2445 00cc 60E0 ldi r22,0 2446 00ce 70E0 ldi r23,0 2447 00d0 C801 movw r24,r16 2448 00d2 0E94 0000 call PhysBlkAllocate 2449 00d6 5C01 movw r10,r24 2450 00d8 D801 movw r26,r16 2451 00da 1596 adiw r26,5 GAS LISTING /tmp/ccjPZxVo.s page 44 2452 00dc 8D91 ld r24,X+ 2453 00de 9C91 ld r25,X 2454 00e0 1697 sbiw r26,5+1 2455 00e2 A816 cp r10,r24 2456 00e4 B906 cpc r11,r25 2457 00e6 00F0 brlo .+2 2458 00e8 00C0 rjmp .L171 2459 00ea 1796 adiw r26,7 2460 00ec ED91 ld r30,X+ 2461 00ee FC91 ld r31,X 2462 00f0 1897 sbiw r26,7+1 2463 00f2 C701 movw r24,r14 2464 00f4 880F lsl r24 2465 00f6 991F rol r25 2466 00f8 E80F add r30,r24 2467 00fa F91F adc r31,r25 2468 00fc 4080 ld r4,Z 2469 00fe 5180 ldd r5,Z+1 2470 0100 B182 std Z+1,r11 2471 0102 A082 st Z,r10 2472 0104 AE01 movw r20,r28 2473 0106 415F subi r20,-15 2474 0108 5F4F sbci r21,-1 2475 010a B501 movw r22,r10 2476 010c 8D91 ld r24,X+ 2477 010e 9C91 ld r25,X 2478 0110 0E94 0000 call FlashReadBlockFoot 2479 0114 B501 movw r22,r10 2480 0116 F801 movw r30,r16 2481 0118 8081 ld r24,Z 2482 011a 9181 ldd r25,Z+1 2483 011c 0E94 0000 call FlashEraseBlockData 2484 0120 AE01 movw r20,r28 2485 0122 4F5F subi r20,-1 2486 0124 5F4F sbci r21,-1 2487 0126 B201 movw r22,r4 2488 0128 D801 movw r26,r16 2489 012a 8D91 ld r24,X+ 2490 012c 9C91 ld r25,X 2491 012e 0E94 0000 call FlashReadBlockHead 2492 0132 9E01 movw r18,r28 2493 0134 275F subi r18,-9 2494 0136 3F4F sbci r19,-1 2495 0138 AE01 movw r20,r28 2496 013a 455F subi r20,-11 2497 013c 5F4F sbci r21,-1 2498 013e B201 movw r22,r4 2499 0140 F801 movw r30,r16 2500 0142 8081 ld r24,Z 2501 0144 9181 ldd r25,Z+1 2502 0146 0E94 0000 call FlashReadEntry 2503 014a AE01 movw r20,r28 2504 014c 4F5F subi r20,-1 2505 014e 5F4F sbci r21,-1 2506 0150 B501 movw r22,r10 2507 0152 D801 movw r26,r16 2508 0154 8D91 ld r24,X+ GAS LISTING /tmp/ccjPZxVo.s page 45 2509 0156 9C91 ld r25,X 2510 0158 0E94 0000 call FlashWriteBlockHead 2511 015c 2985 ldd r18,Y+9 2512 015e 3A85 ldd r19,Y+10 2513 0160 AE01 movw r20,r28 2514 0162 455F subi r20,-11 2515 0164 5F4F sbci r21,-1 2516 0166 B501 movw r22,r10 2517 0168 F801 movw r30,r16 2518 016a 8081 ld r24,Z 2519 016c 9181 ldd r25,Z+1 2520 016e 0E94 0000 call FlashWriteEntry 2521 0172 8985 ldd r24,Y+9 2522 0174 9A85 ldd r25,Y+10 2523 0176 0E94 0000 call free 2524 017a 40E0 ldi r20,0 2525 017c 50E0 ldi r21,0 2526 017e B501 movw r22,r10 2527 0180 D801 movw r26,r16 2528 0182 8D91 ld r24,X+ 2529 0184 9C91 ld r25,X 2530 0186 0E94 0000 call FlashUnitCommit 2531 018a AE01 movw r20,r28 2532 018c 415F subi r20,-15 2533 018e 5F4F sbci r21,-1 2534 0190 B501 movw r22,r10 2535 0192 F801 movw r30,r16 2536 0194 8081 ld r24,Z 2537 0196 9181 ldd r25,Z+1 2538 0198 0E94 0000 call FlashWriteBlockFoot 2539 019c 43E0 ldi r20,lo8(3) 2540 019e 50E0 ldi r21,0 2541 01a0 B501 movw r22,r10 2542 01a2 D801 movw r26,r16 2543 01a4 8D91 ld r24,X+ 2544 01a6 9C91 ld r25,X 2545 01a8 0E94 0000 call FlashUnitCommit 2546 01ac B201 movw r22,r4 2547 01ae F801 movw r30,r16 2548 01b0 8081 ld r24,Z 2549 01b2 9181 ldd r25,Z+1 2550 01b4 0E94 0000 call FlashEraseEntry 2551 01b8 80E0 ldi r24,0 2552 01ba 90E0 ldi r25,0 2553 01bc 00C0 rjmp .L161 2554 .L171: 2555 01be 8FEF ldi r24,lo8(-1) 2556 01c0 9FEF ldi r25,lo8(-1) 2557 .L161: 2558 01c2 892B or r24,r25 2559 01c4 01F4 brne .+2 2560 01c6 00C0 rjmp .L176 2561 01c8 00C0 rjmp .L159 2562 .L160: 2563 01ca B701 movw r22,r14 2564 01cc C801 movw r24,r16 2565 01ce 0E94 0000 call EntryScan.isra.1 GAS LISTING /tmp/ccjPZxVo.s page 46 2566 01d2 2E85 ldd r18,Y+14 2567 01d4 30E0 ldi r19,0 2568 01d6 2E5F subi r18,-2 2569 01d8 3F4F sbci r19,-1 2570 01da AB01 movw r20,r22 2571 01dc BC01 movw r22,r24 2572 01de 421B sub r20,r18 2573 01e0 530B sbc r21,r19 2574 01e2 6109 sbc r22,__zero_reg__ 2575 01e4 7109 sbc r23,__zero_reg__ 2576 01e6 00C0 rjmp .L162 2577 .L157: 2578 01e8 90FE sbrs r9,0 2579 01ea 00C0 rjmp .L164 2580 01ec D801 movw r26,r16 2581 01ee 1596 adiw r26,5 2582 01f0 2D91 ld r18,X+ 2583 01f2 3C91 ld r19,X 2584 01f4 1697 sbiw r26,5+1 2585 01f6 1796 adiw r26,7 2586 01f8 8D91 ld r24,X+ 2587 01fa 9C91 ld r25,X 2588 01fc 1897 sbiw r26,7+1 2589 01fe E12C mov r14,__zero_reg__ 2590 0200 F12C mov r15,__zero_reg__ 2591 .L166: 2592 0202 A701 movw r20,r14 2593 0204 440F lsl r20 2594 0206 551F rol r21 2595 0208 598B std Y+17,r21 2596 020a 488B std Y+16,r20 2597 020c 5C01 movw r10,r24 2598 020e 0296 adiw r24,2 2599 0210 D501 movw r26,r10 2600 0212 4D91 ld r20,X+ 2601 0214 5C91 ld r21,X 2602 0216 4217 cp r20,r18 2603 0218 5307 cpc r21,r19 2604 021a 00F4 brsh .+2 2605 021c 00C0 rjmp .L165 2606 021e 60E0 ldi r22,0 2607 0220 70E0 ldi r23,0 2608 0222 C801 movw r24,r16 2609 0224 0E94 0000 call PhysBlkAllocate 2610 0228 F501 movw r30,r10 2611 022a 9183 std Z+1,r25 2612 022c 8083 st Z,r24 2613 022e F201 movw r30,r4 2614 0: 2615 0230 0190 ld __tmp_reg__,Z+ 2616 0232 0020 tst __tmp_reg__ 2617 0234 01F4 brne 0b 2618 0236 3197 sbiw r30,1 2619 0238 E419 sub r30,r4 2620 023a F509 sbc r31,r5 2621 023c EE87 std Y+14,r30 2622 023e 1D86 std Y+13,__zero_reg__ GAS LISTING /tmp/ccjPZxVo.s page 47 2623 0240 D801 movw r26,r16 2624 0242 1796 adiw r26,7 2625 0244 ED91 ld r30,X+ 2626 0246 FC91 ld r31,X 2627 0248 1897 sbiw r26,7+1 2628 024a 4889 ldd r20,Y+16 2629 024c 5989 ldd r21,Y+17 2630 024e E40F add r30,r20 2631 0250 F51F adc r31,r21 2632 0252 A080 ld r10,Z 2633 0254 B180 ldd r11,Z+1 2634 0256 AE01 movw r20,r28 2635 0258 475F subi r20,-9 2636 025a 5F4F sbci r21,-1 2637 025c B501 movw r22,r10 2638 025e 8D91 ld r24,X+ 2639 0260 9C91 ld r25,X 2640 0262 0E94 0000 call FlashReadBlockFoot 2641 0266 B501 movw r22,r10 2642 0268 D801 movw r26,r16 2643 026a 8D91 ld r24,X+ 2644 026c 9C91 ld r25,X 2645 026e 0E94 0000 call FlashEraseBlockData 2646 0272 FA82 std Y+2,r15 2647 0274 E982 std Y+1,r14 2648 0276 8FEF ldi r24,lo8(-1) 2649 0278 9FEF ldi r25,lo8(-1) 2650 027a 9C83 std Y+4,r25 2651 027c 8B83 std Y+3,r24 2652 027e FE82 std Y+6,r15 2653 0280 ED82 std Y+5,r14 2654 0282 1886 std Y+8,__zero_reg__ 2655 0284 1F82 std Y+7,__zero_reg__ 2656 0286 AE01 movw r20,r28 2657 0288 4F5F subi r20,-1 2658 028a 5F4F sbci r21,-1 2659 028c B501 movw r22,r10 2660 028e F801 movw r30,r16 2661 0290 8081 ld r24,Z 2662 0292 9181 ldd r25,Z+1 2663 0294 0E94 0000 call FlashWriteBlockHead 2664 0298 9201 movw r18,r4 2665 029a AE01 movw r20,r28 2666 029c 435F subi r20,-13 2667 029e 5F4F sbci r21,-1 2668 02a0 B501 movw r22,r10 2669 02a2 D801 movw r26,r16 2670 02a4 8D91 ld r24,X+ 2671 02a6 9C91 ld r25,X 2672 02a8 0E94 0000 call FlashWriteEntry 2673 02ac 40E0 ldi r20,0 2674 02ae 50E0 ldi r21,0 2675 02b0 B501 movw r22,r10 2676 02b2 F801 movw r30,r16 2677 02b4 8081 ld r24,Z 2678 02b6 9181 ldd r25,Z+1 2679 02b8 0E94 0000 call FlashUnitCommit GAS LISTING /tmp/ccjPZxVo.s page 48 2680 02bc AE01 movw r20,r28 2681 02be 475F subi r20,-9 2682 02c0 5F4F sbci r21,-1 2683 02c2 B501 movw r22,r10 2684 02c4 D801 movw r26,r16 2685 02c6 8D91 ld r24,X+ 2686 02c8 9C91 ld r25,X 2687 02ca 0E94 0000 call FlashWriteBlockFoot 2688 02ce 43E0 ldi r20,lo8(3) 2689 02d0 50E0 ldi r21,0 2690 02d2 B501 movw r22,r10 2691 02d4 F801 movw r30,r16 2692 02d6 8081 ld r24,Z 2693 02d8 9181 ldd r25,Z+1 2694 02da 0E94 0000 call FlashUnitCommit 2695 .L176: 2696 02de 40E0 ldi r20,0 2697 02e0 50E0 ldi r21,0 2698 02e2 BA01 movw r22,r20 2699 02e4 00C0 rjmp .L162 2700 .L165: 2701 02e6 FFEF ldi r31,-1 2702 02e8 EF1A sub r14,r31 2703 02ea FF0A sbc r15,r31 2704 02ec 40E8 ldi r20,-128 2705 02ee E416 cp r14,r20 2706 02f0 F104 cpc r15,__zero_reg__ 2707 02f2 01F0 breq .+2 2708 02f4 00C0 rjmp .L166 2709 02f6 00C0 rjmp .L159 2710 .L164: 2711 02f8 82E0 ldi r24,lo8(2) 2712 02fa 90E0 ldi r25,0 2713 .L178: 2714 02fc 9093 0000 sts errno+1,r25 2715 0300 8093 0000 sts errno,r24 2716 0304 00C0 rjmp .L159 2717 .L162: 2718 0306 8D85 ldd r24,Y+13 2719 0308 D601 movw r26,r12 2720 030a 5296 adiw r26,18 2721 030c 8C93 st X,r24 2722 030e 5297 sbiw r26,18 2723 0310 8E85 ldd r24,Y+14 2724 0312 5396 adiw r26,19 2725 0314 8C93 st X,r24 2726 0316 5397 sbiw r26,19 2727 0318 90E0 ldi r25,0 2728 031a 0296 adiw r24,2 2729 031c 5996 adiw r26,24+1 2730 031e 9C93 st X,r25 2731 0320 8E93 st -X,r24 2732 0322 5897 sbiw r26,24 2733 0324 ED92 st X+,r14 2734 0326 FC92 st X,r15 2735 0328 F601 movw r30,r12 2736 032a 448B std Z+20,r20 GAS LISTING /tmp/ccjPZxVo.s page 49 2737 032c 558B std Z+21,r21 2738 032e 668B std Z+22,r22 2739 0330 778B std Z+23,r23 2740 0332 84E0 ldi r24,lo8(4) 2741 0334 90E0 ldi r25,0 2742 0336 4A8B std Y+18,r20 2743 0338 5B8B std Y+19,r21 2744 033a 6C8B std Y+20,r22 2745 033c 7D8B std Y+21,r23 2746 033e 0E94 0000 call malloc 2747 0342 8C01 movw r16,r24 2748 0344 4A89 ldd r20,Y+18 2749 0346 5B89 ldd r21,Y+19 2750 0348 6C89 ldd r22,Y+20 2751 034a 7D89 ldd r23,Y+21 2752 034c 0097 sbiw r24,0 2753 034e 01F4 brne .L167 2754 0350 C601 movw r24,r12 2755 0352 0E94 0000 call free 2756 0356 C301 movw r24,r6 2757 0358 0E94 0000 call NutEventPost 2758 035c 00C0 rjmp .L170 2759 .L167: 2760 035e DC01 movw r26,r24 2761 0360 1196 adiw r26,1 2762 0362 3C92 st X,r3 2763 0364 2E92 st -X,r2 2764 0366 1396 adiw r26,2+1 2765 0368 DC92 st X,r13 2766 036a CE92 st -X,r12 2767 036c 1297 sbiw r26,2 2768 036e 83FE sbrs r8,3 2769 0370 00C0 rjmp .L168 2770 0372 8FEF ldi r24,lo8(-1) 2771 0374 9FEF ldi r25,lo8(-1) 2772 0376 F601 movw r30,r12 2773 0378 9783 std Z+7,r25 2774 037a 8683 std Z+6,r24 2775 037c 00C0 rjmp .L177 2776 .L168: 2777 037e D601 movw r26,r12 2778 0380 1796 adiw r26,6+1 2779 0382 FC92 st X,r15 2780 0384 EE92 st -X,r14 2781 0386 1697 sbiw r26,6 2782 0388 40E0 ldi r20,0 2783 038a 50E0 ldi r21,0 2784 038c BA01 movw r22,r20 2785 .L177: 2786 038e C801 movw r24,r16 2787 0390 0E94 0000 call EntryPosSet 2788 .L169: 2789 0394 C301 movw r24,r6 2790 0396 0E94 0000 call NutEventPost 2791 039a C801 movw r24,r16 2792 039c 00C0 rjmp .L175 2793 .L170: GAS LISTING /tmp/ccjPZxVo.s page 50 2794 039e 8FEF ldi r24,lo8(-1) 2795 03a0 9FEF ldi r25,lo8(-1) 2796 03a2 00C0 rjmp .L175 2797 .L159: 2798 03a4 C601 movw r24,r12 2799 03a6 0E94 0000 call free 2800 03aa 0FEF ldi r16,lo8(-1) 2801 03ac 1FEF ldi r17,lo8(-1) 2802 03ae 00C0 rjmp .L169 2803 .L175: 2804 /* epilogue start */ 2805 03b0 6596 adiw r28,21 2806 03b2 0FB6 in __tmp_reg__,__SREG__ 2807 03b4 F894 cli 2808 03b6 DEBF out __SP_H__,r29 2809 03b8 0FBE out __SREG__,__tmp_reg__ 2810 03ba CDBF out __SP_L__,r28 2811 03bc DF91 pop r29 2812 03be CF91 pop r28 2813 03c0 1F91 pop r17 2814 03c2 0F91 pop r16 2815 03c4 FF90 pop r15 2816 03c6 EF90 pop r14 2817 03c8 DF90 pop r13 2818 03ca CF90 pop r12 2819 03cc BF90 pop r11 2820 03ce AF90 pop r10 2821 03d0 9F90 pop r9 2822 03d2 8F90 pop r8 2823 03d4 7F90 pop r7 2824 03d6 6F90 pop r6 2825 03d8 5F90 pop r5 2826 03da 4F90 pop r4 2827 03dc 3F90 pop r3 2828 03de 2F90 pop r2 2829 03e0 0895 ret 2830 .size UFlashFileOpen, .-UFlashFileOpen 2831 .section .text.UFlashFileWrite,"ax",@progbits 2832 .type UFlashFileWrite, @function 2833 UFlashFileWrite: 2834 0000 2F92 push r2 2835 0002 3F92 push r3 2836 0004 4F92 push r4 2837 0006 5F92 push r5 2838 0008 6F92 push r6 2839 000a 7F92 push r7 2840 000c 8F92 push r8 2841 000e 9F92 push r9 2842 0010 AF92 push r10 2843 0012 BF92 push r11 2844 0014 CF92 push r12 2845 0016 DF92 push r13 2846 0018 EF92 push r14 2847 001a FF92 push r15 2848 001c 0F93 push r16 2849 001e 1F93 push r17 2850 0020 CF93 push r28 GAS LISTING /tmp/ccjPZxVo.s page 51 2851 0022 DF93 push r29 2852 0024 CDB7 in r28,__SP_L__ 2853 0026 DEB7 in r29,__SP_H__ 2854 0028 6397 sbiw r28,19 2855 002a 0FB6 in __tmp_reg__,__SREG__ 2856 002c F894 cli 2857 002e DEBF out __SP_H__,r29 2858 0030 0FBE out __SREG__,__tmp_reg__ 2859 0032 CDBF out __SP_L__,r28 2860 /* prologue: function */ 2861 /* frame size = 19 */ 2862 /* stack size = 37 */ 2863 .L__stack_usage = 37 2864 0034 998B std Y+17,r25 2865 0036 888B std Y+16,r24 2866 0038 7B87 std Y+11,r23 2867 003a 6A87 std Y+10,r22 2868 003c 5D87 std Y+13,r21 2869 003e 4C87 std Y+12,r20 2870 0040 672B or r22,r23 2871 0042 01F4 brne .+2 2872 0044 00C0 rjmp .L205 2873 0046 4115 cp r20,__zero_reg__ 2874 0048 5105 cpc r21,__zero_reg__ 2875 004a 01F4 brne .+2 2876 004c 00C0 rjmp .L205 2877 004e DC01 movw r26,r24 2878 0050 1296 adiw r26,2 2879 0052 4D90 ld r4,X+ 2880 0054 5C90 ld r5,X 2881 0056 1397 sbiw r26,2+1 2882 0058 ED91 ld r30,X+ 2883 005a FC91 ld r31,X 2884 005c E188 ldd r14,Z+17 2885 005e F288 ldd r15,Z+18 2886 0060 1A01 movw r2,r20 2887 0062 F701 movw r30,r14 2888 0064 3296 adiw r30,2 2889 0066 FF87 std Y+15,r31 2890 0068 EE87 std Y+14,r30 2891 .L203: 2892 006a D201 movw r26,r4 2893 006c 1696 adiw r26,6 2894 006e 2D91 ld r18,X+ 2895 0070 3C91 ld r19,X 2896 0072 1797 sbiw r26,6+1 2897 0074 F701 movw r30,r14 2898 0076 8581 ldd r24,Z+5 2899 0078 9681 ldd r25,Z+6 2900 007a 2817 cp r18,r24 2901 007c 3907 cpc r19,r25 2902 007e 00F0 brlo .L181 2903 0080 1896 adiw r26,8 2904 0082 4D91 ld r20,X+ 2905 0084 5C91 ld r21,X 2906 0086 1997 sbiw r26,8+1 2907 0088 8D91 ld r24,X+ GAS LISTING /tmp/ccjPZxVo.s page 52 2908 008a 9C91 ld r25,X 2909 008c 4115 cp r20,__zero_reg__ 2910 008e 5105 cpc r21,__zero_reg__ 2911 0090 01F0 breq .L182 2912 0092 BC01 movw r22,r24 2913 0094 C701 movw r24,r14 2914 0096 0E94 0000 call EntrySeek.part.4 2915 .L182: 2916 009a D201 movw r26,r4 2917 009c 1796 adiw r26,6+1 2918 009e 9C93 st X,r25 2919 00a0 8E93 st -X,r24 2920 00a2 1697 sbiw r26,6 2921 .L181: 2922 00a4 40E0 ldi r20,0 2923 00a6 50E0 ldi r21,0 2924 00a8 BA01 movw r22,r20 2925 00aa 8E85 ldd r24,Y+14 2926 00ac 9F85 ldd r25,Y+15 2927 00ae 0E94 0000 call NutEventWait 2928 00b2 F201 movw r30,r4 2929 00b4 0681 ldd r16,Z+6 2930 00b6 1781 ldd r17,Z+7 2931 00b8 D701 movw r26,r14 2932 00ba 1596 adiw r26,5 2933 00bc 8D91 ld r24,X+ 2934 00be 9C91 ld r25,X 2935 00c0 1697 sbiw r26,5+1 2936 00c2 0817 cp r16,r24 2937 00c4 1907 cpc r17,r25 2938 00c6 00F0 brlo .L183 2939 00c8 00E8 ldi r16,lo8(-128) 2940 00ca 10E0 ldi r17,0 2941 00cc 00C0 rjmp .L184 2942 .L183: 2943 00ce 60E0 ldi r22,0 2944 00d0 70E0 ldi r23,0 2945 00d2 C701 movw r24,r14 2946 00d4 0E94 0000 call PhysBlkAllocate 2947 00d8 5C01 movw r10,r24 2948 00da F701 movw r30,r14 2949 00dc 8581 ldd r24,Z+5 2950 00de 9681 ldd r25,Z+6 2951 00e0 A816 cp r10,r24 2952 00e2 B906 cpc r11,r25 2953 00e4 00F4 brsh .L185 2954 00e6 000F lsl r16 2955 00e8 111F rol r17 2956 00ea 0780 ldd __tmp_reg__,Z+7 2957 00ec F085 ldd r31,Z+8 2958 00ee E02D mov r30,__tmp_reg__ 2959 00f0 E00F add r30,r16 2960 00f2 F11F adc r31,r17 2961 00f4 9081 ld r25,Z 2962 00f6 8181 ldd r24,Z+1 2963 00f8 B182 std Z+1,r11 2964 00fa A082 st Z,r10 GAS LISTING /tmp/ccjPZxVo.s page 53 2965 00fc A92E mov r10,r25 2966 00fe B82E mov r11,r24 2967 .L185: 2968 0100 D701 movw r26,r14 2969 0102 1596 adiw r26,5 2970 0104 8D91 ld r24,X+ 2971 0106 9C91 ld r25,X 2972 0108 1697 sbiw r26,5+1 2973 010a A816 cp r10,r24 2974 010c B906 cpc r11,r25 2975 010e 00F4 brsh .L214 2976 0110 AE01 movw r20,r28 2977 0112 4F5F subi r20,-1 2978 0114 5F4F sbci r21,-1 2979 0116 B501 movw r22,r10 2980 0118 F701 movw r30,r14 2981 011a 8081 ld r24,Z 2982 011c 9181 ldd r25,Z+1 2983 011e 0E94 0000 call FlashReadBlockHead 2984 0122 00C0 rjmp .L188 2985 .L189: 2986 0124 0F5F subi r16,-1 2987 0126 1F4F sbci r17,-1 2988 .L184: 2989 0128 0817 cp r16,r24 2990 012a 1907 cpc r17,r25 2991 012c 00F4 brsh .L190 2992 012e D701 movw r26,r14 2993 0130 1796 adiw r26,7 2994 0132 CD90 ld r12,X+ 2995 0134 DC90 ld r13,X 2996 0136 1897 sbiw r26,7+1 2997 0138 9801 movw r18,r16 2998 013a 220F lsl r18 2999 013c 331F rol r19 3000 013e C20E add r12,r18 3001 0140 D31E adc r13,r19 3002 0142 F601 movw r30,r12 3003 0144 2081 ld r18,Z 3004 0146 3181 ldd r19,Z+1 3005 0148 2817 cp r18,r24 3006 014a 3907 cpc r19,r25 3007 014c 00F0 brlo .L189 3008 014e 60E0 ldi r22,0 3009 0150 70E0 ldi r23,0 3010 0152 C701 movw r24,r14 3011 0154 0E94 0000 call PhysBlkAllocate 3012 0158 D601 movw r26,r12 3013 015a 8D93 st X+,r24 3014 015c 9C93 st X,r25 3015 .L190: 3016 015e F201 movw r30,r4 3017 0160 1783 std Z+7,r17 3018 0162 0683 std Z+6,r16 3019 0164 D701 movw r26,r14 3020 0166 1596 adiw r26,5 3021 0168 8D91 ld r24,X+ GAS LISTING /tmp/ccjPZxVo.s page 54 3022 016a 9C91 ld r25,X 3023 016c 1697 sbiw r26,5+1 3024 016e 0817 cp r16,r24 3025 0170 1907 cpc r17,r25 3026 0172 00F0 brlo .L192 3027 .L214: 3028 0174 8E85 ldd r24,Y+14 3029 0176 9F85 ldd r25,Y+15 3030 0178 0E94 0000 call NutEventPost 3031 017c 8FEF ldi r24,lo8(-1) 3032 017e 9FEF ldi r25,lo8(-1) 3033 0180 00C0 rjmp .L180 3034 .L192: 3035 0182 C801 movw r24,r16 3036 0184 880F lsl r24 3037 0186 991F rol r25 3038 0188 D701 movw r26,r14 3039 018a 1796 adiw r26,7 3040 018c ED91 ld r30,X+ 3041 018e FC91 ld r31,X 3042 0190 1897 sbiw r26,7+1 3043 0192 E80F add r30,r24 3044 0194 F91F adc r31,r25 3045 0196 A080 ld r10,Z 3046 0198 B180 ldd r11,Z+1 3047 019a 1A83 std Y+2,r17 3048 019c 0983 std Y+1,r16 3049 019e F201 movw r30,r4 3050 01a0 8081 ld r24,Z 3051 01a2 9181 ldd r25,Z+1 3052 01a4 9E83 std Y+6,r25 3053 01a6 8D83 std Y+5,r24 3054 01a8 8085 ldd r24,Z+8 3055 01aa 9185 ldd r25,Z+9 3056 01ac 9887 std Y+8,r25 3057 01ae 8F83 std Y+7,r24 3058 01b0 8FEF ldi r24,lo8(-1) 3059 01b2 9FEF ldi r25,lo8(-1) 3060 01b4 9C83 std Y+4,r25 3061 01b6 8B83 std Y+3,r24 3062 .L188: 3063 01b8 D201 movw r26,r4 3064 01ba 1696 adiw r26,6 3065 01bc ED91 ld r30,X+ 3066 01be FC91 ld r31,X 3067 01c0 1797 sbiw r26,6+1 3068 01c2 EE0F lsl r30 3069 01c4 FF1F rol r31 3070 01c6 D701 movw r26,r14 3071 01c8 1796 adiw r26,7 3072 01ca 8D91 ld r24,X+ 3073 01cc 9C91 ld r25,X 3074 01ce 1897 sbiw r26,7+1 3075 01d0 E80F add r30,r24 3076 01d2 F91F adc r31,r25 3077 01d4 6080 ld r6,Z 3078 01d6 7180 ldd r7,Z+1 GAS LISTING /tmp/ccjPZxVo.s page 55 3079 01d8 AE01 movw r20,r28 3080 01da 475F subi r20,-9 3081 01dc 5F4F sbci r21,-1 3082 01de B301 movw r22,r6 3083 01e0 8D91 ld r24,X+ 3084 01e2 9C91 ld r25,X 3085 01e4 0E94 0000 call FlashReadBlockFoot 3086 01e8 B301 movw r22,r6 3087 01ea F701 movw r30,r14 3088 01ec 8081 ld r24,Z 3089 01ee 9181 ldd r25,Z+1 3090 01f0 0E94 0000 call FlashEraseBlockData 3091 01f4 C301 movw r24,r6 3092 01f6 880F lsl r24 3093 01f8 991F rol r25 3094 01fa 880F lsl r24 3095 01fc 991F rol r25 3096 01fe 9B8B std Y+19,r25 3097 0200 8A8B std Y+18,r24 3098 0202 812C mov r8,__zero_reg__ 3099 0204 912C mov r9,__zero_reg__ 3100 .L201: 3101 0206 9401 movw r18,r8 3102 0208 A301 movw r20,r6 3103 020a B501 movw r22,r10 3104 020c D701 movw r26,r14 3105 020e 8D91 ld r24,X+ 3106 0210 9C91 ld r25,X 3107 0212 0E94 0000 call FlashUnitCopy 3108 0216 8114 cp r8,__zero_reg__ 3109 0218 9104 cpc r9,__zero_reg__ 3110 021a 01F4 brne .L193 3111 021c AE01 movw r20,r28 3112 021e 4F5F subi r20,-1 3113 0220 5F4F sbci r21,-1 3114 0222 B301 movw r22,r6 3115 0224 F701 movw r30,r14 3116 0226 8081 ld r24,Z 3117 0228 9181 ldd r25,Z+1 3118 022a 0E94 0000 call FlashWriteBlockHead 3119 022e 2114 cp r2,__zero_reg__ 3120 0230 3104 cpc r3,__zero_reg__ 3121 0232 01F4 brne .+2 3122 0234 00C0 rjmp .L194 3123 .L197: 3124 0236 D201 movw r26,r4 3125 0238 1A96 adiw r26,10 3126 023a 8D91 ld r24,X+ 3127 023c 9C91 ld r25,X 3128 023e 1B97 sbiw r26,10+1 3129 0240 8816 cp r8,r24 3130 0242 9906 cpc r9,r25 3131 0244 01F0 breq .+2 3132 0246 00C0 rjmp .L196 3133 0248 00C0 rjmp .L215 3134 .L193: 3135 024a 2114 cp r2,__zero_reg__ GAS LISTING /tmp/ccjPZxVo.s page 56 3136 024c 3104 cpc r3,__zero_reg__ 3137 024e 01F4 brne .L197 3138 0250 00C0 rjmp .L196 3139 .L215: 3140 0252 F201 movw r30,r4 3141 0254 4485 ldd r20,Z+12 3142 0256 5585 ldd r21,Z+13 3143 0258 F701 movw r30,r14 3144 025a A081 ld r26,Z 3145 025c B181 ldd r27,Z+1 3146 025e 1496 adiw r26,4 3147 0260 CD90 ld r12,X+ 3148 0262 DC90 ld r13,X 3149 0264 1597 sbiw r26,4+1 3150 0266 C41A sub r12,r20 3151 0268 D50A sbc r13,r21 3152 026a F3E0 ldi r31,3 3153 026c 8F16 cp r8,r31 3154 026e 9104 cpc r9,__zero_reg__ 3155 0270 01F4 brne .L199 3156 0272 81E0 ldi r24,1 3157 0274 C81A sub r12,r24 3158 0276 D108 sbc r13,__zero_reg__ 3159 .L199: 3160 0278 2C14 cp r2,r12 3161 027a 3D04 cpc r3,r13 3162 027c 04F4 brge .L200 3163 027e 6101 movw r12,r2 3164 .L200: 3165 0280 1896 adiw r26,8 3166 0282 6D91 ld r22,X+ 3167 0284 7C91 ld r23,X 3168 0286 1997 sbiw r26,8+1 3169 0288 EA89 ldd r30,Y+18 3170 028a FB89 ldd r31,Y+19 3171 028c 6E0F add r22,r30 3172 028e 7F1F adc r23,r31 3173 0290 680D add r22,r8 3174 0292 791D adc r23,r9 3175 0294 5896 adiw r26,24 3176 0296 ED91 ld r30,X+ 3177 0298 FC91 ld r31,X 3178 029a 5997 sbiw r26,24+1 3179 029c 8601 movw r16,r12 3180 029e 2A85 ldd r18,Y+10 3181 02a0 3B85 ldd r19,Y+11 3182 02a2 CD01 movw r24,r26 3183 02a4 1995 eicall 3184 02a6 2C18 sub r2,r12 3185 02a8 3D08 sbc r3,r13 3186 02aa 8A85 ldd r24,Y+10 3187 02ac 9B85 ldd r25,Y+11 3188 02ae 8C0D add r24,r12 3189 02b0 9D1D adc r25,r13 3190 02b2 9B87 std Y+11,r25 3191 02b4 8A87 std Y+10,r24 3192 02b6 B601 movw r22,r12 GAS LISTING /tmp/ccjPZxVo.s page 57 3193 02b8 8889 ldd r24,Y+16 3194 02ba 9989 ldd r25,Y+17 3195 02bc 0E94 0000 call EntryPosInc 3196 02c0 F201 movw r30,r4 3197 02c2 8281 ldd r24,Z+2 3198 02c4 9381 ldd r25,Z+3 3199 02c6 A481 ldd r26,Z+4 3200 02c8 B581 ldd r27,Z+5 3201 02ca 4489 ldd r20,Z+20 3202 02cc 5589 ldd r21,Z+21 3203 02ce 6689 ldd r22,Z+22 3204 02d0 7789 ldd r23,Z+23 3205 02d2 4817 cp r20,r24 3206 02d4 5907 cpc r21,r25 3207 02d6 6A07 cpc r22,r26 3208 02d8 7B07 cpc r23,r27 3209 02da 00F4 brsh .L196 3210 02dc 848B std Z+20,r24 3211 02de 958B std Z+21,r25 3212 02e0 A68B std Z+22,r26 3213 02e2 B78B std Z+23,r27 3214 .L196: 3215 02e4 F3E0 ldi r31,3 3216 02e6 8F16 cp r8,r31 3217 02e8 9104 cpc r9,__zero_reg__ 3218 02ea 01F4 brne .L194 3219 02ec AE01 movw r20,r28 3220 02ee 475F subi r20,-9 3221 02f0 5F4F sbci r21,-1 3222 02f2 B301 movw r22,r6 3223 02f4 D701 movw r26,r14 3224 02f6 8D91 ld r24,X+ 3225 02f8 9C91 ld r25,X 3226 02fa 0E94 0000 call FlashWriteBlockFoot 3227 .L194: 3228 02fe A401 movw r20,r8 3229 0300 B301 movw r22,r6 3230 0302 F701 movw r30,r14 3231 0304 8081 ld r24,Z 3232 0306 9181 ldd r25,Z+1 3233 0308 0E94 0000 call FlashUnitCommit 3234 030c FFEF ldi r31,-1 3235 030e 8F1A sub r8,r31 3236 0310 9F0A sbc r9,r31 3237 0312 84E0 ldi r24,4 3238 0314 8816 cp r8,r24 3239 0316 9104 cpc r9,__zero_reg__ 3240 0318 01F0 breq .+2 3241 031a 00C0 rjmp .L201 3242 031c 6A14 cp r6,r10 3243 031e 7B04 cpc r7,r11 3244 0320 01F0 breq .L202 3245 0322 B501 movw r22,r10 3246 0324 D701 movw r26,r14 3247 0326 8D91 ld r24,X+ 3248 0328 9C91 ld r25,X 3249 032a 0E94 0000 call FlashEraseEntry GAS LISTING /tmp/ccjPZxVo.s page 58 3250 .L202: 3251 032e 8E85 ldd r24,Y+14 3252 0330 9F85 ldd r25,Y+15 3253 0332 0E94 0000 call NutEventPost 3254 0336 2114 cp r2,__zero_reg__ 3255 0338 3104 cpc r3,__zero_reg__ 3256 033a 01F0 breq .+2 3257 033c 00C0 rjmp .L203 3258 033e 8C85 ldd r24,Y+12 3259 0340 9D85 ldd r25,Y+13 3260 0342 00C0 rjmp .L180 3261 .L205: 3262 0344 80E0 ldi r24,0 3263 0346 90E0 ldi r25,0 3264 .L180: 3265 /* epilogue start */ 3266 0348 6396 adiw r28,19 3267 034a 0FB6 in __tmp_reg__,__SREG__ 3268 034c F894 cli 3269 034e DEBF out __SP_H__,r29 3270 0350 0FBE out __SREG__,__tmp_reg__ 3271 0352 CDBF out __SP_L__,r28 3272 0354 DF91 pop r29 3273 0356 CF91 pop r28 3274 0358 1F91 pop r17 3275 035a 0F91 pop r16 3276 035c FF90 pop r15 3277 035e EF90 pop r14 3278 0360 DF90 pop r13 3279 0362 CF90 pop r12 3280 0364 BF90 pop r11 3281 0366 AF90 pop r10 3282 0368 9F90 pop r9 3283 036a 8F90 pop r8 3284 036c 7F90 pop r7 3285 036e 6F90 pop r6 3286 0370 5F90 pop r5 3287 0372 4F90 pop r4 3288 0374 3F90 pop r3 3289 0376 2F90 pop r2 3290 0378 0895 ret 3291 .size UFlashFileWrite, .-UFlashFileWrite 3292 .section .text.UFlashIOCtl,"ax",@progbits 3293 .type UFlashIOCtl, @function 3294 UFlashIOCtl: 3295 0000 6F92 push r6 3296 0002 7F92 push r7 3297 0004 8F92 push r8 3298 0006 9F92 push r9 3299 0008 AF92 push r10 3300 000a BF92 push r11 3301 000c CF92 push r12 3302 000e DF92 push r13 3303 0010 EF92 push r14 3304 0012 FF92 push r15 3305 0014 0F93 push r16 3306 0016 1F93 push r17 GAS LISTING /tmp/ccjPZxVo.s page 59 3307 0018 CF93 push r28 3308 001a DF93 push r29 3309 001c CDB7 in r28,__SP_L__ 3310 001e DEB7 in r29,__SP_H__ 3311 0020 2B97 sbiw r28,11 3312 0022 0FB6 in __tmp_reg__,__SREG__ 3313 0024 F894 cli 3314 0026 DEBF out __SP_H__,r29 3315 0028 0FBE out __SREG__,__tmp_reg__ 3316 002a CDBF out __SP_L__,r28 3317 /* prologue: function */ 3318 /* frame size = 11 */ 3319 /* stack size = 25 */ 3320 .L__stack_usage = 25 3321 002c 6C01 movw r12,r24 3322 002e 7A01 movw r14,r20 3323 0030 6531 cpi r22,21 3324 0032 01E1 ldi r16,17 3325 0034 7007 cpc r23,r16 3326 0036 01F4 brne .+2 3327 0038 00C0 rjmp .L218 3328 003a 04F4 brge .L219 3329 003c 6331 cpi r22,19 3330 003e 21E1 ldi r18,17 3331 0040 7207 cpc r23,r18 3332 0042 04F4 brge .L220 3333 0044 6131 cpi r22,17 3334 0046 31E1 ldi r19,17 3335 0048 7307 cpc r23,r19 3336 004a 04F0 brlt .+2 3337 004c 00C0 rjmp .L288 3338 004e 6130 cpi r22,1 3339 0050 7141 sbci r23,17 3340 0052 01F0 breq .+2 3341 0054 00C0 rjmp .L258 3342 0056 DA01 movw r26,r20 3343 0058 1296 adiw r26,2 3344 005a AD90 ld r10,X+ 3345 005c BC90 ld r11,X 3346 005e 1397 sbiw r26,2+1 3347 0060 F601 movw r30,r12 3348 0062 0189 ldd r16,Z+17 3349 0064 1289 ldd r17,Z+18 3350 0066 8D91 ld r24,X+ 3351 0068 9C91 ld r25,X 3352 006a 00C0 rjmp .L231 3353 .L220: 3354 006c 6331 cpi r22,19 3355 006e A1E1 ldi r26,17 3356 0070 7A07 cpc r23,r26 3357 0072 01F4 brne .+2 3358 0074 00C0 rjmp .L223 3359 0076 6431 cpi r22,20 3360 0078 7141 sbci r23,17 3361 007a 01F0 breq .+2 3362 007c 00C0 rjmp .L258 3363 007e DA01 movw r26,r20 GAS LISTING /tmp/ccjPZxVo.s page 60 3364 0080 0D91 ld r16,X+ 3365 0082 1C91 ld r17,X 3366 0084 F801 movw r30,r16 3367 0086 E280 ldd r14,Z+2 3368 0088 F380 ldd r15,Z+3 3369 008a D701 movw r26,r14 3370 008c 1296 adiw r26,2 3371 008e 8D91 ld r24,X+ 3372 0090 9C91 ld r25,X 3373 0092 1397 sbiw r26,2+1 3374 0094 0E94 0000 call free 3375 0098 C701 movw r24,r14 3376 009a 0E94 0000 call free 3377 009e C801 movw r24,r16 3378 00a0 0E94 0000 call free 3379 00a4 00C0 rjmp .L288 3380 .L219: 3381 00a6 6033 cpi r22,48 3382 00a8 E1E1 ldi r30,17 3383 00aa 7E07 cpc r23,r30 3384 00ac 01F4 brne .+2 3385 00ae 00C0 rjmp .L225 3386 00b0 04F4 brge .L226 3387 00b2 6232 cpi r22,34 3388 00b4 01E1 ldi r16,17 3389 00b6 7007 cpc r23,r16 3390 00b8 01F4 brne .+2 3391 00ba 00C0 rjmp .L227 3392 00bc 6332 cpi r22,35 3393 00be 7141 sbci r23,17 3394 00c0 01F4 brne .+2 3395 00c2 00C0 rjmp .L228 3396 00c4 00C0 rjmp .L258 3397 .L226: 3398 00c6 6133 cpi r22,49 3399 00c8 21E1 ldi r18,17 3400 00ca 7207 cpc r23,r18 3401 00cc 01F4 brne .+2 3402 00ce 00C0 rjmp .L229 3403 00d0 6233 cpi r22,50 3404 00d2 7141 sbci r23,17 3405 00d4 01F0 breq .+2 3406 00d6 00C0 rjmp .L258 3407 00d8 DA01 movw r26,r20 3408 00da 1296 adiw r26,2 3409 00dc 3C91 ld r19,X 3410 00de 1297 sbiw r26,2 3411 00e0 1396 adiw r26,3 3412 00e2 2C91 ld r18,X 3413 00e4 1397 sbiw r26,3 3414 00e6 FC01 movw r30,r24 3415 00e8 0189 ldd r16,Z+17 3416 00ea 1289 ldd r17,Z+18 3417 00ec 8D91 ld r24,X+ 3418 00ee 9C91 ld r25,X 3419 00f0 00C0 rjmp .L251 3420 .L231: GAS LISTING /tmp/ccjPZxVo.s page 61 3421 00f2 6C01 movw r12,r24 3422 00f4 0196 adiw r24,1 3423 00f6 D601 movw r26,r12 3424 00f8 2C91 ld r18,X 3425 00fa 2F32 cpi r18,lo8(47) 3426 00fc 01F0 breq .L231 3427 00fe 20E8 ldi r18,lo8(-128) 3428 0100 30E0 ldi r19,0 3429 0102 AE01 movw r20,r28 3430 0104 4F5F subi r20,-1 3431 0106 5F4F sbci r21,-1 3432 0108 B601 movw r22,r12 3433 010a C801 movw r24,r16 3434 010c 0E94 0000 call EntrySearchNext 3435 0110 7C01 movw r14,r24 3436 0112 8038 cpi r24,-128 3437 0114 9105 cpc r25,__zero_reg__ 3438 0116 00F4 brsh .L232 3439 0118 D801 movw r26,r16 3440 011a 1796 adiw r26,7 3441 011c ED91 ld r30,X+ 3442 011e FC91 ld r31,X 3443 0120 1897 sbiw r26,7+1 3444 0122 880F lsl r24 3445 0124 991F rol r25 3446 0126 E80F add r30,r24 3447 0128 F91F adc r31,r25 3448 012a 2081 ld r18,Z 3449 012c 3181 ldd r19,Z+1 3450 012e 1596 adiw r26,5 3451 0130 8D91 ld r24,X+ 3452 0132 9C91 ld r25,X 3453 0134 1697 sbiw r26,5+1 3454 0136 8217 cp r24,r18 3455 0138 9307 cpc r25,r19 3456 013a 00F4 brsh .L259 3457 .L232: 3458 013c 20E0 ldi r18,0 3459 013e 30E0 ldi r19,0 3460 0140 AE01 movw r20,r28 3461 0142 4F5F subi r20,-1 3462 0144 5F4F sbci r21,-1 3463 0146 B601 movw r22,r12 3464 0148 C801 movw r24,r16 3465 014a 0E94 0000 call EntrySearchNext 3466 014e 7C01 movw r14,r24 3467 0150 8038 cpi r24,-128 3468 0152 9105 cpc r25,__zero_reg__ 3469 0154 00F0 brlo .+2 3470 0156 00C0 rjmp .L258 3471 0158 D801 movw r26,r16 3472 015a 1796 adiw r26,7 3473 015c ED91 ld r30,X+ 3474 015e FC91 ld r31,X 3475 0160 1897 sbiw r26,7+1 3476 0162 880F lsl r24 3477 0164 991F rol r25 GAS LISTING /tmp/ccjPZxVo.s page 62 3478 0166 E80F add r30,r24 3479 0168 F91F adc r31,r25 3480 016a 2081 ld r18,Z 3481 016c 3181 ldd r19,Z+1 3482 016e 1596 adiw r26,5 3483 0170 8D91 ld r24,X+ 3484 0172 9C91 ld r25,X 3485 0174 1697 sbiw r26,5+1 3486 0176 8217 cp r24,r18 3487 0178 9307 cpc r25,r19 3488 017a 00F4 brsh .+2 3489 017c 00C0 rjmp .L258 3490 017e 81E0 ldi r24,lo8(1) 3491 0180 00C0 rjmp .L233 3492 .L259: 3493 0182 80E0 ldi r24,0 3494 .L233: 3495 0184 9DE0 ldi r25,lo8(13) 3496 0186 F501 movw r30,r10 3497 0: 3498 0188 1192 st Z+,__zero_reg__ 3499 018a 9A95 dec r25 3500 018c 01F4 brne 0b 3501 018e 8823 tst r24 3502 0190 01F0 breq .L235 3503 0192 81E0 ldi r24,lo8(1) 3504 0194 D501 movw r26,r10 3505 0196 1296 adiw r26,2 3506 0198 8C93 st X,r24 3507 019a 00C0 rjmp .L288 3508 .L235: 3509 019c 6801 movw r12,r16 3510 019e B2E0 ldi r27,2 3511 01a0 CB0E add r12,r27 3512 01a2 D11C adc r13,__zero_reg__ 3513 01a4 40E0 ldi r20,0 3514 01a6 50E0 ldi r21,0 3515 01a8 BA01 movw r22,r20 3516 01aa C601 movw r24,r12 3517 01ac 0E94 0000 call NutEventWait 3518 01b0 B701 movw r22,r14 3519 01b2 C801 movw r24,r16 3520 01b4 0E94 0000 call EntryScan.isra.1 3521 01b8 F501 movw r30,r10 3522 01ba 6583 std Z+5,r22 3523 01bc 7683 std Z+6,r23 3524 01be 8783 std Z+7,r24 3525 01c0 9087 std Z+8,r25 3526 01c2 C601 movw r24,r12 3527 01c4 0E94 0000 call NutEventPost 3528 01c8 8A81 ldd r24,Y+2 3529 01ca 90E0 ldi r25,0 3530 01cc 0296 adiw r24,2 3531 01ce D501 movw r26,r10 3532 01d0 1596 adiw r26,5 3533 01d2 4D91 ld r20,X+ 3534 01d4 5D91 ld r21,X+ GAS LISTING /tmp/ccjPZxVo.s page 63 3535 01d6 6D91 ld r22,X+ 3536 01d8 7C91 ld r23,X 3537 01da 1897 sbiw r26,5+3 3538 01dc 8A01 movw r16,r20 3539 01de 9B01 movw r18,r22 3540 01e0 081B sub r16,r24 3541 01e2 190B sbc r17,r25 3542 01e4 2109 sbc r18,__zero_reg__ 3543 01e6 3109 sbc r19,__zero_reg__ 3544 01e8 F501 movw r30,r10 3545 01ea 0583 std Z+5,r16 3546 01ec 1683 std Z+6,r17 3547 01ee 2783 std Z+7,r18 3548 01f0 3087 std Z+8,r19 3549 01f2 00C0 rjmp .L288 3550 .L223: 3551 01f4 DA01 movw r26,r20 3552 01f6 1296 adiw r26,2 3553 01f8 8D90 ld r8,X+ 3554 01fa 9C90 ld r9,X 3555 01fc 1397 sbiw r26,2+1 3556 01fe 84E0 ldi r24,lo8(4) 3557 0200 90E0 ldi r25,0 3558 0202 0E94 0000 call malloc 3559 0206 8C01 movw r16,r24 3560 0208 892B or r24,r25 3561 020a 01F0 breq .L262 3562 020c 84E0 ldi r24,lo8(4) 3563 020e 90E0 ldi r25,0 3564 0210 0E94 0000 call malloc 3565 0214 5C01 movw r10,r24 3566 0216 0097 sbiw r24,0 3567 0218 01F0 breq .L237 3568 021a FC01 movw r30,r24 3569 021c 1182 std Z+1,__zero_reg__ 3570 021e 1082 st Z,__zero_reg__ 3571 0220 81E0 ldi r24,lo8(1) 3572 0222 90E0 ldi r25,0 3573 0224 D401 movw r26,r8 3574 0226 2C91 ld r18,X 3575 0228 2F32 cpi r18,lo8(47) 3576 022a 01F0 breq .L238 3577 022c 80E0 ldi r24,0 3578 022e 90E0 ldi r25,0 3579 .L238: 3580 0230 880D add r24,r8 3581 0232 991D adc r25,r9 3582 0234 0E94 0000 call strdup 3583 0238 F501 movw r30,r10 3584 023a 9383 std Z+3,r25 3585 023c 8283 std Z+2,r24 3586 023e 892B or r24,r25 3587 0240 01F0 breq .L239 3588 0242 D801 movw r26,r16 3589 0244 1196 adiw r26,1 3590 0246 DC92 st X,r13 3591 0248 CE92 st -X,r12 GAS LISTING /tmp/ccjPZxVo.s page 64 3592 024a 1396 adiw r26,2+1 3593 024c BC92 st X,r11 3594 024e AE92 st -X,r10 3595 0250 1297 sbiw r26,2 3596 0252 00C0 rjmp .L236 3597 .L239: 3598 0254 C501 movw r24,r10 3599 0256 0E94 0000 call free 3600 .L237: 3601 025a C801 movw r24,r16 3602 025c 0E94 0000 call free 3603 .L262: 3604 0260 0FEF ldi r16,lo8(-1) 3605 0262 1FEF ldi r17,lo8(-1) 3606 .L236: 3607 0264 F701 movw r30,r14 3608 0266 1183 std Z+1,r17 3609 0268 0083 st Z,r16 3610 026a 21E0 ldi r18,lo8(1) 3611 026c 30E0 ldi r19,0 3612 026e 0F3F cpi r16,-1 3613 0270 1F4F sbci r17,-1 3614 0272 01F0 breq .L240 3615 0274 20E0 ldi r18,0 3616 0276 30E0 ldi r19,0 3617 .L240: 3618 0278 8827 clr r24 3619 027a 9927 clr r25 3620 027c 821B sub r24,r18 3621 027e 930B sbc r25,r19 3622 0280 00C0 rjmp .L217 3623 .L218: 3624 0282 1A82 std Y+2,__zero_reg__ 3625 0284 1982 std Y+1,__zero_reg__ 3626 0286 DA01 movw r26,r20 3627 0288 ED91 ld r30,X+ 3628 028a FC91 ld r31,X 3629 028c 0281 ldd r16,Z+2 3630 028e 1381 ldd r17,Z+3 3631 0290 0190 ld __tmp_reg__,Z+ 3632 0292 F081 ld r31,Z 3633 0294 E02D mov r30,__tmp_reg__ 3634 0296 C188 ldd r12,Z+17 3635 0298 D288 ldd r13,Z+18 3636 029a F801 movw r30,r16 3637 029c 2081 ld r18,Z 3638 029e 3181 ldd r19,Z+1 3639 02a0 6281 ldd r22,Z+2 3640 02a2 7381 ldd r23,Z+3 3641 02a4 AE01 movw r20,r28 3642 02a6 475F subi r20,-9 3643 02a8 5F4F sbci r21,-1 3644 02aa C601 movw r24,r12 3645 02ac 0E94 0000 call EntrySearchNext 3646 02b0 D801 movw r26,r16 3647 02b2 8D93 st X+,r24 3648 02b4 9C93 st X,r25 GAS LISTING /tmp/ccjPZxVo.s page 65 3649 02b6 8038 cpi r24,-128 3650 02b8 9105 cpc r25,__zero_reg__ 3651 02ba 00F0 brlo .+2 3652 02bc 00C0 rjmp .L258 3653 02be F701 movw r30,r14 3654 02c0 E280 ldd r14,Z+2 3655 02c2 F380 ldd r15,Z+3 3656 02c4 88E0 ldi r24,lo8(8) 3657 02c6 91E0 ldi r25,lo8(1) 3658 02c8 D701 movw r26,r14 3659 02ca FC01 movw r30,r24 3660 0: 3661 02cc 1D92 st X+,__zero_reg__ 3662 02ce 3197 sbiw r30,1 3663 02d0 01F4 brne 0b 3664 02d2 D801 movw r26,r16 3665 02d4 ED91 ld r30,X+ 3666 02d6 FC91 ld r31,X 3667 02d8 EE0F lsl r30 3668 02da FF1F rol r31 3669 02dc D601 movw r26,r12 3670 02de 1796 adiw r26,7 3671 02e0 8D91 ld r24,X+ 3672 02e2 9C91 ld r25,X 3673 02e4 1897 sbiw r26,7+1 3674 02e6 E80F add r30,r24 3675 02e8 F91F adc r31,r25 3676 02ea 6081 ld r22,Z 3677 02ec 7181 ldd r23,Z+1 3678 02ee 9E01 movw r18,r28 3679 02f0 2F5F subi r18,-1 3680 02f2 3F4F sbci r19,-1 3681 02f4 AE01 movw r20,r28 3682 02f6 475F subi r20,-9 3683 02f8 5F4F sbci r21,-1 3684 02fa 8D91 ld r24,X+ 3685 02fc 9C91 ld r25,X 3686 02fe 0E94 0000 call FlashReadEntry 3687 0302 F801 movw r30,r16 3688 0304 A281 ldd r26,Z+2 3689 0306 B381 ldd r27,Z+3 3690 0308 FD01 movw r30,r26 3691 0: 3692 030a 0190 ld __tmp_reg__,Z+ 3693 030c 0020 tst __tmp_reg__ 3694 030e 01F4 brne 0b 3695 0310 3197 sbiw r30,1 3696 0312 EA1B sub r30,r26 3697 0314 FB0B sbc r31,r27 3698 0316 8981 ldd r24,Y+1 3699 0318 9A81 ldd r25,Y+2 3700 031a 6FE2 ldi r22,lo8(47) 3701 031c 70E0 ldi r23,0 3702 031e 8E0F add r24,r30 3703 0320 9F1F adc r25,r31 3704 0322 0E94 0000 call strchr 3705 0326 0097 sbiw r24,0 GAS LISTING /tmp/ccjPZxVo.s page 66 3706 0328 01F0 breq .L242 3707 032a DC01 movw r26,r24 3708 032c 1C92 st X,__zero_reg__ 3709 032e 81E0 ldi r24,lo8(1) 3710 0330 F701 movw r30,r14 3711 0332 8683 std Z+6,r24 3712 0334 00C0 rjmp .L243 3713 .L242: 3714 0336 D701 movw r26,r14 3715 0338 1696 adiw r26,6 3716 033a 1C92 st X,__zero_reg__ 3717 .L243: 3718 033c C980 ldd r12,Y+1 3719 033e DA80 ldd r13,Y+2 3720 0340 F801 movw r30,r16 3721 0342 A281 ldd r26,Z+2 3722 0344 B381 ldd r27,Z+3 3723 0346 FD01 movw r30,r26 3724 0: 3725 0348 0190 ld __tmp_reg__,Z+ 3726 034a 0020 tst __tmp_reg__ 3727 034c 01F4 brne 0b 3728 034e 3197 sbiw r30,1 3729 0350 BF01 movw r22,r30 3730 0352 6A1B sub r22,r26 3731 0354 7B0B sbc r23,r27 3732 0356 6C0D add r22,r12 3733 0358 7D1D adc r23,r13 3734 035a C701 movw r24,r14 3735 035c 0896 adiw r24,8 3736 035e 0E94 0000 call strcpy 3737 0362 F801 movw r30,r16 3738 0364 A281 ldd r26,Z+2 3739 0366 B381 ldd r27,Z+3 3740 0368 FD01 movw r30,r26 3741 0: 3742 036a 0190 ld __tmp_reg__,Z+ 3743 036c 0020 tst __tmp_reg__ 3744 036e 01F4 brne 0b 3745 0370 3197 sbiw r30,1 3746 0372 EA1B sub r30,r26 3747 0374 FB0B sbc r31,r27 3748 0376 EC0D add r30,r12 3749 0378 FD1D adc r31,r13 3750 037a DF01 movw r26,r30 3751 0: 3752 037c 0D90 ld __tmp_reg__,X+ 3753 037e 0020 tst __tmp_reg__ 3754 0380 01F4 brne 0b 3755 0382 1197 sbiw r26,1 3756 0384 AE1B sub r26,r30 3757 0386 BF0B sbc r27,r31 3758 0388 F701 movw r30,r14 3759 038a A783 std Z+7,r26 3760 038c C601 movw r24,r12 3761 038e 0E94 0000 call free 3762 0392 D801 movw r26,r16 GAS LISTING /tmp/ccjPZxVo.s page 67 3763 0394 8D91 ld r24,X+ 3764 0396 9C91 ld r25,X 3765 0398 1197 sbiw r26,1 3766 039a 0196 adiw r24,1 3767 039c 8D93 st X+,r24 3768 039e 9C93 st X,r25 3769 03a0 00C0 rjmp .L288 3770 .L227: 3771 03a2 FC01 movw r30,r24 3772 03a4 0189 ldd r16,Z+17 3773 03a6 1289 ldd r17,Z+18 3774 .L244: 3775 03a8 B701 movw r22,r14 3776 03aa FFEF ldi r31,-1 3777 03ac EF1A sub r14,r31 3778 03ae FF0A sbc r15,r31 3779 03b0 DB01 movw r26,r22 3780 03b2 8C91 ld r24,X 3781 03b4 8F32 cpi r24,lo8(47) 3782 03b6 01F0 breq .L244 3783 03b8 20E8 ldi r18,lo8(-128) 3784 03ba 30E0 ldi r19,0 3785 03bc AE01 movw r20,r28 3786 03be 4F5F subi r20,-1 3787 03c0 5F4F sbci r21,-1 3788 03c2 C801 movw r24,r16 3789 03c4 0E94 0000 call EntrySearchNext 3790 03c8 6C01 movw r12,r24 3791 03ca 8038 cpi r24,-128 3792 03cc 9105 cpc r25,__zero_reg__ 3793 03ce 00F0 brlo .+2 3794 03d0 00C0 rjmp .L258 3795 03d2 7C01 movw r14,r24 3796 03d4 EE0C lsl r14 3797 03d6 FF1C rol r15 3798 03d8 D801 movw r26,r16 3799 03da 1796 adiw r26,7 3800 03dc ED91 ld r30,X+ 3801 03de FC91 ld r31,X 3802 03e0 1897 sbiw r26,7+1 3803 03e2 EE0D add r30,r14 3804 03e4 FF1D adc r31,r15 3805 03e6 2081 ld r18,Z 3806 03e8 3181 ldd r19,Z+1 3807 03ea 1596 adiw r26,5 3808 03ec 8D91 ld r24,X+ 3809 03ee 9C91 ld r25,X 3810 03f0 1697 sbiw r26,5+1 3811 03f2 8217 cp r24,r18 3812 03f4 9307 cpc r25,r19 3813 03f6 00F4 brsh .+2 3814 03f8 00C0 rjmp .L258 3815 03fa 5801 movw r10,r16 3816 03fc B2E0 ldi r27,2 3817 03fe AB0E add r10,r27 3818 0400 B11C adc r11,__zero_reg__ 3819 0402 40E0 ldi r20,0 GAS LISTING /tmp/ccjPZxVo.s page 68 3820 0404 50E0 ldi r21,0 3821 0406 BA01 movw r22,r20 3822 0408 C501 movw r24,r10 3823 040a 0E94 0000 call NutEventWait 3824 040e B601 movw r22,r12 3825 0410 C801 movw r24,r16 3826 0412 0E94 0000 call EntryTruncateSeq 3827 0416 D801 movw r26,r16 3828 0418 1796 adiw r26,7 3829 041a ED91 ld r30,X+ 3830 041c FC91 ld r31,X 3831 041e 1897 sbiw r26,7+1 3832 0420 EE0D add r30,r14 3833 0422 FF1D adc r31,r15 3834 0424 6081 ld r22,Z 3835 0426 7181 ldd r23,Z+1 3836 0428 8FEF ldi r24,lo8(-1) 3837 042a 9FEF ldi r25,lo8(-1) 3838 042c 9183 std Z+1,r25 3839 042e 8083 st Z,r24 3840 0430 00C0 rjmp .L289 3841 .L228: 3842 0432 FA01 movw r30,r20 3843 0434 0281 ldd r16,Z+2 3844 0436 1381 ldd r17,Z+3 3845 0438 8081 ld r24,Z 3846 043a 9181 ldd r25,Z+1 3847 043c DC01 movw r26,r24 3848 043e 1296 adiw r26,2 3849 0440 ED91 ld r30,X+ 3850 0442 FC91 ld r31,X 3851 0444 1397 sbiw r26,2+1 3852 0446 D801 movw r26,r16 3853 0448 8D90 ld r8,X+ 3854 044a 9D90 ld r9,X+ 3855 044c AD90 ld r10,X+ 3856 044e BC90 ld r11,X 3857 0450 DA01 movw r26,r20 3858 0452 1496 adiw r26,4 3859 0454 2D91 ld r18,X+ 3860 0456 3C91 ld r19,X 3861 0458 1597 sbiw r26,4+1 3862 045a 2130 cpi r18,1 3863 045c 3105 cpc r19,__zero_reg__ 3864 045e 01F0 breq .L247 3865 0460 2230 cpi r18,2 3866 0462 3105 cpc r19,__zero_reg__ 3867 0464 01F4 brne .L246 3868 0466 4489 ldd r20,Z+20 3869 0468 5589 ldd r21,Z+21 3870 046a 6689 ldd r22,Z+22 3871 046c 7789 ldd r23,Z+23 3872 046e 00C0 rjmp .L287 3873 .L247: 3874 0470 4281 ldd r20,Z+2 3875 0472 5381 ldd r21,Z+3 3876 0474 6481 ldd r22,Z+4 GAS LISTING /tmp/ccjPZxVo.s page 69 3877 0476 7581 ldd r23,Z+5 3878 .L287: 3879 0478 840E add r8,r20 3880 047a 951E adc r9,r21 3881 047c A61E adc r10,r22 3882 047e B71E adc r11,r23 3883 .L246: 3884 0480 B7FC sbrc r11,7 3885 0482 00C0 rjmp .L249 3886 0484 4489 ldd r20,Z+20 3887 0486 5589 ldd r21,Z+21 3888 0488 6689 ldd r22,Z+22 3889 048a 7789 ldd r23,Z+23 3890 048c 4815 cp r20,r8 3891 048e 5905 cpc r21,r9 3892 0490 6A05 cpc r22,r10 3893 0492 7B05 cpc r23,r11 3894 0494 04F4 brge .L250 3895 .L249: 3896 0496 86E1 ldi r24,lo8(22) 3897 0498 90E0 ldi r25,0 3898 049a 9093 0000 sts errno+1,r25 3899 049e 8093 0000 sts errno,r24 3900 04a2 00C0 rjmp .L258 3901 .L250: 3902 04a4 B501 movw r22,r10 3903 04a6 A401 movw r20,r8 3904 04a8 0E94 0000 call EntryPosSet 3905 04ac F801 movw r30,r16 3906 04ae 8082 st Z,r8 3907 04b0 9182 std Z+1,r9 3908 04b2 A282 std Z+2,r10 3909 04b4 B382 std Z+3,r11 3910 04b6 00C0 rjmp .L258 3911 .L251: 3912 04b8 BC01 movw r22,r24 3913 04ba 0196 adiw r24,1 3914 04bc DB01 movw r26,r22 3915 04be 4C91 ld r20,X 3916 04c0 4F32 cpi r20,lo8(47) 3917 04c2 01F0 breq .L251 3918 04c4 832F mov r24,r19 3919 04c6 922F mov r25,r18 3920 .L252: 3921 04c8 3C01 movw r6,r24 3922 04ca 0196 adiw r24,1 3923 04cc F301 movw r30,r6 3924 04ce 2081 ld r18,Z 3925 04d0 2F32 cpi r18,lo8(47) 3926 04d2 01F0 breq .L252 3927 04d4 20E8 ldi r18,lo8(-128) 3928 04d6 30E0 ldi r19,0 3929 04d8 AE01 movw r20,r28 3930 04da 475F subi r20,-9 3931 04dc 5F4F sbci r21,-1 3932 04de C801 movw r24,r16 3933 04e0 0E94 0000 call EntrySearchNext GAS LISTING /tmp/ccjPZxVo.s page 70 3934 04e4 8038 cpi r24,-128 3935 04e6 9105 cpc r25,__zero_reg__ 3936 04e8 00F0 brlo .+2 3937 04ea 00C0 rjmp .L258 3938 04ec 6C01 movw r12,r24 3939 04ee CC0C lsl r12 3940 04f0 DD1C rol r13 3941 04f2 D801 movw r26,r16 3942 04f4 1796 adiw r26,7 3943 04f6 ED91 ld r30,X+ 3944 04f8 FC91 ld r31,X 3945 04fa 1897 sbiw r26,7+1 3946 04fc EC0D add r30,r12 3947 04fe FD1D adc r31,r13 3948 0500 2081 ld r18,Z 3949 0502 3181 ldd r19,Z+1 3950 0504 1596 adiw r26,5 3951 0506 8D91 ld r24,X+ 3952 0508 9C91 ld r25,X 3953 050a 1697 sbiw r26,5+1 3954 050c 8217 cp r24,r18 3955 050e 9307 cpc r25,r19 3956 0510 00F4 brsh .+2 3957 0512 00C0 rjmp .L258 3958 0514 F301 movw r30,r6 3959 0: 3960 0516 0190 ld __tmp_reg__,Z+ 3961 0518 0020 tst __tmp_reg__ 3962 051a 01F4 brne 0b 3963 051c 3197 sbiw r30,1 3964 051e E619 sub r30,r6 3965 0520 F709 sbc r31,r7 3966 0522 8A85 ldd r24,Y+10 3967 0524 90E0 ldi r25,0 3968 0526 8E17 cp r24,r30 3969 0528 9F07 cpc r25,r31 3970 052a 00F4 brsh .+2 3971 052c 00C0 rjmp .L258 3972 052e EA87 std Y+10,r30 3973 0530 5801 movw r10,r16 3974 0532 B2E0 ldi r27,2 3975 0534 AB0E add r10,r27 3976 0536 B11C adc r11,__zero_reg__ 3977 0538 40E0 ldi r20,0 3978 053a 50E0 ldi r21,0 3979 053c BA01 movw r22,r20 3980 053e C501 movw r24,r10 3981 0540 0E94 0000 call NutEventWait 3982 0544 60E0 ldi r22,0 3983 0546 70E0 ldi r23,0 3984 0548 C801 movw r24,r16 3985 054a 0E94 0000 call PhysBlkAllocate 3986 054e 7C01 movw r14,r24 3987 0550 F801 movw r30,r16 3988 0552 8581 ldd r24,Z+5 3989 0554 9681 ldd r25,Z+6 3990 0556 E816 cp r14,r24 GAS LISTING /tmp/ccjPZxVo.s page 71 3991 0558 F906 cpc r15,r25 3992 055a 00F0 brlo .L254 3993 055c C501 movw r24,r10 3994 055e 0E94 0000 call NutEventPost 3995 0562 00C0 rjmp .L258 3996 .L254: 3997 0564 D801 movw r26,r16 3998 0566 0780 ldd __tmp_reg__,Z+7 3999 0568 F085 ldd r31,Z+8 4000 056a E02D mov r30,__tmp_reg__ 4001 056c EC0D add r30,r12 4002 056e FD1D adc r31,r13 4003 0570 8080 ld r8,Z 4004 0572 9180 ldd r9,Z+1 4005 0574 F182 std Z+1,r15 4006 0576 E082 st Z,r14 4007 0578 AE01 movw r20,r28 4008 057a 455F subi r20,-11 4009 057c 5F4F sbci r21,-1 4010 057e B701 movw r22,r14 4011 0580 8D91 ld r24,X+ 4012 0582 9C91 ld r25,X 4013 0584 0E94 0000 call FlashReadBlockFoot 4014 0588 B701 movw r22,r14 4015 058a F801 movw r30,r16 4016 058c 8081 ld r24,Z 4017 058e 9181 ldd r25,Z+1 4018 0590 0E94 0000 call FlashEraseBlockData 4019 0594 C12C mov r12,__zero_reg__ 4020 0596 D12C mov r13,__zero_reg__ 4021 .L257: 4022 0598 9601 movw r18,r12 4023 059a A701 movw r20,r14 4024 059c B401 movw r22,r8 4025 059e D801 movw r26,r16 4026 05a0 8D91 ld r24,X+ 4027 05a2 9C91 ld r25,X 4028 05a4 0E94 0000 call FlashUnitCopy 4029 05a8 2C2D mov r18,r12 4030 05aa F801 movw r30,r16 4031 05ac 8081 ld r24,Z 4032 05ae 9181 ldd r25,Z+1 4033 05b0 C114 cp r12,__zero_reg__ 4034 05b2 D104 cpc r13,__zero_reg__ 4035 05b4 01F4 brne .L255 4036 05b6 AE01 movw r20,r28 4037 05b8 4F5F subi r20,-1 4038 05ba 5F4F sbci r21,-1 4039 05bc B701 movw r22,r14 4040 05be 0E94 0000 call FlashReadBlockHead 4041 05c2 AE01 movw r20,r28 4042 05c4 4F5F subi r20,-1 4043 05c6 5F4F sbci r21,-1 4044 05c8 B701 movw r22,r14 4045 05ca D801 movw r26,r16 4046 05cc 8D91 ld r24,X+ 4047 05ce 9C91 ld r25,X GAS LISTING /tmp/ccjPZxVo.s page 72 4048 05d0 0E94 0000 call FlashWriteBlockHead 4049 05d4 9301 movw r18,r6 4050 05d6 AE01 movw r20,r28 4051 05d8 475F subi r20,-9 4052 05da 5F4F sbci r21,-1 4053 05dc B701 movw r22,r14 4054 05de F801 movw r30,r16 4055 05e0 8081 ld r24,Z 4056 05e2 9181 ldd r25,Z+1 4057 05e4 0E94 0000 call FlashWriteEntry 4058 05e8 00C0 rjmp .L256 4059 .L255: 4060 05ea 2330 cpi r18,lo8(3) 4061 05ec 01F4 brne .L256 4062 05ee AE01 movw r20,r28 4063 05f0 455F subi r20,-11 4064 05f2 5F4F sbci r21,-1 4065 05f4 B701 movw r22,r14 4066 05f6 0E94 0000 call FlashWriteBlockFoot 4067 .L256: 4068 05fa A601 movw r20,r12 4069 05fc B701 movw r22,r14 4070 05fe D801 movw r26,r16 4071 0600 8D91 ld r24,X+ 4072 0602 9C91 ld r25,X 4073 0604 0E94 0000 call FlashUnitCommit 4074 0608 BFEF ldi r27,-1 4075 060a CB1A sub r12,r27 4076 060c DB0A sbc r13,r27 4077 060e E4E0 ldi r30,4 4078 0610 CE16 cp r12,r30 4079 0612 D104 cpc r13,__zero_reg__ 4080 0614 01F4 brne .L257 4081 0616 B401 movw r22,r8 4082 0618 D801 movw r26,r16 4083 .L289: 4084 061a 8D91 ld r24,X+ 4085 061c 9C91 ld r25,X 4086 061e 0E94 0000 call FlashEraseEntry 4087 0622 C501 movw r24,r10 4088 0624 0E94 0000 call NutEventPost 4089 0628 00C0 rjmp .L288 4090 .L225: 4091 062a 0E94 0000 call UFlashMount 4092 062e 00C0 rjmp .L217 4093 .L229: 4094 0630 FC01 movw r30,r24 4095 0632 0189 ldd r16,Z+17 4096 0634 1289 ldd r17,Z+18 4097 0636 D801 movw r26,r16 4098 0638 1796 adiw r26,7 4099 063a 8D91 ld r24,X+ 4100 063c 9C91 ld r25,X 4101 063e 1897 sbiw r26,7+1 4102 0640 0E94 0000 call free 4103 0644 C801 movw r24,r16 4104 0646 0E94 0000 call free GAS LISTING /tmp/ccjPZxVo.s page 73 4105 064a F601 movw r30,r12 4106 064c 128A std Z+18,__zero_reg__ 4107 064e 118A std Z+17,__zero_reg__ 4108 .L288: 4109 0650 80E0 ldi r24,0 4110 0652 90E0 ldi r25,0 4111 0654 00C0 rjmp .L217 4112 .L258: 4113 0656 8FEF ldi r24,lo8(-1) 4114 0658 9FEF ldi r25,lo8(-1) 4115 .L217: 4116 /* epilogue start */ 4117 065a 2B96 adiw r28,11 4118 065c 0FB6 in __tmp_reg__,__SREG__ 4119 065e F894 cli 4120 0660 DEBF out __SP_H__,r29 4121 0662 0FBE out __SREG__,__tmp_reg__ 4122 0664 CDBF out __SP_L__,r28 4123 0666 DF91 pop r29 4124 0668 CF91 pop r28 4125 066a 1F91 pop r17 4126 066c 0F91 pop r16 4127 066e FF90 pop r15 4128 0670 EF90 pop r14 4129 0672 DF90 pop r13 4130 0674 CF90 pop r12 4131 0676 BF90 pop r11 4132 0678 AF90 pop r10 4133 067a 9F90 pop r9 4134 067c 8F90 pop r8 4135 067e 7F90 pop r7 4136 0680 6F90 pop r6 4137 0682 0895 ret 4138 .size UFlashIOCtl, .-UFlashIOCtl 4139 .section .text.UFlashAttach,"ax",@progbits 4140 .global UFlashAttach 4141 .type UFlashAttach, @function 4142 UFlashAttach: 4143 0000 0F93 push r16 4144 0002 1F93 push r17 4145 0004 CF93 push r28 4146 0006 DF93 push r29 4147 /* prologue: function */ 4148 /* frame size = 0 */ 4149 /* stack size = 4 */ 4150 .L__stack_usage = 4 4151 0008 8C01 movw r16,r24 4152 000a EB01 movw r28,r22 4153 000c 8881 ld r24,Y 4154 000e 9981 ldd r25,Y+1 4155 0010 DC01 movw r26,r24 4156 0012 4D93 st X+,r20 4157 0014 5C93 st X,r21 4158 0016 DA01 movw r26,r20 4159 0018 1896 adiw r26,8 4160 001a ED91 ld r30,X+ 4161 001c FC91 ld r31,X GAS LISTING /tmp/ccjPZxVo.s page 74 4162 001e 1997 sbiw r26,8+1 4163 0020 1995 eicall 4164 0022 892B or r24,r25 4165 0024 01F4 brne .L297 4166 0026 E881 ld r30,Y 4167 0028 F981 ldd r31,Y+1 4168 002a 8081 ld r24,Z 4169 002c 9181 ldd r25,Z+1 4170 002e 0E94 0000 call NutEventPost 4171 0032 EC85 ldd r30,Y+12 4172 0034 FD85 ldd r31,Y+13 4173 0036 CE01 movw r24,r28 4174 0038 1995 eicall 4175 003a 892B or r24,r25 4176 003c 01F4 brne .L297 4177 003e F801 movw r30,r16 4178 0040 D08B std Z+16,r29 4179 0042 C787 std Z+15,r28 4180 0044 C801 movw r24,r16 4181 0046 0E94 0000 call UFlashMount 4182 004a 0097 sbiw r24,0 4183 004c 01F0 breq .L292 4184 004e D801 movw r26,r16 4185 0050 5096 adiw r26,15+1 4186 0052 1C92 st X,__zero_reg__ 4187 0054 1E92 st -X,__zero_reg__ 4188 0056 1F97 sbiw r26,15 4189 .L297: 4190 0058 8FEF ldi r24,lo8(-1) 4191 005a 9FEF ldi r25,lo8(-1) 4192 .L292: 4193 /* epilogue start */ 4194 005c DF91 pop r29 4195 005e CF91 pop r28 4196 0060 1F91 pop r17 4197 0062 0F91 pop r16 4198 0064 0895 ret 4199 .size UFlashAttach, .-UFlashAttach 4200 .section .text.UFlashDetach,"ax",@progbits 4201 .global UFlashDetach 4202 .type UFlashDetach, @function 4203 UFlashDetach: 4204 0000 0F93 push r16 4205 0002 1F93 push r17 4206 0004 CF93 push r28 4207 0006 DF93 push r29 4208 /* prologue: function */ 4209 /* frame size = 0 */ 4210 /* stack size = 4 */ 4211 .L__stack_usage = 4 4212 0008 EC01 movw r28,r24 4213 000a 0989 ldd r16,Y+17 4214 000c 1A89 ldd r17,Y+18 4215 000e D801 movw r26,r16 4216 0010 1796 adiw r26,7 4217 0012 8D91 ld r24,X+ 4218 0014 9C91 ld r25,X GAS LISTING /tmp/ccjPZxVo.s page 75 4219 0016 1897 sbiw r26,7+1 4220 0018 0E94 0000 call free 4221 001c C801 movw r24,r16 4222 001e 0E94 0000 call free 4223 0022 1A8A std Y+18,__zero_reg__ 4224 0024 198A std Y+17,__zero_reg__ 4225 0026 8F85 ldd r24,Y+15 4226 0028 9889 ldd r25,Y+16 4227 002a DC01 movw r26,r24 4228 002c 1E96 adiw r26,14 4229 002e ED91 ld r30,X+ 4230 0030 FC91 ld r31,X 4231 0032 1F97 sbiw r26,14+1 4232 0034 1995 eicall 4233 0036 188A std Y+16,__zero_reg__ 4234 0038 1F86 std Y+15,__zero_reg__ 4235 /* epilogue start */ 4236 003a DF91 pop r29 4237 003c CF91 pop r28 4238 003e 1F91 pop r17 4239 0040 0F91 pop r16 4240 0042 0895 ret 4241 .size UFlashDetach, .-UFlashDetach 4242 .section .text.UFlashFormat,"ax",@progbits 4243 .global UFlashFormat 4244 .type UFlashFormat, @function 4245 UFlashFormat: 4246 0000 0F93 push r16 4247 0002 1F93 push r17 4248 0004 CF93 push r28 4249 0006 DF93 push r29 4250 /* prologue: function */ 4251 /* frame size = 0 */ 4252 /* stack size = 4 */ 4253 .L__stack_usage = 4 4254 0008 EB01 movw r28,r22 4255 000a 8881 ld r24,Y 4256 000c 9981 ldd r25,Y+1 4257 000e DC01 movw r26,r24 4258 0010 4D93 st X+,r20 4259 0012 5C93 st X,r21 4260 0014 DA01 movw r26,r20 4261 0016 1896 adiw r26,8 4262 0018 ED91 ld r30,X+ 4263 001a FC91 ld r31,X 4264 001c 1997 sbiw r26,8+1 4265 001e 1995 eicall 4266 0020 8C01 movw r16,r24 4267 0022 892B or r24,r25 4268 0024 01F4 brne .L302 4269 0026 E881 ld r30,Y 4270 0028 F981 ldd r31,Y+1 4271 002a 8081 ld r24,Z 4272 002c 9181 ldd r25,Z+1 4273 002e 0E94 0000 call NutEventPost 4274 0032 EC85 ldd r30,Y+12 4275 0034 FD85 ldd r31,Y+13 GAS LISTING /tmp/ccjPZxVo.s page 76 4276 0036 CE01 movw r24,r28 4277 0038 1995 eicall 4278 003a 892B or r24,r25 4279 003c 01F4 brne .L300 4280 003e 6885 ldd r22,Y+8 4281 0040 7985 ldd r23,Y+9 4282 0042 4E81 ldd r20,Y+6 4283 0044 5F81 ldd r21,Y+7 4284 0046 461B sub r20,r22 4285 0048 570B sbc r21,r23 4286 004a 8A85 ldd r24,Y+10 4287 004c 9B85 ldd r25,Y+11 4288 004e 481B sub r20,r24 4289 0050 590B sbc r21,r25 4290 0052 5695 lsr r21 4291 0054 4795 ror r20 4292 0056 5695 lsr r21 4293 0058 4795 ror r20 4294 005a 4130 cpi r20,1 4295 005c B0E2 ldi r27,32 4296 005e 5B07 cpc r21,r27 4297 0060 00F0 brlo .L301 4298 0062 40E0 ldi r20,0 4299 0064 50E2 ldi r21,lo8(32) 4300 .L301: 4301 0066 440F lsl r20 4302 0068 551F rol r21 4303 006a 440F lsl r20 4304 006c 551F rol r21 4305 006e EE8D ldd r30,Y+30 4306 0070 FF8D ldd r31,Y+31 4307 0072 CE01 movw r24,r28 4308 0074 1995 eicall 4309 0076 EE85 ldd r30,Y+14 4310 0078 FF85 ldd r31,Y+15 4311 007a CE01 movw r24,r28 4312 007c 1995 eicall 4313 007e 00C0 rjmp .L300 4314 .L302: 4315 0080 0FEF ldi r16,lo8(-1) 4316 0082 1FEF ldi r17,lo8(-1) 4317 .L300: 4318 0084 C801 movw r24,r16 4319 /* epilogue start */ 4320 0086 DF91 pop r29 4321 0088 CF91 pop r28 4322 008a 1F91 pop r17 4323 008c 0F91 pop r16 4324 008e 0895 ret 4325 .size UFlashFormat, .-UFlashFormat 4326 .global devUFlash1 4327 .data 4328 .type devUFlash1, @object 4329 .size devUFlash1, 37 4330 devUFlash1: 4331 0000 0000 .word 0 4332 0002 55 .byte 85 GAS LISTING /tmp/ccjPZxVo.s page 77 4333 0003 46 .byte 70 4334 0004 4C .byte 76 4335 0005 41 .byte 65 4336 0006 53 .byte 83 4337 0007 48 .byte 72 4338 0008 31 .byte 49 4339 0009 00 .byte 0 4340 000a 00 .byte 0 4341 000b 10 .byte 16 4342 000c 0100 .word 1 4343 000e 00 .byte 0 4344 000f 0000 .word 0 4345 0011 0000 .word 0 4346 0013 0000 .word gs(UFlashInit) 4347 0015 0000 .word gs(UFlashIOCtl) 4348 0017 0000 .word gs(UFlashFileRead) 4349 0019 0000 .word gs(UFlashFileWrite) 4350 001b 0000 .word gs(UFlashFileWrite_P) 4351 001d 0000 .word gs(UFlashFileOpen) 4352 001f 0000 .word gs(UFlashFileClose) 4353 0021 0000 .word gs(UFlashFileSize) 4354 0023 0000 .word 0 4355 .global devUFlash0 4356 .type devUFlash0, @object 4357 .size devUFlash0, 37 4358 devUFlash0: 4359 0025 0000 .word 0 4360 0027 55 .byte 85 4361 0028 46 .byte 70 4362 0029 4C .byte 76 4363 002a 41 .byte 65 4364 002b 53 .byte 83 4365 002c 48 .byte 72 4366 002d 30 .byte 48 4367 002e 00 .byte 0 4368 002f 00 .byte 0 4369 0030 10 .byte 16 4370 0031 0000 .word 0 4371 0033 00 .byte 0 4372 0034 0000 .word 0 4373 0036 0000 .word 0 4374 0038 0000 .word gs(UFlashInit) 4375 003a 0000 .word gs(UFlashIOCtl) 4376 003c 0000 .word gs(UFlashFileRead) 4377 003e 0000 .word gs(UFlashFileWrite) 4378 0040 0000 .word gs(UFlashFileWrite_P) 4379 0042 0000 .word gs(UFlashFileOpen) 4380 0044 0000 .word gs(UFlashFileClose) 4381 0046 0000 .word gs(UFlashFileSize) 4382 0048 0000 .word 0 4383 .local min_used 4384 .comm min_used,96,1 4385 .ident "GCC: (GNU) 5.3.0" 4386 .global __do_copy_data 4387 .global __do_clear_bss GAS LISTING /tmp/ccjPZxVo.s page 78 DEFINED SYMBOLS *ABS*:0000000000000000 uflashfs.c /tmp/ccjPZxVo.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccjPZxVo.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccjPZxVo.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccjPZxVo.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccjPZxVo.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccjPZxVo.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccjPZxVo.s:10 .text.FlashUnitCopy:0000000000000000 FlashUnitCopy /tmp/ccjPZxVo.s:42 .text.FlashUnitCommit:0000000000000000 FlashUnitCommit /tmp/ccjPZxVo.s:68 .text.FlashReadBlockHead:0000000000000000 FlashReadBlockHead /tmp/ccjPZxVo.s:103 .text.FlashWriteBlockHead:0000000000000000 FlashWriteBlockHead /tmp/ccjPZxVo.s:149 .text.FlashWriteEntry:0000000000000000 FlashWriteEntry /tmp/ccjPZxVo.s:217 .text.FlashReadBlockFoot:0000000000000000 FlashReadBlockFoot /tmp/ccjPZxVo.s:255 .text.FlashWriteBlockFoot:0000000000000000 FlashWriteBlockFoot /tmp/ccjPZxVo.s:297 .text.FlashEraseEntry:0000000000000000 FlashEraseEntry /tmp/ccjPZxVo.s:323 .text.FlashEraseBlockData:0000000000000000 FlashEraseBlockData /tmp/ccjPZxVo.s:351 .text.EntryPosSet:0000000000000000 EntryPosSet /tmp/ccjPZxVo.s:475 .text.EntryPosInc:0000000000000000 EntryPosInc /tmp/ccjPZxVo.s:570 .text.EntryTruncateSeq:0000000000000000 EntryTruncateSeq /tmp/ccjPZxVo.s:681 .text.UFlashFileSize:0000000000000000 UFlashFileSize /tmp/ccjPZxVo.s:699 .text.UFlashFileWrite_P:0000000000000000 UFlashFileWrite_P /tmp/ccjPZxVo.s:710 .text.UFlashInit:0000000000000000 UFlashInit /tmp/ccjPZxVo.s:721 .text.FlashReadEntry:0000000000000000 FlashReadEntry /tmp/ccjPZxVo.s:810 .text.UFlashFileClose:0000000000000000 UFlashFileClose /tmp/ccjPZxVo.s:832 .text.UFlashMount:0000000000000000 UFlashMount .bss:0000000000000000 min_used /tmp/ccjPZxVo.s:1120 .text.EntrySearchNext:0000000000000000 EntrySearchNext /tmp/ccjPZxVo.s:1305 .text.EntryScan.isra.1:0000000000000000 EntryScan.isra.1 /tmp/ccjPZxVo.s:1492 .text.PhysBlkAllocate:0000000000000000 PhysBlkAllocate /tmp/ccjPZxVo.s:1981 .text.EntrySeek.part.4:0000000000000000 EntrySeek.part.4 /tmp/ccjPZxVo.s:2089 .text.UFlashFileRead:0000000000000000 UFlashFileRead /tmp/ccjPZxVo.s:2340 .text.UFlashFileOpen:0000000000000000 UFlashFileOpen /tmp/ccjPZxVo.s:2833 .text.UFlashFileWrite:0000000000000000 UFlashFileWrite /tmp/ccjPZxVo.s:3294 .text.UFlashIOCtl:0000000000000000 UFlashIOCtl /tmp/ccjPZxVo.s:4142 .text.UFlashAttach:0000000000000000 UFlashAttach /tmp/ccjPZxVo.s:4203 .text.UFlashDetach:0000000000000000 UFlashDetach /tmp/ccjPZxVo.s:4245 .text.UFlashFormat:0000000000000000 UFlashFormat /tmp/ccjPZxVo.s:4330 .data:0000000000000000 devUFlash1 /tmp/ccjPZxVo.s:4358 .data:0000000000000025 devUFlash0 UNDEFINED SYMBOLS __udivmodsi4 malloc free calloc memset NutEventPost NutEventWait errno strdup strchr strcpy __do_copy_data __do_clear_bss