summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenna Fox <a@creativepony.com>2012-09-27 01:39:34 +1000
committerJenna Fox <a@creativepony.com>2012-09-27 01:39:34 +1000
commit97b381f5d755080539776e59ba5e6887092cad41 (patch)
treec8c72bc8085fcbd043fefa3845780f677e7c4ab5
parent070eab5ba108ae53d999d0366e16224b89ac0c2b (diff)
downloadmicronucleus-97b381f5d755080539776e59ba5e6887092cad41.tar.gz
micronucleus-97b381f5d755080539776e59ba5e6887092cad41.tar.bz2
micronucleus-97b381f5d755080539776e59ba5e6887092cad41.zip
Fixed severe bug in microboot.rb where final 64 byte chunk of user program wouldn't upload correctly
-rw-r--r--firmware/libs-device/osccal.c.lst20
-rwxr-xr-xfirmware/main.binbin8756 -> 8764 bytes
-rw-r--r--firmware/main.c3
-rw-r--r--firmware/main.c.lst863
-rw-r--r--firmware/main.hex88
-rw-r--r--firmware/main.map28
-rw-r--r--firmware/main.obin5416 -> 5436 bytes
-rw-r--r--firmware/microboot.rb2
-rw-r--r--firmware/upload.rb16
-rw-r--r--firmware/usbdrv/oddebug.c.lst16
10 files changed, 523 insertions, 513 deletions
diff --git a/firmware/libs-device/osccal.c.lst b/firmware/libs-device/osccal.c.lst
index 6c315d8..0576838 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//ccm37nHZ.s page 1
+GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc15aQUk.s page 1
1 .file "osccal.c"
@@ -58,7 +58,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccm37nHZ.s page
55 004a 9095 com r25
56 004c 8195 neg r24
57 004e 9F4F sbci r25,lo8(-1)
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccm37nHZ.s page 2
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc15aQUk.s page 2
58 .L6:
@@ -89,18 +89,18 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccm37nHZ.s page
83 007a FF90 pop r15
84 007c 0895 ret
85 .size calibrateOscillator, .-calibrateOscillator
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccm37nHZ.s page 3
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc15aQUk.s page 3
DEFINED SYMBOLS
*ABS*:00000000 osccal.c
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccm37nHZ.s:2 *ABS*:0000003f __SREG__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccm37nHZ.s:3 *ABS*:0000003e __SP_H__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccm37nHZ.s:4 *ABS*:0000003d __SP_L__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccm37nHZ.s:5 *ABS*:00000034 __CCP__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccm37nHZ.s:6 *ABS*:00000000 __tmp_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccm37nHZ.s:7 *ABS*:00000001 __zero_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccm37nHZ.s:11 .text:00000000 calibrateOscillator
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc15aQUk.s:2 *ABS*:0000003f __SREG__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc15aQUk.s:3 *ABS*:0000003e __SP_H__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc15aQUk.s:4 *ABS*:0000003d __SP_L__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc15aQUk.s:5 *ABS*:00000034 __CCP__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc15aQUk.s:6 *ABS*:00000000 __tmp_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc15aQUk.s:7 *ABS*:00000001 __zero_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc15aQUk.s:11 .text:00000000 calibrateOscillator
UNDEFINED SYMBOLS
usbMeasureFrameLength
diff --git a/firmware/main.bin b/firmware/main.bin
index fe74e56..de708e0 100755
--- a/firmware/main.bin
+++ b/firmware/main.bin
Binary files differ
diff --git a/firmware/main.c b/firmware/main.c
index 59498b7..187a8b2 100644
--- a/firmware/main.c
+++ b/firmware/main.c
@@ -89,7 +89,7 @@ static uchar events = 0; // bitmap of events to run
#define clearEvents() events = 0
// length of bytes to write in to flash memory in upcomming usbFunctionWrite calls
-static uchar writeLength;
+static unsigned char writeLength;
// becomes 1 when some programming happened
// lets leaveBootloader know if needs to finish up the programming
@@ -248,6 +248,7 @@ static uchar usbFunctionSetup(uchar data[8]) {
// read in a page over usb, and write it in to the flash write buffer
static uchar usbFunctionWrite(uchar *data, uchar length) {
+ //if (length > writeLength) length = writeLength; // test for missing final page bug
writeLength -= length;
do {
diff --git a/firmware/main.c.lst b/firmware/main.c.lst
index d14ecec..1ce4b70 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//ccPobqmk.s page 1
+GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 1
1 .file "main.c"
@@ -58,7 +58,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
55 0038 87E1 ldi r24,hi8(6012)
56 003a EC37 cpi r30,lo8(6012)
57 003c F807 cpc r31,r24
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 2
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 2
58 003e 01F4 brne .L7
@@ -82,20 +82,20 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
76 0066 3BEC ldi r19,hi8(-13377)
77 .L8:
78 /* #APP */
- 79 ; 185 "main.c" 1
+ 79 ; 188 "main.c" 1
80 0068 F894 cli
81 ; 0 "" 2
82 /* #NOAPP */
83 006a 81E0 ldi r24,lo8(1)
84 /* #APP */
- 85 ; 186 "main.c" 1
+ 85 ; 189 "main.c" 1
86 006c 0901 movw r0, r18
87 006e 8093 5700 sts 87, r24
88 0072 E895 spm
89 0074 1124 clr r1
90
91 ; 0 "" 2
- 92 ; 187 "main.c" 1
+ 92 ; 190 "main.c" 1
93 0076 7894 sei
94 ; 0 "" 2
95 /* #NOAPP */
@@ -107,7 +107,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
101 .L5:
102 0084 81E1 ldi r24,lo8(17)
103 /* #APP */
- 104 ; 183 "main.c" 1
+ 104 ; 186 "main.c" 1
105 0086 8093 5700 sts 87, r24
106 008a E895 spm
107
@@ -118,7 +118,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
112 .type fillFlashWithVectors, @function
113 fillFlashWithVectors:
114 008e CF93 push r28
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 3
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 3
115 0090 DF93 push r29
@@ -149,16 +149,16 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
140 /* prologue: naked */
141 /* frame size = 0 */
142 /* #APP */
- 143 ; 285 "main.c" 1
+ 143 ; 290 "main.c" 1
144 0000 00EB ldi r16, 0xB0
145 ; 0 "" 2
- 146 ; 286 "main.c" 1
+ 146 ; 291 "main.c" 1
147 0002 0F93 push r16
148 ; 0 "" 2
- 149 ; 287 "main.c" 1
+ 149 ; 292 "main.c" 1
150 0004 07E0 ldi r16, 0x07
151 ; 0 "" 2
- 152 ; 288 "main.c" 1
+ 152 ; 293 "main.c" 1
153 0006 0F93 push r16
154 ; 0 "" 2
155 /* epilogue start */
@@ -172,13 +172,13 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
163 /* frame size = 0 */
164 00b4 88E1 ldi r24,lo8(24)
165 /* #APP */
- 166 ; 358 "main.c" 1
+ 166 ; 363 "main.c" 1
167 00b6 0FB6 in __tmp_reg__, __SREG__
168 00b8 F894 cli
169 00ba 81BD out 33, r24
170 00bc 11BC out 33, __zero_reg__
171 00be 0FBE out __SREG__,__tmp_reg__
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 4
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 4
172
@@ -187,7 +187,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
175 00c0 E0E0 ldi r30,lo8(0)
176 00c2 F0E0 ldi r31,hi8(0)
177 /* #APP */
- 178 ; 306 "main.c" 1
+ 178 ; 311 "main.c" 1
179 00c4 8591 lpm r24, Z+
180 00c6 9491 lpm r25, Z
181
@@ -199,7 +199,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
187 00ce E4E0 ldi r30,lo8(4)
188 00d0 F0E0 ldi r31,hi8(4)
189 /* #APP */
- 190 ; 307 "main.c" 1
+ 190 ; 312 "main.c" 1
191 00d2 8591 lpm r24, Z+
192 00d4 9491 lpm r25, Z
193
@@ -233,19 +233,19 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
221 00fe 01F4 brne .L18
222 0100 BB98 cbi 55-32,3
223 /* #APP */
- 224 ; 299 "main.c" 1
+ 224 ; 304 "main.c" 1
225 0102 7894 sei
226 ; 0 "" 2
227 /* #NOAPP */
228 0104 EE24 clr r14
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 5
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 5
229 0106 FF24 clr r15
- 230 .L72:
- 231 0108 1091 0000 lds r17,usbRxLen
- 232 010c 1350 subi r17,lo8(-(-3))
- 233 010e 17FD sbrc r17,7
+ 230 .L73:
+ 231 0108 9091 0000 lds r25,usbRxLen
+ 232 010c 9350 subi r25,lo8(-(-3))
+ 233 010e 97FD sbrc r25,7
234 0110 00C0 rjmp .L19
235 0112 8091 0000 lds r24,usbInputBufOffset
236 0116 CCE0 ldi r28,lo8(12)
@@ -258,7 +258,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
243 0126 8D32 cpi r24,lo8(45)
244 0128 01F0 breq .+2
245 012a 00C0 rjmp .L20
- 246 012c 1830 cpi r17,lo8(8)
+ 246 012c 9830 cpi r25,lo8(8)
247 012e 01F0 breq .+2
248 0130 00C0 rjmp .L21
249 0132 83EC ldi r24,lo8(-61)
@@ -298,13 +298,13 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
283 0184 9230 cpi r25,lo8(2)
284 0186 01F4 brne .L28
285 0188 8160 ori r24,lo8(1)
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 6
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 6
- 286 018a 00C0 rjmp .L76
+ 286 018a 00C0 rjmp .L77
287 .L28:
288 018c 8460 ori r24,lo8(4)
- 289 .L76:
+ 289 .L77:
290 018e 8093 0000 sts events,r24
291 0192 20E0 ldi r18,lo8(0)
292 0194 00C0 rjmp .L24
@@ -331,13 +331,13 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
313 01be 01F4 brne .L33
314 01c0 80E0 ldi r24,lo8(usbDescriptorDevice)
315 01c2 90E0 ldi r25,hi8(usbDescriptorDevice)
- 316 01c4 00C0 rjmp .L74
+ 316 01c4 00C0 rjmp .L75
317 .L33:
318 01c6 8230 cpi r24,lo8(2)
319 01c8 01F4 brne .L35
320 01ca 80E0 ldi r24,lo8(usbDescriptorConfiguration)
321 01cc 90E0 ldi r25,hi8(usbDescriptorConfiguration)
- 322 .L74:
+ 322 .L75:
323 01ce 9093 0000 sts (usbMsgPtr)+1,r25
324 01d2 8093 0000 sts usbMsgPtr,r24
325 01d6 22E1 ldi r18,lo8(18)
@@ -358,7 +358,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
340 01f4 20E0 ldi r18,lo8(0)
341 .L34:
342 01f6 80E4 ldi r24,lo8(64)
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 7
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 7
343 01f8 8093 0000 sts usbMsgFlags,r24
@@ -368,7 +368,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
347 0200 01F4 brne .L37
348 0202 80E0 ldi r24,lo8(usbConfiguration)
349 0204 90E0 ldi r25,hi8(usbConfiguration)
- 350 0206 00C0 rjmp .L75
+ 350 0206 00C0 rjmp .L76
351 .L37:
352 0208 9930 cpi r25,lo8(9)
353 020a 01F4 brne .L38
@@ -379,7 +379,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
358 0214 01F4 brne .L39
359 0216 80E0 ldi r24,lo8(usbTxBuf+9)
360 0218 90E0 ldi r25,hi8(usbTxBuf+9)
- 361 .L75:
+ 361 .L76:
362 021a 21E0 ldi r18,lo8(1)
363 021c 00C0 rjmp .L30
364 .L39:
@@ -413,433 +413,438 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page
392 0250 87FF sbrs r24,7
393 0252 00C0 rjmp .L21
394 0254 8091 0000 lds r24,writeLength
- 395 0258 811B sub r24,r17
- 396 025a 8093 0000 sts writeLength,r24
- 397 .L46:
- 398 025e 8091 0000 lds r24,currentAddress
- 399 0262 9091 0000 lds r25,(currentAddress)+1
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 8
+ 395 0258 192F mov r17,r25
+ 396 025a 8917 cp r24,r25
+ 397 025c 00F4 brsh .L42
+ 398 025e 182F mov r17,r24
+ 399 .L42:
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 8
- 400 0266 0097 sbiw r24,0
- 401 0268 01F4 brne .L42
- 402 026a 8881 ld r24,Y
- 403 026c 9981 ldd r25,Y+1
- 404 026e 9093 0000 sts (vectorTemp)+1,r25
- 405 0272 8093 0000 sts vectorTemp,r24
- 406 0276 00C0 rjmp .L43
- 407 .L42:
- 408 0278 8430 cpi r24,4
- 409 027a 9105 cpc r25,__zero_reg__
- 410 027c 01F4 brne .L44
- 411 027e 8881 ld r24,Y
- 412 0280 9981 ldd r25,Y+1
- 413 0282 9093 0000 sts (vectorTemp+2)+1,r25
- 414 0286 8093 0000 sts vectorTemp+2,r24
- 415 028a 00C0 rjmp .L43
- 416 .L44:
- 417 028c 8A57 subi r24,lo8(6010)
- 418 028e 9741 sbci r25,hi8(6010)
- 419 0290 00F0 brlo .L43
- 420 0292 81E1 ldi r24,lo8(17)
- 421 /* #APP */
- 422 ; 262 "main.c" 1
- 423 0294 8093 5700 sts 87, r24
- 424 0298 E895 spm
- 425
- 426 ; 0 "" 2
- 427 /* #NOAPP */
- 428 029a 00C0 rjmp .L45
- 429 .L43:
- 430 029c 8881 ld r24,Y
- 431 029e 9981 ldd r25,Y+1
- 432 02a0 00D0 rcall writeWordToPageBuffer
- 433 02a2 1250 subi r17,lo8(-(-2))
- 434 02a4 01F0 breq .L45
- 435 02a6 2296 adiw r28,2
- 436 02a8 00C0 rjmp .L46
- 437 .L45:
- 438 02aa 8091 0000 lds r24,writeLength
- 439 02ae 8823 tst r24
- 440 02b0 01F4 brne .L21
- 441 02b2 8091 0000 lds r24,events
- 442 02b6 8260 ori r24,lo8(2)
- 443 02b8 8093 0000 sts events,r24
- 444 02bc 1092 0000 sts usbMsgLen,__zero_reg__
- 445 .L21:
- 446 02c0 1092 0000 sts usbRxLen,__zero_reg__
- 447 .L19:
- 448 02c4 8091 0000 lds r24,usbTxLen
- 449 02c8 84FF sbrs r24,4
- 450 02ca 00C0 rjmp .L47
- 451 02cc 8091 0000 lds r24,usbMsgLen
- 452 02d0 8F3F cpi r24,lo8(-1)
- 453 02d2 01F0 breq .L47
- 454 02d4 182F mov r17,r24
- 455 02d6 8930 cpi r24,lo8(9)
- 456 02d8 00F0 brlo .L48
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 9
+ 400 0260 811B sub r24,r17
+ 401 0262 8093 0000 sts writeLength,r24
+ 402 .L47:
+ 403 0266 8091 0000 lds r24,currentAddress
+ 404 026a 9091 0000 lds r25,(currentAddress)+1
+ 405 026e 0097 sbiw r24,0
+ 406 0270 01F4 brne .L43
+ 407 0272 8881 ld r24,Y
+ 408 0274 9981 ldd r25,Y+1
+ 409 0276 9093 0000 sts (vectorTemp)+1,r25
+ 410 027a 8093 0000 sts vectorTemp,r24
+ 411 027e 00C0 rjmp .L44
+ 412 .L43:
+ 413 0280 8430 cpi r24,4
+ 414 0282 9105 cpc r25,__zero_reg__
+ 415 0284 01F4 brne .L45
+ 416 0286 8881 ld r24,Y
+ 417 0288 9981 ldd r25,Y+1
+ 418 028a 9093 0000 sts (vectorTemp+2)+1,r25
+ 419 028e 8093 0000 sts vectorTemp+2,r24
+ 420 0292 00C0 rjmp .L44
+ 421 .L45:
+ 422 0294 8A57 subi r24,lo8(6010)
+ 423 0296 9741 sbci r25,hi8(6010)
+ 424 0298 00F0 brlo .L44
+ 425 029a 81E1 ldi r24,lo8(17)
+ 426 /* #APP */
+ 427 ; 266 "main.c" 1
+ 428 029c 8093 5700 sts 87, r24
+ 429 02a0 E895 spm
+ 430
+ 431 ; 0 "" 2
+ 432 /* #NOAPP */
+ 433 02a2 00C0 rjmp .L46
+ 434 .L44:
+ 435 02a4 8881 ld r24,Y
+ 436 02a6 9981 ldd r25,Y+1
+ 437 02a8 00D0 rcall writeWordToPageBuffer
+ 438 02aa 1250 subi r17,lo8(-(-2))
+ 439 02ac 01F0 breq .L46
+ 440 02ae 2296 adiw r28,2
+ 441 02b0 00C0 rjmp .L47
+ 442 .L46:
+ 443 02b2 8091 0000 lds r24,writeLength
+ 444 02b6 8823 tst r24
+ 445 02b8 01F4 brne .L21
+ 446 02ba 8091 0000 lds r24,events
+ 447 02be 8260 ori r24,lo8(2)
+ 448 02c0 8093 0000 sts events,r24
+ 449 02c4 1092 0000 sts usbMsgLen,__zero_reg__
+ 450 .L21:
+ 451 02c8 1092 0000 sts usbRxLen,__zero_reg__
+ 452 .L19:
+ 453 02cc 8091 0000 lds r24,usbTxLen
+ 454 02d0 84FF sbrs r24,4
+ 455 02d2 00C0 rjmp .L48
+ 456 02d4 8091 0000 lds r24,usbMsgLen
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 9
- 457 02da 18E0 ldi r17,lo8(8)
- 458 .L48:
- 459 02dc 811B sub r24,r17
- 460 02de 8093 0000 sts usbMsgLen,r24
- 461 02e2 8091 0000 lds r24,usbTxBuf
- 462 02e6 98E8 ldi r25,lo8(-120)
- 463 02e8 8927 eor r24,r25
- 464 02ea 8093 0000 sts usbTxBuf,r24
- 465 02ee 1123 tst r17
- 466 02f0 01F0 breq .L49
- 467 02f2 E091 0000 lds r30,usbMsgPtr
- 468 02f6 F091 0000 lds r31,(usbMsgPtr)+1
- 469 02fa 8091 0000 lds r24,usbMsgFlags
- 470 02fe 86FF sbrs r24,6
- 471 0300 00C0 rjmp .L50
- 472 0302 912F mov r25,r17
- 473 0304 A0E0 ldi r26,lo8(usbTxBuf+1)
- 474 0306 B0E0 ldi r27,hi8(usbTxBuf+1)
- 475 .L51:
- 476 /* #APP */
- 477 ; 504 "usbdrv/usbdrv.c" 1
- 478 0308 8491 lpm r24, Z
- 479
- 480 ; 0 "" 2
- 481 /* #NOAPP */
- 482 030a 8D93 st X+,r24
- 483 030c 3196 adiw r30,1
- 484 030e 9150 subi r25,lo8(-(-1))
- 485 0310 01F4 brne .L51
- 486 0312 00C0 rjmp .L52
- 487 .L50:
- 488 0314 912F mov r25,r17
- 489 0316 A0E0 ldi r26,lo8(usbTxBuf+1)
- 490 0318 B0E0 ldi r27,hi8(usbTxBuf+1)
- 491 .L53:
- 492 031a 8191 ld r24,Z+
- 493 031c 8D93 st X+,r24
- 494 031e 9150 subi r25,lo8(-(-1))
- 495 0320 01F4 brne .L53
- 496 .L52:
- 497 0322 F093 0000 sts (usbMsgPtr)+1,r31
- 498 0326 E093 0000 sts usbMsgPtr,r30
- 499 .L49:
- 500 032a 80E0 ldi r24,lo8(usbTxBuf+1)
- 501 032c 90E0 ldi r25,hi8(usbTxBuf+1)
- 502 032e 612F mov r22,r17
- 503 0330 00D0 rcall usbCrc16Append
- 504 0332 612F mov r22,r17
- 505 0334 6C5F subi r22,lo8(-(4))
- 506 0336 6C30 cpi r22,lo8(12)
- 507 0338 01F0 breq .L54
- 508 033a 8FEF ldi r24,lo8(-1)
- 509 033c 8093 0000 sts usbMsgLen,r24
- 510 .L54:
- 511 0340 6093 0000 sts usbTxLen,r22
- 512 .L47:
- 513 0344 94E1 ldi r25,lo8(20)
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 10
+ 457 02d8 8F3F cpi r24,lo8(-1)
+ 458 02da 01F0 breq .L48
+ 459 02dc 182F mov r17,r24
+ 460 02de 8930 cpi r24,lo8(9)
+ 461 02e0 00F0 brlo .L49
+ 462 02e2 18E0 ldi r17,lo8(8)
+ 463 .L49:
+ 464 02e4 811B sub r24,r17
+ 465 02e6 8093 0000 sts usbMsgLen,r24
+ 466 02ea 8091 0000 lds r24,usbTxBuf
+ 467 02ee 98E8 ldi r25,lo8(-120)
+ 468 02f0 8927 eor r24,r25
+ 469 02f2 8093 0000 sts usbTxBuf,r24
+ 470 02f6 1123 tst r17
+ 471 02f8 01F0 breq .L50
+ 472 02fa E091 0000 lds r30,usbMsgPtr
+ 473 02fe F091 0000 lds r31,(usbMsgPtr)+1
+ 474 0302 8091 0000 lds r24,usbMsgFlags
+ 475 0306 86FF sbrs r24,6
+ 476 0308 00C0 rjmp .L51
+ 477 030a 912F mov r25,r17
+ 478 030c A0E0 ldi r26,lo8(usbTxBuf+1)
+ 479 030e B0E0 ldi r27,hi8(usbTxBuf+1)
+ 480 .L52:
+ 481 /* #APP */
+ 482 ; 504 "usbdrv/usbdrv.c" 1
+ 483 0310 8491 lpm r24, Z
+ 484
+ 485 ; 0 "" 2
+ 486 /* #NOAPP */
+ 487 0312 8D93 st X+,r24
+ 488 0314 3196 adiw r30,1
+ 489 0316 9150 subi r25,lo8(-(-1))
+ 490 0318 01F4 brne .L52
+ 491 031a 00C0 rjmp .L53
+ 492 .L51:
+ 493 031c 912F mov r25,r17
+ 494 031e A0E0 ldi r26,lo8(usbTxBuf+1)
+ 495 0320 B0E0 ldi r27,hi8(usbTxBuf+1)
+ 496 .L54:
+ 497 0322 8191 ld r24,Z+
+ 498 0324 8D93 st X+,r24
+ 499 0326 9150 subi r25,lo8(-(-1))
+ 500 0328 01F4 brne .L54
+ 501 .L53:
+ 502 032a F093 0000 sts (usbMsgPtr)+1,r31
+ 503 032e E093 0000 sts usbMsgPtr,r30
+ 504 .L50:
+ 505 0332 80E0 ldi r24,lo8(usbTxBuf+1)
+ 506 0334 90E0 ldi r25,hi8(usbTxBuf+1)
+ 507 0336 612F mov r22,r17
+ 508 0338 00D0 rcall usbCrc16Append
+ 509 033a 612F mov r22,r17
+ 510 033c 6C5F subi r22,lo8(-(4))
+ 511 033e 6C30 cpi r22,lo8(12)
+ 512 0340 01F0 breq .L55
+ 513 0342 8FEF ldi r24,lo8(-1)
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 10
- 514 .L56:
- 515 0346 86B3 in r24,54-32
- 516 0348 8871 andi r24,lo8(24)
- 517 034a 01F4 brne .L55
- 518 034c 9150 subi r25,lo8(-(-1))
- 519 034e 01F4 brne .L56
- 520 0350 1092 0000 sts usbNewDeviceAddr,__zero_reg__
- 521 0354 1092 0000 sts usbDeviceAddr,__zero_reg__
- 522 .L55:
- 523 0358 10E0 ldi r17,lo8(0)
- 524 035a 9923 tst r25
- 525 035c 01F4 brne .L57
- 526 035e 11E0 ldi r17,lo8(1)
- 527 .L57:
- 528 0360 8091 0000 lds r24,wasReset.1562
- 529 0364 8117 cp r24,r17
- 530 0366 01F0 breq .L58
- 531 0368 1123 tst r17
- 532 036a 01F4 brne .L59
- 533 /* #APP */
- 534 ; 557 "usbdrv/usbdrv.c" 1
- 535 036c F894 cli
- 536 ; 0 "" 2
- 537 /* #NOAPP */
- 538 036e 00D0 rcall calibrateOscillator
- 539 /* #APP */
- 540 ; 557 "usbdrv/usbdrv.c" 1
- 541 0370 7894 sei
- 542 ; 0 "" 2
- 543 /* #NOAPP */
- 544 .L59:
- 545 0372 1093 0000 sts wasReset.1562,r17
- 546 .L58:
- 547 0376 8CE9 ldi r24,lo8(412)
- 548 0378 91E0 ldi r25,hi8(412)
- 549 /* #APP */
- 550 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas
- 551 037a 0197 1: sbiw r24,1
- 552 037c 01F4 brne 1b
- 553 ; 0 "" 2
- 554 /* #NOAPP */
- 555 037e 8091 0000 lds r24,events
- 556 0382 8823 tst r24
- 557 0384 01F0 breq .L60
- 558 0386 EE24 clr r14
- 559 0388 FF24 clr r15
- 560 038a 00C0 rjmp .L61
- 561 .L60:
- 562 038c 0894 sec
- 563 038e E11C adc r14,__zero_reg__
- 564 0390 F11C adc r15,__zero_reg__
- 565 .L61:
- 566 0392 182F mov r17,r24
- 567 0394 80FF sbrs r24,0
- 568 0396 00C0 rjmp .L62
- 569 /* #APP */
- 570 ; 130 "main.c" 1
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 11
+ 514 0344 8093 0000 sts usbMsgLen,r24
+ 515 .L55:
+ 516 0348 6093 0000 sts usbTxLen,r22
+ 517 .L48:
+ 518 034c 94E1 ldi r25,lo8(20)
+ 519 .L57:
+ 520 034e 86B3 in r24,54-32
+ 521 0350 8871 andi r24,lo8(24)
+ 522 0352 01F4 brne .L56
+ 523 0354 9150 subi r25,lo8(-(-1))
+ 524 0356 01F4 brne .L57
+ 525 0358 1092 0000 sts usbNewDeviceAddr,__zero_reg__
+ 526 035c 1092 0000 sts usbDeviceAddr,__zero_reg__
+ 527 .L56:
+ 528 0360 10E0 ldi r17,lo8(0)
+ 529 0362 9923 tst r25
+ 530 0364 01F4 brne .L58
+ 531 0366 11E0 ldi r17,lo8(1)
+ 532 .L58:
+ 533 0368 8091 0000 lds r24,wasReset.1562
+ 534 036c 8117 cp r24,r17
+ 535 036e 01F0 breq .L59
+ 536 0370 1123 tst r17
+ 537 0372 01F4 brne .L60
+ 538 /* #APP */
+ 539 ; 557 "usbdrv/usbdrv.c" 1
+ 540 0374 F894 cli
+ 541 ; 0 "" 2
+ 542 /* #NOAPP */
+ 543 0376 00D0 rcall calibrateOscillator
+ 544 /* #APP */
+ 545 ; 557 "usbdrv/usbdrv.c" 1
+ 546 0378 7894 sei
+ 547 ; 0 "" 2
+ 548 /* #NOAPP */
+ 549 .L60:
+ 550 037a 1093 0000 sts wasReset.1562,r17
+ 551 .L59:
+ 552 037e 8CE9 ldi r24,lo8(412)
+ 553 0380 91E0 ldi r25,hi8(412)
+ 554 /* #APP */
+ 555 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas
+ 556 0382 0197 1: sbiw r24,1
+ 557 0384 01F4 brne 1b
+ 558 ; 0 "" 2
+ 559 /* #NOAPP */
+ 560 0386 8091 0000 lds r24,events
+ 561 038a 8823 tst r24
+ 562 038c 01F0 breq .L61
+ 563 038e EE24 clr r14
+ 564 0390 FF24 clr r15
+ 565 0392 00C0 rjmp .L62
+ 566 .L61:
+ 567 0394 0894 sec
+ 568 0396 E11C adc r14,__zero_reg__
+ 569 0398 F11C adc r15,__zero_reg__
+ 570 .L62:
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 11
- 571 0398 F894 cli
- 572 ; 0 "" 2
- 573 /* #NOAPP */
- 574 039a E0E8 ldi r30,lo8(6016)
- 575 039c F7E1 ldi r31,hi8(6016)
- 576 .L64:
- 577 039e E054 subi r30,lo8(-(-64))
- 578 03a0 F040 sbci r31,hi8(-(-64))
- 579 03a2 83E0 ldi r24,lo8(3)
- 580 /* #APP */
- 581 ; 134 "main.c" 1
- 582 03a4 8093 5700 sts 87, r24
- 583 03a8 E895 spm
- 584
- 585 ; 0 "" 2
- 586 /* #NOAPP */
- 587 .L63:
- 588 03aa 07B6 in __tmp_reg__,87-32
- 589 03ac 00FC sbrc __tmp_reg__,0
- 590 03ae 00C0 rjmp .L63
- 591 03b0 3097 sbiw r30,0
- 592 03b2 01F4 brne .L64
- 593 03b4 1092 0000 sts (currentAddress)+1,__zero_reg__
- 594 03b8 1092 0000 sts currentAddress,__zero_reg__
- 595 03bc 00D0 rcall fillFlashWithVectors
- 596 /* #APP */
- 597 ; 139 "main.c" 1
- 598 03be 7894 sei
- 599 ; 0 "" 2
- 600 /* #NOAPP */
- 601 .L62:
- 602 03c0 11FF sbrs r17,1
- 603 03c2 00C0 rjmp .L65
- 604 03c4 8AE3 ldi r24,lo8(8250)
- 605 03c6 90E2 ldi r25,hi8(8250)
- 606 /* #APP */
- 607 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas
- 608 03c8 0197 1: sbiw r24,1
- 609 03ca 01F4 brne 1b
- 610 ; 0 "" 2
- 611 /* #NOAPP */
- 612 03cc 8091 0000 lds r24,currentAddress
- 613 03d0 9091 0000 lds r25,(currentAddress)+1
- 614 03d4 8F73 andi r24,lo8(63)
- 615 03d6 9070 andi r25,hi8(63)
- 616 03d8 892B or r24,r25
- 617 03da 01F0 breq .L66
- 618 03dc 00D0 rcall fillFlashWithVectors
- 619 03de 00C0 rjmp .L65
- 620 .L66:
- 621 03e0 00D0 rcall writeFlashPage
- 622 .L65:
- 623 03e2 12FF sbrs r17,2
- 624 03e4 00C0 rjmp .L67
- 625 03e6 8091 0000 lds r24,didWriteSomething
- 626 03ea 8823 tst r24
- 627 03ec 01F4 brne .L68
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 12
+ 571 039a 182F mov r17,r24
+ 572 039c 80FF sbrs r24,0
+ 573 039e 00C0 rjmp .L63
+ 574 /* #APP */
+ 575 ; 130 "main.c" 1
+ 576 03a0 F894 cli
+ 577 ; 0 "" 2
+ 578 /* #NOAPP */
+ 579 03a2 E0E8 ldi r30,lo8(6016)
+ 580 03a4 F7E1 ldi r31,hi8(6016)
+ 581 .L65:
+ 582 03a6 E054 subi r30,lo8(-(-64))
+ 583 03a8 F040 sbci r31,hi8(-(-64))
+ 584 03aa 83E0 ldi r24,lo8(3)
+ 585 /* #APP */
+ 586 ; 134 "main.c" 1
+ 587 03ac 8093 5700 sts 87, r24
+ 588 03b0 E895 spm
+ 589
+ 590 ; 0 "" 2
+ 591 /* #NOAPP */
+ 592 .L64:
+ 593 03b2 07B6 in __tmp_reg__,87-32
+ 594 03b4 00FC sbrc __tmp_reg__,0
+ 595 03b6 00C0 rjmp .L64
+ 596 03b8 3097 sbiw r30,0
+ 597 03ba 01F4 brne .L65
+ 598 03bc 1092 0000 sts (currentAddress)+1,__zero_reg__
+ 599 03c0 1092 0000 sts currentAddress,__zero_reg__
+ 600 03c4 00D0 rcall fillFlashWithVectors
+ 601 /* #APP */
+ 602 ; 139 "main.c" 1
+ 603 03c6 7894 sei
+ 604 ; 0 "" 2
+ 605 /* #NOAPP */
+ 606 .L63:
+ 607 03c8 11FF sbrs r17,1
+ 608 03ca 00C0 rjmp .L66
+ 609 03cc 8AE3 ldi r24,lo8(8250)
+ 610 03ce 90E2 ldi r25,hi8(8250)
+ 611 /* #APP */
+ 612 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas
+ 613 03d0 0197 1: sbiw r24,1
+ 614 03d2 01F4 brne 1b
+ 615 ; 0 "" 2
+ 616 /* #NOAPP */
+ 617 03d4 8091 0000 lds r24,currentAddress
+ 618 03d8 9091 0000 lds r25,(currentAddress)+1
+ 619 03dc 8F73 andi r24,lo8(63)
+ 620 03de 9070 andi r25,hi8(63)
+ 621 03e0 892B or r24,r25
+ 622 03e2 01F0 breq .L67
+ 623 03e4 00D0 rcall fillFlashWithVectors
+ 624 03e6 00C0 rjmp .L66
+ 625 .L67:
+ 626 03e8 00D0 rcall writeFlashPage
+ 627 .L66:
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 12
- 628 03ee 00C0 rjmp .L69
- 629 .L70:
- 630 03f0 00D0 rcall fillFlashWithVectors
- 631 .L68:
- 632 03f2 8091 0000 lds r24,currentAddress
- 633 03f6 9091 0000 lds r25,(currentAddress)+1
- 634 03fa 8058 subi r24,lo8(6016)
- 635 03fc 9741 sbci r25,hi8(6016)
- 636 03fe 00F0 brlo .L70
- 637 .L69:
- 638 0400 82E2 ldi r24,lo8(-24286)
- 639 0402 91EA ldi r25,hi8(-24286)
- 640 /* #APP */
- 641 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas
- 642 0404 0197 1: sbiw r24,1
- 643 0406 01F4 brne 1b
- 644 ; 0 "" 2
- 645 /* #NOAPP */
- 646 0408 00C0 rjmp .L71
- 647 .L67:
- 648 040a 1092 0000 sts events,__zero_reg__
- 649 040e 80E5 ldi r24,lo8(-15536)
- 650 0410 E816 cp r14,r24
- 651 0412 83EC ldi r24,hi8(-15536)
- 652 0414 F806 cpc r15,r24
- 653 0416 00F4 brsh .+2
- 654 0418 00C0 rjmp .L72
- 655 .L71:
- 656 /* #APP */
- 657 ; 342 "main.c" 1
- 658 041a F894 cli
- 659 ; 0 "" 2
- 660 /* #NOAPP */
- 661 041c 1BBE out 91-32,__zero_reg__
- 662 041e 15BA out 53-32,__zero_reg__
- 663 0420 1092 5F02 sts 607,__zero_reg__
- 664 0424 1092 5E02 sts 606,__zero_reg__
- 665 /* #APP */
- 666 ; 351 "main.c" 1
- 667 0428 00C0 rjmp __vectors - 4
- 668 ; 0 "" 2
- 669 /* epilogue start */
- 670 /* #NOAPP */
- 671 042a 0895 ret
- 672 .size main, .-main
- 673 .global usbTxLen
- 674 .data
- 675 .type usbTxLen, @object
- 676 .size usbTxLen, 1
- 677 usbTxLen:
- 678 0000 5A .byte 90
- 679 .global usbDescriptorString0
- 680 .section .progmem.data,"a",@progbits
- 681 .type usbDescriptorString0, @object
- 682 .size usbDescriptorString0, 4
- 683 usbDescriptorString0:
- 684 0000 04 .byte 4
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 13
+ 628 03ea 12FF sbrs r17,2
+ 629 03ec 00C0 rjmp .L68
+ 630 03ee 8091 0000 lds r24,didWriteSomething
+ 631 03f2 8823 tst r24
+ 632 03f4 01F4 brne .L69
+ 633 03f6 00C0 rjmp .L70
+ 634 .L71:
+ 635 03f8 00D0 rcall fillFlashWithVectors
+ 636 .L69:
+ 637 03fa 8091 0000 lds r24,currentAddress
+ 638 03fe 9091 0000 lds r25,(currentAddress)+1
+ 639 0402 8058 subi r24,lo8(6016)
+ 640 0404 9741 sbci r25,hi8(6016)
+ 641 0406 00F0 brlo .L71
+ 642 .L70:
+ 643 0408 82E2 ldi r24,lo8(-24286)
+ 644 040a 91EA ldi r25,hi8(-24286)
+ 645 /* #APP */
+ 646 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas
+ 647 040c 0197 1: sbiw r24,1
+ 648 040e 01F4 brne 1b
+ 649 ; 0 "" 2
+ 650 /* #NOAPP */
+ 651 0410 00C0 rjmp .L72
+ 652 .L68:
+ 653 0412 1092 0000 sts events,__zero_reg__
+ 654 0416 80E5 ldi r24,lo8(-15536)
+ 655 0418 E816 cp r14,r24
+ 656 041a 83EC ldi r24,hi8(-15536)
+ 657 041c F806 cpc r15,r24
+ 658 041e 00F4 brsh .+2
+ 659 0420 00C0 rjmp .L73
+ 660 .L72:
+ 661 /* #APP */
+ 662 ; 347 "main.c" 1
+ 663 0422 F894 cli
+ 664 ; 0 "" 2
+ 665 /* #NOAPP */
+ 666 0424 1BBE out 91-32,__zero_reg__
+ 667 0426 15BA out 53-32,__zero_reg__
+ 668 0428 1092 5F02 sts 607,__zero_reg__
+ 669 042c 1092 5E02 sts 606,__zero_reg__
+ 670 /* #APP */
+ 671 ; 356 "main.c" 1
+ 672 0430 00C0 rjmp __vectors - 4
+ 673 ; 0 "" 2
+ 674 /* epilogue start */
+ 675 /* #NOAPP */
+ 676 0432 0895 ret
+ 677 .size main, .-main
+ 678 .global usbTxLen
+ 679 .data
+ 680 .type usbTxLen, @object
+ 681 .size usbTxLen, 1
+ 682 usbTxLen:
+ 683 0000 5A .byte 90
+ 684 .global usbDescriptorString0
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 13
- 685 0001 03 .byte 3
- 686 0002 09 .byte 9
- 687 0003 04 .byte 4
- 688 .global usbDescriptorDevice
- 689 .type usbDescriptorDevice, @object
- 690 .size usbDescriptorDevice, 18
- 691 usbDescriptorDevice:
- 692 0004 12 .byte 18
- 693 0005 01 .byte 1
- 694 0006 10 .byte 16
- 695 0007 01 .byte 1
- 696 0008 FF .byte -1
- 697 0009 00 .byte 0
- 698 000a 00 .byte 0
- 699 000b 08 .byte 8
- 700 000c D0 .byte -48
- 701 000d 16 .byte 22
- 702 000e 53 .byte 83
- 703 000f 07 .byte 7
- 704 0010 02 .byte 2
- 705 0011 01 .byte 1
- 706 0012 00 .byte 0
- 707 0013 00 .byte 0
- 708 0014 00 .byte 0
- 709 0015 01 .byte 1
- 710 .global usbDescriptorConfiguration
- 711 .type usbDescriptorConfiguration, @object
- 712 .size usbDescriptorConfiguration, 18
- 713 usbDescriptorConfiguration:
- 714 0016 09 .byte 9
- 715 0017 02 .byte 2
- 716 0018 12 .byte 18
- 717 0019 00 .byte 0
- 718 001a 01 .byte 1
- 719 001b 01 .byte 1
- 720 001c 00 .byte 0
- 721 001d 80 .byte -128
- 722 001e 32 .byte 50
- 723 001f 09 .byte 9
- 724 0020 04 .byte 4
- 725 0021 00 .byte 0
- 726 0022 00 .byte 0
- 727 0023 00 .byte 0
- 728 0024 00 .byte 0
- 729 0025 00 .byte 0
- 730 0026 00 .byte 0
- 731 0027 00 .byte 0
- 732 .lcomm events,1
- 733 .lcomm didWriteSomething,1
- 734 .data
- 735 .type usbMsgLen, @object
- 736 .size usbMsgLen, 1
- 737 usbMsgLen:
- 738 0001 FF .byte -1
- 739 .type replyBuffer.1675, @object
- 740 .size replyBuffer.1675, 4
- 741 replyBuffer.1675:
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 14
+ 685 .section .progmem.data,"a",@progbits
+ 686 .type usbDescriptorString0, @object
+ 687 .size usbDescriptorString0, 4
+ 688 usbDescriptorString0:
+ 689 0000 04 .byte 4
+ 690 0001 03 .byte 3
+ 691 0002 09 .byte 9
+ 692 0003 04 .byte 4
+ 693 .global usbDescriptorDevice
+ 694 .type usbDescriptorDevice, @object
+ 695 .size usbDescriptorDevice, 18
+ 696 usbDescriptorDevice:
+ 697 0004 12 .byte 18
+ 698 0005 01 .byte 1
+ 699 0006 10 .byte 16
+ 700 0007 01 .byte 1
+ 701 0008 FF .byte -1
+ 702 0009 00 .byte 0
+ 703 000a 00 .byte 0
+ 704 000b 08 .byte 8
+ 705 000c D0 .byte -48
+ 706 000d 16 .byte 22
+ 707 000e 53 .byte 83
+ 708 000f 07 .byte 7
+ 709 0010 02 .byte 2
+ 710 0011 01 .byte 1
+ 711 0012 00 .byte 0
+ 712 0013 00 .byte 0
+ 713 0014 00 .byte 0
+ 714 0015 01 .byte 1
+ 715 .global usbDescriptorConfiguration
+ 716 .type usbDescriptorConfiguration, @object
+ 717 .size usbDescriptorConfiguration, 18
+ 718 usbDescriptorConfiguration:
+ 719 0016 09 .byte 9
+ 720 0017 02 .byte 2
+ 721 0018 12 .byte 18
+ 722 0019 00 .byte 0
+ 723 001a 01 .byte 1
+ 724 001b 01 .byte 1
+ 725 001c 00 .byte 0
+ 726 001d 80 .byte -128
+ 727 001e 32 .byte 50
+ 728 001f 09 .byte 9
+ 729 0020 04 .byte 4
+ 730 0021 00 .byte 0
+ 731 0022 00 .byte 0
+ 732 0023 00 .byte 0
+ 733 0024 00 .byte 0
+ 734 0025 00 .byte 0
+ 735 0026 00 .byte 0
+ 736 0027 00 .byte 0
+ 737 .lcomm events,1
+ 738 .lcomm didWriteSomething,1
+ 739 .data
+ 740 .type usbMsgLen, @object
+ 741 .size usbMsgLen, 1
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 14
- 742 0002 17 .byte 23
- 743 0003 7A .byte 122
- 744 0004 40 .byte 64
- 745 0005 08 .byte 8
- 746 .lcomm wasReset.1562,1
- 747 .lcomm usbMsgFlags,1
- 748 .lcomm writeLength,1
- 749 .lcomm vectorTemp,4
- 750 .lcomm currentAddress,2
- 751 .comm usbMsgPtr,2,1
- 752 .comm usbRxToken,1,1
- 753 .comm usbConfiguration,1,1
- 754 .comm usbRxBuf,22,1
- 755 .comm usbInputBufOffset,1,1
- 756 .comm usbDeviceAddr,1,1
- 757 .comm usbNewDeviceAddr,1,1
- 758 .comm usbRxLen,1,1
- 759 .comm usbCurrentTok,1,1
- 760 .comm usbTxBuf,11,1
- 761 .global __do_copy_data
- 762 .global __do_clear_bss
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 15
+ 742 usbMsgLen:
+ 743 0001 FF .byte -1
+ 744 .type replyBuffer.1675, @object
+ 745 .size replyBuffer.1675, 4
+ 746 replyBuffer.1675:
+ 747 0002 17 .byte 23
+ 748 0003 7A .byte 122
+ 749 0004 40 .byte 64
+ 750 0005 08 .byte 8
+ 751 .lcomm wasReset.1562,1
+ 752 .lcomm usbMsgFlags,1
+ 753 .lcomm writeLength,1
+ 754 .lcomm vectorTemp,4
+ 755 .lcomm currentAddress,2
+ 756 .comm usbMsgPtr,2,1
+ 757 .comm usbRxToken,1,1
+ 758 .comm usbConfiguration,1,1
+ 759 .comm usbRxBuf,22,1
+ 760 .comm usbInputBufOffset,1,1
+ 761 .comm usbDeviceAddr,1,1
+ 762 .comm usbNewDeviceAddr,1,1
+ 763 .comm usbRxLen,1,1
+ 764 .comm usbCurrentTok,1,1
+ 765 .comm usbTxBuf,11,1
+ 766 .global __do_copy_data
+ 767 .global __do_clear_bss
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 15
DEFINED SYMBOLS
*ABS*:00000000 main.c
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:2 *ABS*:0000003f __SREG__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:3 *ABS*:0000003e __SP_H__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:4 *ABS*:0000003d __SP_L__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:5 *ABS*:00000034 __CCP__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:6 *ABS*:00000000 __tmp_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:7 *ABS*:00000001 __zero_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:10 .text:00000000 writeFlashPage
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:732 .bss:00000001 didWriteSomething
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:749 .bss:00000009 currentAddress
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:44 .text:00000024 writeWordToPageBuffer
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:748 .bss:00000005 vectorTemp
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:113 .text:0000008e fillFlashWithVectors
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:139 .init3:00000000 PushMagicWord
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:161 .text:000000b4 main
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:2 *ABS*:0000003f __SREG__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:3 *ABS*:0000003e __SP_H__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:4 *ABS*:0000003d __SP_L__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:5 *ABS*:00000034 __CCP__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:6 *ABS*:00000000 __tmp_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:7 *ABS*:00000001 __zero_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:10 .text:00000000 writeFlashPage
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:737 .bss:00000001 didWriteSomething
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:754 .bss:00000009 currentAddress
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:44 .text:00000024 writeWordToPageBuffer
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:753 .bss:00000005 vectorTemp
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:113 .text:0000008e fillFlashWithVectors
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:139 .init3:00000000 PushMagicWord
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:161 .text:000000b4 main
*COM*:00000001 usbRxLen
*COM*:00000001 usbInputBufOffset
*COM*:00000016 usbRxBuf
*COM*:00000001 usbRxToken
*COM*:0000000b usbTxBuf
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:677 .data:00000000 usbTxLen
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:746 .bss:00000003 usbMsgFlags
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:741 .data:00000002 replyBuffer.1675
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:682 .data:00000000 usbTxLen
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:751 .bss:00000003 usbMsgFlags
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:746 .data:00000002 replyBuffer.1675
*COM*:00000002 usbMsgPtr
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:747 .bss:00000004 writeLength
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:752 .bss:00000004 writeLength
.bss:00000000 events
*COM*:00000001 usbNewDeviceAddr
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:691 .progmem.data:00000004 usbDescriptorDevice
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:713 .progmem.data:00000016 usbDescriptorConfiguration
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:683 .progmem.data:00000000 usbDescriptorString0
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:696 .progmem.data:00000004 usbDescriptorDevice
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:718 .progmem.data:00000016 usbDescriptorConfiguration
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:688 .progmem.data:00000000 usbDescriptorString0
*COM*:00000001 usbConfiguration
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:737 .data:00000001 usbMsgLen
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:742 .data:00000001 usbMsgLen
*COM*:00000001 usbDeviceAddr
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:733 .bss:00000002 wasReset.1562
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:738 .bss:00000002 wasReset.1562
*COM*:00000001 usbCurrentTok
UNDEFINED SYMBOLS
diff --git a/firmware/main.hex b/firmware/main.hex
index 6938e3b..ca7430c 100644
--- a/firmware/main.hex
+++ b/firmware/main.hex
@@ -4,9 +4,9 @@
:1017B000000000010902120001010080320904004A
:1017C00000000000000011241FBECFE5D2E0DEBF04
:1017D000CDBF00EB0F9307E00F9310E0A0E6B0E061
-:1017E000E6ECFFE102C005900D92A636B107D9F7ED
+:1017E000EEECFFE102C005900D92A636B107D9F7E5
:1017F00010E0A6E6B0E001C01D92AB39B107E1F7F9
-:10180000E6D1DFC3BDCFA82FB92F80E090E041E043
+:10180000E6D1E3C3BDCFA82FB92F80E090E041E03F
:1018100050EA609530E009C02D9182279795879511
:1018200010F084279527305EC8F36F5FA8F3089502
:10183000EADF8D939D930895A6E088279927AA95BE
@@ -72,9 +72,9 @@
:101BF0008F5B9B4C09F0D8DF1092700010926F0041
:101C0000AC9A8BB780628BBFBB9A88E893E1ECE912
:101C1000F1E03197F1F70197D1F7BB987894EE2472
-:101C2000FF2410918100135017FDD9C080917E00D0
+:101C2000FF2490918100935097FDDDC080917E004C
:101C3000CCE0D0E0C81BD109CB57DF4F80917D00AD
-:101C40008D3209F090C0183009F0C7C083EC809342
+:101C40008D3209F090C0983009F0CBC083EC8093BE
:101C500071008AE580936000109269002881822FCC
:101C600080769981882321F1992341F482E690E0DE
:101C70009093800080937F0024E06BC0913069F4E2
@@ -92,45 +92,45 @@
:101D30008AE790E021E003C08AE790E020E09093FA
:101D4000800080937F0005C09E8180E880936900B9
:101D500007C08F81882319F49E81921708F0922F73
-:101D6000909361003AC08091690087FF36C08091EE
-:101D70006A00811B80936A0080916F0090917000CF
-:101D8000009739F48881998190936C0080936B005F
-:101D900012C08430910539F48881998190936E0046
-:101DA00080936D0008C08A57974128F081E18093A5
-:101DB0005700E89507C088819981C1DE125011F063
-:101DC0002296DACF80916A00882339F480916600E8
-:101DD0008260809366001092610010928100809171
-:101DE000600084FF3CC0809161008F3FC1F1182FDB
-:101DF000893008F018E0811B8093610080917100A8
-:101E000098E88927809371001123E1F0E0917F0029
-:101E1000F09180008091690086FF09C0912FA2E7B0
-:101E2000B0E084918D9331969150D9F707C0912FEE
-:101E3000A2E7B0E081918D939150E1F7F09380009B
-:101E4000E0937F0082E790E0612FF2DC612F6C5F0E
-:101E50006C3019F08FEF809361006093600094E123
-:101E600086B3887131F49150D9F7109282001092A4
-:101E70007C0010E0992309F411E08091680081173B
-:101E800039F0112319F4F8945DD078941093680018
-:101E90008CE991E00197F1F780916600882319F0B1
-:101EA000EE24FF2403C00894E11CF11C182F80FFCE
-:101EB00014C0F894E0E8F7E1E054F04083E0809348
-:101EC0005700E89507B600FCFDCF3097A9F71092B0
-:101ED000700010926F0068DE789411FF0FC08AE3E3
-:101EE00090E20197F1F780916F00909170008F73ED
-:101EF0009070892B11F058DE01C00FDE12FF12C066
-:101F000080916700882311F408C04EDE80916F0035
-:101F10009091700080589741C0F382E291EA019756
-:101F2000F1F708C01092660080E5E81683ECF80629
-:101F300008F477CEF8941BBE15BA10925F02109287
-:101F40005E021CCCFF920F931F93CF93DF9380E828
-:101F5000F82E00E0C0E0D0E0102F1F0D11BF6CDCA8
-:101F600029E0843392070CF0102FF6942196C830A4
-:101F7000D10511F0012FF0CF115011BF1F5F012FBC
-:101F8000EC0110C059DC8453994097FF03C0909531
-:101F900081959F4F8C179D0714F401B7EC0181B711
-:101FA0008F5F81BF21B730E0812F90E001968217CB
-:101FB000930744F701BFDF91CF911F910F91FF90DD
-:061FC0000895F894FFCF24
-:061FC6005AFF177A4008E3
+:101D6000909361003EC08091690087FF3AC08091E6
+:101D70006A00192F891708F4182F811B80936A00B5
+:101D800080916F0090917000009739F4888199815B
+:101D900090936C0080936B0012C08430910539F4ED
+:101DA0008881998190936E0080936D0008C08A5756
+:101DB000974128F081E180935700E89507C088811A
+:101DC0009981BDDE125011F02296DACF80916A001F
+:101DD000882339F4809166008260809366001092B7
+:101DE0006100109281008091600084FF3CC080916E
+:101DF00061008F3FC1F1182F893008F018E0811B76
+:101E0000809361008091710098E889278093710028
+:101E10001123E1F0E0917F00F09180008091690052
+:101E200086FF09C0912FA2E7B0E084918D9331968F
+:101E30009150D9F707C0912FA2E7B0E081918D931F
+:101E40009150E1F7F0938000E0937F0082E790E00B
+:101E5000612FEEDC612F6C5F6C3019F08FEF809397
+:101E600061006093600094E186B3887131F4915011
+:101E7000D9F71092820010927C0010E0992309F4A7
+:101E800011E080916800811739F0112319F4F8945A
+:101E90005DD07894109368008CE991E00197F1F798
+:101EA00080916600882319F0EE24FF2403C0089473
+:101EB000E11CF11C182F80FF14C0F894E0E8F7E152
+:101EC000E054F04083E080935700E89507B600FCAB
+:101ED000FDCF3097A9F71092700010926F0064DE6A
+:101EE000789411FF0FC08AE390E20197F1F7809197
+:101EF0006F00909170008F739070892B11F054DEF9
+:101F000001C00BDE12FF12C080916700882311F41C
+:101F100008C04ADE80916F00909170008058974110
+:101F2000C0F382E291EA0197F1F708C010926600CF
+:101F300080E5E81683ECF80608F473CEF8941BBE2F
+:101F400015BA10925F0210925E0218CCFF920F93A6
+:101F50001F93CF93DF9380E8F82E00E0C0E0D0E03D
+:101F6000102F1F0D11BF68DC29E0843392070CF09D
+:101F7000102FF6942196C830D10511F0012FF0CF23
+:101F8000115011BF1F5F012FEC0110C055DC8453AD
+:101F9000994097FF03C0909581959F4F8C179D079F
+:101FA00014F401B7EC0181B78F5F81BF21B730E036
+:101FB000812F90E001968217930744F701BFDF91CC
+:0E1FC000CF911F910F91FF900895F894FFCFDD
+:061FCE005AFF177A4008DB
:040000030000178062
:00000001FF
diff --git a/firmware/main.map b/firmware/main.map
index eb790ae..1ea886b 100644
--- a/firmware/main.map
+++ b/firmware/main.map
@@ -158,7 +158,7 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a
.rela.plt
*(.rela.plt)
-.text 0x00001780 0x846
+.text 0x00001780 0x84e
*(.vectors)
.vectors 0x00001780 0x1e /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o
0x00001780 __vectors
@@ -239,17 +239,17 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a
0x00001830 usbCrc16Append
0x0000185e __vector_2
0x00001838 usbMeasureFrameLength
- .text 0x00001b1a 0x42a main.o
+ .text 0x00001b1a 0x432 main.o
0x00001bce main
- .text 0x00001f44 0x7e libs-device/osccal.o
- 0x00001f44 calibrateOscillator
- 0x00001fc2 . = ALIGN (0x2)
+ .text 0x00001f4c 0x7e libs-device/osccal.o
+ 0x00001f4c calibrateOscillator
+ 0x00001fca . = ALIGN (0x2)
*(.text.*)
- 0x00001fc2 . = ALIGN (0x2)
+ 0x00001fca . = ALIGN (0x2)
*(.fini9)
- .fini9 0x00001fc2 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o)
- 0x00001fc2 exit
- 0x00001fc2 _exit
+ .fini9 0x00001fca 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o)
+ 0x00001fca exit
+ 0x00001fca _exit
*(.fini9)
*(.fini8)
*(.fini8)
@@ -268,11 +268,11 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a
*(.fini1)
*(.fini1)
*(.fini0)
- .fini0 0x00001fc2 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o)
+ .fini0 0x00001fca 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o)
*(.fini0)
- 0x00001fc6 _etext = .
+ 0x00001fce _etext = .
-.data 0x00800060 0x6 load address 0x00001fc6
+.data 0x00800060 0x6 load address 0x00001fce
0x00800060 PROVIDE (__data_start, .)
*(.data)
.data 0x00800060 0x6 main.o
@@ -303,8 +303,8 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a
0x00800084 usbConfiguration
0x00800085 usbRxBuf
0x0080009b PROVIDE (__bss_end, .)
- 0x00001fc6 __data_load_start = LOADADDR (.data)
- 0x00001fcc __data_load_end = (__data_load_start + SIZEOF (.data))
+ 0x00001fce __data_load_start = LOADADDR (.data)
+ 0x00001fd4 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x0080009b 0x0
0x0080009b PROVIDE (__noinit_start, .)
diff --git a/firmware/main.o b/firmware/main.o
index e47293c..c4691de 100644
--- a/firmware/main.o
+++ b/firmware/main.o
Binary files differ
diff --git a/firmware/microboot.rb b/firmware/microboot.rb
index f36ae02..a0450dc 100644
--- a/firmware/microboot.rb
+++ b/firmware/microboot.rb
@@ -61,6 +61,8 @@ class MicroBoot
address = 0
bytes.each_slice(info[:page_size]) do |slice|
+ slice.push(0xFF) while slice.length < info[:page_size] # ensure every slice is one page_size long - pad out if needed
+
puts "uploading @ #{address} of #{bytes.length}"
control_transfer(function: :write_page, wIndex: address, wValue: slice.length, dataOut: slice.pack('C*'))
sleep(info[:write_sleep])
diff --git a/firmware/upload.rb b/firmware/upload.rb
index 705f7de..b2537d8 100644
--- a/firmware/upload.rb
+++ b/firmware/upload.rb
@@ -12,20 +12,22 @@ else
raise "Pass intel hex or raw binary as argument to script"
end
+#test_data += ("\xFF" * 64)
+
puts "Plug in programmable device now: (waiting)"
-sleep 0.5 while MicroBoot.all.length == 0
+sleep 0.25 while MicroBoot.all.length == 0
-thinklet = MicroBoot.all.first
-puts "Attached to device: #{thinklet.inspect}"
+ubootable = MicroBoot.all.first
+puts "Attached to device: #{ubootable.inspect}"
#puts "Attempting to write '#{test_data.inspect}' to first thinklet's program memory"
#puts "Bytes: #{test_data.bytes.to_a.inspect}"
-sleep(0.1) # some time to think?
+sleep(0.25) # some time to think?
puts "Attempting to write supplied program in to device's memory"
-thinklet.program = test_data
+ubootable.program = test_data
-puts "That seems to have gone well! Telling thinklet to run program..."
+puts "Great! Starting program..."
-thinklet.finished # let thinklet know it can go do other things now if it likes
+ubootable.finished # let thinklet know it can go do other things now if it likes
puts "All done!"
diff --git a/firmware/usbdrv/oddebug.c.lst b/firmware/usbdrv/oddebug.c.lst
index 6bece5a..d0a8008 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//ccTX8fKz.s page 1
+GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccClZBGf.s page 1
1 .file "oddebug.c"
@@ -8,16 +8,16 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTX8fKz.s page
5 __CCP__ = 0x34
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTX8fKz.s page 2
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccClZBGf.s page 2
DEFINED SYMBOLS
*ABS*:00000000 oddebug.c
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTX8fKz.s:2 *ABS*:0000003f __SREG__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTX8fKz.s:3 *ABS*:0000003e __SP_H__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTX8fKz.s:4 *ABS*:0000003d __SP_L__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTX8fKz.s:5 *ABS*:00000034 __CCP__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTX8fKz.s:6 *ABS*:00000000 __tmp_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTX8fKz.s:7 *ABS*:00000001 __zero_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccClZBGf.s:2 *ABS*:0000003f __SREG__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccClZBGf.s:3 *ABS*:0000003e __SP_H__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccClZBGf.s:4 *ABS*:0000003d __SP_L__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccClZBGf.s:5 *ABS*:00000034 __CCP__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccClZBGf.s:6 *ABS*:00000000 __tmp_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccClZBGf.s:7 *ABS*:00000001 __zero_reg__
NO UNDEFINED SYMBOLS