| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983 |
- GAS LISTING /tmp/cc2yJz4P.s page 1
- 1 .file "spi_at45d.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.At45dStatus,"ax",@progbits
- 9 .type At45dStatus, @function
- 10 At45dStatus:
- 11 0000 CF92 push r12
- 12 0002 DF92 push r13
- 13 0004 EF92 push r14
- 14 0006 FF92 push r15
- 15 0008 0F93 push r16
- 16 000a 1F93 push r17
- 17 000c CF93 push r28
- 18 000e DF93 push r29
- 19 0010 1F92 push __zero_reg__
- 20 0012 1F92 push __zero_reg__
- 21 0014 CDB7 in r28,__SP_L__
- 22 0016 DEB7 in r29,__SP_H__
- 23 /* prologue: function */
- 24 /* frame size = 2 */
- 25 /* stack size = 10 */
- 26 .L__stack_usage = 10
- 27 0018 7C01 movw r14,r24
- 28 001a 87ED ldi r24,lo8(-41)
- 29 001c 8983 std Y+1,r24
- 30 001e 8FEF ldi r24,lo8(-1)
- 31 0020 8A83 std Y+2,r24
- 32 0022 D701 movw r26,r14
- 33 0024 CD90 ld r12,X+
- 34 0026 DC90 ld r13,X
- 35 0028 D601 movw r26,r12
- 36 002a 1A96 adiw r26,10
- 37 002c ED91 ld r30,X+
- 38 002e FC91 ld r31,X
- 39 0030 1B97 sbiw r26,10+1
- 40 0032 48EE ldi r20,lo8(-24)
- 41 0034 53E0 ldi r21,lo8(3)
- 42 0036 60E0 ldi r22,0
- 43 0038 70E0 ldi r23,0
- 44 003a C701 movw r24,r14
- 45 003c 1995 eicall
- 46 003e 8C01 movw r16,r24
- 47 0040 892B or r24,r25
- 48 0042 01F4 brne .L2
- 49 0044 D601 movw r26,r12
- 50 0046 1E96 adiw r26,14
- 51 0048 ED91 ld r30,X+
- 52 004a FC91 ld r31,X
- 53 004c 1F97 sbiw r26,14+1
- 54 004e 22E0 ldi r18,lo8(2)
- 55 0050 30E0 ldi r19,0
- 56 0052 AE01 movw r20,r28
- 57 0054 4F5F subi r20,-1
- GAS LISTING /tmp/cc2yJz4P.s page 2
- 58 0056 5F4F sbci r21,-1
- 59 0058 BA01 movw r22,r20
- 60 005a C701 movw r24,r14
- 61 005c 1995 eicall
- 62 005e 8C01 movw r16,r24
- 63 0060 892B or r24,r25
- 64 0062 01F4 brne .L3
- 65 0064 D601 movw r26,r12
- 66 0066 5096 adiw r26,16
- 67 0068 ED91 ld r30,X+
- 68 006a FC91 ld r31,X
- 69 006c 5197 sbiw r26,16+1
- 70 006e 40E0 ldi r20,0
- 71 0070 50E0 ldi r21,0
- 72 0072 BA01 movw r22,r20
- 73 0074 C701 movw r24,r14
- 74 0076 1995 eicall
- 75 0078 0A81 ldd r16,Y+2
- 76 .L3:
- 77 007a D601 movw r26,r12
- 78 007c 1C96 adiw r26,12
- 79 007e ED91 ld r30,X+
- 80 0080 FC91 ld r31,X
- 81 0082 1D97 sbiw r26,12+1
- 82 0084 C701 movw r24,r14
- 83 0086 1995 eicall
- 84 .L2:
- 85 0088 802F mov r24,r16
- 86 /* epilogue start */
- 87 008a 0F90 pop __tmp_reg__
- 88 008c 0F90 pop __tmp_reg__
- 89 008e DF91 pop r29
- 90 0090 CF91 pop r28
- 91 0092 1F91 pop r17
- 92 0094 0F91 pop r16
- 93 0096 FF90 pop r15
- 94 0098 EF90 pop r14
- 95 009a DF90 pop r13
- 96 009c CF90 pop r12
- 97 009e 0895 ret
- 98 .size At45dStatus, .-At45dStatus
- 99 .section .text.At45dCommand,"ax",@progbits
- 100 .type At45dCommand, @function
- 101 At45dCommand:
- 102 0000 2F92 push r2
- 103 0002 3F92 push r3
- 104 0004 4F92 push r4
- 105 0006 5F92 push r5
- 106 0008 6F92 push r6
- 107 000a 7F92 push r7
- 108 000c 8F92 push r8
- 109 000e 9F92 push r9
- 110 0010 AF92 push r10
- 111 0012 BF92 push r11
- 112 0014 CF92 push r12
- 113 0016 DF92 push r13
- 114 0018 EF92 push r14
- GAS LISTING /tmp/cc2yJz4P.s page 3
- 115 001a FF92 push r15
- 116 001c 0F93 push r16
- 117 001e 1F93 push r17
- 118 0020 CF93 push r28
- 119 0022 DF93 push r29
- 120 0024 CDB7 in r28,__SP_L__
- 121 0026 DEB7 in r29,__SP_H__
- 122 0028 2997 sbiw r28,9
- 123 002a 0FB6 in __tmp_reg__,__SREG__
- 124 002c F894 cli
- 125 002e DEBF out __SP_H__,r29
- 126 0030 0FBE out __SREG__,__tmp_reg__
- 127 0032 CDBF out __SP_L__,r28
- 128 /* prologue: function */
- 129 /* frame size = 9 */
- 130 /* stack size = 27 */
- 131 .L__stack_usage = 27
- 132 0034 4C01 movw r8,r24
- 133 0036 6987 std Y+9,r22
- 134 0038 2901 movw r4,r18
- 135 003a 3A01 movw r6,r20
- 136 003c DC01 movw r26,r24
- 137 003e 2D90 ld r2,X+
- 138 0040 3C90 ld r3,X
- 139 0042 A801 movw r20,r16
- 140 0044 60E0 ldi r22,0
- 141 0046 70E0 ldi r23,0
- 142 0048 CE01 movw r24,r28
- 143 004a 0196 adiw r24,1
- 144 004c 0E94 0000 call memset
- 145 0050 B985 ldd r27,Y+9
- 146 0052 B983 std Y+1,r27
- 147 0054 4114 cp r4,__zero_reg__
- 148 0056 5104 cpc r5,__zero_reg__
- 149 0058 6104 cpc r6,__zero_reg__
- 150 005a 7104 cpc r7,__zero_reg__
- 151 005c 01F0 breq .L6
- 152 005e 6A82 std Y+2,r6
- 153 0060 5B82 std Y+3,r5
- 154 0062 4C82 std Y+4,r4
- 155 .L6:
- 156 0064 D101 movw r26,r2
- 157 0066 1A96 adiw r26,10
- 158 0068 ED91 ld r30,X+
- 159 006a FC91 ld r31,X
- 160 006c 1B97 sbiw r26,10+1
- 161 006e 48EE ldi r20,lo8(-24)
- 162 0070 53E0 ldi r21,lo8(3)
- 163 0072 60E0 ldi r22,0
- 164 0074 70E0 ldi r23,0
- 165 0076 C401 movw r24,r8
- 166 0078 1995 eicall
- 167 007a 3C01 movw r6,r24
- 168 007c 892B or r24,r25
- 169 007e 01F4 brne .L7
- 170 0080 D101 movw r26,r2
- 171 0082 1E96 adiw r26,14
- GAS LISTING /tmp/cc2yJz4P.s page 4
- 172 0084 ED91 ld r30,X+
- 173 0086 FC91 ld r31,X
- 174 0088 1F97 sbiw r26,14+1
- 175 008a 9801 movw r18,r16
- 176 008c 40E0 ldi r20,0
- 177 008e 50E0 ldi r21,0
- 178 0090 BE01 movw r22,r28
- 179 0092 6F5F subi r22,-1
- 180 0094 7F4F sbci r23,-1
- 181 0096 C401 movw r24,r8
- 182 0098 1995 eicall
- 183 009a 3C01 movw r6,r24
- 184 009c 892B or r24,r25
- 185 009e 01F4 brne .L8
- 186 00a0 A114 cp r10,__zero_reg__
- 187 00a2 B104 cpc r11,__zero_reg__
- 188 00a4 01F0 breq .L8
- 189 00a6 D101 movw r26,r2
- 190 00a8 1E96 adiw r26,14
- 191 00aa ED91 ld r30,X+
- 192 00ac FC91 ld r31,X
- 193 00ae 1F97 sbiw r26,14+1
- 194 00b0 9501 movw r18,r10
- 195 00b2 A601 movw r20,r12
- 196 00b4 B701 movw r22,r14
- 197 00b6 C401 movw r24,r8
- 198 00b8 1995 eicall
- 199 00ba 3C01 movw r6,r24
- 200 .L8:
- 201 00bc D101 movw r26,r2
- 202 00be 1C96 adiw r26,12
- 203 00c0 ED91 ld r30,X+
- 204 00c2 FC91 ld r31,X
- 205 00c4 1D97 sbiw r26,12+1
- 206 00c6 C401 movw r24,r8
- 207 00c8 1995 eicall
- 208 .L7:
- 209 00ca C301 movw r24,r6
- 210 /* epilogue start */
- 211 00cc 2996 adiw r28,9
- 212 00ce 0FB6 in __tmp_reg__,__SREG__
- 213 00d0 F894 cli
- 214 00d2 DEBF out __SP_H__,r29
- 215 00d4 0FBE out __SREG__,__tmp_reg__
- 216 00d6 CDBF out __SP_L__,r28
- 217 00d8 DF91 pop r29
- 218 00da CF91 pop r28
- 219 00dc 1F91 pop r17
- 220 00de 0F91 pop r16
- 221 00e0 FF90 pop r15
- 222 00e2 EF90 pop r14
- 223 00e4 DF90 pop r13
- 224 00e6 CF90 pop r12
- 225 00e8 BF90 pop r11
- 226 00ea AF90 pop r10
- 227 00ec 9F90 pop r9
- 228 00ee 8F90 pop r8
- GAS LISTING /tmp/cc2yJz4P.s page 5
- 229 00f0 7F90 pop r7
- 230 00f2 6F90 pop r6
- 231 00f4 5F90 pop r5
- 232 00f6 4F90 pop r4
- 233 00f8 3F90 pop r3
- 234 00fa 2F90 pop r2
- 235 00fc 0895 ret
- 236 .size At45dCommand, .-At45dCommand
- 237 .section .text.SpiAt45dCommand,"ax",@progbits
- 238 .global SpiAt45dCommand
- 239 .type SpiAt45dCommand, @function
- 240 SpiAt45dCommand:
- 241 0000 AF92 push r10
- 242 0002 BF92 push r11
- 243 0004 CF92 push r12
- 244 0006 DF92 push r13
- 245 0008 EF92 push r14
- 246 000a FF92 push r15
- 247 000c 0F93 push r16
- 248 000e 1F93 push r17
- 249 /* prologue: function */
- 250 /* frame size = 0 */
- 251 /* stack size = 8 */
- 252 .L__stack_usage = 8
- 253 0010 FC01 movw r30,r24
- 254 0012 8785 ldd r24,Z+15
- 255 0014 9089 ldd r25,Z+16
- 256 0016 0E94 0000 call At45dCommand
- 257 /* epilogue start */
- 258 001a 1F91 pop r17
- 259 001c 0F91 pop r16
- 260 001e FF90 pop r15
- 261 0020 EF90 pop r14
- 262 0022 DF90 pop r13
- 263 0024 CF90 pop r12
- 264 0026 BF90 pop r11
- 265 0028 AF90 pop r10
- 266 002a 0895 ret
- 267 .size SpiAt45dCommand, .-SpiAt45dCommand
- 268 .section .text.SpiAt45dStatus,"ax",@progbits
- 269 .global SpiAt45dStatus
- 270 .type SpiAt45dStatus, @function
- 271 SpiAt45dStatus:
- 272 /* prologue: function */
- 273 /* frame size = 0 */
- 274 /* stack size = 0 */
- 275 .L__stack_usage = 0
- 276 0000 FC01 movw r30,r24
- 277 0002 8785 ldd r24,Z+15
- 278 0004 9089 ldd r25,Z+16
- 279 0006 0C94 0000 jmp At45dStatus
- 280 .size SpiAt45dStatus, .-SpiAt45dStatus
- 281 .section .text.SpiAt45dWaitReady,"ax",@progbits
- 282 .global SpiAt45dWaitReady
- 283 .type SpiAt45dWaitReady, @function
- 284 SpiAt45dWaitReady:
- 285 0000 CF92 push r12
- GAS LISTING /tmp/cc2yJz4P.s page 6
- 286 0002 DF92 push r13
- 287 0004 EF92 push r14
- 288 0006 FF92 push r15
- 289 0008 0F93 push r16
- 290 000a 1F93 push r17
- 291 000c CF93 push r28
- 292 000e DF93 push r29
- 293 /* prologue: function */
- 294 /* frame size = 0 */
- 295 /* stack size = 8 */
- 296 .L__stack_usage = 8
- 297 0010 6A01 movw r12,r20
- 298 0012 7B01 movw r14,r22
- 299 0014 8901 movw r16,r18
- 300 0016 FC01 movw r30,r24
- 301 0018 C785 ldd r28,Z+15
- 302 001a D089 ldd r29,Z+16
- 303 .L18:
- 304 001c CE01 movw r24,r28
- 305 001e 0E94 0000 call At45dStatus
- 306 0022 87FD sbrc r24,7
- 307 0024 00C0 rjmp .L23
- 308 0026 0115 cp r16,__zero_reg__
- 309 0028 1105 cpc r17,__zero_reg__
- 310 002a 01F4 brne .L19
- 311 002c 61E0 ldi r22,lo8(1)
- 312 002e 70E0 ldi r23,0
- 313 0030 80E0 ldi r24,0
- 314 0032 90E0 ldi r25,0
- 315 0034 0E94 0000 call NutSleep
- 316 .L19:
- 317 0038 D701 movw r26,r14
- 318 003a C601 movw r24,r12
- 319 003c 0197 sbiw r24,1
- 320 003e A109 sbc r26,__zero_reg__
- 321 0040 B109 sbc r27,__zero_reg__
- 322 0042 CD28 or r12,r13
- 323 0044 CE28 or r12,r14
- 324 0046 CF28 or r12,r15
- 325 0048 01F0 breq .L22
- 326 004a 6C01 movw r12,r24
- 327 004c 7D01 movw r14,r26
- 328 004e 00C0 rjmp .L18
- 329 .L23:
- 330 0050 80E0 ldi r24,0
- 331 0052 90E0 ldi r25,0
- 332 0054 00C0 rjmp .L20
- 333 .L22:
- 334 0056 8FEF ldi r24,lo8(-1)
- 335 0058 9FEF ldi r25,lo8(-1)
- 336 .L20:
- 337 /* epilogue start */
- 338 005a DF91 pop r29
- 339 005c CF91 pop r28
- 340 005e 1F91 pop r17
- 341 0060 0F91 pop r16
- 342 0062 FF90 pop r15
- GAS LISTING /tmp/cc2yJz4P.s page 7
- 343 0064 EF90 pop r14
- 344 0066 DF90 pop r13
- 345 0068 CF90 pop r12
- 346 006a 0895 ret
- 347 .size SpiAt45dWaitReady, .-SpiAt45dWaitReady
- 348 .section .text.SpiAt45dPageErase,"ax",@progbits
- 349 .global SpiAt45dPageErase
- 350 .type SpiAt45dPageErase, @function
- 351 SpiAt45dPageErase:
- 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 /* prologue: function */
- 361 /* frame size = 0 */
- 362 /* stack size = 8 */
- 363 .L__stack_usage = 8
- 364 0010 DC01 movw r26,r24
- 365 0012 5196 adiw r26,17
- 366 0014 ED91 ld r30,X+
- 367 0016 FC91 ld r31,X
- 368 0018 5297 sbiw r26,17+1
- 369 001a 0190 ld __tmp_reg__,Z+
- 370 001c F081 ld r31,Z
- 371 001e E02D mov r30,__tmp_reg__
- 372 0020 0181 ldd r16,Z+1
- 373 0022 1281 ldd r17,Z+2
- 374 0024 2381 ldd r18,Z+3
- 375 0026 3481 ldd r19,Z+4
- 376 0028 4017 cp r20,r16
- 377 002a 5107 cpc r21,r17
- 378 002c 6207 cpc r22,r18
- 379 002e 7307 cpc r23,r19
- 380 0030 00F4 brsh .L26
- 381 0032 9A01 movw r18,r20
- 382 0034 AB01 movw r20,r22
- 383 0036 0080 ld r0,Z
- 384 0038 00C0 rjmp 2f
- 385 1:
- 386 003a 220F lsl r18
- 387 003c 331F rol r19
- 388 003e 441F rol r20
- 389 0040 551F rol r21
- 390 2:
- 391 0042 0A94 dec r0
- 392 0044 02F4 brpl 1b
- 393 0046 A12C mov r10,__zero_reg__
- 394 0048 B12C mov r11,__zero_reg__
- 395 004a C12C mov r12,__zero_reg__
- 396 004c D12C mov r13,__zero_reg__
- 397 004e E12C mov r14,__zero_reg__
- 398 0050 F12C mov r15,__zero_reg__
- 399 0052 04E0 ldi r16,lo8(4)
- GAS LISTING /tmp/cc2yJz4P.s page 8
- 400 0054 10E0 ldi r17,0
- 401 0056 61E8 ldi r22,lo8(-127)
- 402 0058 1F96 adiw r26,15
- 403 005a 8D91 ld r24,X+
- 404 005c 9C91 ld r25,X
- 405 005e 5097 sbiw r26,15+1
- 406 0060 0E94 0000 call At45dCommand
- 407 0064 00C0 rjmp .L25
- 408 .L26:
- 409 0066 8FEF ldi r24,lo8(-1)
- 410 0068 9FEF ldi r25,lo8(-1)
- 411 .L25:
- 412 /* epilogue start */
- 413 006a 1F91 pop r17
- 414 006c 0F91 pop r16
- 415 006e FF90 pop r15
- 416 0070 EF90 pop r14
- 417 0072 DF90 pop r13
- 418 0074 CF90 pop r12
- 419 0076 BF90 pop r11
- 420 0078 AF90 pop r10
- 421 007a 0895 ret
- 422 .size SpiAt45dPageErase, .-SpiAt45dPageErase
- 423 .section .text.SpiAt45dChipErase,"ax",@progbits
- 424 .global SpiAt45dChipErase
- 425 .type SpiAt45dChipErase, @function
- 426 SpiAt45dChipErase:
- 427 /* prologue: function */
- 428 /* frame size = 0 */
- 429 /* stack size = 0 */
- 430 .L__stack_usage = 0
- 431 0000 8FEF ldi r24,lo8(-1)
- 432 0002 9FEF ldi r25,lo8(-1)
- 433 0004 0895 ret
- 434 .size SpiAt45dChipErase, .-SpiAt45dChipErase
- 435 .section .text.SpiAt45dInit,"ax",@progbits
- 436 .global SpiAt45dInit
- 437 .type SpiAt45dInit, @function
- 438 SpiAt45dInit:
- 439 0000 EF92 push r14
- 440 0002 FF92 push r15
- 441 0004 0F93 push r16
- 442 0006 1F93 push r17
- 443 0008 CF93 push r28
- 444 000a DF93 push r29
- 445 /* prologue: function */
- 446 /* frame size = 0 */
- 447 /* stack size = 6 */
- 448 .L__stack_usage = 6
- 449 000c FC01 movw r30,r24
- 450 000e C189 ldd r28,Z+17
- 451 0010 D289 ldd r29,Z+18
- 452 0012 E784 ldd r14,Z+15
- 453 0014 F088 ldd r15,Z+16
- 454 0016 00E0 ldi r16,0
- 455 0018 10E0 ldi r17,0
- 456 .L29:
- GAS LISTING /tmp/cc2yJz4P.s page 9
- 457 001a C701 movw r24,r14
- 458 001c 0E94 0000 call At45dStatus
- 459 0020 87FD sbrc r24,7
- 460 0022 00C0 rjmp .L41
- 461 0024 0F5F subi r16,-1
- 462 0026 1F4F sbci r17,-1
- 463 0028 0B30 cpi r16,11
- 464 002a 1105 cpc r17,__zero_reg__
- 465 002c 01F4 brne .L29
- 466 .L35:
- 467 002e 8FEF ldi r24,lo8(-1)
- 468 0030 9FEF ldi r25,lo8(-1)
- 469 0032 00C0 rjmp .L39
- 470 .L41:
- 471 0034 C701 movw r24,r14
- 472 0036 0E94 0000 call At45dStatus
- 473 003a 8F3F cpi r24,lo8(-1)
- 474 003c 01F0 breq .L35
- 475 003e 8D73 andi r24,lo8(61)
- 476 0040 9091 0000 lds r25,at45d_known_types
- 477 .L33:
- 478 0044 9150 subi r25,lo8(-(-1))
- 479 0046 97FD sbrc r25,7
- 480 0048 00C0 rjmp .L35
- 481 004a 28E0 ldi r18,lo8(8)
- 482 004c 9202 muls r25,r18
- 483 004e F001 movw r30,r0
- 484 0050 1124 clr __zero_reg__
- 485 0052 E050 subi r30,lo8(-(at45d_info))
- 486 0054 F040 sbci r31,hi8(-(at45d_info))
- 487 0056 2781 ldd r18,Z+7
- 488 0058 8213 cpse r24,r18
- 489 005a 00C0 rjmp .L33
- 490 005c F983 std Y+1,r31
- 491 005e E883 st Y,r30
- 492 0060 8181 ldd r24,Z+1
- 493 0062 9281 ldd r25,Z+2
- 494 0064 A381 ldd r26,Z+3
- 495 0066 B481 ldd r27,Z+4
- 496 0068 8A83 std Y+2,r24
- 497 006a 9B83 std Y+3,r25
- 498 006c AC83 std Y+4,r26
- 499 006e BD83 std Y+5,r27
- 500 0070 8581 ldd r24,Z+5
- 501 0072 9681 ldd r25,Z+6
- 502 0074 A0E0 ldi r26,0
- 503 0076 B0E0 ldi r27,0
- 504 0078 8E83 std Y+6,r24
- 505 007a 9F83 std Y+7,r25
- 506 007c A887 std Y+8,r26
- 507 007e B987 std Y+9,r27
- 508 0080 80E0 ldi r24,0
- 509 0082 90E0 ldi r25,0
- 510 .L39:
- 511 /* epilogue start */
- 512 0084 DF91 pop r29
- 513 0086 CF91 pop r28
- GAS LISTING /tmp/cc2yJz4P.s page 10
- 514 0088 1F91 pop r17
- 515 008a 0F91 pop r16
- 516 008c FF90 pop r15
- 517 008e EF90 pop r14
- 518 0090 0895 ret
- 519 .size SpiAt45dInit, .-SpiAt45dInit
- 520 .section .text.SpiAt45dPageRead,"ax",@progbits
- 521 .global SpiAt45dPageRead
- 522 .type SpiAt45dPageRead, @function
- 523 SpiAt45dPageRead:
- 524 0000 AF92 push r10
- 525 0002 BF92 push r11
- 526 0004 CF92 push r12
- 527 0006 DF92 push r13
- 528 0008 EF92 push r14
- 529 000a FF92 push r15
- 530 000c 0F93 push r16
- 531 000e 1F93 push r17
- 532 0010 CF93 push r28
- 533 0012 DF93 push r29
- 534 /* prologue: function */
- 535 /* frame size = 0 */
- 536 /* stack size = 10 */
- 537 .L__stack_usage = 10
- 538 0014 6901 movw r12,r18
- 539 0016 D02F mov r29,r16
- 540 0018 C12F mov r28,r17
- 541 001a DC01 movw r26,r24
- 542 001c 5196 adiw r26,17
- 543 001e ED91 ld r30,X+
- 544 0020 FC91 ld r31,X
- 545 0022 5297 sbiw r26,17+1
- 546 0024 0190 ld __tmp_reg__,Z+
- 547 0026 F081 ld r31,Z
- 548 0028 E02D mov r30,__tmp_reg__
- 549 002a 0181 ldd r16,Z+1
- 550 002c 1281 ldd r17,Z+2
- 551 002e 2381 ldd r18,Z+3
- 552 0030 3481 ldd r19,Z+4
- 553 0032 4017 cp r20,r16
- 554 0034 5107 cpc r21,r17
- 555 0036 6207 cpc r22,r18
- 556 0038 7307 cpc r23,r19
- 557 003a 00F0 brlo .L43
- 558 .L45:
- 559 003c 8FEF ldi r24,lo8(-1)
- 560 003e 9FEF ldi r25,lo8(-1)
- 561 0040 00C0 rjmp .L44
- 562 .L43:
- 563 0042 9A01 movw r18,r20
- 564 0044 AB01 movw r20,r22
- 565 0046 0080 ld r0,Z
- 566 0048 00C0 rjmp 2f
- 567 1:
- 568 004a 220F lsl r18
- 569 004c 331F rol r19
- 570 004e 441F rol r20
- GAS LISTING /tmp/cc2yJz4P.s page 11
- 571 0050 551F rol r21
- 572 2:
- 573 0052 0A94 dec r0
- 574 0054 02F4 brpl 1b
- 575 0056 AD2E mov r10,r29
- 576 0058 BC2E mov r11,r28
- 577 005a E12C mov r14,__zero_reg__
- 578 005c F12C mov r15,__zero_reg__
- 579 005e 08E0 ldi r16,lo8(8)
- 580 0060 10E0 ldi r17,0
- 581 0062 68EE ldi r22,lo8(-24)
- 582 0064 FC01 movw r30,r24
- 583 0066 8785 ldd r24,Z+15
- 584 0068 9089 ldd r25,Z+16
- 585 006a 0E94 0000 call At45dCommand
- 586 006e 892B or r24,r25
- 587 0070 01F4 brne .L45
- 588 0072 8D2F mov r24,r29
- 589 0074 9C2F mov r25,r28
- 590 .L44:
- 591 /* epilogue start */
- 592 0076 DF91 pop r29
- 593 0078 CF91 pop r28
- 594 007a 1F91 pop r17
- 595 007c 0F91 pop r16
- 596 007e FF90 pop r15
- 597 0080 EF90 pop r14
- 598 0082 DF90 pop r13
- 599 0084 CF90 pop r12
- 600 0086 BF90 pop r11
- 601 0088 AF90 pop r10
- 602 008a 0895 ret
- 603 .size SpiAt45dPageRead, .-SpiAt45dPageRead
- 604 .section .text.SpiAt45dPageWrite,"ax",@progbits
- 605 .global SpiAt45dPageWrite
- 606 .type SpiAt45dPageWrite, @function
- 607 SpiAt45dPageWrite:
- 608 0000 2F92 push r2
- 609 0002 3F92 push r3
- 610 0004 4F92 push r4
- 611 0006 5F92 push r5
- 612 0008 6F92 push r6
- 613 000a 7F92 push r7
- 614 000c 8F92 push r8
- 615 000e 9F92 push r9
- 616 0010 AF92 push r10
- 617 0012 BF92 push r11
- 618 0014 CF92 push r12
- 619 0016 DF92 push r13
- 620 0018 EF92 push r14
- 621 001a FF92 push r15
- 622 001c 0F93 push r16
- 623 001e 1F93 push r17
- 624 0020 CF93 push r28
- 625 0022 DF93 push r29
- 626 0024 CDB7 in r28,__SP_L__
- 627 0026 DEB7 in r29,__SP_H__
- GAS LISTING /tmp/cc2yJz4P.s page 12
- 628 0028 2B97 sbiw r28,11
- 629 002a 0FB6 in __tmp_reg__,__SREG__
- 630 002c F894 cli
- 631 002e DEBF out __SP_H__,r29
- 632 0030 0FBE out __SREG__,__tmp_reg__
- 633 0032 CDBF out __SP_L__,r28
- 634 /* prologue: function */
- 635 /* frame size = 11 */
- 636 /* stack size = 29 */
- 637 .L__stack_usage = 29
- 638 0034 2A01 movw r4,r20
- 639 0036 3B01 movw r6,r22
- 640 0038 3C83 std Y+4,r19
- 641 003a 2B83 std Y+3,r18
- 642 003c 4801 movw r8,r16
- 643 003e 012B or r16,r17
- 644 0040 01F4 brne .+2
- 645 0042 00C0 rjmp .L56
- 646 0044 DC01 movw r26,r24
- 647 0046 1F96 adiw r26,15
- 648 0048 0D90 ld __tmp_reg__,X+
- 649 004a BC91 ld r27,X
- 650 004c A02D mov r26,__tmp_reg__
- 651 004e BA83 std Y+2,r27
- 652 0050 A983 std Y+1,r26
- 653 0052 DC01 movw r26,r24
- 654 0054 5196 adiw r26,17
- 655 0056 ED91 ld r30,X+
- 656 0058 FC91 ld r31,X
- 657 005a 5297 sbiw r26,17+1
- 658 005c 2081 ld r18,Z
- 659 005e 3181 ldd r19,Z+1
- 660 0060 F901 movw r30,r18
- 661 0062 F081 ld r31,Z
- 662 0064 FD83 std Y+5,r31
- 663 0066 D901 movw r26,r18
- 664 0068 1596 adiw r26,5
- 665 006a 2D90 ld r2,X+
- 666 006c 3C90 ld r3,X
- 667 006e 1697 sbiw r26,5+1
- 668 0070 1196 adiw r26,1
- 669 0072 8D91 ld r24,X+
- 670 0074 9D91 ld r25,X+
- 671 0076 0D90 ld __tmp_reg__,X+
- 672 0078 BC91 ld r27,X
- 673 007a A02D mov r26,__tmp_reg__
- 674 007c 8E83 std Y+6,r24
- 675 007e 9F83 std Y+7,r25
- 676 0080 A887 std Y+8,r26
- 677 0082 B987 std Y+9,r27
- 678 0084 EFEF ldi r30,lo8(-1)
- 679 0086 FFEF ldi r31,lo8(-1)
- 680 0088 FB87 std Y+11,r31
- 681 008a EA87 std Y+10,r30
- 682 .L53:
- 683 008c 8214 cp r8,r2
- 684 008e 9304 cpc r9,r3
- GAS LISTING /tmp/cc2yJz4P.s page 13
- 685 0090 04F4 brge .L48
- 686 0092 1401 movw r2,r8
- 687 .L48:
- 688 0094 5101 movw r10,r2
- 689 0096 C12C mov r12,__zero_reg__
- 690 0098 D12C mov r13,__zero_reg__
- 691 009a EB80 ldd r14,Y+3
- 692 009c FC80 ldd r15,Y+4
- 693 009e 04E0 ldi r16,lo8(4)
- 694 00a0 10E0 ldi r17,0
- 695 00a2 20E0 ldi r18,0
- 696 00a4 30E0 ldi r19,0
- 697 00a6 A901 movw r20,r18
- 698 00a8 64E8 ldi r22,lo8(-124)
- 699 00aa 8981 ldd r24,Y+1
- 700 00ac 9A81 ldd r25,Y+2
- 701 00ae 0E94 0000 call At45dCommand
- 702 00b2 892B or r24,r25
- 703 00b4 01F0 breq .+2
- 704 00b6 00C0 rjmp .L60
- 705 00b8 A12C mov r10,__zero_reg__
- 706 00ba B12C mov r11,__zero_reg__
- 707 00bc E12C mov r14,__zero_reg__
- 708 00be F12C mov r15,__zero_reg__
- 709 00c0 A301 movw r20,r6
- 710 00c2 9201 movw r18,r4
- 711 00c4 0D80 ldd r0,Y+5
- 712 00c6 00C0 rjmp 2f
- 713 1:
- 714 00c8 220F lsl r18
- 715 00ca 331F rol r19
- 716 00cc 441F rol r20
- 717 00ce 551F rol r21
- 718 2:
- 719 00d0 0A94 dec r0
- 720 00d2 02F4 brpl 1b
- 721 00d4 63E8 ldi r22,lo8(-125)
- 722 00d6 8981 ldd r24,Y+1
- 723 00d8 9A81 ldd r25,Y+2
- 724 00da 0E94 0000 call At45dCommand
- 725 00de 892B or r24,r25
- 726 00e0 01F4 brne .L60
- 727 00e2 00E0 ldi r16,0
- 728 00e4 10E0 ldi r17,0
- 729 .L50:
- 730 00e6 8981 ldd r24,Y+1
- 731 00e8 9A81 ldd r25,Y+2
- 732 00ea 0E94 0000 call At45dStatus
- 733 00ee 87FD sbrc r24,7
- 734 00f0 00C0 rjmp .L65
- 735 00f2 0F5F subi r16,-1
- 736 00f4 1F4F sbci r17,-1
- 737 00f6 093E cpi r16,-23
- 738 00f8 F3E0 ldi r31,3
- 739 00fa 1F07 cpc r17,r31
- 740 00fc 01F4 brne .L50
- 741 00fe 00C0 rjmp .L60
- GAS LISTING /tmp/cc2yJz4P.s page 14
- 742 .L56:
- 743 0100 80E0 ldi r24,0
- 744 0102 90E0 ldi r25,0
- 745 0104 00C0 rjmp .L63
- 746 .L65:
- 747 0106 8A85 ldd r24,Y+10
- 748 0108 9B85 ldd r25,Y+11
- 749 010a 97FF sbrs r25,7
- 750 010c 00C0 rjmp .L54
- 751 010e 80E0 ldi r24,0
- 752 0110 90E0 ldi r25,0
- 753 .L54:
- 754 0112 9C01 movw r18,r24
- 755 0114 220D add r18,r2
- 756 0116 331D adc r19,r3
- 757 0118 3B87 std Y+11,r19
- 758 011a 2A87 std Y+10,r18
- 759 011c 8B81 ldd r24,Y+3
- 760 011e 9C81 ldd r25,Y+4
- 761 0120 820D add r24,r2
- 762 0122 931D adc r25,r3
- 763 0124 9C83 std Y+4,r25
- 764 0126 8B83 std Y+3,r24
- 765 0128 8218 sub r8,r2
- 766 012a 9308 sbc r9,r3
- 767 012c 9FEF ldi r25,-1
- 768 012e 491A sub r4,r25
- 769 0130 590A sbc r5,r25
- 770 0132 690A sbc r6,r25
- 771 0134 790A sbc r7,r25
- 772 0136 8E81 ldd r24,Y+6
- 773 0138 9F81 ldd r25,Y+7
- 774 013a A885 ldd r26,Y+8
- 775 013c B985 ldd r27,Y+9
- 776 013e 4816 cp r4,r24
- 777 0140 5906 cpc r5,r25
- 778 0142 6A06 cpc r6,r26
- 779 0144 7B06 cpc r7,r27
- 780 0146 00F4 brsh .L60
- 781 0148 8114 cp r8,__zero_reg__
- 782 014a 9104 cpc r9,__zero_reg__
- 783 014c 01F0 breq .+2
- 784 014e 00C0 rjmp .L53
- 785 .L60:
- 786 0150 8A85 ldd r24,Y+10
- 787 0152 9B85 ldd r25,Y+11
- 788 .L63:
- 789 /* epilogue start */
- 790 0154 2B96 adiw r28,11
- 791 0156 0FB6 in __tmp_reg__,__SREG__
- 792 0158 F894 cli
- 793 015a DEBF out __SP_H__,r29
- 794 015c 0FBE out __SREG__,__tmp_reg__
- 795 015e CDBF out __SP_L__,r28
- 796 0160 DF91 pop r29
- 797 0162 CF91 pop r28
- 798 0164 1F91 pop r17
- GAS LISTING /tmp/cc2yJz4P.s page 15
- 799 0166 0F91 pop r16
- 800 0168 FF90 pop r15
- 801 016a EF90 pop r14
- 802 016c DF90 pop r13
- 803 016e CF90 pop r12
- 804 0170 BF90 pop r11
- 805 0172 AF90 pop r10
- 806 0174 9F90 pop r9
- 807 0176 8F90 pop r8
- 808 0178 7F90 pop r7
- 809 017a 6F90 pop r6
- 810 017c 5F90 pop r5
- 811 017e 4F90 pop r4
- 812 0180 3F90 pop r3
- 813 0182 2F90 pop r2
- 814 0184 0895 ret
- 815 .size SpiAt45dPageWrite, .-SpiAt45dPageWrite
- 816 .section .text.SpiAt45dPageWrite_P,"ax",@progbits
- 817 .global SpiAt45dPageWrite_P
- 818 .type SpiAt45dPageWrite_P, @function
- 819 SpiAt45dPageWrite_P:
- 820 /* prologue: function */
- 821 /* frame size = 0 */
- 822 /* stack size = 0 */
- 823 .L__stack_usage = 0
- 824 0000 8FEF ldi r24,lo8(-1)
- 825 0002 9FEF ldi r25,lo8(-1)
- 826 0004 0895 ret
- 827 .size SpiAt45dPageWrite_P, .-SpiAt45dPageWrite_P
- 828 .section .text.SpiAt45dPages,"ax",@progbits
- 829 .global SpiAt45dPages
- 830 .type SpiAt45dPages, @function
- 831 SpiAt45dPages:
- 832 /* prologue: function */
- 833 /* frame size = 0 */
- 834 /* stack size = 0 */
- 835 .L__stack_usage = 0
- 836 0000 DC01 movw r26,r24
- 837 0002 5196 adiw r26,17
- 838 0004 ED91 ld r30,X+
- 839 0006 FC91 ld r31,X
- 840 0008 5297 sbiw r26,17+1
- 841 000a 0190 ld __tmp_reg__,Z+
- 842 000c F081 ld r31,Z
- 843 000e E02D mov r30,__tmp_reg__
- 844 0010 6181 ldd r22,Z+1
- 845 0012 7281 ldd r23,Z+2
- 846 0014 8381 ldd r24,Z+3
- 847 0016 9481 ldd r25,Z+4
- 848 0018 0895 ret
- 849 .size SpiAt45dPages, .-SpiAt45dPages
- 850 .section .text.SpiAt45dPageSize,"ax",@progbits
- 851 .global SpiAt45dPageSize
- 852 .type SpiAt45dPageSize, @function
- 853 SpiAt45dPageSize:
- 854 /* prologue: function */
- 855 /* frame size = 0 */
- GAS LISTING /tmp/cc2yJz4P.s page 16
- 856 /* stack size = 0 */
- 857 .L__stack_usage = 0
- 858 0000 DC01 movw r26,r24
- 859 0002 5196 adiw r26,17
- 860 0004 ED91 ld r30,X+
- 861 0006 FC91 ld r31,X
- 862 0008 5297 sbiw r26,17+1
- 863 000a 0190 ld __tmp_reg__,Z+
- 864 000c F081 ld r31,Z
- 865 000e E02D mov r30,__tmp_reg__
- 866 0010 8581 ldd r24,Z+5
- 867 0012 9681 ldd r25,Z+6
- 868 0014 0895 ret
- 869 .size SpiAt45dPageSize, .-SpiAt45dPageSize
- 870 .section .text.SpiAt45dIOCtl,"ax",@progbits
- 871 .global SpiAt45dIOCtl
- 872 .type SpiAt45dIOCtl, @function
- 873 SpiAt45dIOCtl:
- 874 /* prologue: function */
- 875 /* frame size = 0 */
- 876 /* stack size = 0 */
- 877 .L__stack_usage = 0
- 878 0000 6115 cp r22,__zero_reg__
- 879 0002 82E1 ldi r24,18
- 880 0004 7807 cpc r23,r24
- 881 0006 01F0 breq .L71
- 882 0008 6130 cpi r22,1
- 883 000a 7241 sbci r23,18
- 884 000c 01F4 brne .L76
- 885 000e FA01 movw r30,r20
- 886 0010 1182 std Z+1,__zero_reg__
- 887 0012 1082 st Z,__zero_reg__
- 888 0014 00C0 rjmp .L75
- 889 .L71:
- 890 0016 81E0 ldi r24,lo8(1)
- 891 0018 90E0 ldi r25,0
- 892 001a FA01 movw r30,r20
- 893 001c 9183 std Z+1,r25
- 894 001e 8083 st Z,r24
- 895 .L75:
- 896 0020 80E0 ldi r24,0
- 897 0022 90E0 ldi r25,0
- 898 0024 0895 ret
- 899 .L76:
- 900 0026 8FEF ldi r24,lo8(-1)
- 901 0028 9FEF ldi r25,lo8(-1)
- 902 002a 0895 ret
- 903 .size SpiAt45dIOCtl, .-SpiAt45dIOCtl
- 904 .ident "GCC: (GNU) 5.3.0"
- GAS LISTING /tmp/cc2yJz4P.s page 17
- DEFINED SYMBOLS
- *ABS*:0000000000000000 spi_at45d.c
- /tmp/cc2yJz4P.s:2 *ABS*:000000000000003e __SP_H__
- /tmp/cc2yJz4P.s:3 *ABS*:000000000000003d __SP_L__
- /tmp/cc2yJz4P.s:4 *ABS*:000000000000003f __SREG__
- /tmp/cc2yJz4P.s:5 *ABS*:000000000000003b __RAMPZ__
- /tmp/cc2yJz4P.s:6 *ABS*:0000000000000000 __tmp_reg__
- /tmp/cc2yJz4P.s:7 *ABS*:0000000000000001 __zero_reg__
- /tmp/cc2yJz4P.s:10 .text.At45dStatus:0000000000000000 At45dStatus
- /tmp/cc2yJz4P.s:101 .text.At45dCommand:0000000000000000 At45dCommand
- /tmp/cc2yJz4P.s:240 .text.SpiAt45dCommand:0000000000000000 SpiAt45dCommand
- /tmp/cc2yJz4P.s:271 .text.SpiAt45dStatus:0000000000000000 SpiAt45dStatus
- /tmp/cc2yJz4P.s:284 .text.SpiAt45dWaitReady:0000000000000000 SpiAt45dWaitReady
- /tmp/cc2yJz4P.s:351 .text.SpiAt45dPageErase:0000000000000000 SpiAt45dPageErase
- /tmp/cc2yJz4P.s:426 .text.SpiAt45dChipErase:0000000000000000 SpiAt45dChipErase
- /tmp/cc2yJz4P.s:438 .text.SpiAt45dInit:0000000000000000 SpiAt45dInit
- /tmp/cc2yJz4P.s:523 .text.SpiAt45dPageRead:0000000000000000 SpiAt45dPageRead
- /tmp/cc2yJz4P.s:607 .text.SpiAt45dPageWrite:0000000000000000 SpiAt45dPageWrite
- /tmp/cc2yJz4P.s:819 .text.SpiAt45dPageWrite_P:0000000000000000 SpiAt45dPageWrite_P
- /tmp/cc2yJz4P.s:831 .text.SpiAt45dPages:0000000000000000 SpiAt45dPages
- /tmp/cc2yJz4P.s:853 .text.SpiAt45dPageSize:0000000000000000 SpiAt45dPageSize
- /tmp/cc2yJz4P.s:873 .text.SpiAt45dIOCtl:0000000000000000 SpiAt45dIOCtl
- UNDEFINED SYMBOLS
- memset
- NutSleep
- at45d_known_types
- at45d_info
|