summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenna Fox <a@creativepony.com>2012-09-24 00:45:10 +1000
committerJenna Fox <a@creativepony.com>2012-09-24 00:45:10 +1000
commitd9ed646bd2495c6ab8524a35bd984f5526ee65ec (patch)
treeace1df8e7c74ecaed6a55132fbc9ccff3804d3fa
parente014795e2482dc53c04570917dfe69dcf48da463 (diff)
downloadmicronucleus-d9ed646bd2495c6ab8524a35bd984f5526ee65ec.tar.gz
micronucleus-d9ed646bd2495c6ab8524a35bd984f5526ee65ec.tar.bz2
micronucleus-d9ed646bd2495c6ab8524a35bd984f5526ee65ec.zip
It's uploading things properly! Stupid double increment bug. But I think it's failing to write tinyvector table
-rw-r--r--firmware/libs-device/osccal.c.lst20
-rwxr-xr-xfirmware/main.binbin8919 -> 8903 bytes
-rw-r--r--firmware/main.c1
-rw-r--r--firmware/main.c.lst807
-rw-r--r--firmware/main.hex81
-rw-r--r--firmware/main.map28
-rw-r--r--firmware/main.obin5852 -> 5784 bytes
-rw-r--r--firmware/nyan-cat.binbin0 -> 1304 bytes
-rw-r--r--firmware/temp-dump.binbin7664 -> 7646 bytes
-rw-r--r--firmware/upload.rb9
-rw-r--r--firmware/usbdrv/oddebug.c.lst16
11 files changed, 480 insertions, 482 deletions
diff --git a/firmware/libs-device/osccal.c.lst b/firmware/libs-device/osccal.c.lst
index 2ebf9a0..ae4bb0c 100644
--- a/firmware/libs-device/osccal.c.lst
+++ b/firmware/libs-device/osccal.c.lst
@@ -1,4 +1,4 @@
-GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgWkNG0.s page 1
+GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s page 1
1 .file "osccal.c"
@@ -58,7 +58,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgWkNG0.s page
55 0046 8C17 cp r24,r28
56 0048 9D07 cpc r25,r29
57 004a 04F4 brge .L6
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgWkNG0.s page 2
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s page 2
58 004c 01B7 in r16,81-32
@@ -85,18 +85,18 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgWkNG0.s page
79 0070 FF90 pop r15
80 0072 0895 ret
81 .size calibrateOscillator, .-calibrateOscillator
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgWkNG0.s page 3
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s page 3
DEFINED SYMBOLS
*ABS*:00000000 osccal.c
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgWkNG0.s:2 *ABS*:0000003f __SREG__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgWkNG0.s:3 *ABS*:0000003e __SP_H__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgWkNG0.s:4 *ABS*:0000003d __SP_L__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgWkNG0.s:5 *ABS*:00000034 __CCP__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgWkNG0.s:6 *ABS*:00000000 __tmp_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgWkNG0.s:7 *ABS*:00000001 __zero_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgWkNG0.s:11 .text:00000000 calibrateOscillator
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:2 *ABS*:0000003f __SREG__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:3 *ABS*:0000003e __SP_H__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:4 *ABS*:0000003d __SP_L__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:5 *ABS*:00000034 __CCP__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:6 *ABS*:00000000 __tmp_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:7 *ABS*:00000001 __zero_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc0r4xDP.s:11 .text:00000000 calibrateOscillator
UNDEFINED SYMBOLS
usbMeasureFrameLength
diff --git a/firmware/main.bin b/firmware/main.bin
index b376872..39abe62 100755
--- a/firmware/main.bin
+++ b/firmware/main.bin
Binary files differ
diff --git a/firmware/main.c b/firmware/main.c
index 3cfbeec..b8a88ea 100644
--- a/firmware/main.c
+++ b/firmware/main.c
@@ -259,7 +259,6 @@ static uchar usbFunctionWrite(uchar *data, uchar length) {
}
writeWordToPageBuffer(*(uint16_t *) data);
- currentAddress += 2; // advance progmem address
data += 2; // advance data pointer
length -= 2;
} while(length);
diff --git a/firmware/main.c.lst b/firmware/main.c.lst
index 9edc9aa..368e7c8 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//ccMGKblz.s page 1
+GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 1
1 .file "main.c"
@@ -58,7 +58,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page
55 002e 2430 cpi r18,4
56 0030 3105 cpc r19,__zero_reg__
57 0032 01F0 breq .L9
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 2
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 2
58 0034 44E1 ldi r20,hi8(5372)
@@ -118,7 +118,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page
112 008c 3923 and r19,r25
113 008e 2817 cp r18,r24
114 0090 3907 cpc r19,r25
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 3
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 3
115 0092 01F0 breq .L8
@@ -178,19 +178,19 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page
169 /* stack size = 0 */
170 .L__stack_usage = 0
171 /* #APP */
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 4
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 4
- 172 ; 281 "main.c" 1
+ 172 ; 280 "main.c" 1
173 0000 00EB ldi r16, 0xB0
174 ; 0 "" 2
- 175 ; 282 "main.c" 1
+ 175 ; 281 "main.c" 1
176 0002 0F93 push r16
177 ; 0 "" 2
- 178 ; 283 "main.c" 1
+ 178 ; 282 "main.c" 1
179 0004 07E0 ldi r16, 0x07
180 ; 0 "" 2
- 181 ; 284 "main.c" 1
+ 181 ; 283 "main.c" 1
182 0006 0F93 push r16
183 ; 0 "" 2
184 /* epilogue start */
@@ -211,7 +211,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page
199 .L__stack_usage = 3
200 00e6 88E1 ldi r24,lo8(24)
201 /* #APP */
- 202 ; 327 "main.c" 1
+ 202 ; 326 "main.c" 1
203 00e8 0FB6 in __tmp_reg__, __SREG__
204 00ea F894 cli
205 00ec 81BD out 33, r24
@@ -223,7 +223,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page
211 00f2 E0E0 ldi r30,lo8(0)
212 00f4 F0E0 ldi r31,hi8(0)
213 /* #APP */
- 214 ; 302 "main.c" 1
+ 214 ; 301 "main.c" 1
215 00f6 8591 lpm r24, Z+
216 00f8 9491 lpm r25, Z
217
@@ -236,9 +236,9 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page
224 0102 E4E0 ldi r30,lo8(4)
225 0104 F0E0 ldi r31,hi8(4)
226 /* #APP */
- 227 ; 303 "main.c" 1
+ 227 ; 302 "main.c" 1
228 0106 8591 lpm r24, Z+
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 5
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 5
229 0108 9491 lpm r25, Z
@@ -275,7 +275,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page
260 0140 0000 nop
261 0142 BB98 cbi 55-32,3
262 /* #APP */
- 263 ; 295 "main.c" 1
+ 263 ; 294 "main.c" 1
264 0144 7894 sei
265 ; 0 "" 2
266 /* #NOAPP */
@@ -298,7 +298,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page
283 016a 01F0 breq .+2
284 016c 00C0 rjmp .L17
285 016e 2830 cpi r18,lo8(8)
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 6
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 6
286 0170 01F0 breq .+2
@@ -358,7 +358,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page
340 01ec 9093 0000 sts usbNewDeviceAddr,r25
341 01f0 00C0 rjmp .L70
342 .L28:
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 7
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 7
343 01f2 8630 cpi r24,lo8(6)
@@ -418,7 +418,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page
397 0260 8830 cpi r24,lo8(8)
398 0262 01F0 breq .L66
399 0264 8930 cpi r24,lo8(9)
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 8
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 8
400 0266 01F4 brne .L36
@@ -478,7 +478,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page
454 02ce D801 movw r26,r16
455 02d0 8D91 ld r24,X+
456 02d2 9C91 ld r25,X
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 9
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 9
457 02d4 1197 sbiw r26,1
@@ -516,409 +516,404 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page
489 030e 8D01 movw r16,r26
490 0310 2983 std Y+1,r18
491 0312 00D0 rcall writeWordToPageBuffer
- 492 0314 8091 0000 lds r24,currentAddress
- 493 0318 9091 0000 lds r25,currentAddress+1
- 494 031c 0296 adiw r24,2
- 495 031e 9093 0000 sts currentAddress+1,r25
- 496 0322 8093 0000 sts currentAddress,r24
- 497 0326 2981 ldd r18,Y+1
- 498 0328 2250 subi r18,lo8(-(-2))
- 499 032a 01F4 brne .L42
- 500 .L41:
- 501 032c 8091 0000 lds r24,writeLength
- 502 0330 8823 tst r24
- 503 0332 01F4 brne .L18
- 504 0334 8091 0000 lds r24,events
- 505 0338 8260 ori r24,lo8(2)
- 506 033a 8093 0000 sts events,r24
- 507 033e 1092 0000 sts usbMsgLen,__zero_reg__
- 508 .L18:
- 509 0342 1092 0000 sts usbRxLen,__zero_reg__
- 510 .L16:
- 511 0346 8091 0000 lds r24,usbTxLen
- 512 034a 84FF sbrs r24,4
- 513 034c 00C0 rjmp .L43
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 10
-
-
- 514 034e 8091 0000 lds r24,usbMsgLen
- 515 0352 8F3F cpi r24,lo8(-1)
- 516 0354 01F4 brne .+2
- 517 0356 00C0 rjmp .L43
- 518 0358 082F mov r16,r24
- 519 035a 8930 cpi r24,lo8(9)
- 520 035c 00F0 brlo .L44
- 521 035e 08E0 ldi r16,lo8(8)
- 522 .L44:
- 523 0360 801B sub r24,r16
- 524 0362 8093 0000 sts usbMsgLen,r24
- 525 0366 8091 0000 lds r24,usbTxBuf
- 526 036a 98E8 ldi r25,lo8(-120)
- 527 036c 8927 eor r24,r25
- 528 036e 8093 0000 sts usbTxBuf,r24
- 529 0372 0023 tst r16
- 530 0374 01F0 breq .L45
- 531 0376 E091 0000 lds r30,usbMsgPtr
- 532 037a F091 0000 lds r31,usbMsgPtr+1
- 533 037e 9091 0000 lds r25,usbMsgFlags
- 534 0382 802F mov r24,r16
- 535 0384 8150 subi r24,lo8(-(-1))
- 536 0386 96FF sbrs r25,6
- 537 0388 00C0 rjmp .L46
- 538 038a 90E0 ldi r25,lo8(0)
- 539 038c 8050 subi r24,lo8(-(usbTxBuf+2))
- 540 038e 9040 sbci r25,hi8(-(usbTxBuf+2))
- 541 0390 A0E0 ldi r26,lo8(usbTxBuf+1)
- 542 0392 B0E0 ldi r27,hi8(usbTxBuf+1)
- 543 .L47:
- 544 /* #APP */
- 545 ; 504 "usbdrv/usbdrv.c" 1
- 546 0394 2491 lpm r18, Z
- 547
- 548 ; 0 "" 2
- 549 /* #NOAPP */
- 550 0396 2D93 st X+,r18
- 551 0398 3196 adiw r30,1
- 552 039a A817 cp r26,r24
- 553 039c B907 cpc r27,r25
- 554 039e 01F4 brne .L47
- 555 03a0 00C0 rjmp .L48
- 556 .L46:
- 557 03a2 9F01 movw r18,r30
- 558 03a4 90E0 ldi r25,lo8(0)
- 559 03a6 8050 subi r24,lo8(-(usbTxBuf+2))
- 560 03a8 9040 sbci r25,hi8(-(usbTxBuf+2))
- 561 03aa A0E0 ldi r26,lo8(usbTxBuf+1)
- 562 03ac B0E0 ldi r27,hi8(usbTxBuf+1)
- 563 .L49:
- 564 03ae F901 movw r30,r18
- 565 03b0 4191 ld r20,Z+
- 566 03b2 9F01 movw r18,r30
- 567 03b4 4D93 st X+,r20
- 568 03b6 A817 cp r26,r24
- 569 03b8 B907 cpc r27,r25
- 570 03ba 01F4 brne .L49
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 11
-
-
- 571 .L48:
- 572 03bc F093 0000 sts usbMsgPtr+1,r31
- 573 03c0 E093 0000 sts usbMsgPtr,r30
- 574 .L45:
- 575 03c4 80E0 ldi r24,lo8(usbTxBuf+1)
- 576 03c6 90E0 ldi r25,hi8(usbTxBuf+1)
- 577 03c8 602F mov r22,r16
- 578 03ca 00D0 rcall usbCrc16Append
- 579 03cc 0C5F subi r16,lo8(-(4))
- 580 03ce 0C30 cpi r16,lo8(12)
- 581 03d0 01F0 breq .L50
- 582 03d2 8FEF ldi r24,lo8(-1)
- 583 03d4 8093 0000 sts usbMsgLen,r24
- 584 .L50:
- 585 03d8 0093 0000 sts usbTxLen,r16
- 586 .L43:
- 587 03dc 84E1 ldi r24,lo8(20)
- 588 .L52:
- 589 03de 96B3 in r25,54-32
- 590 03e0 9871 andi r25,lo8(24)
- 591 03e2 01F4 brne .L51
- 592 03e4 8150 subi r24,lo8(-(-1))
- 593 03e6 01F4 brne .L52
- 594 03e8 1092 0000 sts usbNewDeviceAddr,__zero_reg__
- 595 03ec 1092 0000 sts usbDeviceAddr,__zero_reg__
- 596 .L51:
- 597 03f0 01E0 ldi r16,lo8(1)
- 598 03f2 8111 cpse r24,__zero_reg__
- 599 03f4 00E0 ldi r16,lo8(0)
- 600 .L53:
- 601 03f6 8091 0000 lds r24,wasReset.1698
- 602 03fa 8017 cp r24,r16
- 603 03fc 01F0 breq .L54
- 604 03fe 0023 tst r16
- 605 0400 01F4 brne .L55
- 606 /* #APP */
- 607 ; 557 "usbdrv/usbdrv.c" 1
- 608 0402 F894 cli
- 609 ; 0 "" 2
- 610 /* #NOAPP */
- 611 0404 00D0 rcall calibrateOscillator
- 612 /* #APP */
- 613 ; 557 "usbdrv/usbdrv.c" 1
- 614 0406 7894 sei
- 615 ; 0 "" 2
- 616 /* #NOAPP */
- 617 .L55:
- 618 0408 0093 0000 sts wasReset.1698,r16
- 619 .L54:
- 620 040c 8CE9 ldi r24,lo8(412)
- 621 040e 91E0 ldi r25,hi8(412)
- 622 0410 0197 1:sbiw r24,1
- 623 0412 01F4 brne 1b
- 624 0414 0000 nop
- 625 0416 8091 0000 lds r24,events
- 626 041a 8823 tst r24
- 627 041c 01F4 brne .L68
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 12
-
-
- 628 041e 0894 sec
- 629 0420 E11C adc r14,__zero_reg__
- 630 0422 F11C adc r15,__zero_reg__
- 631 0424 00C0 rjmp .L56
- 632 .L68:
- 633 0426 EE24 clr r14
- 634 0428 FF24 clr r15
- 635 .L56:
- 636 042a 80FF sbrs r24,0
- 637 042c 00C0 rjmp .L57
- 638 /* #APP */
- 639 ; 117 "main.c" 1
- 640 042e F894 cli
- 641 ; 0 "" 2
- 642 /* #NOAPP */
- 643 0430 E091 0000 lds r30,currentAddress
- 644 0434 F091 0000 lds r31,currentAddress+1
- 645 0438 3297 sbiw r30,2
- 646 043a 83E0 ldi r24,lo8(3)
- 647 /* #APP */
- 648 ; 118 "main.c" 1
- 649 043c 8093 5700 sts 87, r24
- 650 0440 E895 spm
- 651
- 652 ; 0 "" 2
- 653 /* #NOAPP */
- 654 .L58:
- 655 0442 07B6 in __tmp_reg__,87-32
- 656 0444 00FC sbrc __tmp_reg__,0
- 657 0446 00C0 rjmp .L58
- 658 /* #APP */
- 659 ; 120 "main.c" 1
- 660 0448 7894 sei
- 661 ; 0 "" 2
- 662 /* #NOAPP */
- 663 .L57:
- 664 044a 8091 0000 lds r24,events
- 665 044e 81FF sbrs r24,1
- 666 0450 00C0 rjmp .L59
- 667 0452 A9E3 ldi r26,lo8(8249)
- 668 0454 B0E2 ldi r27,hi8(8249)
- 669 0456 1197 1:sbiw r26,1
- 670 0458 01F4 brne 1b
- 671 045a 00C0 rjmp .
- 672 045c 0000 nop
- 673 045e 8091 0000 lds r24,currentAddress
- 674 0462 9091 0000 lds r25,currentAddress+1
- 675 0466 8F73 andi r24,lo8(63)
- 676 0468 9070 andi r25,hi8(63)
- 677 046a 0097 sbiw r24,0
- 678 046c 01F0 breq .L60
- 679 046e 00D0 rcall fillFlashWithVectors
- 680 0470 00C0 rjmp .L59
- 681 .L60:
- 682 0472 00D0 rcall writeFlashPage
- 683 .L59:
- 684 0474 8091 0000 lds r24,events
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 13
-
-
- 685 0478 82FD sbrc r24,2
- 686 047a 00C0 rjmp .L61
- 687 047c B1E5 ldi r27,lo8(-15535)
- 688 047e EB16 cp r14,r27
- 689 0480 B3EC ldi r27,hi8(-15535)
- 690 0482 FB06 cpc r15,r27
- 691 0484 00F0 brlo .L62
- 692 .L61:
- 693 0486 E1E2 ldi r30,lo8(-24287)
- 694 0488 F1EA ldi r31,hi8(-24287)
- 695 048a 3197 1:sbiw r30,1
- 696 048c 01F4 brne 1b
- 697 048e 00C0 rjmp .
- 698 0490 0000 nop
- 699 /* #APP */
- 700 ; 190 "main.c" 1
- 701 0492 F894 cli
- 702 ; 0 "" 2
- 703 /* #NOAPP */
- 704 0494 1BBE out 91-32,__zero_reg__
- 705 0496 15BA out 53-32,__zero_reg__
- 706 0498 1092 5F02 sts 607,__zero_reg__
- 707 049c 1092 5E02 sts 606,__zero_reg__
- 708 /* #APP */
- 709 ; 206 "main.c" 1
- 710 04a0 00C0 rjmp __vectors - 4
- 711 ; 0 "" 2
- 712 /* #NOAPP */
- 713 .L62:
- 714 04a2 1092 0000 sts events,__zero_reg__
- 715 04a6 00C0 rjmp .L63
- 716 .size main, .-main
- 717 .global usbTxLen
- 718 .data
- 719 .type usbTxLen, @object
- 720 .size usbTxLen, 1
- 721 usbTxLen:
- 722 0000 5A .byte 90
- 723 .global usbDescriptorString0
- 724 .section .progmem.data,"a",@progbits
- 725 .type usbDescriptorString0, @object
- 726 .size usbDescriptorString0, 4
- 727 usbDescriptorString0:
- 728 0000 04 .byte 4
- 729 0001 03 .byte 3
- 730 0002 09 .byte 9
- 731 0003 04 .byte 4
- 732 .global usbDescriptorStringVendor
- 733 .type usbDescriptorStringVendor, @object
- 734 .size usbDescriptorStringVendor, 34
- 735 usbDescriptorStringVendor:
- 736 0004 2203 .word 802
- 737 0006 6300 .word 99
- 738 0008 7200 .word 114
- 739 000a 6500 .word 101
- 740 000c 6100 .word 97
- 741 000e 7400 .word 116
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 14
-
-
- 742 0010 6900 .word 105
- 743 0012 7600 .word 118
- 744 0014 6500 .word 101
- 745 0016 7000 .word 112
- 746 0018 6F00 .word 111
- 747 001a 6E00 .word 110
- 748 001c 7900 .word 121
- 749 001e 2E00 .word 46
- 750 0020 6300 .word 99
- 751 0022 6F00 .word 111
- 752 0024 6D00 .word 109
- 753 .global usbDescriptorStringDevice
- 754 .type usbDescriptorStringDevice, @object
- 755 .size usbDescriptorStringDevice, 12
- 756 usbDescriptorStringDevice:
- 757 0026 0C03 .word 780
- 758 0028 7500 .word 117
- 759 002a 4200 .word 66
- 760 002c 6F00 .word 111
- 761 002e 6F00 .word 111
- 762 0030 7400 .word 116
- 763 .global usbDescriptorDevice
- 764 .type usbDescriptorDevice, @object
- 765 .size usbDescriptorDevice, 18
- 766 usbDescriptorDevice:
- 767 0032 12 .byte 18
- 768 0033 01 .byte 1
- 769 0034 10 .byte 16
- 770 0035 01 .byte 1
- 771 0036 FF .byte -1
- 772 0037 00 .byte 0
- 773 0038 00 .byte 0
- 774 0039 08 .byte 8
- 775 003a C0 .byte -64
- 776 003b 16 .byte 22
- 777 003c DC .byte -36
- 778 003d 05 .byte 5
- 779 003e 01 .byte 1
- 780 003f 00 .byte 0
- 781 0040 01 .byte 1
- 782 0041 02 .byte 2
- 783 0042 00 .byte 0
- 784 0043 01 .byte 1
- 785 .global usbDescriptorConfiguration
- 786 .type usbDescriptorConfiguration, @object
- 787 .size usbDescriptorConfiguration, 18
- 788 usbDescriptorConfiguration:
- 789 0044 09 .byte 9
- 790 0045 02 .byte 2
- 791 0046 12 .byte 18
- 792 0047 00 .byte 0
- 793 0048 01 .byte 1
- 794 0049 01 .byte 1
- 795 004a 00 .byte 0
- 796 004b 80 .byte -128
- 797 004c 32 .byte 50
- 798 004d 09 .byte 9
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 15
-
-
- 799 004e 04 .byte 4
- 800 004f 00 .byte 0
- 801 0050 00 .byte 0
- 802 0051 00 .byte 0
- 803 0052 00 .byte 0
- 804 0053 00 .byte 0
- 805 0054 00 .byte 0
- 806 0055 00 .byte 0
- 807 .comm usbMsgPtr,2,1
- 808 .comm usbRxToken,1,1
- 809 .comm usbConfiguration,1,1
- 810 .comm usbRxBuf,22,1
- 811 .comm usbInputBufOffset,1,1
- 812 .comm usbDeviceAddr,1,1
- 813 .comm usbNewDeviceAddr,1,1
- 814 .comm usbRxLen,1,1
- 815 .comm usbCurrentTok,1,1
- 816 .comm usbTxBuf,11,1
- 817 .lcomm currentAddress,2
- 818 .lcomm events,1
- 819 .lcomm vectorTemp,4
- 820 .data
- 821 .type usbMsgLen, @object
- 822 .size usbMsgLen, 1
- 823 usbMsgLen:
- 824 0001 FF .byte -1
- 825 .lcomm usbMsgFlags,1
- 826 .lcomm writeLength,1
- 827 .type replyBuffer.1756, @object
- 828 .size replyBuffer.1756, 5
- 829 replyBuffer.1756:
- 830 0002 01 .byte 1
- 831 0003 14 .byte 20
- 832 0004 FA .byte -6
- 833 0005 40 .byte 64
- 834 0006 14 .byte 20
- 835 .lcomm wasReset.1698,1
- 836 .global __do_copy_data
- 837 .global __do_clear_bss
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s page 16
+ 492 0314 2981 ldd r18,Y+1
+ 493 0316 2250 subi r18,lo8(-(-2))
+ 494 0318 01F4 brne .L42
+ 495 .L41:
+ 496 031a 8091 0000 lds r24,writeLength
+ 497 031e 8823 tst r24
+ 498 0320 01F4 brne .L18
+ 499 0322 8091 0000 lds r24,events
+ 500 0326 8260 ori r24,lo8(2)
+ 501 0328 8093 0000 sts events,r24
+ 502 032c 1092 0000 sts usbMsgLen,__zero_reg__
+ 503 .L18:
+ 504 0330 1092 0000 sts usbRxLen,__zero_reg__
+ 505 .L16:
+ 506 0334 8091 0000 lds r24,usbTxLen
+ 507 0338 84FF sbrs r24,4
+ 508 033a 00C0 rjmp .L43
+ 509 033c 8091 0000 lds r24,usbMsgLen
+ 510 0340 8F3F cpi r24,lo8(-1)
+ 511 0342 01F4 brne .+2
+ 512 0344 00C0 rjmp .L43
+ 513 0346 082F mov r16,r24
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 10
+
+
+ 514 0348 8930 cpi r24,lo8(9)
+ 515 034a 00F0 brlo .L44
+ 516 034c 08E0 ldi r16,lo8(8)
+ 517 .L44:
+ 518 034e 801B sub r24,r16
+ 519 0350 8093 0000 sts usbMsgLen,r24
+ 520 0354 8091 0000 lds r24,usbTxBuf
+ 521 0358 98E8 ldi r25,lo8(-120)
+ 522 035a 8927 eor r24,r25
+ 523 035c 8093 0000 sts usbTxBuf,r24
+ 524 0360 0023 tst r16
+ 525 0362 01F0 breq .L45
+ 526 0364 E091 0000 lds r30,usbMsgPtr
+ 527 0368 F091 0000 lds r31,usbMsgPtr+1
+ 528 036c 9091 0000 lds r25,usbMsgFlags
+ 529 0370 802F mov r24,r16
+ 530 0372 8150 subi r24,lo8(-(-1))
+ 531 0374 96FF sbrs r25,6
+ 532 0376 00C0 rjmp .L46
+ 533 0378 90E0 ldi r25,lo8(0)
+ 534 037a 8050 subi r24,lo8(-(usbTxBuf+2))
+ 535 037c 9040 sbci r25,hi8(-(usbTxBuf+2))
+ 536 037e A0E0 ldi r26,lo8(usbTxBuf+1)
+ 537 0380 B0E0 ldi r27,hi8(usbTxBuf+1)
+ 538 .L47:
+ 539 /* #APP */
+ 540 ; 504 "usbdrv/usbdrv.c" 1
+ 541 0382 2491 lpm r18, Z
+ 542
+ 543 ; 0 "" 2
+ 544 /* #NOAPP */
+ 545 0384 2D93 st X+,r18
+ 546 0386 3196 adiw r30,1
+ 547 0388 A817 cp r26,r24
+ 548 038a B907 cpc r27,r25
+ 549 038c 01F4 brne .L47
+ 550 038e 00C0 rjmp .L48
+ 551 .L46:
+ 552 0390 9F01 movw r18,r30
+ 553 0392 90E0 ldi r25,lo8(0)
+ 554 0394 8050 subi r24,lo8(-(usbTxBuf+2))
+ 555 0396 9040 sbci r25,hi8(-(usbTxBuf+2))
+ 556 0398 A0E0 ldi r26,lo8(usbTxBuf+1)
+ 557 039a B0E0 ldi r27,hi8(usbTxBuf+1)
+ 558 .L49:
+ 559 039c F901 movw r30,r18
+ 560 039e 4191 ld r20,Z+
+ 561 03a0 9F01 movw r18,r30
+ 562 03a2 4D93 st X+,r20
+ 563 03a4 A817 cp r26,r24
+ 564 03a6 B907 cpc r27,r25
+ 565 03a8 01F4 brne .L49
+ 566 .L48:
+ 567 03aa F093 0000 sts usbMsgPtr+1,r31
+ 568 03ae E093 0000 sts usbMsgPtr,r30
+ 569 .L45:
+ 570 03b2 80E0 ldi r24,lo8(usbTxBuf+1)
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 11
+
+
+ 571 03b4 90E0 ldi r25,hi8(usbTxBuf+1)
+ 572 03b6 602F mov r22,r16
+ 573 03b8 00D0 rcall usbCrc16Append
+ 574 03ba 0C5F subi r16,lo8(-(4))
+ 575 03bc 0C30 cpi r16,lo8(12)
+ 576 03be 01F0 breq .L50
+ 577 03c0 8FEF ldi r24,lo8(-1)
+ 578 03c2 8093 0000 sts usbMsgLen,r24
+ 579 .L50:
+ 580 03c6 0093 0000 sts usbTxLen,r16
+ 581 .L43:
+ 582 03ca 84E1 ldi r24,lo8(20)
+ 583 .L52:
+ 584 03cc 96B3 in r25,54-32
+ 585 03ce 9871 andi r25,lo8(24)
+ 586 03d0 01F4 brne .L51
+ 587 03d2 8150 subi r24,lo8(-(-1))
+ 588 03d4 01F4 brne .L52
+ 589 03d6 1092 0000 sts usbNewDeviceAddr,__zero_reg__
+ 590 03da 1092 0000 sts usbDeviceAddr,__zero_reg__
+ 591 .L51:
+ 592 03de 01E0 ldi r16,lo8(1)
+ 593 03e0 8111 cpse r24,__zero_reg__
+ 594 03e2 00E0 ldi r16,lo8(0)
+ 595 .L53:
+ 596 03e4 8091 0000 lds r24,wasReset.1698
+ 597 03e8 8017 cp r24,r16
+ 598 03ea 01F0 breq .L54
+ 599 03ec 0023 tst r16
+ 600 03ee 01F4 brne .L55
+ 601 /* #APP */
+ 602 ; 557 "usbdrv/usbdrv.c" 1
+ 603 03f0 F894 cli
+ 604 ; 0 "" 2
+ 605 /* #NOAPP */
+ 606 03f2 00D0 rcall calibrateOscillator
+ 607 /* #APP */
+ 608 ; 557 "usbdrv/usbdrv.c" 1
+ 609 03f4 7894 sei
+ 610 ; 0 "" 2
+ 611 /* #NOAPP */
+ 612 .L55:
+ 613 03f6 0093 0000 sts wasReset.1698,r16
+ 614 .L54:
+ 615 03fa 8CE9 ldi r24,lo8(412)
+ 616 03fc 91E0 ldi r25,hi8(412)
+ 617 03fe 0197 1:sbiw r24,1
+ 618 0400 01F4 brne 1b
+ 619 0402 0000 nop
+ 620 0404 8091 0000 lds r24,events
+ 621 0408 8823 tst r24
+ 622 040a 01F4 brne .L68
+ 623 040c 0894 sec
+ 624 040e E11C adc r14,__zero_reg__
+ 625 0410 F11C adc r15,__zero_reg__
+ 626 0412 00C0 rjmp .L56
+ 627 .L68:
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 12
+
+
+ 628 0414 EE24 clr r14
+ 629 0416 FF24 clr r15
+ 630 .L56:
+ 631 0418 80FF sbrs r24,0
+ 632 041a 00C0 rjmp .L57
+ 633 /* #APP */
+ 634 ; 117 "main.c" 1
+ 635 041c F894 cli
+ 636 ; 0 "" 2
+ 637 /* #NOAPP */
+ 638 041e E091 0000 lds r30,currentAddress
+ 639 0422 F091 0000 lds r31,currentAddress+1
+ 640 0426 3297 sbiw r30,2
+ 641 0428 83E0 ldi r24,lo8(3)
+ 642 /* #APP */
+ 643 ; 118 "main.c" 1
+ 644 042a 8093 5700 sts 87, r24
+ 645 042e E895 spm
+ 646
+ 647 ; 0 "" 2
+ 648 /* #NOAPP */
+ 649 .L58:
+ 650 0430 07B6 in __tmp_reg__,87-32
+ 651 0432 00FC sbrc __tmp_reg__,0
+ 652 0434 00C0 rjmp .L58
+ 653 /* #APP */
+ 654 ; 120 "main.c" 1
+ 655 0436 7894 sei
+ 656 ; 0 "" 2
+ 657 /* #NOAPP */
+ 658 .L57:
+ 659 0438 8091 0000 lds r24,events
+ 660 043c 81FF sbrs r24,1
+ 661 043e 00C0 rjmp .L59
+ 662 0440 A9E3 ldi r26,lo8(8249)
+ 663 0442 B0E2 ldi r27,hi8(8249)
+ 664 0444 1197 1:sbiw r26,1
+ 665 0446 01F4 brne 1b
+ 666 0448 00C0 rjmp .
+ 667 044a 0000 nop
+ 668 044c 8091 0000 lds r24,currentAddress
+ 669 0450 9091 0000 lds r25,currentAddress+1
+ 670 0454 8F73 andi r24,lo8(63)
+ 671 0456 9070 andi r25,hi8(63)
+ 672 0458 0097 sbiw r24,0
+ 673 045a 01F0 breq .L60
+ 674 045c 00D0 rcall fillFlashWithVectors
+ 675 045e 00C0 rjmp .L59
+ 676 .L60:
+ 677 0460 00D0 rcall writeFlashPage
+ 678 .L59:
+ 679 0462 8091 0000 lds r24,events
+ 680 0466 82FD sbrc r24,2
+ 681 0468 00C0 rjmp .L61
+ 682 046a B1E5 ldi r27,lo8(-15535)
+ 683 046c EB16 cp r14,r27
+ 684 046e B3EC ldi r27,hi8(-15535)
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 13
+
+
+ 685 0470 FB06 cpc r15,r27
+ 686 0472 00F0 brlo .L62
+ 687 .L61:
+ 688 0474 E1E2 ldi r30,lo8(-24287)
+ 689 0476 F1EA ldi r31,hi8(-24287)
+ 690 0478 3197 1:sbiw r30,1
+ 691 047a 01F4 brne 1b
+ 692 047c 00C0 rjmp .
+ 693 047e 0000 nop
+ 694 /* #APP */
+ 695 ; 190 "main.c" 1
+ 696 0480 F894 cli
+ 697 ; 0 "" 2
+ 698 /* #NOAPP */
+ 699 0482 1BBE out 91-32,__zero_reg__
+ 700 0484 15BA out 53-32,__zero_reg__
+ 701 0486 1092 5F02 sts 607,__zero_reg__
+ 702 048a 1092 5E02 sts 606,__zero_reg__
+ 703 /* #APP */
+ 704 ; 206 "main.c" 1
+ 705 048e 00C0 rjmp __vectors - 4
+ 706 ; 0 "" 2
+ 707 /* #NOAPP */
+ 708 .L62:
+ 709 0490 1092 0000 sts events,__zero_reg__
+ 710 0494 00C0 rjmp .L63
+ 711 .size main, .-main
+ 712 .global usbTxLen
+ 713 .data
+ 714 .type usbTxLen, @object
+ 715 .size usbTxLen, 1
+ 716 usbTxLen:
+ 717 0000 5A .byte 90
+ 718 .global usbDescriptorString0
+ 719 .section .progmem.data,"a",@progbits
+ 720 .type usbDescriptorString0, @object
+ 721 .size usbDescriptorString0, 4
+ 722 usbDescriptorString0:
+ 723 0000 04 .byte 4
+ 724 0001 03 .byte 3
+ 725 0002 09 .byte 9
+ 726 0003 04 .byte 4
+ 727 .global usbDescriptorStringVendor
+ 728 .type usbDescriptorStringVendor, @object
+ 729 .size usbDescriptorStringVendor, 34
+ 730 usbDescriptorStringVendor:
+ 731 0004 2203 .word 802
+ 732 0006 6300 .word 99
+ 733 0008 7200 .word 114
+ 734 000a 6500 .word 101
+ 735 000c 6100 .word 97
+ 736 000e 7400 .word 116
+ 737 0010 6900 .word 105
+ 738 0012 7600 .word 118
+ 739 0014 6500 .word 101
+ 740 0016 7000 .word 112
+ 741 0018 6F00 .word 111
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 14
+
+
+ 742 001a 6E00 .word 110
+ 743 001c 7900 .word 121
+ 744 001e 2E00 .word 46
+ 745 0020 6300 .word 99
+ 746 0022 6F00 .word 111
+ 747 0024 6D00 .word 109
+ 748 .global usbDescriptorStringDevice
+ 749 .type usbDescriptorStringDevice, @object
+ 750 .size usbDescriptorStringDevice, 12
+ 751 usbDescriptorStringDevice:
+ 752 0026 0C03 .word 780
+ 753 0028 7500 .word 117
+ 754 002a 4200 .word 66
+ 755 002c 6F00 .word 111
+ 756 002e 6F00 .word 111
+ 757 0030 7400 .word 116
+ 758 .global usbDescriptorDevice
+ 759 .type usbDescriptorDevice, @object
+ 760 .size usbDescriptorDevice, 18
+ 761 usbDescriptorDevice:
+ 762 0032 12 .byte 18
+ 763 0033 01 .byte 1
+ 764 0034 10 .byte 16
+ 765 0035 01 .byte 1
+ 766 0036 FF .byte -1
+ 767 0037 00 .byte 0
+ 768 0038 00 .byte 0
+ 769 0039 08 .byte 8
+ 770 003a C0 .byte -64
+ 771 003b 16 .byte 22
+ 772 003c DC .byte -36
+ 773 003d 05 .byte 5
+ 774 003e 01 .byte 1
+ 775 003f 00 .byte 0
+ 776 0040 01 .byte 1
+ 777 0041 02 .byte 2
+ 778 0042 00 .byte 0
+ 779 0043 01 .byte 1
+ 780 .global usbDescriptorConfiguration
+ 781 .type usbDescriptorConfiguration, @object
+ 782 .size usbDescriptorConfiguration, 18
+ 783 usbDescriptorConfiguration:
+ 784 0044 09 .byte 9
+ 785 0045 02 .byte 2
+ 786 0046 12 .byte 18
+ 787 0047 00 .byte 0
+ 788 0048 01 .byte 1
+ 789 0049 01 .byte 1
+ 790 004a 00 .byte 0
+ 791 004b 80 .byte -128
+ 792 004c 32 .byte 50
+ 793 004d 09 .byte 9
+ 794 004e 04 .byte 4
+ 795 004f 00 .byte 0
+ 796 0050 00 .byte 0
+ 797 0051 00 .byte 0
+ 798 0052 00 .byte 0
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 15
+
+
+ 799 0053 00 .byte 0
+ 800 0054 00 .byte 0
+ 801 0055 00 .byte 0
+ 802 .comm usbMsgPtr,2,1
+ 803 .comm usbRxToken,1,1
+ 804 .comm usbConfiguration,1,1
+ 805 .comm usbRxBuf,22,1
+ 806 .comm usbInputBufOffset,1,1
+ 807 .comm usbDeviceAddr,1,1
+ 808 .comm usbNewDeviceAddr,1,1
+ 809 .comm usbRxLen,1,1
+ 810 .comm usbCurrentTok,1,1
+ 811 .comm usbTxBuf,11,1
+ 812 .lcomm currentAddress,2
+ 813 .lcomm events,1
+ 814 .lcomm vectorTemp,4
+ 815 .data
+ 816 .type usbMsgLen, @object
+ 817 .size usbMsgLen, 1
+ 818 usbMsgLen:
+ 819 0001 FF .byte -1
+ 820 .lcomm usbMsgFlags,1
+ 821 .lcomm writeLength,1
+ 822 .type replyBuffer.1756, @object
+ 823 .size replyBuffer.1756, 5
+ 824 replyBuffer.1756:
+ 825 0002 01 .byte 1
+ 826 0003 14 .byte 20
+ 827 0004 FA .byte -6
+ 828 0005 40 .byte 64
+ 829 0006 14 .byte 20
+ 830 .lcomm wasReset.1698,1
+ 831 .global __do_copy_data
+ 832 .global __do_clear_bss
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s page 16
DEFINED SYMBOLS
*ABS*:00000000 main.c
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:2 *ABS*:0000003f __SREG__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:3 *ABS*:0000003e __SP_H__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:4 *ABS*:0000003d __SP_L__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:5 *ABS*:00000034 __CCP__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:6 *ABS*:00000000 __tmp_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:7 *ABS*:00000001 __zero_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:10 .text:00000000 writeFlashPage
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:2 *ABS*:0000003f __SREG__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:3 *ABS*:0000003e __SP_H__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:4 *ABS*:0000003d __SP_L__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:5 *ABS*:00000034 __CCP__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:6 *ABS*:00000000 __tmp_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:7 *ABS*:00000001 __zero_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:10 .text:00000000 writeFlashPage
.bss:00000000 currentAddress
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:44 .text:0000001e writeWordToPageBuffer
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:818 .bss:00000003 vectorTemp
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:817 .bss:00000002 events
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:138 .text:000000b6 fillFlashWithVectors
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:166 .init3:00000000 PushMagicWord
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:190 .text:000000dc main
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:44 .text:0000001e writeWordToPageBuffer
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:813 .bss:00000003 vectorTemp
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:812 .bss:00000002 events
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:138 .text:000000b6 fillFlashWithVectors
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:166 .init3:00000000 PushMagicWord
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:190 .text:000000dc main
*COM*:00000001 usbRxLen
*COM*:00000001 usbInputBufOffset
*COM*:00000016 usbRxBuf
*COM*:00000001 usbRxToken
*COM*:0000000b usbTxBuf
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:721 .data:00000000 usbTxLen
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:819 .bss:00000007 usbMsgFlags
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:829 .data:00000002 replyBuffer.1756
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:716 .data:00000000 usbTxLen
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:814 .bss:00000007 usbMsgFlags
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:824 .data:00000002 replyBuffer.1756
*COM*:00000002 usbMsgPtr
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:825 .bss:00000008 writeLength
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:820 .bss:00000008 writeLength
*COM*:00000001 usbNewDeviceAddr
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:766 .progmem.data:00000032 usbDescriptorDevice
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:788 .progmem.data:00000044 usbDescriptorConfiguration
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:727 .progmem.data:00000000 usbDescriptorString0
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:735 .progmem.data:00000004 usbDescriptorStringVendor
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:756 .progmem.data:00000026 usbDescriptorStringDevice
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:761 .progmem.data:00000032 usbDescriptorDevice
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:783 .progmem.data:00000044 usbDescriptorConfiguration
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:722 .progmem.data:00000000 usbDescriptorString0
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:730 .progmem.data:00000004 usbDescriptorStringVendor
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:751 .progmem.data:00000026 usbDescriptorStringDevice
*COM*:00000001 usbConfiguration
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:823 .data:00000001 usbMsgLen
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:818 .data:00000001 usbMsgLen
*COM*:00000001 usbDeviceAddr
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMGKblz.s:826 .bss:00000009 wasReset.1698
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cckyYI40.s:821 .bss:00000009 wasReset.1698
*COM*:00000001 usbCurrentTok
UNDEFINED SYMBOLS
diff --git a/firmware/main.hex b/firmware/main.hex
index c71b27a..27ab57c 100644
--- a/firmware/main.hex
+++ b/firmware/main.hex
@@ -6,10 +6,10 @@
:1015500012011001FF000008C016DC0501000102A5
:10156000000109021200010100803209040000009C
:101570000000000011241FBECFE5D2E0DEBFCDBFCA
-:1015800000EB0F9307E00F9310E0A0E6B0E0E8EE69
+:1015800000EB0F9307E00F9310E0A0E6B0E0E6ED6C
:10159000FDE102C005900D92A836B107D9F710E021
:1015A000A8E6B0E001C01D92AC39B107E1F7FAD16D
-:1015B00019C4A6CFA82FB92F80E090E041E050EAEF
+:1015B00010C4A6CFA82FB92F80E090E041E050EAF8
:1015C000609530E009C02D9182279795879510F09E
:1015D00084279527305EC8F36F5FA8F30895EADF8C
:1015E0008D939D930895A6E088279927AA9569F081
@@ -79,9 +79,9 @@
:1019E0001092680087B3836087BBC09AC198AC9A95
:1019F0008BB780628BBFBB9A8FE49DE2A9E18150D7
:101A00009040A040E1F700C00000BB987894EE241D
-:101A1000FF2420918200235027FDF9C080917F0090
+:101A1000FF2420918200235027FDF0C080917F0099
:101A2000ECE0F0E0E81BF109EA57FF4F80917E00FF
-:101A30008D3209F0A0C0283009F0E7C083EC809314
+:101A30008D3209F0A0C0283009F0DEC083EC80931D
:101A400072008AE58093600010926F00908190761A
:101A50008181992311F1882341F482E690E09093EB
:101A600081008093800025E07CC0813079F4C098AB
@@ -101,46 +101,45 @@
:101B400006C085E890E002C08BE790E021E090932A
:101B500081008093800005C0268180E880936F001B
:101B600007C08781882321F48681821708F4282FF3
-:101B7000209361004AC080916F0087FF46C080912A
+:101B70002093610041C080916F0087FF3DC080913C
:101B80007000821B809370008F018091680090919B
:101B90006900009749F4D8018D919C911197909319
:101BA0006C0080936B0014C08430910541F4F801FF
:101BB0008081918190936E0080936D0009C0F4E163
-:101BC0008A3F9F0728F081E180935700E89512C073
-:101BD000D8018D919D918D01298385DE80916800CA
-:101BE0009091690002969093690080936800298122
-:101BF000225059F680917000882339F480916A0050
-:101C0000826080936A00109261001092820080913D
-:101C1000600084FF47C0809161008F3F09F442C09B
-:101C2000082F893008F008E0801B809361008091C4
-:101C3000720098E8892780937200002339F1E091BF
-:101C40008000F091810090916F00802F815096FF6D
-:101C50000CC090E08C589F4FA3E7B0E024912D93E7
-:101C60003196A817B907D1F70DC09F0190E08C58A5
-:101C70009F4FA3E7B0E0F90141919F014D93A81751
-:101C8000B907C9F7F0938100E093800083E790E003
-:101C9000602FA5DC0C5F0C3019F08FEF8093610092
-:101CA0000093600084E196B3987131F48150D9F7C4
-:101CB0001092830010927D0001E0811100E080917C
-:101CC0007100801739F0002319F4F89451D07894FA
-:101CD000009371008CE991E00197F1F70000809189
-:101CE0006A00882321F40894E11CF11C02C0EE2450
-:101CF000FF2480FF0EC0F894E0916800F091690025
-:101D0000329783E080935700E89507B600FCFDCF3B
-:101D1000789480916A0081FF11C0A9E3B0E2119725
-:101D2000F1F700C0000080916800909169008F7306
-:101D30009070009711F023DE01C0C6DD80916A002B
-:101D400082FD05C0B1E5EB16B3ECFB0670F0E1E2F5
-:101D5000F1EA3197F1F700C00000F8941BBE15BA04
-:101D600010925F0210925E02C9CB10926A0051CEAF
-:101D7000FF920F931F93CF93DF93C8E0D0E010E062
-:101D800000E8F12EF00EF1BE2EDC29E0843392073C
-:101D90000CF41F2D06952197A1F7212F215021BF6B
-:101DA000EC01012F10C01FDC8453994097FF03C042
-:101DB000909581959F4F8C179D0714F401B7EC0106
-:101DC00081B78F5F81BF21B730E0812F90E001960E
-:101DD0008217930744F701BFDF91CF911F910F91B5
-:081DE000FF900895F894FFCF75
-:081DE8005AFF0114FA40140037
+:101BC0008A3F9F0728F081E180935700E89509C07C
+:101BD000D8018D919D918D01298385DE2981225027
+:101BE000A1F680917000882339F480916A008260A8
+:101BF00080936A00109261001092820080916000D0
+:101C000084FF47C0809161008F3F09F442C0082FD4
+:101C1000893008F008E0801B809361008091720099
+:101C200098E8892780937200002339F1E0918000C1
+:101C3000F091810090916F00802F815096FF0CC031
+:101C400090E08C589F4FA3E7B0E024912D933196FC
+:101C5000A817B907D1F70DC09F0190E08C589F4F8E
+:101C6000A3E7B0E0F90141919F014D93A817B9078F
+:101C7000C9F7F0938100E093800083E790E0602F44
+:101C8000AEDC0C5F0C3019F08FEF80936100009395
+:101C9000600084E196B3987131F48150D9F71092C5
+:101CA000830010927D0001E0811100E080917100BD
+:101CB000801739F0002319F4F89451D078940093E8
+:101CC00071008CE991E00197F1F7000080916A00C2
+:101CD000882321F40894E11CF11C02C0EE24FF24A7
+:101CE00080FF0EC0F894E0916800F091690032978F
+:101CF00083E080935700E89507B600FCFDCF789409
+:101D000080916A0081FF11C0A9E3B0E21197F1F759
+:101D100000C0000080916800909169008F739070FE
+:101D2000009711F02CDE01C0CFDD80916A0082FDAA
+:101D300005C0B1E5EB16B3ECFB0670F0E1E2F1EAA9
+:101D40003197F1F700C00000F8941BBE15BA10924D
+:101D50005F0210925E02D2CB10926A005ACEFF92BE
+:101D60000F931F93CF93DF93C8E0D0E010E000E81B
+:101D7000F12EF00EF1BE37DC29E0843392070CF42B
+:101D80001F2D06952197A1F7212F215021BFEC018E
+:101D9000012F10C028DC8453994097FF03C0909511
+:101DA00081959F4F8C179D0714F401B7EC0181B703
+:101DB0008F5F81BF21B730E0812F90E001968217BD
+:101DC000930744F701BFDF91CF911F910F91FF90CF
+:061DD0000895F894FFCF16
+:081DD6005AFF0114FA40140049
:0400000300001500E4
:00000001FF
diff --git a/firmware/main.map b/firmware/main.map
index fddc06e..c5f2234 100644
--- a/firmware/main.map
+++ b/firmware/main.map
@@ -158,7 +158,7 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a
.rela.plt
*(.rela.plt)
-.text 0x00001500 0x8e8
+.text 0x00001500 0x8d6
*(.vectors)
.vectors 0x00001500 0x1e /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o
0x00001500 __vectors
@@ -241,17 +241,17 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a
0x000015de usbCrc16Append
0x000015e6 usbMeasureFrameLength
0x0000160c __vector_2
- .text 0x000018c8 0x4a8 main.o
+ .text 0x000018c8 0x496 main.o
0x000019a4 main
- .text 0x00001d70 0x74 libs-device/osccal.o
- 0x00001d70 calibrateOscillator
- 0x00001de4 . = ALIGN (0x2)
+ .text 0x00001d5e 0x74 libs-device/osccal.o
+ 0x00001d5e calibrateOscillator
+ 0x00001dd2 . = ALIGN (0x2)
*(.text.*)
- 0x00001de4 . = ALIGN (0x2)
+ 0x00001dd2 . = ALIGN (0x2)
*(.fini9)
- .fini9 0x00001de4 0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o)
- 0x00001de4 exit
- 0x00001de4 _exit
+ .fini9 0x00001dd2 0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o)
+ 0x00001dd2 exit
+ 0x00001dd2 _exit
*(.fini9)
*(.fini8)
*(.fini8)
@@ -270,11 +270,11 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a
*(.fini1)
*(.fini1)
*(.fini0)
- .fini0 0x00001de4 0x4 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o)
+ .fini0 0x00001dd2 0x4 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o)
*(.fini0)
- 0x00001de8 _etext = .
+ 0x00001dd6 _etext = .
-.data 0x00800060 0x8 load address 0x00001de8
+.data 0x00800060 0x8 load address 0x00001dd6
0x00800060 PROVIDE (__data_start, .)
*(.data)
.data 0x00800060 0x7 main.o
@@ -306,8 +306,8 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a
0x00800085 usbConfiguration
0x00800086 usbRxBuf
0x0080009c PROVIDE (__bss_end, .)
- 0x00001de8 __data_load_start = LOADADDR (.data)
- 0x00001df0 __data_load_end = (__data_load_start + SIZEOF (.data))
+ 0x00001dd6 __data_load_start = LOADADDR (.data)
+ 0x00001dde __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x0080009c 0x0
0x0080009c PROVIDE (__noinit_start, .)
diff --git a/firmware/main.o b/firmware/main.o
index 18cd008..7a2f8d1 100644
--- a/firmware/main.o
+++ b/firmware/main.o
Binary files differ
diff --git a/firmware/nyan-cat.bin b/firmware/nyan-cat.bin
new file mode 100644
index 0000000..cb463d8
--- /dev/null
+++ b/firmware/nyan-cat.bin
Binary files differ
diff --git a/firmware/temp-dump.bin b/firmware/temp-dump.bin
index c6f4c8e..cbae830 100644
--- a/firmware/temp-dump.bin
+++ b/firmware/temp-dump.bin
Binary files differ
diff --git a/firmware/upload.rb b/firmware/upload.rb
index c68b02c..171bdfa 100644
--- a/firmware/upload.rb
+++ b/firmware/upload.rb
@@ -98,8 +98,13 @@ thinklet = thinklets.first
puts "First thinklet: #{thinklet.info.inspect}"
-test_data = ("---- Hello World! ----" * 1).encode("BINARY")
-puts "Attempting to write '#{test_data}' to first thinklet's program memory"
+if ARGV.first
+ test_data = open(ARGV.first).read
+else
+ test_data = ("---- Hello World! ----" * 1).encode("BINARY")
+end
+puts "Attempting to write '#{test_data.inspect}' to first thinklet's program memory"
+puts "Bytes: #{test_data.bytes.to_a.inspect}"
thinklet.program = test_data
puts "That seems to have gone well! Telling thinklet to run program..."
diff --git a/firmware/usbdrv/oddebug.c.lst b/firmware/usbdrv/oddebug.c.lst
index 5df64f9..1bcf2d7 100644
--- a/firmware/usbdrv/oddebug.c.lst
+++ b/firmware/usbdrv/oddebug.c.lst
@@ -1,4 +1,4 @@
-GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccre230i.s page 1
+GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s page 1
1 .file "oddebug.c"
@@ -8,16 +8,16 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccre230i.s page
5 __CCP__ = 0x34
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccre230i.s page 2
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s page 2
DEFINED SYMBOLS
*ABS*:00000000 oddebug.c
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccre230i.s:2 *ABS*:0000003f __SREG__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccre230i.s:3 *ABS*:0000003e __SP_H__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccre230i.s:4 *ABS*:0000003d __SP_L__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccre230i.s:5 *ABS*:00000034 __CCP__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccre230i.s:6 *ABS*:00000000 __tmp_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccre230i.s:7 *ABS*:00000001 __zero_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s:2 *ABS*:0000003f __SREG__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s:3 *ABS*:0000003e __SP_H__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s:4 *ABS*:0000003d __SP_L__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s:5 *ABS*:00000034 __CCP__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s:6 *ABS*:00000000 __tmp_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccWFeAjP.s:7 *ABS*:00000001 __zero_reg__
NO UNDEFINED SYMBOLS