diff options
author | Jenna Fox <a@creativepony.com> | 2012-09-27 01:39:34 +1000 |
---|---|---|
committer | Jenna Fox <a@creativepony.com> | 2012-09-27 01:39:34 +1000 |
commit | 97b381f5d755080539776e59ba5e6887092cad41 (patch) | |
tree | c8c72bc8085fcbd043fefa3845780f677e7c4ab5 /firmware | |
parent | 070eab5ba108ae53d999d0366e16224b89ac0c2b (diff) | |
download | micronucleus-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
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/libs-device/osccal.c.lst | 20 | ||||
-rwxr-xr-x | firmware/main.bin | bin | 8756 -> 8764 bytes | |||
-rw-r--r-- | firmware/main.c | 3 | ||||
-rw-r--r-- | firmware/main.c.lst | 863 | ||||
-rw-r--r-- | firmware/main.hex | 88 | ||||
-rw-r--r-- | firmware/main.map | 28 | ||||
-rw-r--r-- | firmware/main.o | bin | 5416 -> 5436 bytes | |||
-rw-r--r-- | firmware/microboot.rb | 2 | ||||
-rw-r--r-- | firmware/upload.rb | 16 | ||||
-rw-r--r-- | firmware/usbdrv/oddebug.c.lst | 16 |
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 Binary files differindex fe74e56..de708e0 100755 --- a/firmware/main.bin +++ b/firmware/main.bin 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 Binary files differindex e47293c..c4691de 100644 --- a/firmware/main.o +++ b/firmware/main.o 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 |