From 7713be1d2555c1a0b1cb8b2dbc47682cadc840fb Mon Sep 17 00:00:00 2001 From: Jenna Fox Date: Mon, 24 Sep 2012 09:56:28 +1000 Subject: Trying to bring in lous' eraseApplication mechanism. --- firmware/main.c.lst | 1721 ++++++++++++++++++++++++++------------------------- 1 file changed, 861 insertions(+), 860 deletions(-) (limited to 'firmware/main.c.lst') diff --git a/firmware/main.c.lst b/firmware/main.c.lst index fa10ab1..376b81d 100644 --- a/firmware/main.c.lst +++ b/firmware/main.c.lst @@ -1,4 +1,4 @@ -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 1 1 .file "main.c" @@ -18,7 +18,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 15 0000 81E0 ldi r24,lo8(1) 16 0002 8093 0000 sts didWriteSomething,r24 17 /* #APP */ - 18 ; 108 "main.c" 1 + 18 ; 114 "main.c" 1 19 0006 F894 cli 20 ; 0 "" 2 21 /* #NOAPP */ @@ -27,7 +27,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 24 0010 3297 sbiw r30,2 25 0012 85E0 ldi r24,lo8(5) 26 /* #APP */ - 27 ; 109 "main.c" 1 + 27 ; 115 "main.c" 1 28 0014 8093 5700 sts 87, r24 29 0018 E895 spm 30 @@ -38,7 +38,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 35 001c 00FC sbrc __tmp_reg__,0 36 001e 00C0 rjmp .L2 37 /* #APP */ - 38 ; 111 "main.c" 1 + 38 ; 117 "main.c" 1 39 0020 7894 sei 40 ; 0 "" 2 41 /* epilogue start */ @@ -55,876 +55,877 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 52 0028 3091 0000 lds r19,currentAddress+1 53 002c 2115 cp r18,__zero_reg__ 54 002e 3105 cpc r19,__zero_reg__ - 55 0030 01F4 brne .+2 - 56 0032 00C0 rjmp .L4 - 57 0034 2430 cpi r18,4 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 2 - - - 58 0036 3105 cpc r19,__zero_reg__ - 59 0038 01F0 breq .L9 - 60 003a 46E1 ldi r20,hi8(5884) - 61 003c 2C3F cpi r18,lo8(5884) - 62 003e 3407 cpc r19,r20 - 63 0040 01F4 brne .L6 - 64 0042 8091 0000 lds r24,vectorTemp - 65 0046 9091 0000 lds r25,vectorTemp+1 - 66 004a 8E57 subi r24,lo8(-(1154)) - 67 004c 9B4F sbci r25,hi8(-(1154)) - 68 004e 00C0 rjmp .L7 - 69 .L6: - 70 0050 46E1 ldi r20,hi8(5886) - 71 0052 2E3F cpi r18,lo8(5886) - 72 0054 3407 cpc r19,r20 - 73 0056 01F4 brne .L7 - 74 0058 8091 0000 lds r24,vectorTemp+2 - 75 005c 9091 0000 lds r25,vectorTemp+2+1 - 76 0060 8D57 subi r24,lo8(-(1155)) - 77 0062 9B4F sbci r25,hi8(-(1155)) - 78 0064 00C0 rjmp .L7 - 79 .L9: - 80 0066 8FE7 ldi r24,lo8(-13441) - 81 0068 9BEC ldi r25,hi8(-13441) - 82 .L7: - 83 /* #APP */ - 84 ; 145 "main.c" 1 - 85 006a F894 cli - 86 ; 0 "" 2 - 87 /* #NOAPP */ - 88 006c E091 0000 lds r30,currentAddress - 89 0070 F091 0000 lds r31,currentAddress+1 - 90 0074 21E0 ldi r18,lo8(1) - 91 /* #APP */ - 92 ; 146 "main.c" 1 - 93 0076 0C01 movw r0, r24 - 94 0078 2093 5700 sts 87, r18 - 95 007c E895 spm - 96 007e 1124 clr r1 - 97 - 98 ; 0 "" 2 - 99 ; 147 "main.c" 1 - 100 0080 7894 sei - 101 ; 0 "" 2 - 102 /* #NOAPP */ - 103 0082 4091 0000 lds r20,currentAddress - 104 0086 5091 0000 lds r21,currentAddress+1 - 105 008a FA01 movw r30,r20 - 106 /* #APP */ - 107 ; 152 "main.c" 1 - 108 008c 2591 lpm r18, Z+ - 109 008e 3491 lpm r19, Z - 110 - 111 ; 0 "" 2 - 112 /* #NOAPP */ - 113 0090 2823 and r18,r24 - 114 0092 3923 and r19,r25 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 3 - - - 115 0094 2817 cp r18,r24 - 116 0096 3907 cpc r19,r25 - 117 0098 01F0 breq .L8 - 118 009a 8091 0000 lds r24,events - 119 009e 8160 ori r24,lo8(1) - 120 00a0 8093 0000 sts events,r24 - 121 .L8: - 122 00a4 4E5F subi r20,lo8(-(2)) - 123 00a6 5F4F sbci r21,hi8(-(2)) - 124 00a8 5093 0000 sts currentAddress+1,r21 - 125 00ac 4093 0000 sts currentAddress,r20 - 126 /* epilogue start */ - 127 00b0 0895 ret - 128 .L4: - 129 00b2 81E1 ldi r24,lo8(17) - 130 /* #APP */ - 131 ; 143 "main.c" 1 - 132 00b4 8093 5700 sts 87, r24 - 133 00b8 E895 spm - 134 - 135 ; 0 "" 2 - 136 /* #NOAPP */ - 137 00ba 00C0 rjmp .L9 - 138 .size writeWordToPageBuffer, .-writeWordToPageBuffer - 139 .type fillFlashWithVectors, @function - 140 fillFlashWithVectors: - 141 00bc CF93 push r28 - 142 00be DF93 push r29 - 143 /* prologue: function */ - 144 /* frame size = 0 */ - 145 /* stack size = 2 */ - 146 .L__stack_usage = 2 - 147 00c0 C091 0000 lds r28,currentAddress - 148 00c4 D091 0000 lds r29,currentAddress+1 - 149 00c8 CF73 andi r28,lo8(63) - 150 00ca D070 andi r29,hi8(63) - 151 .L11: - 152 00cc 8FEF ldi r24,lo8(-1) - 153 00ce 9FEF ldi r25,hi8(-1) - 154 00d0 00D0 rcall writeWordToPageBuffer - 155 00d2 2296 adiw r28,2 - 156 00d4 C034 cpi r28,64 - 157 00d6 D105 cpc r29,__zero_reg__ - 158 00d8 04F0 brlt .L11 - 159 00da 00D0 rcall writeFlashPage - 160 /* epilogue start */ - 161 00dc DF91 pop r29 - 162 00de CF91 pop r28 - 163 00e0 0895 ret - 164 .size fillFlashWithVectors, .-fillFlashWithVectors - 165 .section .init3,"ax",@progbits - 166 .global PushMagicWord - 167 .type PushMagicWord, @function - 168 PushMagicWord: - 169 /* prologue: naked */ - 170 /* frame size = 0 */ - 171 /* stack size = 0 */ - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 4 - - - 172 .L__stack_usage = 0 - 173 /* #APP */ - 174 ; 239 "main.c" 1 - 175 0000 00EB ldi r16, 0xB0 - 176 ; 0 "" 2 - 177 ; 240 "main.c" 1 - 178 0002 0F93 push r16 - 179 ; 0 "" 2 - 180 ; 241 "main.c" 1 - 181 0004 07E0 ldi r16, 0x07 - 182 ; 0 "" 2 - 183 ; 242 "main.c" 1 - 184 0006 0F93 push r16 - 185 ; 0 "" 2 - 186 /* epilogue start */ - 187 /* #NOAPP */ - 188 .size PushMagicWord, .-PushMagicWord - 189 .text - 190 .global main - 191 .type main, @function - 192 main: - 193 00e2 DF93 push r29 - 194 00e4 CF93 push r28 - 195 00e6 0F92 push __tmp_reg__ - 196 00e8 CDB7 in r28,__SP_L__ - 197 00ea DEB7 in r29,__SP_H__ - 198 /* prologue: function */ - 199 /* frame size = 1 */ - 200 /* stack size = 3 */ - 201 .L__stack_usage = 3 - 202 00ec 88E1 ldi r24,lo8(24) - 203 /* #APP */ - 204 ; 307 "main.c" 1 - 205 00ee 0FB6 in __tmp_reg__, __SREG__ - 206 00f0 F894 cli - 207 00f2 81BD out 33, r24 - 208 00f4 11BC out 33, __zero_reg__ - 209 00f6 0FBE out __SREG__,__tmp_reg__ - 210 - 211 ; 0 "" 2 - 212 /* #NOAPP */ - 213 00f8 E0E0 ldi r30,lo8(0) - 214 00fa F0E0 ldi r31,hi8(0) - 215 /* #APP */ - 216 ; 260 "main.c" 1 - 217 00fc 8591 lpm r24, Z+ - 218 00fe 9491 lpm r25, Z - 219 - 220 ; 0 "" 2 - 221 /* #NOAPP */ - 222 0100 2BEC ldi r18,hi8(-13441) - 223 0102 8F37 cpi r24,lo8(-13441) - 224 0104 9207 cpc r25,r18 - 225 0106 01F4 brne .L14 - 226 0108 E4E0 ldi r30,lo8(4) - 227 010a F0E0 ldi r31,hi8(4) - 228 /* #APP */ - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 5 - - - 229 ; 261 "main.c" 1 - 230 010c 8591 lpm r24, Z+ - 231 010e 9491 lpm r25, Z - 232 - 233 ; 0 "" 2 - 234 /* #NOAPP */ - 235 0110 3BEC ldi r19,hi8(-13441) - 236 0112 8F37 cpi r24,lo8(-13441) - 237 0114 9307 cpc r25,r19 - 238 0116 01F0 breq .L15 - 239 .L14: - 240 0118 00D0 rcall fillFlashWithVectors - 241 .L15: - 242 011a 1092 0000 sts currentAddress+1,__zero_reg__ - 243 011e 1092 0000 sts currentAddress,__zero_reg__ - 244 0122 AC9A sbi 53-32,4 - 245 0124 8BB7 in r24,91-32 - 246 0126 8062 ori r24,lo8(32) - 247 0128 8BBF out 91-32,r24 - 248 012a BB9A sbi 55-32,3 - 249 012c 8FE4 ldi r24,lo8(1649999) - 250 012e 9DE2 ldi r25,hi8(1649999) - 251 0130 A9E1 ldi r26,hlo8(1649999) - 252 0132 8150 1:subi r24,1 - 253 0134 9040 sbci r25,0 - 254 0136 A040 sbci r26,0 - 255 0138 01F4 brne 1b - 256 013a 00C0 rjmp . - 257 013c 0000 nop - 258 013e BB98 cbi 55-32,3 - 259 /* #APP */ - 260 ; 253 "main.c" 1 - 261 0140 7894 sei - 262 ; 0 "" 2 - 263 /* #NOAPP */ - 264 0142 EE24 clr r14 - 265 0144 FF24 clr r15 - 266 .L66: - 267 0146 2091 0000 lds r18,usbRxLen - 268 014a 2350 subi r18,lo8(-(-3)) - 269 014c 27FD sbrc r18,7 - 270 014e 00C0 rjmp .L16 - 271 0150 8091 0000 lds r24,usbInputBufOffset - 272 0154 ECE0 ldi r30,lo8(12) - 273 0156 F0E0 ldi r31,hi8(12) - 274 0158 E81B sub r30,r24 - 275 015a F109 sbc r31,__zero_reg__ - 276 015c E050 subi r30,lo8(-(usbRxBuf)) - 277 015e F040 sbci r31,hi8(-(usbRxBuf)) - 278 0160 8091 0000 lds r24,usbRxToken - 279 0164 8D32 cpi r24,lo8(45) - 280 0166 01F0 breq .+2 - 281 0168 00C0 rjmp .L17 - 282 016a 2830 cpi r18,lo8(8) - 283 016c 01F0 breq .+2 - 284 016e 00C0 rjmp .L18 - 285 0170 83EC ldi r24,lo8(-61) - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 6 - - - 286 0172 8093 0000 sts usbTxBuf,r24 - 287 0176 8AE5 ldi r24,lo8(90) - 288 0178 8093 0000 sts usbTxLen,r24 - 289 017c 1092 0000 sts usbMsgFlags,__zero_reg__ - 290 0180 2081 ld r18,Z - 291 0182 922F mov r25,r18 - 292 0184 9076 andi r25,lo8(96) - 293 0186 8181 ldd r24,Z+1 - 294 0188 9923 tst r25 - 295 018a 01F0 breq .L19 - 296 018c 8823 tst r24 - 297 018e 01F4 brne .L20 - 298 0190 80E0 ldi r24,lo8(replyBuffer.1745) - 299 0192 90E0 ldi r25,hi8(replyBuffer.1745) - 300 0194 9093 0000 sts usbMsgPtr+1,r25 - 301 0198 8093 0000 sts usbMsgPtr,r24 - 302 019c 24E0 ldi r18,lo8(4) - 303 019e 00C0 rjmp .L25 - 304 .L20: - 305 01a0 8130 cpi r24,lo8(1) - 306 01a2 01F4 brne .L22 - 307 01a4 8281 ldd r24,Z+2 - 308 01a6 8093 0000 sts writeLength,r24 - 309 01aa 8481 ldd r24,Z+4 - 310 01ac 9581 ldd r25,Z+5 - 311 01ae 9093 0000 sts currentAddress+1,r25 - 312 01b2 8093 0000 sts currentAddress,r24 - 313 01b6 27FD sbrc r18,7 - 314 01b8 00C0 rjmp .L23 - 315 01ba 2FEF ldi r18,lo8(-1) - 316 01bc 00C0 rjmp .L24 - 317 .L22: - 318 01be 8091 0000 lds r24,events - 319 01c2 8460 ori r24,lo8(4) - 320 01c4 8093 0000 sts events,r24 - 321 01c8 20E0 ldi r18,lo8(0) - 322 01ca 00C0 rjmp .L25 - 323 .L19: - 324 01cc 9281 ldd r25,Z+2 - 325 01ce 1092 0000 sts usbTxBuf+9,__zero_reg__ - 326 01d2 8823 tst r24 - 327 01d4 01F4 brne .L26 - 328 01d6 1092 0000 sts usbTxBuf+10,__zero_reg__ - 329 01da 80E0 ldi r24,lo8(usbTxBuf+9) - 330 01dc 90E0 ldi r25,hi8(usbTxBuf+9) - 331 01de 22E0 ldi r18,lo8(2) - 332 01e0 00C0 rjmp .L27 - 333 .L26: - 334 01e2 8530 cpi r24,lo8(5) - 335 01e4 01F4 brne .L28 - 336 01e6 9093 0000 sts usbNewDeviceAddr,r25 - 337 01ea 00C0 rjmp .L73 - 338 .L28: - 339 01ec 8630 cpi r24,lo8(6) - 340 01ee 01F4 brne .L29 - 341 01f0 8381 ldd r24,Z+3 - 342 01f2 8130 cpi r24,lo8(1) - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 7 - - - 343 01f4 01F4 brne .L30 - 344 01f6 80E0 ldi r24,lo8(usbDescriptorDevice) - 345 01f8 90E0 ldi r25,hi8(usbDescriptorDevice) - 346 01fa 00C0 rjmp .L72 - 347 .L30: - 348 01fc 8230 cpi r24,lo8(2) - 349 01fe 01F4 brne .L32 - 350 0200 80E0 ldi r24,lo8(usbDescriptorConfiguration) - 351 0202 90E0 ldi r25,hi8(usbDescriptorConfiguration) - 352 .L72: - 353 0204 9093 0000 sts usbMsgPtr+1,r25 - 354 0208 8093 0000 sts usbMsgPtr,r24 - 355 020c 22E1 ldi r18,lo8(18) - 356 020e 00C0 rjmp .L31 - 357 .L32: - 358 0210 8330 cpi r24,lo8(3) - 359 0212 01F4 brne .L68 - 360 0214 9923 tst r25 - 361 0216 01F4 brne .L33 - 362 0218 80E0 ldi r24,lo8(usbDescriptorString0) - 363 021a 90E0 ldi r25,hi8(usbDescriptorString0) - 364 021c 9093 0000 sts usbMsgPtr+1,r25 - 365 0220 8093 0000 sts usbMsgPtr,r24 - 366 0224 24E0 ldi r18,lo8(4) - 367 0226 00C0 rjmp .L31 - 368 .L33: - 369 0228 9130 cpi r25,lo8(1) - 370 022a 01F4 brne .L34 - 371 022c 80E0 ldi r24,lo8(usbDescriptorStringVendor) - 372 022e 90E0 ldi r25,hi8(usbDescriptorStringVendor) - 373 0230 9093 0000 sts usbMsgPtr+1,r25 - 374 0234 8093 0000 sts usbMsgPtr,r24 - 375 0238 22E2 ldi r18,lo8(34) - 376 023a 00C0 rjmp .L31 - 377 .L34: - 378 023c 9230 cpi r25,lo8(2) - 379 023e 01F4 brne .L68 - 380 0240 80E0 ldi r24,lo8(usbDescriptorStringDevice) - 381 0242 90E0 ldi r25,hi8(usbDescriptorStringDevice) - 382 0244 9093 0000 sts usbMsgPtr+1,r25 - 383 0248 8093 0000 sts usbMsgPtr,r24 - 384 024c 2CE0 ldi r18,lo8(12) - 385 024e 00C0 rjmp .L31 - 386 .L68: - 387 0250 20E0 ldi r18,lo8(0) - 388 .L31: - 389 0252 80E4 ldi r24,lo8(64) - 390 0254 8093 0000 sts usbMsgFlags,r24 - 391 0258 00C0 rjmp .L25 - 392 .L29: - 393 025a 8830 cpi r24,lo8(8) - 394 025c 01F0 breq .L69 - 395 025e 8930 cpi r24,lo8(9) - 396 0260 01F4 brne .L36 - 397 0262 9093 0000 sts usbConfiguration,r25 - 398 0266 00C0 rjmp .L73 - 399 .L36: - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 8 - - - 400 0268 8A30 cpi r24,lo8(10) - 401 026a 01F0 breq .L70 - 402 .L73: - 403 026c 80E0 ldi r24,lo8(usbTxBuf+9) - 404 026e 90E0 ldi r25,hi8(usbTxBuf+9) - 405 0270 20E0 ldi r18,lo8(0) - 406 0272 00C0 rjmp .L27 - 407 .L69: - 408 0274 80E0 ldi r24,lo8(usbConfiguration) - 409 0276 90E0 ldi r25,hi8(usbConfiguration) - 410 0278 00C0 rjmp .L74 - 411 .L70: - 412 027a 80E0 ldi r24,lo8(usbTxBuf+9) - 413 027c 90E0 ldi r25,hi8(usbTxBuf+9) - 414 .L74: - 415 027e 21E0 ldi r18,lo8(1) - 416 .L27: - 417 0280 9093 0000 sts usbMsgPtr+1,r25 - 418 0284 8093 0000 sts usbMsgPtr,r24 - 419 0288 00C0 rjmp .L25 - 420 .L23: - 421 028a 2681 ldd r18,Z+6 - 422 .L24: - 423 028c 80E8 ldi r24,lo8(-128) - 424 028e 8093 0000 sts usbMsgFlags,r24 - 425 0292 00C0 rjmp .L37 - 426 .L25: - 427 0294 8781 ldd r24,Z+7 - 428 0296 8823 tst r24 - 429 0298 01F4 brne .L37 - 430 029a 8681 ldd r24,Z+6 - 431 029c 8217 cp r24,r18 - 432 029e 00F4 brsh .L37 - 433 02a0 282F mov r18,r24 - 434 .L37: - 435 02a2 2093 0000 sts usbMsgLen,r18 - 436 02a6 00C0 rjmp .L18 - 437 .L17: - 438 02a8 8091 0000 lds r24,usbMsgFlags - 439 02ac 87FF sbrs r24,7 - 440 02ae 00C0 rjmp .L18 - 441 02b0 8091 0000 lds r24,writeLength - 442 02b4 821B sub r24,r18 - 443 02b6 8093 0000 sts writeLength,r24 - 444 02ba 8F01 movw r16,r30 - 445 .L42: - 446 02bc 8091 0000 lds r24,currentAddress - 447 02c0 9091 0000 lds r25,currentAddress+1 - 448 02c4 0097 sbiw r24,0 - 449 02c6 01F4 brne .L38 - 450 02c8 D801 movw r26,r16 - 451 02ca 8D91 ld r24,X+ - 452 02cc 9C91 ld r25,X - 453 02ce 1197 sbiw r26,1 - 454 02d0 9093 0000 sts vectorTemp+1,r25 - 455 02d4 8093 0000 sts vectorTemp,r24 - 456 02d8 00C0 rjmp .L39 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 9 - - - 457 .L38: - 458 02da 8430 cpi r24,4 - 459 02dc 9105 cpc r25,__zero_reg__ - 460 02de 01F4 brne .L40 - 461 02e0 F801 movw r30,r16 - 462 02e2 8081 ld r24,Z - 463 02e4 9181 ldd r25,Z+1 - 464 02e6 9093 0000 sts vectorTemp+2+1,r25 - 465 02ea 8093 0000 sts vectorTemp+2,r24 - 466 02ee 00C0 rjmp .L39 - 467 .L40: - 468 02f0 F6E1 ldi r31,hi8(5882) - 469 02f2 8A3F cpi r24,lo8(5882) - 470 02f4 9F07 cpc r25,r31 - 471 02f6 00F0 brlo .L39 - 472 02f8 81E1 ldi r24,lo8(17) - 473 /* #APP */ - 474 ; 216 "main.c" 1 - 475 02fa 8093 5700 sts 87, r24 - 476 02fe E895 spm - 477 - 478 ; 0 "" 2 - 479 /* #NOAPP */ - 480 0300 00C0 rjmp .L41 - 481 .L39: - 482 0302 D801 movw r26,r16 - 483 0304 8D91 ld r24,X+ - 484 0306 9D91 ld r25,X+ - 485 0308 8D01 movw r16,r26 - 486 030a 2983 std Y+1,r18 - 487 030c 00D0 rcall writeWordToPageBuffer - 488 030e 2981 ldd r18,Y+1 - 489 0310 2250 subi r18,lo8(-(-2)) - 490 0312 01F4 brne .L42 - 491 .L41: - 492 0314 8091 0000 lds r24,writeLength - 493 0318 8823 tst r24 - 494 031a 01F4 brne .L18 - 495 031c 8091 0000 lds r24,events - 496 0320 8260 ori r24,lo8(2) - 497 0322 8093 0000 sts events,r24 - 498 0326 1092 0000 sts usbMsgLen,__zero_reg__ - 499 .L18: - 500 032a 1092 0000 sts usbRxLen,__zero_reg__ - 501 .L16: - 502 032e 8091 0000 lds r24,usbTxLen - 503 0332 84FF sbrs r24,4 - 504 0334 00C0 rjmp .L43 - 505 0336 8091 0000 lds r24,usbMsgLen - 506 033a 8F3F cpi r24,lo8(-1) - 507 033c 01F4 brne .+2 - 508 033e 00C0 rjmp .L43 - 509 0340 082F mov r16,r24 - 510 0342 8930 cpi r24,lo8(9) - 511 0344 00F0 brlo .L44 - 512 0346 08E0 ldi r16,lo8(8) - 513 .L44: - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 10 - - - 514 0348 801B sub r24,r16 - 515 034a 8093 0000 sts usbMsgLen,r24 - 516 034e 8091 0000 lds r24,usbTxBuf - 517 0352 98E8 ldi r25,lo8(-120) - 518 0354 8927 eor r24,r25 - 519 0356 8093 0000 sts usbTxBuf,r24 - 520 035a 0023 tst r16 - 521 035c 01F0 breq .L45 - 522 035e E091 0000 lds r30,usbMsgPtr - 523 0362 F091 0000 lds r31,usbMsgPtr+1 - 524 0366 9091 0000 lds r25,usbMsgFlags - 525 036a 802F mov r24,r16 - 526 036c 8150 subi r24,lo8(-(-1)) - 527 036e 96FF sbrs r25,6 - 528 0370 00C0 rjmp .L46 - 529 0372 90E0 ldi r25,lo8(0) - 530 0374 8050 subi r24,lo8(-(usbTxBuf+2)) - 531 0376 9040 sbci r25,hi8(-(usbTxBuf+2)) - 532 0378 A0E0 ldi r26,lo8(usbTxBuf+1) - 533 037a B0E0 ldi r27,hi8(usbTxBuf+1) - 534 .L47: - 535 /* #APP */ - 536 ; 504 "usbdrv/usbdrv.c" 1 - 537 037c 2491 lpm r18, Z - 538 - 539 ; 0 "" 2 - 540 /* #NOAPP */ - 541 037e 2D93 st X+,r18 - 542 0380 3196 adiw r30,1 - 543 0382 A817 cp r26,r24 - 544 0384 B907 cpc r27,r25 - 545 0386 01F4 brne .L47 - 546 0388 00C0 rjmp .L48 - 547 .L46: - 548 038a 9F01 movw r18,r30 - 549 038c 90E0 ldi r25,lo8(0) - 550 038e 8050 subi r24,lo8(-(usbTxBuf+2)) - 551 0390 9040 sbci r25,hi8(-(usbTxBuf+2)) - 552 0392 A0E0 ldi r26,lo8(usbTxBuf+1) - 553 0394 B0E0 ldi r27,hi8(usbTxBuf+1) - 554 .L49: - 555 0396 F901 movw r30,r18 - 556 0398 4191 ld r20,Z+ - 557 039a 9F01 movw r18,r30 - 558 039c 4D93 st X+,r20 - 559 039e A817 cp r26,r24 - 560 03a0 B907 cpc r27,r25 - 561 03a2 01F4 brne .L49 - 562 .L48: - 563 03a4 F093 0000 sts usbMsgPtr+1,r31 - 564 03a8 E093 0000 sts usbMsgPtr,r30 - 565 .L45: - 566 03ac 80E0 ldi r24,lo8(usbTxBuf+1) - 567 03ae 90E0 ldi r25,hi8(usbTxBuf+1) - 568 03b0 602F mov r22,r16 - 569 03b2 00D0 rcall usbCrc16Append - 570 03b4 0C5F subi r16,lo8(-(4)) - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 11 - - - 571 03b6 0C30 cpi r16,lo8(12) - 572 03b8 01F0 breq .L50 - 573 03ba 8FEF ldi r24,lo8(-1) - 574 03bc 8093 0000 sts usbMsgLen,r24 - 575 .L50: - 576 03c0 0093 0000 sts usbTxLen,r16 - 577 .L43: - 578 03c4 84E1 ldi r24,lo8(20) - 579 .L52: - 580 03c6 96B3 in r25,54-32 - 581 03c8 9871 andi r25,lo8(24) - 582 03ca 01F4 brne .L51 - 583 03cc 8150 subi r24,lo8(-(-1)) - 584 03ce 01F4 brne .L52 - 585 03d0 1092 0000 sts usbNewDeviceAddr,__zero_reg__ - 586 03d4 1092 0000 sts usbDeviceAddr,__zero_reg__ - 587 .L51: - 588 03d8 01E0 ldi r16,lo8(1) - 589 03da 8111 cpse r24,__zero_reg__ - 590 03dc 00E0 ldi r16,lo8(0) - 591 .L53: - 592 03de 8091 0000 lds r24,wasReset.1698 - 593 03e2 8017 cp r24,r16 - 594 03e4 01F0 breq .L54 - 595 03e6 0023 tst r16 - 596 03e8 01F4 brne .L55 - 597 /* #APP */ - 598 ; 557 "usbdrv/usbdrv.c" 1 - 599 03ea F894 cli - 600 ; 0 "" 2 - 601 /* #NOAPP */ - 602 03ec 00D0 rcall calibrateOscillator - 603 /* #APP */ - 604 ; 557 "usbdrv/usbdrv.c" 1 - 605 03ee 7894 sei - 606 ; 0 "" 2 - 607 /* #NOAPP */ - 608 .L55: - 609 03f0 0093 0000 sts wasReset.1698,r16 - 610 .L54: - 611 03f4 8CE9 ldi r24,lo8(412) - 612 03f6 91E0 ldi r25,hi8(412) - 613 03f8 0197 1:sbiw r24,1 - 614 03fa 01F4 brne 1b - 615 03fc 0000 nop - 616 03fe 8091 0000 lds r24,events - 617 0402 8823 tst r24 - 618 0404 01F4 brne .L71 - 619 0406 0894 sec - 620 0408 E11C adc r14,__zero_reg__ - 621 040a F11C adc r15,__zero_reg__ - 622 040c 00C0 rjmp .L56 - 623 .L71: - 624 040e EE24 clr r14 - 625 0410 FF24 clr r15 - 626 .L56: - 627 0412 80FF sbrs r24,0 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 12 - - - 628 0414 00C0 rjmp .L57 - 629 /* #APP */ - 630 ; 100 "main.c" 1 - 631 0416 F894 cli - 632 ; 0 "" 2 - 633 /* #NOAPP */ - 634 0418 E091 0000 lds r30,currentAddress - 635 041c F091 0000 lds r31,currentAddress+1 - 636 0420 3297 sbiw r30,2 - 637 0422 83E0 ldi r24,lo8(3) - 638 /* #APP */ - 639 ; 101 "main.c" 1 - 640 0424 8093 5700 sts 87, r24 - 641 0428 E895 spm - 642 - 643 ; 0 "" 2 - 644 /* #NOAPP */ - 645 .L58: - 646 042a 07B6 in __tmp_reg__,87-32 - 647 042c 00FC sbrc __tmp_reg__,0 - 648 042e 00C0 rjmp .L58 - 649 /* #APP */ - 650 ; 103 "main.c" 1 - 651 0430 7894 sei - 652 ; 0 "" 2 - 653 /* #NOAPP */ - 654 .L57: - 655 0432 8091 0000 lds r24,events - 656 0436 81FF sbrs r24,1 - 657 0438 00C0 rjmp .L59 - 658 043a A9E3 ldi r26,lo8(8249) - 659 043c B0E2 ldi r27,hi8(8249) - 660 043e 1197 1:sbiw r26,1 - 661 0440 01F4 brne 1b - 662 0442 00C0 rjmp . - 663 0444 0000 nop - 664 0446 8091 0000 lds r24,currentAddress - 665 044a 9091 0000 lds r25,currentAddress+1 - 666 044e 8F73 andi r24,lo8(63) - 667 0450 9070 andi r25,hi8(63) - 668 0452 0097 sbiw r24,0 - 669 0454 01F0 breq .L60 - 670 0456 00D0 rcall fillFlashWithVectors - 671 0458 00C0 rjmp .L59 - 672 .L60: - 673 045a 00D0 rcall writeFlashPage - 674 .L59: - 675 045c 8091 0000 lds r24,events - 676 0460 82FD sbrc r24,2 - 677 0462 00C0 rjmp .L61 - 678 0464 B1E5 ldi r27,lo8(-15535) - 679 0466 EB16 cp r14,r27 - 680 0468 B3EC ldi r27,hi8(-15535) - 681 046a FB06 cpc r15,r27 - 682 046c 00F0 brlo .L62 - 683 .L61: - 684 046e E1E2 ldi r30,lo8(-24287) - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 13 - - - 685 0470 F1EA ldi r31,hi8(-24287) - 686 0472 3197 1:sbiw r30,1 - 687 0474 01F4 brne 1b - 688 0476 00C0 rjmp . - 689 0478 0000 nop - 690 /* #APP */ - 691 ; 284 "main.c" 1 - 692 047a F894 cli - 693 ; 0 "" 2 - 694 /* #NOAPP */ - 695 047c 1BBE out 91-32,__zero_reg__ - 696 047e 15BA out 53-32,__zero_reg__ - 697 0480 8091 0000 lds r24,didWriteSomething - 698 0484 8823 tst r24 - 699 0486 01F4 brne .L63 - 700 0488 00C0 rjmp .L64 - 701 .L65: - 702 048a 00D0 rcall fillFlashWithVectors - 703 .L63: - 704 048c 8091 0000 lds r24,currentAddress - 705 0490 9091 0000 lds r25,currentAddress+1 - 706 0494 F7E1 ldi r31,hi8(5888) - 707 0496 8030 cpi r24,lo8(5888) - 708 0498 9F07 cpc r25,r31 - 709 049a 00F0 brlo .L65 - 710 .L64: - 711 049c 1092 5F02 sts 607,__zero_reg__ - 712 04a0 1092 5E02 sts 606,__zero_reg__ - 713 /* #APP */ - 714 ; 300 "main.c" 1 - 715 04a4 00C0 rjmp __vectors - 4 - 716 ; 0 "" 2 - 717 /* #NOAPP */ - 718 .L62: - 719 04a6 1092 0000 sts events,__zero_reg__ - 720 04aa 00C0 rjmp .L66 - 721 .size main, .-main - 722 .global usbTxLen - 723 .data - 724 .type usbTxLen, @object - 725 .size usbTxLen, 1 - 726 usbTxLen: - 727 0000 5A .byte 90 - 728 .global usbDescriptorString0 - 729 .section .progmem.data,"a",@progbits - 730 .type usbDescriptorString0, @object - 731 .size usbDescriptorString0, 4 - 732 usbDescriptorString0: - 733 0000 04 .byte 4 - 734 0001 03 .byte 3 - 735 0002 09 .byte 9 - 736 0003 04 .byte 4 - 737 .global usbDescriptorStringVendor - 738 .type usbDescriptorStringVendor, @object - 739 .size usbDescriptorStringVendor, 34 - 740 usbDescriptorStringVendor: - 741 0004 2203 .word 802 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 14 - - - 742 0006 6300 .word 99 - 743 0008 7200 .word 114 - 744 000a 6500 .word 101 - 745 000c 6100 .word 97 - 746 000e 7400 .word 116 - 747 0010 6900 .word 105 - 748 0012 7600 .word 118 - 749 0014 6500 .word 101 - 750 0016 7000 .word 112 - 751 0018 6F00 .word 111 - 752 001a 6E00 .word 110 - 753 001c 7900 .word 121 - 754 001e 2E00 .word 46 - 755 0020 6300 .word 99 - 756 0022 6F00 .word 111 - 757 0024 6D00 .word 109 - 758 .global usbDescriptorStringDevice - 759 .type usbDescriptorStringDevice, @object - 760 .size usbDescriptorStringDevice, 12 - 761 usbDescriptorStringDevice: - 762 0026 0C03 .word 780 - 763 0028 7500 .word 117 - 764 002a 4200 .word 66 - 765 002c 6F00 .word 111 - 766 002e 6F00 .word 111 - 767 0030 7400 .word 116 - 768 .global usbDescriptorDevice - 769 .type usbDescriptorDevice, @object - 770 .size usbDescriptorDevice, 18 - 771 usbDescriptorDevice: - 772 0032 12 .byte 18 - 773 0033 01 .byte 1 - 774 0034 10 .byte 16 - 775 0035 01 .byte 1 - 776 0036 FF .byte -1 - 777 0037 00 .byte 0 - 778 0038 00 .byte 0 - 779 0039 08 .byte 8 - 780 003a C0 .byte -64 - 781 003b 16 .byte 22 - 782 003c DC .byte -36 - 783 003d 05 .byte 5 - 784 003e 01 .byte 1 - 785 003f 01 .byte 1 - 786 0040 01 .byte 1 - 787 0041 02 .byte 2 - 788 0042 00 .byte 0 - 789 0043 01 .byte 1 - 790 .global usbDescriptorConfiguration - 791 .type usbDescriptorConfiguration, @object - 792 .size usbDescriptorConfiguration, 18 - 793 usbDescriptorConfiguration: - 794 0044 09 .byte 9 - 795 0045 02 .byte 2 - 796 0046 12 .byte 18 - 797 0047 00 .byte 0 - 798 0048 01 .byte 1 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 15 - - - 799 0049 01 .byte 1 - 800 004a 00 .byte 0 - 801 004b 80 .byte -128 - 802 004c 32 .byte 50 - 803 004d 09 .byte 9 - 804 004e 04 .byte 4 - 805 004f 00 .byte 0 - 806 0050 00 .byte 0 - 807 0051 00 .byte 0 - 808 0052 00 .byte 0 - 809 0053 00 .byte 0 - 810 0054 00 .byte 0 - 811 0055 00 .byte 0 - 812 .comm usbMsgPtr,2,1 - 813 .comm usbRxToken,1,1 - 814 .comm usbConfiguration,1,1 - 815 .comm usbRxBuf,22,1 - 816 .comm usbInputBufOffset,1,1 - 817 .comm usbDeviceAddr,1,1 - 818 .comm usbNewDeviceAddr,1,1 - 819 .comm usbRxLen,1,1 - 820 .comm usbCurrentTok,1,1 - 821 .comm usbTxBuf,11,1 - 822 .lcomm currentAddress,2 + 55 0030 01F0 breq .L4 + 56 0032 2430 cpi r18,4 + 57 0034 3105 cpc r19,__zero_reg__ + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 2 + + + 58 0036 01F0 breq .L8 + 59 0038 46E1 ldi r20,hi8(5884) + 60 003a 2C3F cpi r18,lo8(5884) + 61 003c 3407 cpc r19,r20 + 62 003e 01F4 brne .L6 + 63 0040 8091 0000 lds r24,vectorTemp + 64 0044 9091 0000 lds r25,vectorTemp+1 + 65 0048 8E57 subi r24,lo8(-(1154)) + 66 004a 9B4F sbci r25,hi8(-(1154)) + 67 004c 00C0 rjmp .L7 + 68 .L6: + 69 004e 46E1 ldi r20,hi8(5886) + 70 0050 2E3F cpi r18,lo8(5886) + 71 0052 3407 cpc r19,r20 + 72 0054 01F4 brne .L7 + 73 0056 8091 0000 lds r24,vectorTemp+2 + 74 005a 9091 0000 lds r25,vectorTemp+2+1 + 75 005e 8D57 subi r24,lo8(-(1155)) + 76 0060 9B4F sbci r25,hi8(-(1155)) + 77 0062 00C0 rjmp .L7 + 78 .L8: + 79 0064 8FE7 ldi r24,lo8(-13441) + 80 0066 9BEC ldi r25,hi8(-13441) + 81 .L7: + 82 /* #APP */ + 83 ; 151 "main.c" 1 + 84 0068 F894 cli + 85 ; 0 "" 2 + 86 /* #NOAPP */ + 87 006a E091 0000 lds r30,currentAddress + 88 006e F091 0000 lds r31,currentAddress+1 + 89 0072 21E0 ldi r18,lo8(1) + 90 /* #APP */ + 91 ; 152 "main.c" 1 + 92 0074 0C01 movw r0, r24 + 93 0076 2093 5700 sts 87, r18 + 94 007a E895 spm + 95 007c 1124 clr r1 + 96 + 97 ; 0 "" 2 + 98 ; 153 "main.c" 1 + 99 007e 7894 sei + 100 ; 0 "" 2 + 101 /* #NOAPP */ + 102 0080 8091 0000 lds r24,currentAddress + 103 0084 9091 0000 lds r25,currentAddress+1 + 104 0088 0296 adiw r24,2 + 105 008a 9093 0000 sts currentAddress+1,r25 + 106 008e 8093 0000 sts currentAddress,r24 + 107 /* epilogue start */ + 108 0092 0895 ret + 109 .L4: + 110 0094 81E1 ldi r24,lo8(17) + 111 /* #APP */ + 112 ; 149 "main.c" 1 + 113 0096 8093 5700 sts 87, r24 + 114 009a E895 spm + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 3 + + + 115 + 116 ; 0 "" 2 + 117 /* #NOAPP */ + 118 009c 00C0 rjmp .L8 + 119 .size writeWordToPageBuffer, .-writeWordToPageBuffer + 120 .type fillFlashWithVectors, @function + 121 fillFlashWithVectors: + 122 009e CF93 push r28 + 123 00a0 DF93 push r29 + 124 /* prologue: function */ + 125 /* frame size = 0 */ + 126 /* stack size = 2 */ + 127 .L__stack_usage = 2 + 128 00a2 C091 0000 lds r28,currentAddress + 129 00a6 D091 0000 lds r29,currentAddress+1 + 130 00aa CF73 andi r28,lo8(63) + 131 00ac D070 andi r29,hi8(63) + 132 .L10: + 133 00ae 8FEF ldi r24,lo8(-1) + 134 00b0 9FEF ldi r25,hi8(-1) + 135 00b2 00D0 rcall writeWordToPageBuffer + 136 00b4 2296 adiw r28,2 + 137 00b6 C034 cpi r28,64 + 138 00b8 D105 cpc r29,__zero_reg__ + 139 00ba 04F0 brlt .L10 + 140 00bc 00D0 rcall writeFlashPage + 141 /* epilogue start */ + 142 00be DF91 pop r29 + 143 00c0 CF91 pop r28 + 144 00c2 0895 ret + 145 .size fillFlashWithVectors, .-fillFlashWithVectors + 146 .section .init3,"ax",@progbits + 147 .global PushMagicWord + 148 .type PushMagicWord, @function + 149 PushMagicWord: + 150 /* prologue: naked */ + 151 /* frame size = 0 */ + 152 /* stack size = 0 */ + 153 .L__stack_usage = 0 + 154 /* #APP */ + 155 ; 248 "main.c" 1 + 156 0000 00EB ldi r16, 0xB0 + 157 ; 0 "" 2 + 158 ; 249 "main.c" 1 + 159 0002 0F93 push r16 + 160 ; 0 "" 2 + 161 ; 250 "main.c" 1 + 162 0004 07E0 ldi r16, 0x07 + 163 ; 0 "" 2 + 164 ; 251 "main.c" 1 + 165 0006 0F93 push r16 + 166 ; 0 "" 2 + 167 /* epilogue start */ + 168 /* #NOAPP */ + 169 .size PushMagicWord, .-PushMagicWord + 170 .text + 171 .global main + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 4 + + + 172 .type main, @function + 173 main: + 174 00c4 DF93 push r29 + 175 00c6 CF93 push r28 + 176 00c8 0F92 push __tmp_reg__ + 177 00ca CDB7 in r28,__SP_L__ + 178 00cc DEB7 in r29,__SP_H__ + 179 /* prologue: function */ + 180 /* frame size = 1 */ + 181 /* stack size = 3 */ + 182 .L__stack_usage = 3 + 183 00ce 88E1 ldi r24,lo8(24) + 184 /* #APP */ + 185 ; 316 "main.c" 1 + 186 00d0 0FB6 in __tmp_reg__, __SREG__ + 187 00d2 F894 cli + 188 00d4 81BD out 33, r24 + 189 00d6 11BC out 33, __zero_reg__ + 190 00d8 0FBE out __SREG__,__tmp_reg__ + 191 + 192 ; 0 "" 2 + 193 /* #NOAPP */ + 194 00da E0E0 ldi r30,lo8(0) + 195 00dc F0E0 ldi r31,hi8(0) + 196 /* #APP */ + 197 ; 269 "main.c" 1 + 198 00de 8591 lpm r24, Z+ + 199 00e0 9491 lpm r25, Z + 200 + 201 ; 0 "" 2 + 202 /* #NOAPP */ + 203 00e2 2BEC ldi r18,hi8(-13441) + 204 00e4 8F37 cpi r24,lo8(-13441) + 205 00e6 9207 cpc r25,r18 + 206 00e8 01F4 brne .L13 + 207 00ea E4E0 ldi r30,lo8(4) + 208 00ec F0E0 ldi r31,hi8(4) + 209 /* #APP */ + 210 ; 270 "main.c" 1 + 211 00ee 8591 lpm r24, Z+ + 212 00f0 9491 lpm r25, Z + 213 + 214 ; 0 "" 2 + 215 /* #NOAPP */ + 216 00f2 3BEC ldi r19,hi8(-13441) + 217 00f4 8F37 cpi r24,lo8(-13441) + 218 00f6 9307 cpc r25,r19 + 219 00f8 01F0 breq .L14 + 220 .L13: + 221 00fa 00D0 rcall fillFlashWithVectors + 222 .L14: + 223 00fc 1092 0000 sts currentAddress+1,__zero_reg__ + 224 0100 1092 0000 sts currentAddress,__zero_reg__ + 225 0104 AC9A sbi 53-32,4 + 226 0106 8BB7 in r24,91-32 + 227 0108 8062 ori r24,lo8(32) + 228 010a 8BBF out 91-32,r24 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 5 + + + 229 010c BB9A sbi 55-32,3 + 230 010e 8FE4 ldi r24,lo8(1649999) + 231 0110 9DE2 ldi r25,hi8(1649999) + 232 0112 A9E1 ldi r26,hlo8(1649999) + 233 0114 8150 1:subi r24,1 + 234 0116 9040 sbci r25,0 + 235 0118 A040 sbci r26,0 + 236 011a 01F4 brne 1b + 237 011c 00C0 rjmp . + 238 011e 0000 nop + 239 0120 BB98 cbi 55-32,3 + 240 /* #APP */ + 241 ; 262 "main.c" 1 + 242 0122 7894 sei + 243 ; 0 "" 2 + 244 /* #NOAPP */ + 245 0124 EE24 clr r14 + 246 0126 FF24 clr r15 + 247 .L68: + 248 0128 2091 0000 lds r18,usbRxLen + 249 012c 2350 subi r18,lo8(-(-3)) + 250 012e 27FD sbrc r18,7 + 251 0130 00C0 rjmp .L15 + 252 0132 8091 0000 lds r24,usbInputBufOffset + 253 0136 ECE0 ldi r30,lo8(12) + 254 0138 F0E0 ldi r31,hi8(12) + 255 013a E81B sub r30,r24 + 256 013c F109 sbc r31,__zero_reg__ + 257 013e E050 subi r30,lo8(-(usbRxBuf)) + 258 0140 F040 sbci r31,hi8(-(usbRxBuf)) + 259 0142 8091 0000 lds r24,usbRxToken + 260 0146 8D32 cpi r24,lo8(45) + 261 0148 01F0 breq .+2 + 262 014a 00C0 rjmp .L16 + 263 014c 2830 cpi r18,lo8(8) + 264 014e 01F0 breq .+2 + 265 0150 00C0 rjmp .L17 + 266 0152 83EC ldi r24,lo8(-61) + 267 0154 8093 0000 sts usbTxBuf,r24 + 268 0158 8AE5 ldi r24,lo8(90) + 269 015a 8093 0000 sts usbTxLen,r24 + 270 015e 1092 0000 sts usbMsgFlags,__zero_reg__ + 271 0162 2081 ld r18,Z + 272 0164 922F mov r25,r18 + 273 0166 9076 andi r25,lo8(96) + 274 0168 8181 ldd r24,Z+1 + 275 016a 9923 tst r25 + 276 016c 01F0 breq .L18 + 277 016e 8823 tst r24 + 278 0170 01F4 brne .L19 + 279 0172 80E0 ldi r24,lo8(replyBuffer.1745) + 280 0174 90E0 ldi r25,hi8(replyBuffer.1745) + 281 0176 9093 0000 sts usbMsgPtr+1,r25 + 282 017a 8093 0000 sts usbMsgPtr,r24 + 283 017e 24E0 ldi r18,lo8(4) + 284 0180 00C0 rjmp .L25 + 285 .L19: + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 6 + + + 286 0182 8130 cpi r24,lo8(1) + 287 0184 01F4 brne .L21 + 288 0186 8281 ldd r24,Z+2 + 289 0188 8093 0000 sts writeLength,r24 + 290 018c 8481 ldd r24,Z+4 + 291 018e 9581 ldd r25,Z+5 + 292 0190 9093 0000 sts currentAddress+1,r25 + 293 0194 8093 0000 sts currentAddress,r24 + 294 0198 27FD sbrc r18,7 + 295 019a 00C0 rjmp .L22 + 296 019c 2FEF ldi r18,lo8(-1) + 297 019e 00C0 rjmp .L23 + 298 .L21: + 299 01a0 9091 0000 lds r25,events + 300 01a4 8230 cpi r24,lo8(2) + 301 01a6 01F4 brne .L24 + 302 01a8 9160 ori r25,lo8(1) + 303 01aa 00C0 rjmp .L77 + 304 .L24: + 305 01ac 9460 ori r25,lo8(4) + 306 .L77: + 307 01ae 9093 0000 sts events,r25 + 308 01b2 20E0 ldi r18,lo8(0) + 309 01b4 00C0 rjmp .L25 + 310 .L18: + 311 01b6 9281 ldd r25,Z+2 + 312 01b8 1092 0000 sts usbTxBuf+9,__zero_reg__ + 313 01bc 8823 tst r24 + 314 01be 01F4 brne .L26 + 315 01c0 1092 0000 sts usbTxBuf+10,__zero_reg__ + 316 01c4 80E0 ldi r24,lo8(usbTxBuf+9) + 317 01c6 90E0 ldi r25,hi8(usbTxBuf+9) + 318 01c8 22E0 ldi r18,lo8(2) + 319 01ca 00C0 rjmp .L27 + 320 .L26: + 321 01cc 8530 cpi r24,lo8(5) + 322 01ce 01F4 brne .L28 + 323 01d0 9093 0000 sts usbNewDeviceAddr,r25 + 324 01d4 00C0 rjmp .L75 + 325 .L28: + 326 01d6 8630 cpi r24,lo8(6) + 327 01d8 01F4 brne .L29 + 328 01da 8381 ldd r24,Z+3 + 329 01dc 8130 cpi r24,lo8(1) + 330 01de 01F4 brne .L30 + 331 01e0 80E0 ldi r24,lo8(usbDescriptorDevice) + 332 01e2 90E0 ldi r25,hi8(usbDescriptorDevice) + 333 01e4 00C0 rjmp .L74 + 334 .L30: + 335 01e6 8230 cpi r24,lo8(2) + 336 01e8 01F4 brne .L32 + 337 01ea 80E0 ldi r24,lo8(usbDescriptorConfiguration) + 338 01ec 90E0 ldi r25,hi8(usbDescriptorConfiguration) + 339 .L74: + 340 01ee 9093 0000 sts usbMsgPtr+1,r25 + 341 01f2 8093 0000 sts usbMsgPtr,r24 + 342 01f6 22E1 ldi r18,lo8(18) + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 7 + + + 343 01f8 00C0 rjmp .L31 + 344 .L32: + 345 01fa 8330 cpi r24,lo8(3) + 346 01fc 01F4 brne .L70 + 347 01fe 9923 tst r25 + 348 0200 01F4 brne .L33 + 349 0202 80E0 ldi r24,lo8(usbDescriptorString0) + 350 0204 90E0 ldi r25,hi8(usbDescriptorString0) + 351 0206 9093 0000 sts usbMsgPtr+1,r25 + 352 020a 8093 0000 sts usbMsgPtr,r24 + 353 020e 24E0 ldi r18,lo8(4) + 354 0210 00C0 rjmp .L31 + 355 .L33: + 356 0212 9130 cpi r25,lo8(1) + 357 0214 01F4 brne .L34 + 358 0216 80E0 ldi r24,lo8(usbDescriptorStringVendor) + 359 0218 90E0 ldi r25,hi8(usbDescriptorStringVendor) + 360 021a 9093 0000 sts usbMsgPtr+1,r25 + 361 021e 8093 0000 sts usbMsgPtr,r24 + 362 0222 22E2 ldi r18,lo8(34) + 363 0224 00C0 rjmp .L31 + 364 .L34: + 365 0226 9230 cpi r25,lo8(2) + 366 0228 01F4 brne .L70 + 367 022a 80E0 ldi r24,lo8(usbDescriptorStringDevice) + 368 022c 90E0 ldi r25,hi8(usbDescriptorStringDevice) + 369 022e 9093 0000 sts usbMsgPtr+1,r25 + 370 0232 8093 0000 sts usbMsgPtr,r24 + 371 0236 2CE0 ldi r18,lo8(12) + 372 0238 00C0 rjmp .L31 + 373 .L70: + 374 023a 20E0 ldi r18,lo8(0) + 375 .L31: + 376 023c 80E4 ldi r24,lo8(64) + 377 023e 8093 0000 sts usbMsgFlags,r24 + 378 0242 00C0 rjmp .L25 + 379 .L29: + 380 0244 8830 cpi r24,lo8(8) + 381 0246 01F0 breq .L71 + 382 0248 8930 cpi r24,lo8(9) + 383 024a 01F4 brne .L36 + 384 024c 9093 0000 sts usbConfiguration,r25 + 385 0250 00C0 rjmp .L75 + 386 .L36: + 387 0252 8A30 cpi r24,lo8(10) + 388 0254 01F0 breq .L72 + 389 .L75: + 390 0256 80E0 ldi r24,lo8(usbTxBuf+9) + 391 0258 90E0 ldi r25,hi8(usbTxBuf+9) + 392 025a 20E0 ldi r18,lo8(0) + 393 025c 00C0 rjmp .L27 + 394 .L71: + 395 025e 80E0 ldi r24,lo8(usbConfiguration) + 396 0260 90E0 ldi r25,hi8(usbConfiguration) + 397 0262 00C0 rjmp .L76 + 398 .L72: + 399 0264 80E0 ldi r24,lo8(usbTxBuf+9) + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 8 + + + 400 0266 90E0 ldi r25,hi8(usbTxBuf+9) + 401 .L76: + 402 0268 21E0 ldi r18,lo8(1) + 403 .L27: + 404 026a 9093 0000 sts usbMsgPtr+1,r25 + 405 026e 8093 0000 sts usbMsgPtr,r24 + 406 0272 00C0 rjmp .L25 + 407 .L22: + 408 0274 2681 ldd r18,Z+6 + 409 .L23: + 410 0276 80E8 ldi r24,lo8(-128) + 411 0278 8093 0000 sts usbMsgFlags,r24 + 412 027c 00C0 rjmp .L37 + 413 .L25: + 414 027e 8781 ldd r24,Z+7 + 415 0280 8823 tst r24 + 416 0282 01F4 brne .L37 + 417 0284 8681 ldd r24,Z+6 + 418 0286 8217 cp r24,r18 + 419 0288 00F4 brsh .L37 + 420 028a 282F mov r18,r24 + 421 .L37: + 422 028c 2093 0000 sts usbMsgLen,r18 + 423 0290 00C0 rjmp .L17 + 424 .L16: + 425 0292 8091 0000 lds r24,usbMsgFlags + 426 0296 87FF sbrs r24,7 + 427 0298 00C0 rjmp .L17 + 428 029a 8091 0000 lds r24,writeLength + 429 029e 821B sub r24,r18 + 430 02a0 8093 0000 sts writeLength,r24 + 431 02a4 8F01 movw r16,r30 + 432 .L42: + 433 02a6 8091 0000 lds r24,currentAddress + 434 02aa 9091 0000 lds r25,currentAddress+1 + 435 02ae 0097 sbiw r24,0 + 436 02b0 01F4 brne .L38 + 437 02b2 D801 movw r26,r16 + 438 02b4 8D91 ld r24,X+ + 439 02b6 9C91 ld r25,X + 440 02b8 1197 sbiw r26,1 + 441 02ba 9093 0000 sts vectorTemp+1,r25 + 442 02be 8093 0000 sts vectorTemp,r24 + 443 02c2 00C0 rjmp .L39 + 444 .L38: + 445 02c4 8430 cpi r24,4 + 446 02c6 9105 cpc r25,__zero_reg__ + 447 02c8 01F4 brne .L40 + 448 02ca F801 movw r30,r16 + 449 02cc 8081 ld r24,Z + 450 02ce 9181 ldd r25,Z+1 + 451 02d0 9093 0000 sts vectorTemp+2+1,r25 + 452 02d4 8093 0000 sts vectorTemp+2,r24 + 453 02d8 00C0 rjmp .L39 + 454 .L40: + 455 02da F6E1 ldi r31,hi8(5882) + 456 02dc 8A3F cpi r24,lo8(5882) + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 9 + + + 457 02de 9F07 cpc r25,r31 + 458 02e0 00F0 brlo .L39 + 459 02e2 81E1 ldi r24,lo8(17) + 460 /* #APP */ + 461 ; 225 "main.c" 1 + 462 02e4 8093 5700 sts 87, r24 + 463 02e8 E895 spm + 464 + 465 ; 0 "" 2 + 466 /* #NOAPP */ + 467 02ea 00C0 rjmp .L41 + 468 .L39: + 469 02ec D801 movw r26,r16 + 470 02ee 8D91 ld r24,X+ + 471 02f0 9D91 ld r25,X+ + 472 02f2 8D01 movw r16,r26 + 473 02f4 2983 std Y+1,r18 + 474 02f6 00D0 rcall writeWordToPageBuffer + 475 02f8 2981 ldd r18,Y+1 + 476 02fa 2250 subi r18,lo8(-(-2)) + 477 02fc 01F4 brne .L42 + 478 .L41: + 479 02fe 8091 0000 lds r24,writeLength + 480 0302 8823 tst r24 + 481 0304 01F4 brne .L17 + 482 0306 8091 0000 lds r24,events + 483 030a 8260 ori r24,lo8(2) + 484 030c 8093 0000 sts events,r24 + 485 0310 1092 0000 sts usbMsgLen,__zero_reg__ + 486 .L17: + 487 0314 1092 0000 sts usbRxLen,__zero_reg__ + 488 .L15: + 489 0318 8091 0000 lds r24,usbTxLen + 490 031c 84FF sbrs r24,4 + 491 031e 00C0 rjmp .L43 + 492 0320 8091 0000 lds r24,usbMsgLen + 493 0324 8F3F cpi r24,lo8(-1) + 494 0326 01F4 brne .+2 + 495 0328 00C0 rjmp .L43 + 496 032a 082F mov r16,r24 + 497 032c 8930 cpi r24,lo8(9) + 498 032e 00F0 brlo .L44 + 499 0330 08E0 ldi r16,lo8(8) + 500 .L44: + 501 0332 801B sub r24,r16 + 502 0334 8093 0000 sts usbMsgLen,r24 + 503 0338 8091 0000 lds r24,usbTxBuf + 504 033c 98E8 ldi r25,lo8(-120) + 505 033e 8927 eor r24,r25 + 506 0340 8093 0000 sts usbTxBuf,r24 + 507 0344 0023 tst r16 + 508 0346 01F0 breq .L45 + 509 0348 E091 0000 lds r30,usbMsgPtr + 510 034c F091 0000 lds r31,usbMsgPtr+1 + 511 0350 9091 0000 lds r25,usbMsgFlags + 512 0354 802F mov r24,r16 + 513 0356 8150 subi r24,lo8(-(-1)) + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 10 + + + 514 0358 96FF sbrs r25,6 + 515 035a 00C0 rjmp .L46 + 516 035c 90E0 ldi r25,lo8(0) + 517 035e 8050 subi r24,lo8(-(usbTxBuf+2)) + 518 0360 9040 sbci r25,hi8(-(usbTxBuf+2)) + 519 0362 A0E0 ldi r26,lo8(usbTxBuf+1) + 520 0364 B0E0 ldi r27,hi8(usbTxBuf+1) + 521 .L47: + 522 /* #APP */ + 523 ; 504 "usbdrv/usbdrv.c" 1 + 524 0366 2491 lpm r18, Z + 525 + 526 ; 0 "" 2 + 527 /* #NOAPP */ + 528 0368 2D93 st X+,r18 + 529 036a 3196 adiw r30,1 + 530 036c A817 cp r26,r24 + 531 036e B907 cpc r27,r25 + 532 0370 01F4 brne .L47 + 533 0372 00C0 rjmp .L48 + 534 .L46: + 535 0374 9F01 movw r18,r30 + 536 0376 90E0 ldi r25,lo8(0) + 537 0378 8050 subi r24,lo8(-(usbTxBuf+2)) + 538 037a 9040 sbci r25,hi8(-(usbTxBuf+2)) + 539 037c A0E0 ldi r26,lo8(usbTxBuf+1) + 540 037e B0E0 ldi r27,hi8(usbTxBuf+1) + 541 .L49: + 542 0380 F901 movw r30,r18 + 543 0382 4191 ld r20,Z+ + 544 0384 9F01 movw r18,r30 + 545 0386 4D93 st X+,r20 + 546 0388 A817 cp r26,r24 + 547 038a B907 cpc r27,r25 + 548 038c 01F4 brne .L49 + 549 .L48: + 550 038e F093 0000 sts usbMsgPtr+1,r31 + 551 0392 E093 0000 sts usbMsgPtr,r30 + 552 .L45: + 553 0396 80E0 ldi r24,lo8(usbTxBuf+1) + 554 0398 90E0 ldi r25,hi8(usbTxBuf+1) + 555 039a 602F mov r22,r16 + 556 039c 00D0 rcall usbCrc16Append + 557 039e 0C5F subi r16,lo8(-(4)) + 558 03a0 0C30 cpi r16,lo8(12) + 559 03a2 01F0 breq .L50 + 560 03a4 8FEF ldi r24,lo8(-1) + 561 03a6 8093 0000 sts usbMsgLen,r24 + 562 .L50: + 563 03aa 0093 0000 sts usbTxLen,r16 + 564 .L43: + 565 03ae 84E1 ldi r24,lo8(20) + 566 .L52: + 567 03b0 96B3 in r25,54-32 + 568 03b2 9871 andi r25,lo8(24) + 569 03b4 01F4 brne .L51 + 570 03b6 8150 subi r24,lo8(-(-1)) + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 11 + + + 571 03b8 01F4 brne .L52 + 572 03ba 1092 0000 sts usbNewDeviceAddr,__zero_reg__ + 573 03be 1092 0000 sts usbDeviceAddr,__zero_reg__ + 574 .L51: + 575 03c2 01E0 ldi r16,lo8(1) + 576 03c4 8111 cpse r24,__zero_reg__ + 577 03c6 00E0 ldi r16,lo8(0) + 578 .L53: + 579 03c8 8091 0000 lds r24,wasReset.1698 + 580 03cc 8017 cp r24,r16 + 581 03ce 01F0 breq .L54 + 582 03d0 0023 tst r16 + 583 03d2 01F4 brne .L55 + 584 /* #APP */ + 585 ; 557 "usbdrv/usbdrv.c" 1 + 586 03d4 F894 cli + 587 ; 0 "" 2 + 588 /* #NOAPP */ + 589 03d6 00D0 rcall calibrateOscillator + 590 /* #APP */ + 591 ; 557 "usbdrv/usbdrv.c" 1 + 592 03d8 7894 sei + 593 ; 0 "" 2 + 594 /* #NOAPP */ + 595 .L55: + 596 03da 0093 0000 sts wasReset.1698,r16 + 597 .L54: + 598 03de 8CE9 ldi r24,lo8(412) + 599 03e0 91E0 ldi r25,hi8(412) + 600 03e2 0197 1:sbiw r24,1 + 601 03e4 01F4 brne 1b + 602 03e6 0000 nop + 603 03e8 8091 0000 lds r24,events + 604 03ec 8823 tst r24 + 605 03ee 01F4 brne .L73 + 606 03f0 0894 sec + 607 03f2 E11C adc r14,__zero_reg__ + 608 03f4 F11C adc r15,__zero_reg__ + 609 03f6 00C0 rjmp .L56 + 610 .L73: + 611 03f8 EE24 clr r14 + 612 03fa FF24 clr r15 + 613 .L56: + 614 03fc 80FF sbrs r24,0 + 615 03fe 00C0 rjmp .L57 + 616 0400 80EC ldi r24,lo8(5824) + 617 0402 96E1 ldi r25,hi8(5824) + 618 0404 00C0 rjmp .L78 + 619 .L60: + 620 /* #APP */ + 621 ; 103 "main.c" 1 + 622 0406 F894 cli + 623 ; 0 "" 2 + 624 /* #NOAPP */ + 625 0408 E091 0000 lds r30,currentAddress + 626 040c F091 0000 lds r31,currentAddress+1 + 627 0410 83E0 ldi r24,lo8(3) + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 12 + + + 628 /* #APP */ + 629 ; 104 "main.c" 1 + 630 0412 8093 5700 sts 87, r24 + 631 0416 E895 spm + 632 + 633 ; 0 "" 2 + 634 /* #NOAPP */ + 635 .L59: + 636 0418 07B6 in __tmp_reg__,87-32 + 637 041a 00FC sbrc __tmp_reg__,0 + 638 041c 00C0 rjmp .L59 + 639 /* #APP */ + 640 ; 106 "main.c" 1 + 641 041e 7894 sei + 642 ; 0 "" 2 + 643 /* #NOAPP */ + 644 0420 8091 0000 lds r24,currentAddress + 645 0424 9091 0000 lds r25,currentAddress+1 + 646 0428 8054 subi r24,lo8(-(-64)) + 647 042a 9040 sbci r25,hi8(-(-64)) + 648 .L78: + 649 042c 9093 0000 sts currentAddress+1,r25 + 650 0430 8093 0000 sts currentAddress,r24 + 651 0434 8091 0000 lds r24,currentAddress + 652 0438 9091 0000 lds r25,currentAddress+1 + 653 043c 0097 sbiw r24,0 + 654 043e 01F4 brne .L60 + 655 .L57: + 656 0440 8091 0000 lds r24,events + 657 0444 81FF sbrs r24,1 + 658 0446 00C0 rjmp .L61 + 659 0448 A9E3 ldi r26,lo8(8249) + 660 044a B0E2 ldi r27,hi8(8249) + 661 044c 1197 1:sbiw r26,1 + 662 044e 01F4 brne 1b + 663 0450 00C0 rjmp . + 664 0452 0000 nop + 665 0454 8091 0000 lds r24,currentAddress + 666 0458 9091 0000 lds r25,currentAddress+1 + 667 045c 8F73 andi r24,lo8(63) + 668 045e 9070 andi r25,hi8(63) + 669 0460 0097 sbiw r24,0 + 670 0462 01F0 breq .L62 + 671 0464 00D0 rcall fillFlashWithVectors + 672 0466 00C0 rjmp .L61 + 673 .L62: + 674 0468 00D0 rcall writeFlashPage + 675 .L61: + 676 046a 8091 0000 lds r24,events + 677 046e 82FD sbrc r24,2 + 678 0470 00C0 rjmp .L63 + 679 0472 B1E5 ldi r27,lo8(-15535) + 680 0474 EB16 cp r14,r27 + 681 0476 B3EC ldi r27,hi8(-15535) + 682 0478 FB06 cpc r15,r27 + 683 047a 00F0 brlo .L64 + 684 .L63: + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 13 + + + 685 047c E1E2 ldi r30,lo8(-24287) + 686 047e F1EA ldi r31,hi8(-24287) + 687 0480 3197 1:sbiw r30,1 + 688 0482 01F4 brne 1b + 689 0484 00C0 rjmp . + 690 0486 0000 nop + 691 /* #APP */ + 692 ; 293 "main.c" 1 + 693 0488 F894 cli + 694 ; 0 "" 2 + 695 /* #NOAPP */ + 696 048a 1BBE out 91-32,__zero_reg__ + 697 048c 15BA out 53-32,__zero_reg__ + 698 048e 8091 0000 lds r24,didWriteSomething + 699 0492 8823 tst r24 + 700 0494 01F4 brne .L65 + 701 0496 00C0 rjmp .L66 + 702 .L67: + 703 0498 00D0 rcall fillFlashWithVectors + 704 .L65: + 705 049a 8091 0000 lds r24,currentAddress + 706 049e 9091 0000 lds r25,currentAddress+1 + 707 04a2 F7E1 ldi r31,hi8(5888) + 708 04a4 8030 cpi r24,lo8(5888) + 709 04a6 9F07 cpc r25,r31 + 710 04a8 00F0 brlo .L67 + 711 .L66: + 712 04aa 1092 5F02 sts 607,__zero_reg__ + 713 04ae 1092 5E02 sts 606,__zero_reg__ + 714 /* #APP */ + 715 ; 309 "main.c" 1 + 716 04b2 00C0 rjmp __vectors - 4 + 717 ; 0 "" 2 + 718 /* #NOAPP */ + 719 .L64: + 720 04b4 1092 0000 sts events,__zero_reg__ + 721 04b8 00C0 rjmp .L68 + 722 .size main, .-main + 723 .global usbTxLen + 724 .data + 725 .type usbTxLen, @object + 726 .size usbTxLen, 1 + 727 usbTxLen: + 728 0000 5A .byte 90 + 729 .global usbDescriptorString0 + 730 .section .progmem.data,"a",@progbits + 731 .type usbDescriptorString0, @object + 732 .size usbDescriptorString0, 4 + 733 usbDescriptorString0: + 734 0000 04 .byte 4 + 735 0001 03 .byte 3 + 736 0002 09 .byte 9 + 737 0003 04 .byte 4 + 738 .global usbDescriptorStringVendor + 739 .type usbDescriptorStringVendor, @object + 740 .size usbDescriptorStringVendor, 34 + 741 usbDescriptorStringVendor: + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 14 + + + 742 0004 2203 .word 802 + 743 0006 6300 .word 99 + 744 0008 7200 .word 114 + 745 000a 6500 .word 101 + 746 000c 6100 .word 97 + 747 000e 7400 .word 116 + 748 0010 6900 .word 105 + 749 0012 7600 .word 118 + 750 0014 6500 .word 101 + 751 0016 7000 .word 112 + 752 0018 6F00 .word 111 + 753 001a 6E00 .word 110 + 754 001c 7900 .word 121 + 755 001e 2E00 .word 46 + 756 0020 6300 .word 99 + 757 0022 6F00 .word 111 + 758 0024 6D00 .word 109 + 759 .global usbDescriptorStringDevice + 760 .type usbDescriptorStringDevice, @object + 761 .size usbDescriptorStringDevice, 12 + 762 usbDescriptorStringDevice: + 763 0026 0C03 .word 780 + 764 0028 7500 .word 117 + 765 002a 4200 .word 66 + 766 002c 6F00 .word 111 + 767 002e 6F00 .word 111 + 768 0030 7400 .word 116 + 769 .global usbDescriptorDevice + 770 .type usbDescriptorDevice, @object + 771 .size usbDescriptorDevice, 18 + 772 usbDescriptorDevice: + 773 0032 12 .byte 18 + 774 0033 01 .byte 1 + 775 0034 10 .byte 16 + 776 0035 01 .byte 1 + 777 0036 FF .byte -1 + 778 0037 00 .byte 0 + 779 0038 00 .byte 0 + 780 0039 08 .byte 8 + 781 003a C0 .byte -64 + 782 003b 16 .byte 22 + 783 003c DC .byte -36 + 784 003d 05 .byte 5 + 785 003e 01 .byte 1 + 786 003f 01 .byte 1 + 787 0040 01 .byte 1 + 788 0041 02 .byte 2 + 789 0042 00 .byte 0 + 790 0043 01 .byte 1 + 791 .global usbDescriptorConfiguration + 792 .type usbDescriptorConfiguration, @object + 793 .size usbDescriptorConfiguration, 18 + 794 usbDescriptorConfiguration: + 795 0044 09 .byte 9 + 796 0045 02 .byte 2 + 797 0046 12 .byte 18 + 798 0047 00 .byte 0 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 15 + + + 799 0048 01 .byte 1 + 800 0049 01 .byte 1 + 801 004a 00 .byte 0 + 802 004b 80 .byte -128 + 803 004c 32 .byte 50 + 804 004d 09 .byte 9 + 805 004e 04 .byte 4 + 806 004f 00 .byte 0 + 807 0050 00 .byte 0 + 808 0051 00 .byte 0 + 809 0052 00 .byte 0 + 810 0053 00 .byte 0 + 811 0054 00 .byte 0 + 812 0055 00 .byte 0 + 813 .comm usbMsgPtr,2,1 + 814 .comm usbRxToken,1,1 + 815 .comm usbConfiguration,1,1 + 816 .comm usbRxBuf,22,1 + 817 .comm usbInputBufOffset,1,1 + 818 .comm usbDeviceAddr,1,1 + 819 .comm usbNewDeviceAddr,1,1 + 820 .comm usbRxLen,1,1 + 821 .comm usbCurrentTok,1,1 + 822 .comm usbTxBuf,11,1 823 .lcomm events,1 - 824 .lcomm vectorTemp,4 - 825 .lcomm didWriteSomething,1 - 826 .data - 827 .type usbMsgLen, @object - 828 .size usbMsgLen, 1 - 829 usbMsgLen: - 830 0001 FF .byte -1 - 831 .lcomm usbMsgFlags,1 - 832 .lcomm writeLength,1 - 833 .type replyBuffer.1745, @object - 834 .size replyBuffer.1745, 4 - 835 replyBuffer.1745: - 836 0002 16 .byte 22 - 837 0003 FA .byte -6 - 838 0004 40 .byte 64 - 839 0005 0C .byte 12 - 840 .lcomm wasReset.1698,1 - 841 .global __do_copy_data - 842 .global __do_clear_bss - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s page 16 + 824 .lcomm currentAddress,2 + 825 .lcomm vectorTemp,4 + 826 .lcomm didWriteSomething,1 + 827 .data + 828 .type usbMsgLen, @object + 829 .size usbMsgLen, 1 + 830 usbMsgLen: + 831 0001 FF .byte -1 + 832 .lcomm usbMsgFlags,1 + 833 .lcomm writeLength,1 + 834 .type replyBuffer.1745, @object + 835 .size replyBuffer.1745, 4 + 836 replyBuffer.1745: + 837 0002 16 .byte 22 + 838 0003 FA .byte -6 + 839 0004 40 .byte 64 + 840 0005 14 .byte 20 + 841 .lcomm wasReset.1698,1 + 842 .global __do_copy_data + 843 .global __do_clear_bss + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s page 16 DEFINED SYMBOLS *ABS*:00000000 main.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:2 *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:3 *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:4 *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:5 *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:6 *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:7 *ABS*:00000001 __zero_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:10 .text:00000000 writeFlashPage -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:824 .bss:00000007 didWriteSomething - .bss:00000000 currentAddress -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:46 .text:00000024 writeWordToPageBuffer -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:823 .bss:00000003 vectorTemp -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:822 .bss:00000002 events -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:140 .text:000000bc fillFlashWithVectors -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:168 .init3:00000000 PushMagicWord -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:192 .text:000000e2 main +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:2 *ABS*:0000003f __SREG__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:3 *ABS*:0000003e __SP_H__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:4 *ABS*:0000003d __SP_L__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:5 *ABS*:00000034 __CCP__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:6 *ABS*:00000000 __tmp_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:7 *ABS*:00000001 __zero_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:10 .text:00000000 writeFlashPage +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:825 .bss:00000007 didWriteSomething +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:823 .bss:00000001 currentAddress +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:46 .text:00000024 writeWordToPageBuffer +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:824 .bss:00000003 vectorTemp +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:121 .text:0000009e fillFlashWithVectors +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:149 .init3:00000000 PushMagicWord +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:173 .text:000000c4 main *COM*:00000001 usbRxLen *COM*:00000001 usbInputBufOffset *COM*:00000016 usbRxBuf *COM*:00000001 usbRxToken *COM*:0000000b usbTxBuf -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:726 .data:00000000 usbTxLen -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:825 .bss:00000008 usbMsgFlags -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:835 .data:00000002 replyBuffer.1745 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:727 .data:00000000 usbTxLen +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:826 .bss:00000008 usbMsgFlags +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:836 .data:00000002 replyBuffer.1745 *COM*:00000002 usbMsgPtr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:831 .bss:00000009 writeLength +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:832 .bss:00000009 writeLength + .bss:00000000 events *COM*:00000001 usbNewDeviceAddr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:771 .progmem.data:00000032 usbDescriptorDevice -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:793 .progmem.data:00000044 usbDescriptorConfiguration -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:732 .progmem.data:00000000 usbDescriptorString0 -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:740 .progmem.data:00000004 usbDescriptorStringVendor -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:761 .progmem.data:00000026 usbDescriptorStringDevice +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:772 .progmem.data:00000032 usbDescriptorDevice +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:794 .progmem.data:00000044 usbDescriptorConfiguration +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:733 .progmem.data:00000000 usbDescriptorString0 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:741 .progmem.data:00000004 usbDescriptorStringVendor +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:762 .progmem.data:00000026 usbDescriptorStringDevice *COM*:00000001 usbConfiguration -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:829 .data:00000001 usbMsgLen +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:830 .data:00000001 usbMsgLen *COM*:00000001 usbDeviceAddr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9xcZmc.s:832 .bss:0000000a wasReset.1698 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccsUuzSz.s:833 .bss:0000000a wasReset.1698 *COM*:00000001 usbCurrentTok UNDEFINED SYMBOLS -- cgit v1.2.3