summaryrefslogtreecommitdiffstats
path: root/firmware/main.c.lst
diff options
context:
space:
mode:
authorJenna Fox <a@creativepony.com>2012-09-23 16:09:28 +1000
committerJenna Fox <a@creativepony.com>2012-09-23 16:09:28 +1000
commit824c303782a62b57b6525875b3c2dee81056baa4 (patch)
tree03ce927f2481dd43e8531abaa4abef159b73db75 /firmware/main.c.lst
downloadmicronucleus-824c303782a62b57b6525875b3c2dee81056baa4.tar.gz
micronucleus-824c303782a62b57b6525875b3c2dee81056baa4.tar.bz2
micronucleus-824c303782a62b57b6525875b3c2dee81056baa4.zip
Begin work to convert embedded-creations USBaspLoader-tiny85 port to bootloadHID
Diffstat (limited to 'firmware/main.c.lst')
-rw-r--r--firmware/main.c.lst1200
1 files changed, 1200 insertions, 0 deletions
diff --git a/firmware/main.c.lst b/firmware/main.c.lst
new file mode 100644
index 0000000..8cbc971
--- /dev/null
+++ b/firmware/main.c.lst
@@ -0,0 +1,1200 @@
+GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 1
+
+
+ 1 .file "main.c"
+ 2 __SREG__ = 0x3f
+ 3 __SP_H__ = 0x3e
+ 4 __SP_L__ = 0x3d
+ 5 __CCP__ = 0x34
+ 6 __tmp_reg__ = 0
+ 7 __zero_reg__ = 1
+ 8 .text
+ 9 .type writeFlashPage, @function
+ 10 writeFlashPage:
+ 11 /* prologue: function */
+ 12 /* frame size = 0 */
+ 13 /* stack size = 0 */
+ 14 .L__stack_usage = 0
+ 15 0000 8091 0000 lds r24,needToErase
+ 16 0004 8823 tst r24
+ 17 0006 01F0 breq .L2
+ 18 0008 E091 0000 lds r30,currentAddress
+ 19 000c F091 0000 lds r31,currentAddress+1
+ 20 0010 3297 sbiw r30,2
+ 21 0012 83E0 ldi r24,lo8(3)
+ 22 /* #APP */
+ 23 ; 140 "main.c" 1
+ 24 0014 8093 5700 sts 87, r24
+ 25 0018 E895 spm
+ 26
+ 27 ; 0 "" 2
+ 28 /* #NOAPP */
+ 29 .L3:
+ 30 001a 07B6 in __tmp_reg__,87-32
+ 31 001c 00FC sbrc __tmp_reg__,0
+ 32 001e 00C0 rjmp .L3
+ 33 .L2:
+ 34 0020 E091 0000 lds r30,currentAddress
+ 35 0024 F091 0000 lds r31,currentAddress+1
+ 36 0028 3297 sbiw r30,2
+ 37 002a 85E0 ldi r24,lo8(5)
+ 38 /* #APP */
+ 39 ; 144 "main.c" 1
+ 40 002c 8093 5700 sts 87, r24
+ 41 0030 E895 spm
+ 42
+ 43 ; 0 "" 2
+ 44 /* #NOAPP */
+ 45 .L4:
+ 46 0032 07B6 in __tmp_reg__,87-32
+ 47 0034 00FC sbrc __tmp_reg__,0
+ 48 0036 00C0 rjmp .L4
+ 49 0038 1092 0000 sts needToErase,__zero_reg__
+ 50 /* epilogue start */
+ 51 003c 0895 ret
+ 52 .size writeFlashPage, .-writeFlashPage
+ 53 .type writeWordToPageBuffer, @function
+ 54 writeWordToPageBuffer:
+ 55 /* prologue: function */
+ 56 /* frame size = 0 */
+ 57 /* stack size = 0 */
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 2
+
+
+ 58 .L__stack_usage = 0
+ 59 003e 2091 0000 lds r18,currentAddress
+ 60 0042 3091 0000 lds r19,currentAddress+1
+ 61 0046 2115 cp r18,__zero_reg__
+ 62 0048 3105 cpc r19,__zero_reg__
+ 63 004a 01F0 breq .L11
+ 64 004c 2430 cpi r18,4
+ 65 004e 3105 cpc r19,__zero_reg__
+ 66 0050 01F0 breq .L12
+ 67 0052 44E1 ldi r20,hi8(5370)
+ 68 0054 2A3F cpi r18,lo8(5370)
+ 69 0056 3407 cpc r19,r20
+ 70 0058 01F4 brne .L8
+ 71 005a 8091 0000 lds r24,checksum
+ 72 005e 8195 neg r24
+ 73 0060 90E0 ldi r25,lo8(0)
+ 74 0062 00C0 rjmp .L6
+ 75 .L8:
+ 76 0064 44E1 ldi r20,hi8(5372)
+ 77 0066 2C3F cpi r18,lo8(5372)
+ 78 0068 3407 cpc r19,r20
+ 79 006a 01F4 brne .L7
+ 80 006c 8091 0000 lds r24,vectorTemp
+ 81 0070 9091 0000 lds r25,vectorTemp+1
+ 82 0074 8E57 subi r24,lo8(-(1410))
+ 83 0076 9A4F sbci r25,hi8(-(1410))
+ 84 0078 00C0 rjmp .L6
+ 85 .L12:
+ 86 007a 8FE7 ldi r24,lo8(-13697)
+ 87 007c 9AEC ldi r25,hi8(-13697)
+ 88 .L7:
+ 89 007e 44E1 ldi r20,hi8(5374)
+ 90 0080 2E3F cpi r18,lo8(5374)
+ 91 0082 3407 cpc r19,r20
+ 92 0084 01F4 brne .L6
+ 93 0086 8091 0000 lds r24,vectorTemp+2
+ 94 008a 9091 0000 lds r25,vectorTemp+2+1
+ 95 008e 8D57 subi r24,lo8(-(1411))
+ 96 0090 9A4F sbci r25,hi8(-(1411))
+ 97 0092 00C0 rjmp .L6
+ 98 .L11:
+ 99 0094 8FE7 ldi r24,lo8(-13697)
+ 100 0096 9AEC ldi r25,hi8(-13697)
+ 101 .L6:
+ 102 0098 682F mov r22,r24
+ 103 009a 70E0 ldi r23,lo8(0)
+ 104 009c 690F add r22,r25
+ 105 009e 711D adc r23,__zero_reg__
+ 106 00a0 4091 0000 lds r20,checksum
+ 107 00a4 5091 0000 lds r21,checksum+1
+ 108 00a8 460F add r20,r22
+ 109 00aa 571F adc r21,r23
+ 110 00ac 5093 0000 sts checksum+1,r21
+ 111 00b0 4093 0000 sts checksum,r20
+ 112 00b4 2115 cp r18,__zero_reg__
+ 113 00b6 3105 cpc r19,__zero_reg__
+ 114 00b8 01F4 brne .L9
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 3
+
+
+ 115 00ba 21E1 ldi r18,lo8(17)
+ 116 /* #APP */
+ 117 ; 188 "main.c" 1
+ 118 00bc 2093 5700 sts 87, r18
+ 119 00c0 E895 spm
+ 120
+ 121 ; 0 "" 2
+ 122 /* #NOAPP */
+ 123 .L9:
+ 124 /* #APP */
+ 125 ; 190 "main.c" 1
+ 126 00c2 F894 cli
+ 127 ; 0 "" 2
+ 128 /* #NOAPP */
+ 129 00c4 61E0 ldi r22,lo8(1)
+ 130 00c6 E091 0000 lds r30,currentAddress
+ 131 00ca F091 0000 lds r31,currentAddress+1
+ 132 /* #APP */
+ 133 ; 191 "main.c" 1
+ 134 00ce 0C01 movw r0, r24
+ 135 00d0 6093 5700 sts 87, r22
+ 136 00d4 E895 spm
+ 137 00d6 1124 clr r1
+ 138
+ 139 ; 0 "" 2
+ 140 ; 192 "main.c" 1
+ 141 00d8 7894 sei
+ 142 ; 0 "" 2
+ 143 /* #NOAPP */
+ 144 00da 2091 0000 lds r18,currentAddress
+ 145 00de 3091 0000 lds r19,currentAddress+1
+ 146 00e2 F901 movw r30,r18
+ 147 /* #APP */
+ 148 ; 195 "main.c" 1
+ 149 00e4 4591 lpm r20, Z+
+ 150 00e6 5491 lpm r21, Z
+ 151
+ 152 ; 0 "" 2
+ 153 /* #NOAPP */
+ 154 00e8 4817 cp r20,r24
+ 155 00ea 5907 cpc r21,r25
+ 156 00ec 01F0 breq .L10
+ 157 00ee 8FEF ldi r24,hi8(-1)
+ 158 00f0 4F3F cpi r20,lo8(-1)
+ 159 00f2 5807 cpc r21,r24
+ 160 00f4 01F0 breq .L10
+ 161 00f6 6093 0000 sts needToErase,r22
+ 162 .L10:
+ 163 00fa 2E5F subi r18,lo8(-(2))
+ 164 00fc 3F4F sbci r19,hi8(-(2))
+ 165 00fe 3093 0000 sts currentAddress+1,r19
+ 166 0102 2093 0000 sts currentAddress,r18
+ 167 /* epilogue start */
+ 168 0106 0895 ret
+ 169 .size writeWordToPageBuffer, .-writeWordToPageBuffer
+ 170 .type fillFlashWithVectors, @function
+ 171 fillFlashWithVectors:
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 4
+
+
+ 172 0108 CF93 push r28
+ 173 010a DF93 push r29
+ 174 /* prologue: function */
+ 175 /* frame size = 0 */
+ 176 /* stack size = 2 */
+ 177 .L__stack_usage = 2
+ 178 010c C091 0000 lds r28,currentAddress
+ 179 0110 D091 0000 lds r29,currentAddress+1
+ 180 0114 CF73 andi r28,lo8(63)
+ 181 0116 D070 andi r29,hi8(63)
+ 182 .L14:
+ 183 0118 8FEF ldi r24,lo8(-1)
+ 184 011a 9FEF ldi r25,hi8(-1)
+ 185 011c 00D0 rcall writeWordToPageBuffer
+ 186 011e 2296 adiw r28,2
+ 187 0120 C034 cpi r28,64
+ 188 0122 D105 cpc r29,__zero_reg__
+ 189 0124 04F0 brlt .L14
+ 190 0126 00D0 rcall writeFlashPage
+ 191 /* epilogue start */
+ 192 0128 DF91 pop r29
+ 193 012a CF91 pop r28
+ 194 012c 0895 ret
+ 195 .size fillFlashWithVectors, .-fillFlashWithVectors
+ 196 .type testForValidApplication, @function
+ 197 testForValidApplication:
+ 198 /* prologue: function */
+ 199 /* frame size = 0 */
+ 200 /* stack size = 0 */
+ 201 .L__stack_usage = 0
+ 202 012e 80E0 ldi r24,lo8(0)
+ 203 0130 E0E0 ldi r30,lo8(0)
+ 204 0132 F0E0 ldi r31,hi8(0)
+ 205 .L16:
+ 206 /* #APP */
+ 207 ; 244 "main.c" 1
+ 208 0134 9491 lpm r25, Z
+ 209
+ 210 ; 0 "" 2
+ 211 /* #NOAPP */
+ 212 0136 890F add r24,r25
+ 213 0138 3196 adiw r30,1
+ 214 013a 94E1 ldi r25,hi8(5371)
+ 215 013c EB3F cpi r30,lo8(5371)
+ 216 013e F907 cpc r31,r25
+ 217 0140 01F4 brne .L16
+ 218 0142 21E0 ldi r18,lo8(1)
+ 219 0144 30E0 ldi r19,hi8(1)
+ 220 0146 8823 tst r24
+ 221 0148 01F0 breq .L17
+ 222 014a 20E0 ldi r18,lo8(0)
+ 223 014c 30E0 ldi r19,hi8(0)
+ 224 .L17:
+ 225 014e C901 movw r24,r18
+ 226 /* epilogue start */
+ 227 0150 0895 ret
+ 228 .size testForValidApplication, .-testForValidApplication
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 5
+
+
+ 229 .global ma
+ 230 .type ma, @function
+ 231 ma:
+ 232 /* prologue: function */
+ 233 /* frame size = 0 */
+ 234 /* stack size = 0 */
+ 235 .L__stack_usage = 0
+ 236 /* #APP */
+ 237 ; 527 "main.c" 1
+ 238 0152 00EB ldi r16, 0xB0
+ 239 ; 0 "" 2
+ 240 ; 528 "main.c" 1
+ 241 0154 0F93 push r16
+ 242 ; 0 "" 2
+ 243 ; 529 "main.c" 1
+ 244 0156 07E0 ldi r16, 0x07
+ 245 ; 0 "" 2
+ 246 ; 530 "main.c" 1
+ 247 0158 0F93 push r16
+ 248 ; 0 "" 2
+ 249 /* epilogue start */
+ 250 /* #NOAPP */
+ 251 015a 0895 ret
+ 252 .size ma, .-ma
+ 253 .global main
+ 254 .type main, @function
+ 255 main:
+ 256 015c DF93 push r29
+ 257 015e CF93 push r28
+ 258 0160 00D0 rcall .
+ 259 0162 0F92 push __tmp_reg__
+ 260 0164 CDB7 in r28,__SP_L__
+ 261 0166 DEB7 in r29,__SP_H__
+ 262 /* prologue: function */
+ 263 /* frame size = 3 */
+ 264 /* stack size = 5 */
+ 265 .L__stack_usage = 5
+ 266 0168 88E1 ldi r24,lo8(24)
+ 267 /* #APP */
+ 268 ; 616 "main.c" 1
+ 269 016a 0FB6 in __tmp_reg__, __SREG__
+ 270 016c F894 cli
+ 271 016e 81BD out 33, r24
+ 272 0170 11BC out 33, __zero_reg__
+ 273 0172 0FBE out __SREG__,__tmp_reg__
+ 274
+ 275 ; 0 "" 2
+ 276 /* #NOAPP */
+ 277 0174 E0E0 ldi r30,lo8(0)
+ 278 0176 F0E0 ldi r31,hi8(0)
+ 279 /* #APP */
+ 280 ; 550 "main.c" 1
+ 281 0178 8591 lpm r24, Z+
+ 282 017a 9491 lpm r25, Z
+ 283
+ 284 ; 0 "" 2
+ 285 /* #NOAPP */
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 6
+
+
+ 286 017c 3AEC ldi r19,hi8(-13697)
+ 287 017e 8F37 cpi r24,lo8(-13697)
+ 288 0180 9307 cpc r25,r19
+ 289 0182 01F4 brne .L20
+ 290 0184 E4E0 ldi r30,lo8(4)
+ 291 0186 F0E0 ldi r31,hi8(4)
+ 292 /* #APP */
+ 293 ; 551 "main.c" 1
+ 294 0188 8591 lpm r24, Z+
+ 295 018a 9491 lpm r25, Z
+ 296
+ 297 ; 0 "" 2
+ 298 /* #NOAPP */
+ 299 018c 4AEC ldi r20,hi8(-13697)
+ 300 018e 8F37 cpi r24,lo8(-13697)
+ 301 0190 9407 cpc r25,r20
+ 302 0192 01F0 breq .L21
+ 303 .L20:
+ 304 0194 2B83 std Y+3,r18
+ 305 0196 00D0 rcall fillFlashWithVectors
+ 306 0198 2B81 ldd r18,Y+3
+ 307 .L21:
+ 308 019a 1092 0000 sts currentAddress+1,__zero_reg__
+ 309 019e 1092 0000 sts currentAddress,__zero_reg__
+ 310 01a2 1092 0000 sts checksum+1,__zero_reg__
+ 311 01a6 1092 0000 sts checksum,__zero_reg__
+ 312 01aa 2B83 std Y+3,r18
+ 313 01ac 00D0 rcall testForValidApplication
+ 314 01ae 6C01 movw r12,r24
+ 315 01b0 AC9A sbi 53-32,4
+ 316 01b2 8BB7 in r24,91-32
+ 317 01b4 8062 ori r24,lo8(32)
+ 318 01b6 8BBF out 91-32,r24
+ 319 01b8 BB9A sbi 55-32,3
+ 320 01ba 8FE4 ldi r24,lo8(1649999)
+ 321 01bc 9DE2 ldi r25,hi8(1649999)
+ 322 01be A9E1 ldi r26,hlo8(1649999)
+ 323 01c0 8150 1:subi r24,1
+ 324 01c2 9040 sbci r25,0
+ 325 01c4 A040 sbci r26,0
+ 326 01c6 01F4 brne 1b
+ 327 01c8 00C0 rjmp .
+ 328 01ca 0000 nop
+ 329 01cc BB98 cbi 55-32,3
+ 330 /* #APP */
+ 331 ; 543 "main.c" 1
+ 332 01ce 7894 sei
+ 333 ; 0 "" 2
+ 334 /* #NOAPP */
+ 335 01d0 00E0 ldi r16,lo8(0)
+ 336 01d2 10E0 ldi r17,hi8(0)
+ 337 01d4 2B81 ldd r18,Y+3
+ 338 .L99:
+ 339 01d6 8091 0000 lds r24,usbRxLen
+ 340 01da 8350 subi r24,lo8(-(-3))
+ 341 01dc 87FD sbrc r24,7
+ 342 01de 00C0 rjmp .L23
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 7
+
+
+ 343 01e0 9091 0000 lds r25,usbInputBufOffset
+ 344 01e4 3CE0 ldi r19,lo8(12)
+ 345 01e6 E32E mov r14,r19
+ 346 01e8 F12C mov r15,__zero_reg__
+ 347 01ea E91A sub r14,r25
+ 348 01ec F108 sbc r15,__zero_reg__
+ 349 01ee A0E0 ldi r26,lo8(usbRxBuf)
+ 350 01f0 B0E0 ldi r27,hi8(usbRxBuf)
+ 351 01f2 EA0E add r14,r26
+ 352 01f4 FB1E adc r15,r27
+ 353 01f6 9091 0000 lds r25,usbRxToken
+ 354 01fa 9D32 cpi r25,lo8(45)
+ 355 01fc 01F0 breq .+2
+ 356 01fe 00C0 rjmp .L24
+ 357 0200 8830 cpi r24,lo8(8)
+ 358 0202 01F0 breq .+2
+ 359 0204 00C0 rjmp .L25
+ 360 0206 4701 movw r8,r14
+ 361 0208 83EC ldi r24,lo8(-61)
+ 362 020a 8093 0000 sts usbTxBuf,r24
+ 363 020e 8AE5 ldi r24,lo8(90)
+ 364 0210 8093 0000 sts usbTxLen,r24
+ 365 0214 1092 0000 sts usbMsgFlags,__zero_reg__
+ 366 0218 F701 movw r30,r14
+ 367 021a 4081 ld r20,Z
+ 368 021c 842F mov r24,r20
+ 369 021e 8076 andi r24,lo8(96)
+ 370 0220 2181 ldd r18,Z+1
+ 371 0222 8823 tst r24
+ 372 0224 01F4 brne .+2
+ 373 0226 00C0 rjmp .L26
+ 374 0228 31E0 ldi r19,lo8(1)
+ 375 022a 3093 0000 sts connectedToPc,r19
+ 376 022e 80E0 ldi r24,lo8(replyBuffer.1902)
+ 377 0230 90E0 ldi r25,hi8(replyBuffer.1902)
+ 378 0232 9093 0000 sts usbMsgPtr+1,r25
+ 379 0236 8093 0000 sts usbMsgPtr,r24
+ 380 023a 2330 cpi r18,lo8(3)
+ 381 023c 01F4 brne .L27
+ 382 023e D701 movw r26,r14
+ 383 0240 1296 adiw r26,2
+ 384 0242 8C91 ld r24,X
+ 385 0244 1297 sbiw r26,2
+ 386 0246 8033 cpi r24,lo8(48)
+ 387 0248 01F4 brne .L88
+ 388 024a 1496 adiw r26,4
+ 389 024c EC91 ld r30,X
+ 390 024e 1497 sbiw r26,4
+ 391 0250 E370 andi r30,lo8(3)
+ 392 0252 F0E0 ldi r31,lo8(0)
+ 393 0254 E050 subi r30,lo8(-(signatureBytes))
+ 394 0256 F040 sbci r31,hi8(-(signatureBytes))
+ 395 0258 8081 ld r24,Z
+ 396 025a 00C0 rjmp .L28
+ 397 .L88:
+ 398 025c 80E0 ldi r24,lo8(0)
+ 399 .L28:
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 8
+
+
+ 400 025e 8093 0000 sts replyBuffer.1902+3,r24
+ 401 0262 24E0 ldi r18,lo8(4)
+ 402 0264 00C0 rjmp .L33
+ 403 .L27:
+ 404 0266 2530 cpi r18,lo8(5)
+ 405 0268 01F0 breq .L89
+ 406 026a 822F mov r24,r18
+ 407 026c 8450 subi r24,lo8(-(-4))
+ 408 026e 8630 cpi r24,lo8(6)
+ 409 0270 00F4 brsh .L30
+ 410 0272 F701 movw r30,r14
+ 411 0274 8281 ldd r24,Z+2
+ 412 0276 9381 ldd r25,Z+3
+ 413 0278 9093 0000 sts currentAddress+1,r25
+ 414 027c 8093 0000 sts currentAddress,r24
+ 415 0280 2930 cpi r18,lo8(9)
+ 416 0282 01F0 breq .L91
+ 417 0284 2681 ldd r18,Z+6
+ 418 0286 2093 0000 sts bytesRemaining,r18
+ 419 028a 8581 ldd r24,Z+5
+ 420 028c 8270 andi r24,lo8(2)
+ 421 028e 8093 0000 sts isLastPage,r24
+ 422 0292 47FD sbrc r20,7
+ 423 0294 00C0 rjmp .L32
+ 424 0296 2FEF ldi r18,lo8(-1)
+ 425 0298 00C0 rjmp .L32
+ 426 .L30:
+ 427 029a 2230 cpi r18,lo8(2)
+ 428 029c 01F4 brne .L91
+ 429 029e 3093 0000 sts requestBootLoaderExit,r19
+ 430 02a2 00C0 rjmp .L91
+ 431 .L89:
+ 432 02a4 21E0 ldi r18,lo8(1)
+ 433 02a6 00C0 rjmp .L33
+ 434 .L91:
+ 435 02a8 20E0 ldi r18,lo8(0)
+ 436 02aa 00C0 rjmp .L33
+ 437 .L26:
+ 438 02ac D701 movw r26,r14
+ 439 02ae 1296 adiw r26,2
+ 440 02b0 8C91 ld r24,X
+ 441 02b2 1297 sbiw r26,2
+ 442 02b4 1092 0000 sts usbTxBuf+9,__zero_reg__
+ 443 02b8 2223 tst r18
+ 444 02ba 01F4 brne .L34
+ 445 02bc 1092 0000 sts usbTxBuf+10,__zero_reg__
+ 446 02c0 80E0 ldi r24,lo8(usbTxBuf+9)
+ 447 02c2 90E0 ldi r25,hi8(usbTxBuf+9)
+ 448 02c4 22E0 ldi r18,lo8(2)
+ 449 02c6 00C0 rjmp .L35
+ 450 .L34:
+ 451 02c8 2530 cpi r18,lo8(5)
+ 452 02ca 01F4 brne .L36
+ 453 02cc 8093 0000 sts usbNewDeviceAddr,r24
+ 454 02d0 00C0 rjmp .L101
+ 455 .L36:
+ 456 02d2 2630 cpi r18,lo8(6)
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 9
+
+
+ 457 02d4 01F4 brne .L37
+ 458 02d6 F701 movw r30,r14
+ 459 02d8 9381 ldd r25,Z+3
+ 460 02da 9130 cpi r25,lo8(1)
+ 461 02dc 01F4 brne .L38
+ 462 02de 80E0 ldi r24,lo8(usbDescriptorDevice)
+ 463 02e0 90E0 ldi r25,hi8(usbDescriptorDevice)
+ 464 02e2 00C0 rjmp .L100
+ 465 .L38:
+ 466 02e4 9230 cpi r25,lo8(2)
+ 467 02e6 01F4 brne .L40
+ 468 02e8 80E0 ldi r24,lo8(usbDescriptorConfiguration)
+ 469 02ea 90E0 ldi r25,hi8(usbDescriptorConfiguration)
+ 470 .L100:
+ 471 02ec 9093 0000 sts usbMsgPtr+1,r25
+ 472 02f0 8093 0000 sts usbMsgPtr,r24
+ 473 02f4 22E1 ldi r18,lo8(18)
+ 474 02f6 00C0 rjmp .L39
+ 475 .L40:
+ 476 02f8 9330 cpi r25,lo8(3)
+ 477 02fa 01F4 brne .L93
+ 478 02fc 8823 tst r24
+ 479 02fe 01F4 brne .L41
+ 480 0300 80E0 ldi r24,lo8(usbDescriptorString0)
+ 481 0302 90E0 ldi r25,hi8(usbDescriptorString0)
+ 482 0304 9093 0000 sts usbMsgPtr+1,r25
+ 483 0308 8093 0000 sts usbMsgPtr,r24
+ 484 030c 24E0 ldi r18,lo8(4)
+ 485 030e 00C0 rjmp .L39
+ 486 .L41:
+ 487 0310 8130 cpi r24,lo8(1)
+ 488 0312 01F4 brne .L42
+ 489 0314 80E0 ldi r24,lo8(usbDescriptorStringVendor)
+ 490 0316 90E0 ldi r25,hi8(usbDescriptorStringVendor)
+ 491 0318 9093 0000 sts usbMsgPtr+1,r25
+ 492 031c 8093 0000 sts usbMsgPtr,r24
+ 493 0320 2CE1 ldi r18,lo8(28)
+ 494 0322 00C0 rjmp .L39
+ 495 .L42:
+ 496 0324 8230 cpi r24,lo8(2)
+ 497 0326 01F4 brne .L93
+ 498 0328 80E0 ldi r24,lo8(usbDescriptorStringDevice)
+ 499 032a 90E0 ldi r25,hi8(usbDescriptorStringDevice)
+ 500 032c 9093 0000 sts usbMsgPtr+1,r25
+ 501 0330 8093 0000 sts usbMsgPtr,r24
+ 502 0334 2EE0 ldi r18,lo8(14)
+ 503 0336 00C0 rjmp .L39
+ 504 .L93:
+ 505 0338 20E0 ldi r18,lo8(0)
+ 506 .L39:
+ 507 033a 80E4 ldi r24,lo8(64)
+ 508 033c 8093 0000 sts usbMsgFlags,r24
+ 509 0340 00C0 rjmp .L33
+ 510 .L37:
+ 511 0342 2830 cpi r18,lo8(8)
+ 512 0344 01F0 breq .L94
+ 513 0346 2930 cpi r18,lo8(9)
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 10
+
+
+ 514 0348 01F4 brne .L44
+ 515 034a 8093 0000 sts usbConfiguration,r24
+ 516 034e 00C0 rjmp .L101
+ 517 .L44:
+ 518 0350 2A30 cpi r18,lo8(10)
+ 519 0352 01F0 breq .L95
+ 520 .L101:
+ 521 0354 80E0 ldi r24,lo8(usbTxBuf+9)
+ 522 0356 90E0 ldi r25,hi8(usbTxBuf+9)
+ 523 0358 20E0 ldi r18,lo8(0)
+ 524 035a 00C0 rjmp .L35
+ 525 .L94:
+ 526 035c 80E0 ldi r24,lo8(usbConfiguration)
+ 527 035e 90E0 ldi r25,hi8(usbConfiguration)
+ 528 0360 00C0 rjmp .L102
+ 529 .L95:
+ 530 0362 80E0 ldi r24,lo8(usbTxBuf+9)
+ 531 0364 90E0 ldi r25,hi8(usbTxBuf+9)
+ 532 .L102:
+ 533 0366 21E0 ldi r18,lo8(1)
+ 534 .L35:
+ 535 0368 9093 0000 sts usbMsgPtr+1,r25
+ 536 036c 8093 0000 sts usbMsgPtr,r24
+ 537 0370 00C0 rjmp .L33
+ 538 .L32:
+ 539 0372 80E8 ldi r24,lo8(-128)
+ 540 0374 8093 0000 sts usbMsgFlags,r24
+ 541 0378 00C0 rjmp .L45
+ 542 .L33:
+ 543 037a D401 movw r26,r8
+ 544 037c 1796 adiw r26,7
+ 545 037e 8C91 ld r24,X
+ 546 0380 1797 sbiw r26,7
+ 547 0382 8823 tst r24
+ 548 0384 01F4 brne .L45
+ 549 0386 1696 adiw r26,6
+ 550 0388 8C91 ld r24,X
+ 551 038a 1697 sbiw r26,6
+ 552 038c 8217 cp r24,r18
+ 553 038e 00F4 brsh .L45
+ 554 0390 282F mov r18,r24
+ 555 .L45:
+ 556 0392 2093 0000 sts usbMsgLen,r18
+ 557 0396 00C0 rjmp .L25
+ 558 .L24:
+ 559 0398 9091 0000 lds r25,usbMsgFlags
+ 560 039c 97FF sbrs r25,7
+ 561 039e 00C0 rjmp .L25
+ 562 03a0 9091 0000 lds r25,bytesRemaining
+ 563 03a4 B82E mov r11,r24
+ 564 03a6 9817 cp r25,r24
+ 565 03a8 00F4 brsh .L46
+ 566 03aa B92E mov r11,r25
+ 567 .L46:
+ 568 03ac 9B19 sub r25,r11
+ 569 03ae 9093 0000 sts bytesRemaining,r25
+ 570 03b2 41E0 ldi r20,lo8(1)
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 11
+
+
+ 571 03b4 9111 cpse r25,__zero_reg__
+ 572 03b6 40E0 ldi r20,lo8(0)
+ 573 .L47:
+ 574 03b8 30E0 ldi r19,lo8(0)
+ 575 03ba 00C0 rjmp .L98
+ 576 .L55:
+ 577 03bc 8091 0000 lds r24,currentAddress
+ 578 03c0 9091 0000 lds r25,currentAddress+1
+ 579 03c4 0097 sbiw r24,0
+ 580 03c6 01F4 brne .L49
+ 581 03c8 F701 movw r30,r14
+ 582 03ca 8081 ld r24,Z
+ 583 03cc 9181 ldd r25,Z+1
+ 584 03ce 9093 0000 sts vectorTemp+1,r25
+ 585 03d2 8093 0000 sts vectorTemp,r24
+ 586 03d6 00C0 rjmp .L50
+ 587 .L49:
+ 588 03d8 8430 cpi r24,4
+ 589 03da 9105 cpc r25,__zero_reg__
+ 590 03dc 01F4 brne .L51
+ 591 03de D701 movw r26,r14
+ 592 03e0 8D91 ld r24,X+
+ 593 03e2 9C91 ld r25,X
+ 594 03e4 1197 sbiw r26,1
+ 595 03e6 9093 0000 sts vectorTemp+2+1,r25
+ 596 03ea 8093 0000 sts vectorTemp+2,r24
+ 597 03ee 00C0 rjmp .L50
+ 598 .L51:
+ 599 03f0 B4E1 ldi r27,hi8(5370)
+ 600 03f2 8A3F cpi r24,lo8(5370)
+ 601 03f4 9B07 cpc r25,r27
+ 602 03f6 00F0 brlo .L50
+ 603 03f8 81E1 ldi r24,lo8(17)
+ 604 /* #APP */
+ 605 ; 438 "main.c" 1
+ 606 03fa 8093 5700 sts 87, r24
+ 607 03fe E895 spm
+ 608
+ 609 ; 0 "" 2
+ 610 /* #NOAPP */
+ 611 0400 00C0 rjmp .L52
+ 612 .L50:
+ 613 0402 3E5F subi r19,lo8(-(2))
+ 614 0404 F701 movw r30,r14
+ 615 0406 8191 ld r24,Z+
+ 616 0408 9191 ld r25,Z+
+ 617 040a 7F01 movw r14,r30
+ 618 040c 2B83 std Y+3,r18
+ 619 040e 3A83 std Y+2,r19
+ 620 0410 4983 std Y+1,r20
+ 621 0412 00D0 rcall writeWordToPageBuffer
+ 622 0414 8091 0000 lds r24,currentAddress
+ 623 0418 9091 0000 lds r25,currentAddress+1
+ 624 041c 8F73 andi r24,lo8(63)
+ 625 041e 9070 andi r25,hi8(63)
+ 626 0420 2B81 ldd r18,Y+3
+ 627 0422 3A81 ldd r19,Y+2
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 12
+
+
+ 628 0424 4981 ldd r20,Y+1
+ 629 0426 0097 sbiw r24,0
+ 630 0428 01F0 breq .L53
+ 631 042a 4423 tst r20
+ 632 042c 01F0 breq .L98
+ 633 042e 3B15 cp r19,r11
+ 634 0430 00F0 brlo .L98
+ 635 0432 8091 0000 lds r24,isLastPage
+ 636 0436 8823 tst r24
+ 637 0438 01F0 breq .L98
+ 638 .L53:
+ 639 043a 81E0 ldi r24,lo8(1)
+ 640 043c 8093 0000 sts flashPageLoaded,r24
+ 641 .L98:
+ 642 0440 3B15 cp r19,r11
+ 643 0442 00F4 brsh .+2
+ 644 0444 00C0 rjmp .L55
+ 645 .L52:
+ 646 0446 4423 tst r20
+ 647 0448 01F0 breq .L25
+ 648 044a 1092 0000 sts usbMsgLen,__zero_reg__
+ 649 .L25:
+ 650 044e 1092 0000 sts usbRxLen,__zero_reg__
+ 651 .L23:
+ 652 0452 8091 0000 lds r24,usbTxLen
+ 653 0456 84FF sbrs r24,4
+ 654 0458 00C0 rjmp .L56
+ 655 045a 8091 0000 lds r24,usbMsgLen
+ 656 045e 8F3F cpi r24,lo8(-1)
+ 657 0460 01F4 brne .+2
+ 658 0462 00C0 rjmp .L56
+ 659 0464 382F mov r19,r24
+ 660 0466 8930 cpi r24,lo8(9)
+ 661 0468 00F0 brlo .L57
+ 662 046a 38E0 ldi r19,lo8(8)
+ 663 .L57:
+ 664 046c 831B sub r24,r19
+ 665 046e 8093 0000 sts usbMsgLen,r24
+ 666 0472 8091 0000 lds r24,usbTxBuf
+ 667 0476 98E8 ldi r25,lo8(-120)
+ 668 0478 8927 eor r24,r25
+ 669 047a 8093 0000 sts usbTxBuf,r24
+ 670 047e 3323 tst r19
+ 671 0480 01F4 brne .+2
+ 672 0482 00C0 rjmp .L58
+ 673 0484 9091 0000 lds r25,usbMsgFlags
+ 674 0488 97FF sbrs r25,7
+ 675 048a 00C0 rjmp .L59
+ 676 048c 8091 0000 lds r24,bytesRemaining
+ 677 0490 8317 cp r24,r19
+ 678 0492 00F4 brsh .L60
+ 679 0494 382F mov r19,r24
+ 680 .L60:
+ 681 0496 831B sub r24,r19
+ 682 0498 8093 0000 sts bytesRemaining,r24
+ 683 049c 7091 0000 lds r23,vectorTemp
+ 684 04a0 6091 0000 lds r22,vectorTemp+1
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 13
+
+
+ 685 04a4 5091 0000 lds r21,vectorTemp+2
+ 686 04a8 4091 0000 lds r20,vectorTemp+3
+ 687 04ac E091 0000 lds r30,currentAddress
+ 688 04b0 F091 0000 lds r31,currentAddress+1
+ 689 04b4 832F mov r24,r19
+ 690 04b6 90E0 ldi r25,lo8(0)
+ 691 04b8 8050 subi r24,lo8(-(usbTxBuf+1))
+ 692 04ba 9040 sbci r25,hi8(-(usbTxBuf+1))
+ 693 04bc A0E0 ldi r26,lo8(usbTxBuf+1)
+ 694 04be B0E0 ldi r27,hi8(usbTxBuf+1)
+ 695 04c0 00C0 rjmp .L61
+ 696 .L66:
+ 697 /* #APP */
+ 698 ; 488 "main.c" 1
+ 699 04c2 E490 lpm r14, Z
+ 700
+ 701 ; 0 "" 2
+ 702 /* #NOAPP */
+ 703 04c4 EC92 st X,r14
+ 704 04c6 3097 sbiw r30,0
+ 705 04c8 01F4 brne .L62
+ 706 04ca 7C93 st X,r23
+ 707 04cc 00C0 rjmp .L63
+ 708 .L62:
+ 709 04ce E130 cpi r30,1
+ 710 04d0 F105 cpc r31,__zero_reg__
+ 711 04d2 01F4 brne .L64
+ 712 04d4 6C93 st X,r22
+ 713 04d6 00C0 rjmp .L65
+ 714 .L64:
+ 715 04d8 E430 cpi r30,4
+ 716 04da F105 cpc r31,__zero_reg__
+ 717 04dc 01F4 brne .L63
+ 718 04de 5C93 st X,r21
+ 719 04e0 00C0 rjmp .L65
+ 720 .L63:
+ 721 04e2 E530 cpi r30,5
+ 722 04e4 F105 cpc r31,__zero_reg__
+ 723 04e6 01F4 brne .L65
+ 724 04e8 4C93 st X,r20
+ 725 .L65:
+ 726 04ea 1196 adiw r26,1
+ 727 04ec 3196 adiw r30,1
+ 728 .L61:
+ 729 04ee A817 cp r26,r24
+ 730 04f0 B907 cpc r27,r25
+ 731 04f2 01F4 brne .L66
+ 732 04f4 F093 0000 sts currentAddress+1,r31
+ 733 04f8 E093 0000 sts currentAddress,r30
+ 734 04fc 00C0 rjmp .L67
+ 735 .L59:
+ 736 04fe E091 0000 lds r30,usbMsgPtr
+ 737 0502 F091 0000 lds r31,usbMsgPtr+1
+ 738 0506 832F mov r24,r19
+ 739 0508 8150 subi r24,lo8(-(-1))
+ 740 050a 96FF sbrs r25,6
+ 741 050c 00C0 rjmp .L68
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 14
+
+
+ 742 050e 90E0 ldi r25,lo8(0)
+ 743 0510 8050 subi r24,lo8(-(usbTxBuf+2))
+ 744 0512 9040 sbci r25,hi8(-(usbTxBuf+2))
+ 745 0514 A0E0 ldi r26,lo8(usbTxBuf+1)
+ 746 0516 B0E0 ldi r27,hi8(usbTxBuf+1)
+ 747 .L69:
+ 748 /* #APP */
+ 749 ; 504 "usbdrv/usbdrv.c" 1
+ 750 0518 4491 lpm r20, Z
+ 751
+ 752 ; 0 "" 2
+ 753 /* #NOAPP */
+ 754 051a 4D93 st X+,r20
+ 755 051c 3196 adiw r30,1
+ 756 051e A817 cp r26,r24
+ 757 0520 B907 cpc r27,r25
+ 758 0522 01F4 brne .L69
+ 759 0524 00C0 rjmp .L70
+ 760 .L68:
+ 761 0526 AF01 movw r20,r30
+ 762 0528 90E0 ldi r25,lo8(0)
+ 763 052a 8050 subi r24,lo8(-(usbTxBuf+2))
+ 764 052c 9040 sbci r25,hi8(-(usbTxBuf+2))
+ 765 052e A0E0 ldi r26,lo8(usbTxBuf+1)
+ 766 0530 B0E0 ldi r27,hi8(usbTxBuf+1)
+ 767 .L71:
+ 768 0532 FA01 movw r30,r20
+ 769 0534 6191 ld r22,Z+
+ 770 0536 AF01 movw r20,r30
+ 771 0538 6D93 st X+,r22
+ 772 053a A817 cp r26,r24
+ 773 053c B907 cpc r27,r25
+ 774 053e 01F4 brne .L71
+ 775 .L70:
+ 776 0540 F093 0000 sts usbMsgPtr+1,r31
+ 777 0544 E093 0000 sts usbMsgPtr,r30
+ 778 .L67:
+ 779 0548 3930 cpi r19,lo8(9)
+ 780 054a 00F4 brsh .L72
+ 781 .L58:
+ 782 054c 80E0 ldi r24,lo8(usbTxBuf+1)
+ 783 054e 90E0 ldi r25,hi8(usbTxBuf+1)
+ 784 0550 632F mov r22,r19
+ 785 0552 2B83 std Y+3,r18
+ 786 0554 3A83 std Y+2,r19
+ 787 0556 00D0 rcall usbCrc16Append
+ 788 0558 3A81 ldd r19,Y+2
+ 789 055a 3C5F subi r19,lo8(-(4))
+ 790 055c 2B81 ldd r18,Y+3
+ 791 055e 3C30 cpi r19,lo8(12)
+ 792 0560 01F0 breq .L73
+ 793 0562 8FEF ldi r24,lo8(-1)
+ 794 0564 8093 0000 sts usbMsgLen,r24
+ 795 0568 00C0 rjmp .L73
+ 796 .L72:
+ 797 056a 8FEF ldi r24,lo8(-1)
+ 798 056c 8093 0000 sts usbMsgLen,r24
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 15
+
+
+ 799 0570 3EE1 ldi r19,lo8(30)
+ 800 .L73:
+ 801 0572 3093 0000 sts usbTxLen,r19
+ 802 .L56:
+ 803 0576 94E1 ldi r25,lo8(20)
+ 804 .L75:
+ 805 0578 86B3 in r24,54-32
+ 806 057a 8871 andi r24,lo8(24)
+ 807 057c 01F4 brne .L74
+ 808 057e 9150 subi r25,lo8(-(-1))
+ 809 0580 01F4 brne .L75
+ 810 0582 1092 0000 sts usbNewDeviceAddr,__zero_reg__
+ 811 0586 1092 0000 sts usbDeviceAddr,__zero_reg__
+ 812 .L74:
+ 813 058a 81E0 ldi r24,lo8(1)
+ 814 058c 9111 cpse r25,__zero_reg__
+ 815 058e 80E0 ldi r24,lo8(0)
+ 816 .L76:
+ 817 0590 9091 0000 lds r25,wasReset.1824
+ 818 0594 9817 cp r25,r24
+ 819 0596 01F0 breq .L77
+ 820 0598 8823 tst r24
+ 821 059a 01F4 brne .L78
+ 822 /* #APP */
+ 823 ; 557 "usbdrv/usbdrv.c" 1
+ 824 059c F894 cli
+ 825 ; 0 "" 2
+ 826 /* #NOAPP */
+ 827 059e 2B83 std Y+3,r18
+ 828 05a0 8983 std Y+1,r24
+ 829 05a2 00D0 rcall calibrateOscillator
+ 830 /* #APP */
+ 831 ; 557 "usbdrv/usbdrv.c" 1
+ 832 05a4 7894 sei
+ 833 ; 0 "" 2
+ 834 /* #NOAPP */
+ 835 05a6 8981 ldd r24,Y+1
+ 836 05a8 2B81 ldd r18,Y+3
+ 837 .L78:
+ 838 05aa 8093 0000 sts wasReset.1824,r24
+ 839 .L77:
+ 840 05ae 8CE9 ldi r24,lo8(412)
+ 841 05b0 91E0 ldi r25,hi8(412)
+ 842 05b2 0197 1:sbiw r24,1
+ 843 05b4 01F4 brne 1b
+ 844 05b6 0000 nop
+ 845 05b8 8091 0000 lds r24,flashPageLoaded
+ 846 05bc 8823 tst r24
+ 847 05be 01F0 breq .L79
+ 848 05c0 A9E3 ldi r26,lo8(8249)
+ 849 05c2 B0E2 ldi r27,hi8(8249)
+ 850 05c4 1197 1:sbiw r26,1
+ 851 05c6 01F4 brne 1b
+ 852 05c8 00C0 rjmp .
+ 853 05ca 0000 nop
+ 854 /* #APP */
+ 855 ; 588 "main.c" 1
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 16
+
+
+ 856 05cc F894 cli
+ 857 ; 0 "" 2
+ 858 /* #NOAPP */
+ 859 05ce 8091 0000 lds r24,currentAddress
+ 860 05d2 9091 0000 lds r25,currentAddress+1
+ 861 05d6 8F73 andi r24,lo8(63)
+ 862 05d8 9070 andi r25,hi8(63)
+ 863 05da 0097 sbiw r24,0
+ 864 05dc 01F0 breq .L80
+ 865 05de 2B83 std Y+3,r18
+ 866 05e0 00D0 rcall fillFlashWithVectors
+ 867 05e2 00C0 rjmp .L103
+ 868 .L80:
+ 869 05e4 2B83 std Y+3,r18
+ 870 05e6 00D0 rcall writeFlashPage
+ 871 .L103:
+ 872 05e8 2B81 ldd r18,Y+3
+ 873 /* #APP */
+ 874 ; 595 "main.c" 1
+ 875 05ea 7894 sei
+ 876 ; 0 "" 2
+ 877 /* #NOAPP */
+ 878 05ec 1092 0000 sts flashPageLoaded,__zero_reg__
+ 879 05f0 8091 0000 lds r24,isLastPage
+ 880 05f4 8823 tst r24
+ 881 05f6 01F0 breq .L79
+ 882 05f8 8091 0000 lds r24,currentAddress
+ 883 05fc 9091 0000 lds r25,currentAddress+1
+ 884 0600 9093 0000 sts writeSize+1,r25
+ 885 0604 8093 0000 sts writeSize,r24
+ 886 0608 81E0 ldi r24,lo8(1)
+ 887 060a 8093 0000 sts appWriteComplete,r24
+ 888 .L79:
+ 889 060e 8091 0000 lds r24,requestBootLoaderExit
+ 890 0612 8823 tst r24
+ 891 0614 01F4 brne .L82
+ 892 0616 0F5F subi r16,lo8(-(1))
+ 893 0618 1F4F sbci r17,hi8(-(1))
+ 894 061a C114 cp r12,__zero_reg__
+ 895 061c D104 cpc r13,__zero_reg__
+ 896 061e 01F4 brne .+2
+ 897 0620 00C0 rjmp .L99
+ 898 0622 8091 0000 lds r24,connectedToPc
+ 899 0626 8823 tst r24
+ 900 0628 01F0 breq .+2
+ 901 062a 00C0 rjmp .L99
+ 902 062c B3EC ldi r27,hi8(-15535)
+ 903 062e 0135 cpi r16,lo8(-15535)
+ 904 0630 1B07 cpc r17,r27
+ 905 0632 00F4 brsh .+2
+ 906 0634 00C0 rjmp .L99
+ 907 .L82:
+ 908 0636 E1E2 ldi r30,lo8(-24287)
+ 909 0638 F1EA ldi r31,hi8(-24287)
+ 910 063a 3197 1:sbiw r30,1
+ 911 063c 01F4 brne 1b
+ 912 063e 00C0 rjmp .
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 17
+
+
+ 913 0640 0000 nop
+ 914 /* #APP */
+ 915 ; 264 "main.c" 1
+ 916 0642 F894 cli
+ 917 ; 0 "" 2
+ 918 /* #NOAPP */
+ 919 0644 1BBE out 91-32,__zero_reg__
+ 920 0646 15BA out 53-32,__zero_reg__
+ 921 0648 8091 0000 lds r24,appWriteComplete
+ 922 064c 8823 tst r24
+ 923 064e 01F0 breq .L84
+ 924 0650 8091 0000 lds r24,writeSize
+ 925 0654 9091 0000 lds r25,writeSize+1
+ 926 0658 9093 0000 sts currentAddress+1,r25
+ 927 065c 8093 0000 sts currentAddress,r24
+ 928 0660 00C0 rjmp .L85
+ 929 .L86:
+ 930 0662 2B83 std Y+3,r18
+ 931 0664 00D0 rcall fillFlashWithVectors
+ 932 0666 2B81 ldd r18,Y+3
+ 933 .L85:
+ 934 0668 8091 0000 lds r24,currentAddress
+ 935 066c 9091 0000 lds r25,currentAddress+1
+ 936 0670 F5E1 ldi r31,hi8(5376)
+ 937 0672 8030 cpi r24,lo8(5376)
+ 938 0674 9F07 cpc r25,r31
+ 939 0676 00F0 brlo .L86
+ 940 .L84:
+ 941 0678 C114 cp r12,__zero_reg__
+ 942 067a D104 cpc r13,__zero_reg__
+ 943 067c 01F4 brne .L87
+ 944 /* #APP */
+ 945 ; 286 "main.c" 1
+ 946 067e 00C0 rjmp __vectors
+ 947 ; 0 "" 2
+ 948 /* #NOAPP */
+ 949 .L87:
+ 950 0680 1092 5F02 sts 607,__zero_reg__
+ 951 0684 1092 5E02 sts 606,__zero_reg__
+ 952 /* #APP */
+ 953 ; 295 "main.c" 1
+ 954 0688 00C0 rjmp __vectors - 4
+ 955 ; 0 "" 2
+ 956 /* #NOAPP */
+ 957 068a 00C0 rjmp .L33
+ 958 .size main, .-main
+ 959 .global usbTxLen
+ 960 .data
+ 961 .type usbTxLen, @object
+ 962 .size usbTxLen, 1
+ 963 usbTxLen:
+ 964 0000 5A .byte 90
+ 965 .global usbDescriptorString0
+ 966 .section .progmem.data,"a",@progbits
+ 967 .type usbDescriptorString0, @object
+ 968 .size usbDescriptorString0, 4
+ 969 usbDescriptorString0:
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 18
+
+
+ 970 0000 04 .byte 4
+ 971 0001 03 .byte 3
+ 972 0002 09 .byte 9
+ 973 0003 04 .byte 4
+ 974 .global usbDescriptorStringVendor
+ 975 .type usbDescriptorStringVendor, @object
+ 976 .size usbDescriptorStringVendor, 28
+ 977 usbDescriptorStringVendor:
+ 978 0004 1C03 .word 796
+ 979 0006 7700 .word 119
+ 980 0008 7700 .word 119
+ 981 000a 7700 .word 119
+ 982 000c 2E00 .word 46
+ 983 000e 6600 .word 102
+ 984 0010 6900 .word 105
+ 985 0012 7300 .word 115
+ 986 0014 6300 .word 99
+ 987 0016 6800 .word 104
+ 988 0018 6C00 .word 108
+ 989 001a 2E00 .word 46
+ 990 001c 6400 .word 100
+ 991 001e 6500 .word 101
+ 992 .global usbDescriptorStringDevice
+ 993 .type usbDescriptorStringDevice, @object
+ 994 .size usbDescriptorStringDevice, 14
+ 995 usbDescriptorStringDevice:
+ 996 0020 0E03 .word 782
+ 997 0022 5500 .word 85
+ 998 0024 5300 .word 83
+ 999 0026 4200 .word 66
+ 1000 0028 6100 .word 97
+ 1001 002a 7300 .word 115
+ 1002 002c 7000 .word 112
+ 1003 .global usbDescriptorDevice
+ 1004 .type usbDescriptorDevice, @object
+ 1005 .size usbDescriptorDevice, 18
+ 1006 usbDescriptorDevice:
+ 1007 002e 12 .byte 18
+ 1008 002f 01 .byte 1
+ 1009 0030 10 .byte 16
+ 1010 0031 01 .byte 1
+ 1011 0032 FF .byte -1
+ 1012 0033 00 .byte 0
+ 1013 0034 00 .byte 0
+ 1014 0035 08 .byte 8
+ 1015 0036 C0 .byte -64
+ 1016 0037 16 .byte 22
+ 1017 0038 DC .byte -36
+ 1018 0039 05 .byte 5
+ 1019 003a 02 .byte 2
+ 1020 003b 01 .byte 1
+ 1021 003c 01 .byte 1
+ 1022 003d 02 .byte 2
+ 1023 003e 00 .byte 0
+ 1024 003f 01 .byte 1
+ 1025 .global usbDescriptorConfiguration
+ 1026 .type usbDescriptorConfiguration, @object
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 19
+
+
+ 1027 .size usbDescriptorConfiguration, 18
+ 1028 usbDescriptorConfiguration:
+ 1029 0040 09 .byte 9
+ 1030 0041 02 .byte 2
+ 1031 0042 12 .byte 18
+ 1032 0043 00 .byte 0
+ 1033 0044 01 .byte 1
+ 1034 0045 01 .byte 1
+ 1035 0046 00 .byte 0
+ 1036 0047 80 .byte -128
+ 1037 0048 32 .byte 50
+ 1038 0049 09 .byte 9
+ 1039 004a 04 .byte 4
+ 1040 004b 00 .byte 0
+ 1041 004c 00 .byte 0
+ 1042 004d 00 .byte 0
+ 1043 004e 00 .byte 0
+ 1044 004f 00 .byte 0
+ 1045 0050 00 .byte 0
+ 1046 0051 00 .byte 0
+ 1047 .comm usbMsgPtr,2,1
+ 1048 .comm usbRxToken,1,1
+ 1049 .comm usbConfiguration,1,1
+ 1050 .comm usbRxBuf,22,1
+ 1051 .comm usbInputBufOffset,1,1
+ 1052 .comm usbDeviceAddr,1,1
+ 1053 .comm usbNewDeviceAddr,1,1
+ 1054 .comm usbRxLen,1,1
+ 1055 .comm usbCurrentTok,1,1
+ 1056 .comm usbTxBuf,11,1
+ 1057 .lcomm requestBootLoaderExit,1
+ 1058 .lcomm connectedToPc,1
+ 1059 .lcomm currentAddress,2
+ 1060 .lcomm checksum,2
+ 1061 .lcomm vectorTemp,4
+ 1062 .lcomm needToErase,1
+ 1063 .data
+ 1064 .type usbMsgLen, @object
+ 1065 .size usbMsgLen, 1
+ 1066 usbMsgLen:
+ 1067 0001 FF .byte -1
+ 1068 .lcomm usbMsgFlags,1
+ 1069 .type signatureBytes, @object
+ 1070 .size signatureBytes, 4
+ 1071 signatureBytes:
+ 1072 0002 1E .byte 30
+ 1073 0003 93 .byte -109
+ 1074 0004 0B .byte 11
+ 1075 0005 00 .byte 0
+ 1076 .lcomm bytesRemaining,1
+ 1077 .lcomm isLastPage,1
+ 1078 .lcomm replyBuffer.1902,4
+ 1079 .lcomm flashPageLoaded,1
+ 1080 .lcomm wasReset.1824,1
+ 1081 .lcomm writeSize,2
+ 1082 .lcomm appWriteComplete,1
+ 1083 .global __do_copy_data
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 20
+
+
+ 1084 .global __do_clear_bss
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s page 21
+
+
+DEFINED SYMBOLS
+ *ABS*:00000000 main.c
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:2 *ABS*:0000003f __SREG__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:3 *ABS*:0000003e __SP_H__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:4 *ABS*:0000003d __SP_L__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:5 *ABS*:00000034 __CCP__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:6 *ABS*:00000000 __tmp_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:7 *ABS*:00000001 __zero_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:10 .text:00000000 writeFlashPage
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1061 .bss:0000000a needToErase
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1058 .bss:00000002 currentAddress
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:54 .text:0000003e writeWordToPageBuffer
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1059 .bss:00000004 checksum
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1060 .bss:00000006 vectorTemp
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:171 .text:00000108 fillFlashWithVectors
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:197 .text:0000012e testForValidApplication
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:231 .text:00000152 ma
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:255 .text:0000015c main
+ *COM*:00000001 usbRxLen
+ *COM*:00000001 usbInputBufOffset
+ *COM*:00000016 usbRxBuf
+ *COM*:00000001 usbRxToken
+ *COM*:0000000b usbTxBuf
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:963 .data:00000000 usbTxLen
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1062 .bss:0000000b usbMsgFlags
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1057 .bss:00000001 connectedToPc
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1077 .bss:0000000e replyBuffer.1902
+ *COM*:00000002 usbMsgPtr
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1071 .data:00000002 signatureBytes
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1068 .bss:0000000c bytesRemaining
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1076 .bss:0000000d isLastPage
+ .bss:00000000 requestBootLoaderExit
+ *COM*:00000001 usbNewDeviceAddr
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1006 .progmem.data:0000002e usbDescriptorDevice
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1028 .progmem.data:00000040 usbDescriptorConfiguration
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:969 .progmem.data:00000000 usbDescriptorString0
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:977 .progmem.data:00000004 usbDescriptorStringVendor
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:995 .progmem.data:00000020 usbDescriptorStringDevice
+ *COM*:00000001 usbConfiguration
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1066 .data:00000001 usbMsgLen
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1078 .bss:00000012 flashPageLoaded
+ *COM*:00000001 usbDeviceAddr
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1079 .bss:00000013 wasReset.1824
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1080 .bss:00000014 writeSize
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccOyArJ3.s:1081 .bss:00000016 appWriteComplete
+ *COM*:00000001 usbCurrentTok
+
+UNDEFINED SYMBOLS
+usbCrc16Append
+calibrateOscillator
+__vectors
+__do_copy_data
+__do_clear_bss