From ae4a95e323175420625b46b64a963187956187db Mon Sep 17 00:00:00 2001 From: Jenna Fox Date: Tue, 25 Sep 2012 09:32:31 +1000 Subject: Switched to new digistump vid/pid, removed string manufacturer and product name to try shave some more bytes off also adding better comments to firmware/main.c for future hackers --- firmware/boot-at-addr-0.bin | Bin 2158 -> 0 bytes firmware/libs-device/osccal.c.lst | 20 +- firmware/main.bin | Bin 8928 -> 8756 bytes firmware/main.c | 32 +- firmware/main.c.lst | 1052 ++++++++++++++++++------------------- firmware/main.hex | 273 +++++----- firmware/main.map | 114 ++-- firmware/main.o | Bin 5728 -> 5416 bytes firmware/nyan-cat-dump.bin | Bin 7646 -> 0 bytes firmware/temp-dump.bin | Bin 8162 -> 0 bytes firmware/upload.rb | 2 +- firmware/usbconfig.h | 14 +- firmware/usbdrv/oddebug.c.lst | 16 +- 13 files changed, 736 insertions(+), 787 deletions(-) delete mode 100644 firmware/boot-at-addr-0.bin delete mode 100644 firmware/nyan-cat-dump.bin delete mode 100644 firmware/temp-dump.bin diff --git a/firmware/boot-at-addr-0.bin b/firmware/boot-at-addr-0.bin deleted file mode 100644 index 3db2a10..0000000 Binary files a/firmware/boot-at-addr-0.bin and /dev/null differ diff --git a/firmware/libs-device/osccal.c.lst b/firmware/libs-device/osccal.c.lst index 47df64a..72f5995 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//ccgvKHMl.s page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s page 1 1 .file "osccal.c" @@ -58,7 +58,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgvKHMl.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//ccgvKHMl.s page 2 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s page 2 58 .L6: @@ -89,18 +89,18 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgvKHMl.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//ccgvKHMl.s page 3 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s page 3 DEFINED SYMBOLS *ABS*:00000000 osccal.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgvKHMl.s:2 *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgvKHMl.s:3 *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgvKHMl.s:4 *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgvKHMl.s:5 *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgvKHMl.s:6 *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgvKHMl.s:7 *ABS*:00000001 __zero_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgvKHMl.s:11 .text:00000000 calibrateOscillator +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:2 *ABS*:0000003f __SREG__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:3 *ABS*:0000003e __SP_H__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:4 *ABS*:0000003d __SP_L__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:5 *ABS*:00000034 __CCP__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:6 *ABS*:00000000 __tmp_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:7 *ABS*:00000001 __zero_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:11 .text:00000000 calibrateOscillator UNDEFINED SYMBOLS usbMeasureFrameLength diff --git a/firmware/main.bin b/firmware/main.bin index ead2242..8d7639c 100755 Binary files a/firmware/main.bin and b/firmware/main.bin differ diff --git a/firmware/main.c b/firmware/main.c index a2ed8b3..3d746af 100644 --- a/firmware/main.c +++ b/firmware/main.c @@ -9,7 +9,11 @@ * This Revision: $Id: main.c 786 2010-05-30 20:41:40Z cs $ */ -#define UBOOT_VERSION 1 +#define UBOOT_VERSION 2 +// how many milliseconds should host wait till it sends another erase or write? +// needs to be above 4.5 (and a whole integer) as avr freezes for 4.5ms +#define UBOOT_WRITE_SLEEP 8 + #include #include @@ -25,10 +29,6 @@ static void leaveBootloader() __attribute__((__noreturn__)); #include "bootloaderconfig.h" #include "usbdrv/usbdrv.c" -// how many milliseconds should host wait till it sends another erase or write? -// needs to be above 4.5 (and a whole integer) as avr freezes for 4.5ms -#define UBOOT_WRITE_SLEEP 8 - /* ------------------------------------------------------------------------ */ #ifndef ulong @@ -67,18 +67,23 @@ static void leaveBootloader() __attribute__((__noreturn__)); // } longConverter_t; //////// Stuff Bluebie Added -#define PROGMEM_SIZE (BOOTLOADER_ADDRESS - 6) +// postscript are the few bytes at the end of programmable memory which store tinyVectors +// and used to in USBaspLoader-tiny85 store the checksum iirc +#define POSTSCRIPT_SIZE 6 /* maybe it could be 4 now we do not have checksums? */ +#define PROGMEM_SIZE (BOOTLOADER_ADDRESS - POSTSCRIPT_SIZE) /* max size of user program */ -// outstanding events for the mainloop to deal with +// events system schedules functions to run in the main loop static uchar events = 0; // bitmap of events to run #define EVENT_ERASE_APPLICATION 1 #define EVENT_WRITE_PAGE 2 #define EVENT_FINISH 4 +// controls state of events #define fireEvent(event) events |= (event) #define isEvent(event) (events & (event)) #define clearEvents() events = 0 +// length of bytes to write in to flash memory in upcomming usbFunctionWrite calls static uchar writeLength; // becomes 1 when some programming happened @@ -90,8 +95,8 @@ static uchar didWriteSomething = 0; -static uint16_t vectorTemp[2]; -static addr_t currentAddress; /* in bytes */ +static uint16_t vectorTemp[2]; // remember data to create tinyVector table before BOOTLOADER_ADDRESS +static addr_t currentAddress; // current progmem address, used for erasing and writing /* ------------------------------------------------------------------------ */ @@ -104,11 +109,14 @@ static uchar usbFunctionWrite(uchar *data, uchar length); static inline void initForUsbConnectivity(void); static inline void tiny85FlashInit(void); static inline void tiny85FlashWrites(void); +static inline void tiny85FinishWriting(void); static inline __attribute__((noreturn)) void leaveBootloader(void); - +// erase any existing application and write in jumps for usb interrupt and reset to bootloader +// - Because flash can be erased once and programmed several times, we can write the bootloader +// - vectors in now, and write in the application stuff around them later. +// - if vectors weren't written back in immidately, usb would fail. static inline void eraseApplication(void) { - // xxxxxx erase all pages starting from end of application section down to page 1 (leaving page 0) // erase all pages (every last one!) currentAddress = BOOTLOADER_ADDRESS; cli(); @@ -236,7 +244,7 @@ static uchar usbFunctionWrite(uchar *data, uchar length) { } // make sure we don't write over the bootloader! - if (currentAddress >= BOOTLOADER_ADDRESS - 6) { + if (currentAddress >= PROGMEM_SIZE) { __boot_page_fill_clear(); break; } diff --git a/firmware/main.c.lst b/firmware/main.c.lst index 88183db..3cdf41b 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//ccuASyoo.s page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 1 1 .file "main.c" @@ -16,7 +16,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 13 0000 81E0 ldi r24,lo8(1) 14 0002 8093 0000 sts didWriteSomething,r24 15 /* #APP */ - 16 ; 128 "main.c" 1 + 16 ; 129 "main.c" 1 17 0006 F894 cli 18 ; 0 "" 2 19 /* #NOAPP */ @@ -25,7 +25,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 22 0010 3297 sbiw r30,2 23 0012 85E0 ldi r24,lo8(5) 24 /* #APP */ - 25 ; 129 "main.c" 1 + 25 ; 130 "main.c" 1 26 0014 8093 5700 sts 87, r24 27 0018 E895 spm 28 @@ -36,7 +36,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 33 001c 00FC sbrc __tmp_reg__,0 34 001e 00C0 rjmp .L2 35 /* #APP */ - 36 ; 131 "main.c" 1 + 36 ; 132 "main.c" 1 37 0020 7894 sei 38 ; 0 "" 2 39 /* epilogue start */ @@ -58,7 +58,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 55 0038 87E1 ldi r24,hi8(5948) 56 003a EC33 cpi r30,lo8(5948) 57 003c F807 cpc r31,r24 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 2 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 2 58 003e 01F4 brne .L7 @@ -82,20 +82,20 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 76 0066 3BEC ldi r19,hi8(-13409) 77 .L8: 78 /* #APP */ - 79 ; 165 "main.c" 1 + 79 ; 166 "main.c" 1 80 0068 F894 cli 81 ; 0 "" 2 82 /* #NOAPP */ 83 006a 81E0 ldi r24,lo8(1) 84 /* #APP */ - 85 ; 166 "main.c" 1 + 85 ; 167 "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 ; 167 "main.c" 1 + 92 ; 168 "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//ccuASyoo.s page 101 .L5: 102 0084 81E1 ldi r24,lo8(17) 103 /* #APP */ - 104 ; 163 "main.c" 1 + 104 ; 164 "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//ccuASyoo.s page 112 .type fillFlashWithVectors, @function 113 fillFlashWithVectors: 114 008e CF93 push r28 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 3 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 3 115 0090 DF93 push r29 @@ -149,16 +149,16 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 140 /* prologue: naked */ 141 /* frame size = 0 */ 142 /* #APP */ - 143 ; 263 "main.c" 1 + 143 ; 264 "main.c" 1 144 0000 00EB ldi r16, 0xB0 145 ; 0 "" 2 - 146 ; 264 "main.c" 1 + 146 ; 265 "main.c" 1 147 0002 0F93 push r16 148 ; 0 "" 2 - 149 ; 265 "main.c" 1 + 149 ; 266 "main.c" 1 150 0004 07E0 ldi r16, 0x07 151 ; 0 "" 2 - 152 ; 266 "main.c" 1 + 152 ; 267 "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//ccuASyoo.s page 163 /* frame size = 0 */ 164 00b4 88E1 ldi r24,lo8(24) 165 /* #APP */ - 166 ; 333 "main.c" 1 + 166 ; 334 "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//ccuASyoo.s page 4 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 4 172 @@ -187,7 +187,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 175 00c0 E0E0 ldi r30,lo8(0) 176 00c2 F0E0 ldi r31,hi8(0) 177 /* #APP */ - 178 ; 284 "main.c" 1 + 178 ; 285 "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//ccuASyoo.s page 187 00ce E4E0 ldi r30,lo8(4) 188 00d0 F0E0 ldi r31,hi8(4) 189 /* #APP */ - 190 ; 285 "main.c" 1 + 190 ; 286 "main.c" 1 191 00d2 8591 lpm r24, Z+ 192 00d4 9491 lpm r25, Z 193 @@ -233,16 +233,16 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 221 00fe 01F4 brne .L18 222 0100 BB98 cbi 55-32,3 223 /* #APP */ - 224 ; 277 "main.c" 1 + 224 ; 278 "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//ccuASyoo.s page 5 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 5 229 0106 FF24 clr r15 - 230 .L74: + 230 .L72: 231 0108 1091 0000 lds r17,usbRxLen 232 010c 1350 subi r17,lo8(-(-3)) 233 010e 17FD sbrc r17,7 @@ -298,13 +298,13 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.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//ccuASyoo.s page 6 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 6 - 286 018a 00C0 rjmp .L78 + 286 018a 00C0 rjmp .L76 287 .L28: 288 018c 8460 ori r24,lo8(4) - 289 .L78: + 289 .L76: 290 018e 8093 0000 sts events,r24 291 0192 20E0 ldi r18,lo8(0) 292 0194 00C0 rjmp .L24 @@ -322,7 +322,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 304 01ac 9530 cpi r25,lo8(5) 305 01ae 01F4 brne .L31 306 01b0 8093 0000 sts usbNewDeviceAddr,r24 - 307 01b4 00C0 rjmp .L41 + 307 01b4 00C0 rjmp .L39 308 .L31: 309 01b6 9630 cpi r25,lo8(6) 310 01b8 01F4 brne .L32 @@ -331,13 +331,13 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.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 .L76 + 316 01c4 00C0 rjmp .L74 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 .L76: + 322 .L74: 323 01ce 9093 0000 sts (usbMsgPtr)+1,r25 324 01d2 8093 0000 sts usbMsgPtr,r24 325 01d6 22E1 ldi r18,lo8(18) @@ -347,553 +347,499 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 329 01dc 01F4 brne .L36 330 01de 8A81 ldd r24,Y+2 331 01e0 8823 tst r24 - 332 01e2 01F4 brne .L37 + 332 01e2 01F4 brne .L36 333 01e4 80E0 ldi r24,lo8(usbDescriptorString0) 334 01e6 90E0 ldi r25,hi8(usbDescriptorString0) 335 01e8 9093 0000 sts (usbMsgPtr)+1,r25 336 01ec 8093 0000 sts usbMsgPtr,r24 337 01f0 24E0 ldi r18,lo8(4) 338 01f2 00C0 rjmp .L34 - 339 .L37: - 340 01f4 8130 cpi r24,lo8(1) - 341 01f6 01F4 brne .L38 - 342 01f8 80E0 ldi r24,lo8(usbDescriptorStringVendor) - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 7 - - - 343 01fa 90E0 ldi r25,hi8(usbDescriptorStringVendor) - 344 01fc 9093 0000 sts (usbMsgPtr)+1,r25 - 345 0200 8093 0000 sts usbMsgPtr,r24 - 346 0204 22E2 ldi r18,lo8(34) - 347 0206 00C0 rjmp .L34 - 348 .L38: - 349 0208 8230 cpi r24,lo8(2) - 350 020a 01F4 brne .L36 - 351 020c 80E0 ldi r24,lo8(usbDescriptorStringDevice) - 352 020e 90E0 ldi r25,hi8(usbDescriptorStringDevice) - 353 0210 9093 0000 sts (usbMsgPtr)+1,r25 - 354 0214 8093 0000 sts usbMsgPtr,r24 - 355 0218 2CE0 ldi r18,lo8(12) - 356 021a 00C0 rjmp .L34 - 357 .L36: - 358 021c 20E0 ldi r18,lo8(0) - 359 .L34: - 360 021e 80E4 ldi r24,lo8(64) - 361 0220 8093 0000 sts usbMsgFlags,r24 - 362 0224 00C0 rjmp .L24 - 363 .L32: - 364 0226 9830 cpi r25,lo8(8) - 365 0228 01F4 brne .L39 - 366 022a 80E0 ldi r24,lo8(usbConfiguration) - 367 022c 90E0 ldi r25,hi8(usbConfiguration) - 368 022e 00C0 rjmp .L77 - 369 .L39: - 370 0230 9930 cpi r25,lo8(9) - 371 0232 01F4 brne .L40 - 372 0234 8093 0000 sts usbConfiguration,r24 - 373 0238 00C0 rjmp .L41 - 374 .L40: - 375 023a 9A30 cpi r25,lo8(10) - 376 023c 01F4 brne .L41 - 377 023e 80E0 ldi r24,lo8(usbTxBuf+9) - 378 0240 90E0 ldi r25,hi8(usbTxBuf+9) - 379 .L77: - 380 0242 21E0 ldi r18,lo8(1) - 381 0244 00C0 rjmp .L30 - 382 .L41: - 383 0246 80E0 ldi r24,lo8(usbTxBuf+9) - 384 0248 90E0 ldi r25,hi8(usbTxBuf+9) - 385 024a 20E0 ldi r18,lo8(0) - 386 .L30: - 387 024c 9093 0000 sts (usbMsgPtr)+1,r25 - 388 0250 8093 0000 sts usbMsgPtr,r24 - 389 0254 00C0 rjmp .L24 - 390 .L26: - 391 0256 9E81 ldd r25,Y+6 - 392 .L27: - 393 0258 80E8 ldi r24,lo8(-128) - 394 025a 8093 0000 sts usbMsgFlags,r24 - 395 025e 00C0 rjmp .L42 - 396 .L24: - 397 0260 8F81 ldd r24,Y+7 - 398 0262 8823 tst r24 - 399 0264 01F4 brne .L43 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 8 - - - 400 0266 9E81 ldd r25,Y+6 - 401 0268 9217 cp r25,r18 - 402 026a 00F0 brlo .L42 - 403 .L43: - 404 026c 922F mov r25,r18 - 405 .L42: - 406 026e 9093 0000 sts usbMsgLen,r25 - 407 0272 00C0 rjmp .L21 - 408 .L20: - 409 0274 8091 0000 lds r24,usbMsgFlags - 410 0278 87FF sbrs r24,7 - 411 027a 00C0 rjmp .L21 - 412 027c 8091 0000 lds r24,writeLength - 413 0280 811B sub r24,r17 - 414 0282 8093 0000 sts writeLength,r24 - 415 .L48: - 416 0286 8091 0000 lds r24,currentAddress - 417 028a 9091 0000 lds r25,(currentAddress)+1 - 418 028e 0097 sbiw r24,0 - 419 0290 01F4 brne .L44 - 420 0292 8881 ld r24,Y - 421 0294 9981 ldd r25,Y+1 - 422 0296 9093 0000 sts (vectorTemp)+1,r25 - 423 029a 8093 0000 sts vectorTemp,r24 - 424 029e 00C0 rjmp .L45 - 425 .L44: - 426 02a0 8430 cpi r24,4 - 427 02a2 9105 cpc r25,__zero_reg__ - 428 02a4 01F4 brne .L46 - 429 02a6 8881 ld r24,Y - 430 02a8 9981 ldd r25,Y+1 - 431 02aa 9093 0000 sts (vectorTemp+2)+1,r25 - 432 02ae 8093 0000 sts vectorTemp+2,r24 - 433 02b2 00C0 rjmp .L45 - 434 .L46: - 435 02b4 8A53 subi r24,lo8(5946) - 436 02b6 9741 sbci r25,hi8(5946) - 437 02b8 00F0 brlo .L45 - 438 02ba 81E1 ldi r24,lo8(17) - 439 /* #APP */ - 440 ; 240 "main.c" 1 - 441 02bc 8093 5700 sts 87, r24 - 442 02c0 E895 spm - 443 - 444 ; 0 "" 2 - 445 /* #NOAPP */ - 446 02c2 00C0 rjmp .L47 - 447 .L45: - 448 02c4 8881 ld r24,Y - 449 02c6 9981 ldd r25,Y+1 - 450 02c8 00D0 rcall writeWordToPageBuffer - 451 02ca 1250 subi r17,lo8(-(-2)) - 452 02cc 01F0 breq .L47 - 453 02ce 2296 adiw r28,2 - 454 02d0 00C0 rjmp .L48 - 455 .L47: - 456 02d2 8091 0000 lds r24,writeLength - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 9 - - - 457 02d6 8823 tst r24 - 458 02d8 01F4 brne .L21 - 459 02da 8091 0000 lds r24,events - 460 02de 8260 ori r24,lo8(2) - 461 02e0 8093 0000 sts events,r24 - 462 02e4 1092 0000 sts usbMsgLen,__zero_reg__ - 463 .L21: - 464 02e8 1092 0000 sts usbRxLen,__zero_reg__ - 465 .L19: - 466 02ec 8091 0000 lds r24,usbTxLen - 467 02f0 84FF sbrs r24,4 - 468 02f2 00C0 rjmp .L49 - 469 02f4 8091 0000 lds r24,usbMsgLen - 470 02f8 8F3F cpi r24,lo8(-1) - 471 02fa 01F0 breq .L49 - 472 02fc 182F mov r17,r24 - 473 02fe 8930 cpi r24,lo8(9) - 474 0300 00F0 brlo .L50 - 475 0302 18E0 ldi r17,lo8(8) - 476 .L50: - 477 0304 811B sub r24,r17 - 478 0306 8093 0000 sts usbMsgLen,r24 - 479 030a 8091 0000 lds r24,usbTxBuf - 480 030e 98E8 ldi r25,lo8(-120) - 481 0310 8927 eor r24,r25 - 482 0312 8093 0000 sts usbTxBuf,r24 - 483 0316 1123 tst r17 - 484 0318 01F0 breq .L51 - 485 031a E091 0000 lds r30,usbMsgPtr - 486 031e F091 0000 lds r31,(usbMsgPtr)+1 - 487 0322 8091 0000 lds r24,usbMsgFlags - 488 0326 86FF sbrs r24,6 - 489 0328 00C0 rjmp .L52 - 490 032a 912F mov r25,r17 - 491 032c A0E0 ldi r26,lo8(usbTxBuf+1) - 492 032e B0E0 ldi r27,hi8(usbTxBuf+1) - 493 .L53: - 494 /* #APP */ - 495 ; 504 "usbdrv/usbdrv.c" 1 - 496 0330 8491 lpm r24, Z - 497 - 498 ; 0 "" 2 - 499 /* #NOAPP */ - 500 0332 8D93 st X+,r24 - 501 0334 3196 adiw r30,1 - 502 0336 9150 subi r25,lo8(-(-1)) - 503 0338 01F4 brne .L53 - 504 033a 00C0 rjmp .L54 - 505 .L52: - 506 033c 912F mov r25,r17 - 507 033e A0E0 ldi r26,lo8(usbTxBuf+1) - 508 0340 B0E0 ldi r27,hi8(usbTxBuf+1) - 509 .L55: - 510 0342 8191 ld r24,Z+ - 511 0344 8D93 st X+,r24 - 512 0346 9150 subi r25,lo8(-(-1)) - 513 0348 01F4 brne .L55 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 10 - - - 514 .L54: - 515 034a F093 0000 sts (usbMsgPtr)+1,r31 - 516 034e E093 0000 sts usbMsgPtr,r30 - 517 .L51: - 518 0352 80E0 ldi r24,lo8(usbTxBuf+1) - 519 0354 90E0 ldi r25,hi8(usbTxBuf+1) - 520 0356 612F mov r22,r17 - 521 0358 00D0 rcall usbCrc16Append - 522 035a 612F mov r22,r17 - 523 035c 6C5F subi r22,lo8(-(4)) - 524 035e 6C30 cpi r22,lo8(12) - 525 0360 01F0 breq .L56 - 526 0362 8FEF ldi r24,lo8(-1) - 527 0364 8093 0000 sts usbMsgLen,r24 - 528 .L56: - 529 0368 6093 0000 sts usbTxLen,r22 - 530 .L49: - 531 036c 94E1 ldi r25,lo8(20) - 532 .L58: - 533 036e 86B3 in r24,54-32 - 534 0370 8871 andi r24,lo8(24) - 535 0372 01F4 brne .L57 - 536 0374 9150 subi r25,lo8(-(-1)) - 537 0376 01F4 brne .L58 - 538 0378 1092 0000 sts usbNewDeviceAddr,__zero_reg__ - 539 037c 1092 0000 sts usbDeviceAddr,__zero_reg__ - 540 .L57: - 541 0380 10E0 ldi r17,lo8(0) - 542 0382 9923 tst r25 - 543 0384 01F4 brne .L59 - 544 0386 11E0 ldi r17,lo8(1) - 545 .L59: - 546 0388 8091 0000 lds r24,wasReset.1564 - 547 038c 8117 cp r24,r17 - 548 038e 01F0 breq .L60 - 549 0390 1123 tst r17 - 550 0392 01F4 brne .L61 - 551 /* #APP */ - 552 ; 557 "usbdrv/usbdrv.c" 1 - 553 0394 F894 cli - 554 ; 0 "" 2 - 555 /* #NOAPP */ - 556 0396 00D0 rcall calibrateOscillator - 557 /* #APP */ - 558 ; 557 "usbdrv/usbdrv.c" 1 - 559 0398 7894 sei - 560 ; 0 "" 2 - 561 /* #NOAPP */ - 562 .L61: - 563 039a 1093 0000 sts wasReset.1564,r17 - 564 .L60: - 565 039e 8CE9 ldi r24,lo8(412) - 566 03a0 91E0 ldi r25,hi8(412) - 567 /* #APP */ - 568 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas - 569 03a2 0197 1: sbiw r24,1 - 570 03a4 01F4 brne 1b - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 11 - - - 571 ; 0 "" 2 - 572 /* #NOAPP */ - 573 03a6 8091 0000 lds r24,events - 574 03aa 8823 tst r24 - 575 03ac 01F0 breq .L62 - 576 03ae EE24 clr r14 - 577 03b0 FF24 clr r15 - 578 03b2 00C0 rjmp .L63 - 579 .L62: - 580 03b4 0894 sec - 581 03b6 E11C adc r14,__zero_reg__ - 582 03b8 F11C adc r15,__zero_reg__ - 583 .L63: - 584 03ba 182F mov r17,r24 - 585 03bc 80FF sbrs r24,0 - 586 03be 00C0 rjmp .L64 - 587 /* #APP */ - 588 ; 114 "main.c" 1 - 589 03c0 F894 cli - 590 ; 0 "" 2 - 591 /* #NOAPP */ - 592 03c2 E0E4 ldi r30,lo8(5952) - 593 03c4 F7E1 ldi r31,hi8(5952) - 594 .L66: - 595 03c6 E054 subi r30,lo8(-(-64)) - 596 03c8 F040 sbci r31,hi8(-(-64)) - 597 03ca 83E0 ldi r24,lo8(3) - 598 /* #APP */ - 599 ; 118 "main.c" 1 - 600 03cc 8093 5700 sts 87, r24 - 601 03d0 E895 spm - 602 - 603 ; 0 "" 2 - 604 /* #NOAPP */ - 605 .L65: - 606 03d2 07B6 in __tmp_reg__,87-32 - 607 03d4 00FC sbrc __tmp_reg__,0 - 608 03d6 00C0 rjmp .L65 - 609 03d8 3097 sbiw r30,0 - 610 03da 01F4 brne .L66 - 611 03dc 1092 0000 sts (currentAddress)+1,__zero_reg__ - 612 03e0 1092 0000 sts currentAddress,__zero_reg__ - 613 03e4 00D0 rcall fillFlashWithVectors - 614 /* #APP */ - 615 ; 123 "main.c" 1 - 616 03e6 7894 sei - 617 ; 0 "" 2 - 618 /* #NOAPP */ - 619 .L64: - 620 03e8 11FF sbrs r17,1 - 621 03ea 00C0 rjmp .L67 - 622 03ec 8AE3 ldi r24,lo8(8250) - 623 03ee 90E2 ldi r25,hi8(8250) - 624 /* #APP */ - 625 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas - 626 03f0 0197 1: sbiw r24,1 - 627 03f2 01F4 brne 1b - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 12 - - - 628 ; 0 "" 2 - 629 /* #NOAPP */ - 630 03f4 8091 0000 lds r24,currentAddress - 631 03f8 9091 0000 lds r25,(currentAddress)+1 - 632 03fc 8F73 andi r24,lo8(63) - 633 03fe 9070 andi r25,hi8(63) - 634 0400 892B or r24,r25 - 635 0402 01F0 breq .L68 - 636 0404 00D0 rcall fillFlashWithVectors - 637 0406 00C0 rjmp .L67 - 638 .L68: - 639 0408 00D0 rcall writeFlashPage - 640 .L67: - 641 040a 12FF sbrs r17,2 - 642 040c 00C0 rjmp .L69 - 643 040e 8091 0000 lds r24,didWriteSomething - 644 0412 8823 tst r24 - 645 0414 01F4 brne .L70 - 646 0416 00C0 rjmp .L71 - 647 .L72: - 648 0418 00D0 rcall fillFlashWithVectors - 649 .L70: - 650 041a 8091 0000 lds r24,currentAddress - 651 041e 9091 0000 lds r25,(currentAddress)+1 - 652 0422 8054 subi r24,lo8(5952) - 653 0424 9741 sbci r25,hi8(5952) - 654 0426 00F0 brlo .L72 + 339 .L36: + 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//ccd49vnP.s page 7 + + + 343 01f8 8093 0000 sts usbMsgFlags,r24 + 344 01fc 00C0 rjmp .L24 + 345 .L32: + 346 01fe 9830 cpi r25,lo8(8) + 347 0200 01F4 brne .L37 + 348 0202 80E0 ldi r24,lo8(usbConfiguration) + 349 0204 90E0 ldi r25,hi8(usbConfiguration) + 350 0206 00C0 rjmp .L75 + 351 .L37: + 352 0208 9930 cpi r25,lo8(9) + 353 020a 01F4 brne .L38 + 354 020c 8093 0000 sts usbConfiguration,r24 + 355 0210 00C0 rjmp .L39 + 356 .L38: + 357 0212 9A30 cpi r25,lo8(10) + 358 0214 01F4 brne .L39 + 359 0216 80E0 ldi r24,lo8(usbTxBuf+9) + 360 0218 90E0 ldi r25,hi8(usbTxBuf+9) + 361 .L75: + 362 021a 21E0 ldi r18,lo8(1) + 363 021c 00C0 rjmp .L30 + 364 .L39: + 365 021e 80E0 ldi r24,lo8(usbTxBuf+9) + 366 0220 90E0 ldi r25,hi8(usbTxBuf+9) + 367 0222 20E0 ldi r18,lo8(0) + 368 .L30: + 369 0224 9093 0000 sts (usbMsgPtr)+1,r25 + 370 0228 8093 0000 sts usbMsgPtr,r24 + 371 022c 00C0 rjmp .L24 + 372 .L26: + 373 022e 9E81 ldd r25,Y+6 + 374 .L27: + 375 0230 80E8 ldi r24,lo8(-128) + 376 0232 8093 0000 sts usbMsgFlags,r24 + 377 0236 00C0 rjmp .L40 + 378 .L24: + 379 0238 8F81 ldd r24,Y+7 + 380 023a 8823 tst r24 + 381 023c 01F4 brne .L41 + 382 023e 9E81 ldd r25,Y+6 + 383 0240 9217 cp r25,r18 + 384 0242 00F0 brlo .L40 + 385 .L41: + 386 0244 922F mov r25,r18 + 387 .L40: + 388 0246 9093 0000 sts usbMsgLen,r25 + 389 024a 00C0 rjmp .L21 + 390 .L20: + 391 024c 8091 0000 lds r24,usbMsgFlags + 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//ccd49vnP.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 8A53 subi r24,lo8(5946) + 418 028e 9741 sbci r25,hi8(5946) + 419 0290 00F0 brlo .L43 + 420 0292 81E1 ldi r24,lo8(17) + 421 /* #APP */ + 422 ; 241 "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//ccd49vnP.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//ccd49vnP.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 ; 115 "main.c" 1 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 11 + + + 571 0398 F894 cli + 572 ; 0 "" 2 + 573 /* #NOAPP */ + 574 039a E0E4 ldi r30,lo8(5952) + 575 039c F7E1 ldi r31,hi8(5952) + 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 ; 119 "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 ; 124 "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//ccd49vnP.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 8054 subi r24,lo8(5952) + 635 03fc 9741 sbci r25,hi8(5952) + 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 0428 82E2 ldi r24,lo8(-24286) - 657 042a 91EA ldi r25,hi8(-24286) - 658 /* #APP */ - 659 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas - 660 042c 0197 1: sbiw r24,1 - 661 042e 01F4 brne 1b - 662 ; 0 "" 2 - 663 /* #NOAPP */ - 664 0430 00C0 rjmp .L73 - 665 .L69: - 666 0432 1092 0000 sts events,__zero_reg__ - 667 0436 80E5 ldi r24,lo8(-15536) - 668 0438 E816 cp r14,r24 - 669 043a 83EC ldi r24,hi8(-15536) - 670 043c F806 cpc r15,r24 - 671 043e 00F4 brsh .+2 - 672 0440 00C0 rjmp .L74 - 673 .L73: - 674 /* #APP */ - 675 ; 317 "main.c" 1 - 676 0442 F894 cli - 677 ; 0 "" 2 - 678 /* #NOAPP */ - 679 0444 1BBE out 91-32,__zero_reg__ - 680 0446 15BA out 53-32,__zero_reg__ - 681 0448 1092 5F02 sts 607,__zero_reg__ - 682 044c 1092 5E02 sts 606,__zero_reg__ - 683 /* #APP */ - 684 ; 326 "main.c" 1 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 13 - - - 685 0450 00C0 rjmp __vectors - 4 - 686 ; 0 "" 2 - 687 /* epilogue start */ - 688 /* #NOAPP */ - 689 0452 0895 ret - 690 .size main, .-main - 691 .global usbTxLen - 692 .data - 693 .type usbTxLen, @object - 694 .size usbTxLen, 1 - 695 usbTxLen: - 696 0000 5A .byte 90 - 697 .global usbDescriptorString0 - 698 .section .progmem.data,"a",@progbits - 699 .type usbDescriptorString0, @object - 700 .size usbDescriptorString0, 4 - 701 usbDescriptorString0: - 702 0000 04 .byte 4 - 703 0001 03 .byte 3 - 704 0002 09 .byte 9 - 705 0003 04 .byte 4 - 706 .global usbDescriptorStringVendor - 707 .type usbDescriptorStringVendor, @object - 708 .size usbDescriptorStringVendor, 34 - 709 usbDescriptorStringVendor: - 710 0004 2203 .word 802 - 711 0006 6300 .word 99 - 712 0008 7200 .word 114 - 713 000a 6500 .word 101 - 714 000c 6100 .word 97 - 715 000e 7400 .word 116 - 716 0010 6900 .word 105 - 717 0012 7600 .word 118 - 718 0014 6500 .word 101 - 719 0016 7000 .word 112 - 720 0018 6F00 .word 111 - 721 001a 6E00 .word 110 - 722 001c 7900 .word 121 - 723 001e 2E00 .word 46 - 724 0020 6300 .word 99 - 725 0022 6F00 .word 111 - 726 0024 6D00 .word 109 - 727 .global usbDescriptorStringDevice - 728 .type usbDescriptorStringDevice, @object - 729 .size usbDescriptorStringDevice, 12 - 730 usbDescriptorStringDevice: - 731 0026 0C03 .word 780 - 732 0028 7500 .word 117 - 733 002a 4200 .word 66 - 734 002c 6F00 .word 111 - 735 002e 6F00 .word 111 - 736 0030 7400 .word 116 - 737 .global usbDescriptorDevice - 738 .type usbDescriptorDevice, @object - 739 .size usbDescriptorDevice, 18 - 740 usbDescriptorDevice: - 741 0032 12 .byte 18 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 14 - - - 742 0033 01 .byte 1 - 743 0034 10 .byte 16 - 744 0035 01 .byte 1 - 745 0036 FF .byte -1 - 746 0037 00 .byte 0 - 747 0038 00 .byte 0 - 748 0039 08 .byte 8 - 749 003a C0 .byte -64 - 750 003b 16 .byte 22 - 751 003c DC .byte -36 - 752 003d 05 .byte 5 - 753 003e 01 .byte 1 - 754 003f 01 .byte 1 - 755 0040 01 .byte 1 - 756 0041 02 .byte 2 - 757 0042 00 .byte 0 - 758 0043 01 .byte 1 - 759 .global usbDescriptorConfiguration - 760 .type usbDescriptorConfiguration, @object - 761 .size usbDescriptorConfiguration, 18 - 762 usbDescriptorConfiguration: - 763 0044 09 .byte 9 - 764 0045 02 .byte 2 - 765 0046 12 .byte 18 - 766 0047 00 .byte 0 - 767 0048 01 .byte 1 - 768 0049 01 .byte 1 - 769 004a 00 .byte 0 - 770 004b 80 .byte -128 - 771 004c 32 .byte 50 - 772 004d 09 .byte 9 - 773 004e 04 .byte 4 - 774 004f 00 .byte 0 - 775 0050 00 .byte 0 - 776 0051 00 .byte 0 - 777 0052 00 .byte 0 - 778 0053 00 .byte 0 - 779 0054 00 .byte 0 - 780 0055 00 .byte 0 - 781 .lcomm events,1 - 782 .lcomm didWriteSomething,1 - 783 .data - 784 .type usbMsgLen, @object - 785 .size usbMsgLen, 1 - 786 usbMsgLen: - 787 0001 FF .byte -1 - 788 .type replyBuffer.1675, @object - 789 .size replyBuffer.1675, 4 - 790 replyBuffer.1675: - 791 0002 17 .byte 23 - 792 0003 3A .byte 58 - 793 0004 40 .byte 64 - 794 0005 08 .byte 8 - 795 .lcomm wasReset.1564,1 - 796 .lcomm usbMsgFlags,1 - 797 .lcomm writeLength,1 - 798 .lcomm vectorTemp,4 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 15 - - - 799 .lcomm currentAddress,2 - 800 .comm usbMsgPtr,2,1 - 801 .comm usbRxToken,1,1 - 802 .comm usbConfiguration,1,1 - 803 .comm usbRxBuf,22,1 - 804 .comm usbInputBufOffset,1,1 - 805 .comm usbDeviceAddr,1,1 - 806 .comm usbNewDeviceAddr,1,1 - 807 .comm usbRxLen,1,1 - 808 .comm usbCurrentTok,1,1 - 809 .comm usbTxBuf,11,1 - 810 .global __do_copy_data - 811 .global __do_clear_bss - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 16 + 656 /* #APP */ + 657 ; 318 "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 ; 327 "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//ccd49vnP.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//ccd49vnP.s page 14 + + + 742 0002 17 .byte 23 + 743 0003 3A .byte 58 + 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//ccd49vnP.s page 15 DEFINED SYMBOLS *ABS*:00000000 main.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:2 *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:3 *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:4 *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:5 *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:6 *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:7 *ABS*:00000001 __zero_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:10 .text:00000000 writeFlashPage -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:781 .bss:00000001 didWriteSomething -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:798 .bss:00000009 currentAddress -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:44 .text:00000024 writeWordToPageBuffer -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:797 .bss:00000005 vectorTemp -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:113 .text:0000008e fillFlashWithVectors -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:139 .init3:00000000 PushMagicWord -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:161 .text:000000b4 main +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:2 *ABS*:0000003f __SREG__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:3 *ABS*:0000003e __SP_H__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:4 *ABS*:0000003d __SP_L__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:5 *ABS*:00000034 __CCP__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:6 *ABS*:00000000 __tmp_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:7 *ABS*:00000001 __zero_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:10 .text:00000000 writeFlashPage +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:732 .bss:00000001 didWriteSomething +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:749 .bss:00000009 currentAddress +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:44 .text:00000024 writeWordToPageBuffer +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:748 .bss:00000005 vectorTemp +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:113 .text:0000008e fillFlashWithVectors +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:139 .init3:00000000 PushMagicWord +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.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//ccuASyoo.s:695 .data:00000000 usbTxLen -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:795 .bss:00000003 usbMsgFlags -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:790 .data:00000002 replyBuffer.1675 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:677 .data:00000000 usbTxLen +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:746 .bss:00000003 usbMsgFlags +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:741 .data:00000002 replyBuffer.1675 *COM*:00000002 usbMsgPtr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:796 .bss:00000004 writeLength +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:747 .bss:00000004 writeLength .bss:00000000 events *COM*:00000001 usbNewDeviceAddr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:740 .progmem.data:00000032 usbDescriptorDevice -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:762 .progmem.data:00000044 usbDescriptorConfiguration -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:701 .progmem.data:00000000 usbDescriptorString0 -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:709 .progmem.data:00000004 usbDescriptorStringVendor -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:730 .progmem.data:00000026 usbDescriptorStringDevice +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:691 .progmem.data:00000004 usbDescriptorDevice +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:713 .progmem.data:00000016 usbDescriptorConfiguration +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:683 .progmem.data:00000000 usbDescriptorString0 *COM*:00000001 usbConfiguration -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:786 .data:00000001 usbMsgLen +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:737 .data:00000001 usbMsgLen *COM*:00000001 usbDeviceAddr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:782 .bss:00000002 wasReset.1564 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:733 .bss:00000002 wasReset.1562 *COM*:00000001 usbCurrentTok UNDEFINED SYMBOLS diff --git a/firmware/main.hex b/firmware/main.hex index 2ee2244..ccefa38 100644 --- a/firmware/main.hex +++ b/firmware/main.hex @@ -1,141 +1,136 @@ -:1017400039C057C083C055C054C053C052C051C0E7 -:1017500050C04FC04EC04DC04CC04BC04AC0040327 -:1017600009042203630072006500610074006900CF -:101770007600650070006F006E0079002E00630037 -:101780006F006D000C03750042006F006F00740065 -:1017900012011001FF000008C016DC050101010262 -:1017A000000109021200010100803209040000005A -:1017B0000000000011241FBECFE5D2E0DEBFCDBF88 -:1017C00000EB0F9307E00F9310E0A0E6B0E0ECED24 -:1017D000FFE102C005900D92A636B107D9F710E0DF -:1017E000A6E6B0E001C01D92AB39B107E1F7E6D142 -:1017F000F3C3A6CFA82FB92F80E090E041E050EAD4 -:10180000609530E009C02D9182279795879510F05B -:1018100084279527305EC8F36F5FA8F30895EADF49 -:101820008D939D930895A6E088279927AA9569F03E -:101830000197E1F3B399FCCFB39BFECF81E09927E9 -:10184000A6B3019611F0A871D9F70895CF93CFB739 -:10185000CF93C0915F02C03B21F4C0915E02C730BC -:1018600021F0CF91CFBFCF916ACFCC27C395B39B47 -:10187000E9F7B39B0BC0B39B09C0B39B07C0B39BF5 -:1018800005C0B39B03C0B39B01C0D3C00F92DF93CD -:10189000C0917E00DD27CB57DF4F012EB39B03C0E5 -:1018A000DF910F90E6CF2F930F931F934F932FEF5E -:1018B0004F6F06B303FB20F95F933F9350E03BE08B -:1018C00065C016B30126502953FDC89556B30127AC -:1018D00003FB25F92F7306B3B1F05027102713FB34 -:1018E00026F906B22230F0F000C016B3012703FB40 -:1018F00027F90126502906B22430E8F54F772068F1 -:1019000016B30000F6CF50274F7D206206B2102F8D -:10191000000000C006B300265029102713FB26F94B -:1019200006B2E2CF4F7B06B3206400C0DACF0126B7 -:101930005029187106B269F14E7F2160012F16B34C -:1019400028C0002650294D7F06B22260102F29C0E2 -:10195000012650294B7F06B22460012F2DC016B3FB -:1019600001265029477F2860000006B22EC04F7E16 -:1019700006B3206130C0422706B3499300265029A0 -:10198000102706B24FEF13FB20F9297F16B379F227 -:10199000187159F10126502906B2012703FB21F9DC -:1019A000237F06B371F2002650293150D0F006B2E1 -:1019B000102713FB22F9277E16B351F20126502976 -:1019C000012703FB06B223F92F7C49F2000006B37E -:1019D000102713FB24F90026502906B22F7939F27B -:1019E00070CF10E21ABF002717C03B503195C31BC0 -:1019F000D04010E21ABF0881033CF9F00B34E9F043 -:101A000020917C001981110F1213EDCF093651F18D -:101A10000D3211F0013E39F7009383003F915F9141 -:101A20004F911F910F912F91DF910F90CAB7C5FD74 -:101A30001DCFCF91CFBFCF91189520918300222346 -:101A400069F310918100112321F5343022F1309394 -:101A5000810020937D0010917E003BE0311B30938C -:101A60007E0019C00091810001309CF40AE530919C -:101A7000600034FD11C000936000C1E7D0E010C0E9 -:101A8000052710E000C021C0052710E0C89508BB5D -:101A900014C03AE501C032ED032EC0E0D0E032E0E0 -:101AA00017B31861C39A08B317BB58E120E84FEF8A -:101AB00020FF052708BB279517951C3F28F7000036 -:101AC0004552B0F720FF0527279508BB17951C3F07 -:101AD000B8F629913A9561F7077E10918200110FAF -:101AE00008BBC250D04011F010937C0010E21ABF26 -:101AF000086017B3177E402F477E54E05A95F1F7E0 -:101B000008BB17BB48BB8ACF81E080936700F8947D -:101B1000E0916F00F0917000329785E0809357005C -:101B2000E89507B600FCFDCF789408959C01E091FC -:101B30006F00F0917000309749F1E430F105B1F099 -:101B400087E1EC33F80739F420916B0030916C0099 -:101B50002E593B4F0DC087E1EE33F80749F4209131 -:101B60006D0030916E002D593B4F02C02FE93BECC8 -:101B7000F89481E0090180935700E8951124789446 -:101B80003296F0937000E0936F00089581E18093A6 -:101B90005700E895EBCFCF93DF93C0916F00D091C2 -:101BA0007000CF73D0708FEF9FEFC0DF2296C034EC -:101BB000D105CCF3A9DFDF91CF91089588E10FB66D -:101BC000F89481BD11BC0FBEE0E0F0E085919491E6 -:101BD0008F599B4C39F4E4E0F0E0859194918F5952 -:101BE0009B4C09F0D8DF1092700010926F00AC9AF5 -:101BF0008BB780628BBFBB9A88E893E1ECE9F1E098 -:101C00003197F1F70197D1F7BB987894EE24FF2430 -:101C100010918100135017FDEDC080917E00CCE043 -:101C2000D0E0C81BD109CB57DF4F80917D008D32AA -:101C300009F0A4C0183009F0DBC083EC8093710078 -:101C40008AE580936000109269002881822F807657 -:101C50009981882321F1992341F482E690E09093C1 -:101C6000800080937F0024E07FC0913069F48A81F6 -:101C700080936A008C819D819093700080936F00A7 -:101C800027FD6DC09FEF6CC080916600923011F40B -:101C9000816001C084608093660020E065C08A8115 -:101CA00010927A00992331F410927B008AE790E039 -:101CB00022E050C0953019F48093820048C09630DD -:101CC000B1F58B81813019F480E997E104C082304D -:101CD00041F482EA97E19093800080937F0022E1B3 -:101CE00022C08330F9F48A81882341F48EE597E19C -:101CF0009093800080937F0024E015C0813041F4F0 -:101D000082E697E19093800080937F0022E20BC0EF -:101D1000823041F484E897E19093800080937F00C3 -:101D20002CE001C020E080E4809369001DC0983061 -:101D300019F484E890E009C0993019F48093840084 -:101D400006C09A3021F48AE790E021E003C08AE7D8 -:101D500090E020E09093800080937F0005C09E81FA -:101D600080E88093690007C08F81882319F49E81E1 -:101D7000921708F0922F909361003AC08091690009 -:101D800087FF36C080916A00811B80936A00809132 -:101D90006F0090917000009739F488819981909339 -:101DA0006C0080936B0012C08430910539F48881F7 -:101DB000998190936E0080936D0008C08A5397417B -:101DC00028F081E180935700E89507C088819981C8 -:101DD000ADDE125011F02296DACF80916A0088238E -:101DE00039F48091660082608093660010926100F1 -:101DF000109281008091600084FF3CC0809161005E -:101E00008F3FC1F1182F893008F018E0811B8093B3 -:101E100061008091710098E88927809371001123F7 -:101E2000E1F0E0917F00F09180008091690086FFF1 -:101E300009C0912FA2E7B0E084918D933196915023 -:101E4000D9F707C0912FA2E7B0E081918D9391500F -:101E5000E1F7F0938000E0937F0082E790E0612F4C -:101E6000DEDC612F6C5F6C3019F08FEF80936100C6 -:101E70006093600094E186B3887131F49150D9F792 -:101E80001092820010927C0010E0992309F411E076 -:101E900080916800811739F0112319F4F8945DD00E -:101EA0007894109368008CE991E00197F1F78091A4 -:101EB0006600882319F0EE24FF2403C00894E11C77 -:101EC000F11C182F80FF14C0F894E0E4F7E1E0540F -:101ED000F04083E080935700E89507B600FCFDCF03 -:101EE0003097A9F71092700010926F0054DE78942A -:101EF00011FF0FC08AE390E20197F1F780916F0024 -:101F0000909170008F739070892B11F044DE01C0A6 -:101F1000FBDD12FF12C080916700882311F408C016 -:101F20003ADE80916F009091700080549741C0F329 -:101F300082E291EA0197F1F708C01092660080E50D -:101F4000E81683ECF80608F463CEF8941BBE15BAC5 -:101F500010925F0210925E02F1CBFF920F931F93DB -:101F6000CF93DF9380E8F82E00E0C0E0D0E0102FA0 -:101F70001F0D11BF58DC29E0843392070CF0102F9D -:101F8000F6942196C830D10511F0012FF0CF1150F1 -:101F900011BF1F5F012FEC0110C045DC8453994035 -:101FA00097FF03C0909581959F4F8C179D0714F460 -:101FB00001B7EC0181B78F5F81BF21B730E0812F7E -:101FC00090E001968217930744F701BFDF91CF910C -:0C1FD0001F910F91FF900895F894FFCF2F -:061FDC005AFF173A40080D +:1017400022C040C06CC03EC03DC03CC03BC03AC09F +:1017500039C038C037C036C035C034C033C00403C8 +:10176000090412011001FF000008D01653070201FE +:10177000000000010902120001010080320904008A +:1017800000000000000011241FBECFE5D2E0DEBF44 +:10179000CDBF00EB0F9307E00F9310E0A0E6B0E0A1 +:1017A000E6E8FFE102C005900D92A636B107D9F731 +:1017B00010E0A6E6B0E001C01D92AB39B107E1F739 +:1017C000E6D1DFC3BDCFA82FB92F80E090E041E084 +:1017D00050EA609530E009C02D9182279795879552 +:1017E00010F084279527305EC8F36F5FA8F3089543 +:1017F000EADF8D939D930895A6E088279927AA95FF +:1018000069F00197E1F3B399FCCFB39BFECF81E080 +:101810009927A6B3019611F0A871D9F70895CF932F +:10182000CFB7CF93C0915F02C03B21F4C0915E025D +:10183000C73021F0CF91CFBFCF9181CFCC27C395B7 +:10184000B39BE9F7B39B0BC0B39B09C0B39B07C025 +:10185000B39B05C0B39B03C0B39B01C0D3C00F9221 +:10186000DF93C0917E00DD27CB57DF4F012EB39B66 +:1018700003C0DF910F90E6CF2F930F931F934F93E9 +:101880002FEF4F6F06B303FB20F95F933F9350E0B8 +:101890003BE065C016B30126502953FDC89556B3E9 +:1018A000012703FB25F92F7306B3B1F0502710274A +:1018B00013FB26F906B22230F0F000C016B3012760 +:1018C00003FB27F90126502906B22430E8F54F77AB +:1018D000206816B30000F6CF50274F7D206206B275 +:1018E000102F000000C006B300265029102713FB5C +:1018F00026F906B2E2CF4F7B06B3206400C0DACFF0 +:1019000001265029187106B269F14E7F2160012F1E +:1019100016B328C0002650294D7F06B22260102F32 +:1019200029C0012650294B7F06B22460012F2DC00B +:1019300016B301265029477F2860000006B22EC04A +:101940004F7E06B3206130C0422706B3499300267C +:101950005029102706B24FEF13FB20F9297F16B349 +:1019600079F2187159F10126502906B2012703FBBB +:1019700021F9237F06B371F2002650293150D0F0AF +:1019800006B2102713FB22F9277E16B351F2012667 +:101990005029012703FB06B223F92F7C49F20000EE +:1019A00006B3102713FB24F90026502906B22F791D +:1019B00039F270CF10E21ABF002717C03B503195A3 +:1019C000C31BD04010E21ABF0881033CF9F00B346E +:1019D000E9F020917C001981110F1213EDCF093627 +:1019E00051F10D3211F0013E39F7009383003F9120 +:1019F0005F914F911F910F912F91DF910F90CAB777 +:101A0000C5FD1DCFCF91CFBFCF91189520918300F9 +:101A1000222369F310918100112321F5343022F142 +:101A20003093810020937D0010917E003BE0311BBC +:101A300030937E0019C00091810001309CF40AE5CA +:101A40003091600034FD11C000936000C1E7D0E028 +:101A500010C0052710E000C021C0052710E0C89580 +:101A600008BB14C03AE501C032ED032EC0E0D0E05F +:101A700032E017B31861C39A08B317BB58E120E8E6 +:101A80004FEF20FF052708BB279517951C3F28F728 +:101A900000004552B0F720FF0527279508BB179592 +:101AA0001C3FB8F629913A9561F7077E10918200A4 +:101AB000110F08BBC250D04011F010937C0010E20F +:101AC0001ABF086017B3177E402F477E54E05A951F +:101AD000F1F708BB17BB48BB8ACF81E08093670052 +:101AE000F894E0916F00F0917000329785E0809358 +:101AF0005700E89507B600FCFDCF789408959C0147 +:101B0000E0916F00F0917000309749F1E430F105F9 +:101B1000B1F087E1EC33F80739F420916B00309194 +:101B20006C002E593B4F0DC087E1EE33F80749F4A6 +:101B300020916D0030916E002D593B4F02C02FE96E +:101B40003BECF89481E0090180935700E89511245B +:101B500078943296F0937000E0936F00089581E1DD +:101B600080935700E895EBCFCF93DF93C0916F0040 +:101B7000D0917000CF73D0708FEF9FEFC0DF2296AF +:101B8000C034D105CCF3A9DFDF91CF91089588E16E +:101B90000FB6F89481BD11BC0FBEE0E0F0E0859176 +:101BA00094918F599B4C39F4E4E0F0E08591949145 +:101BB0008F599B4C09F0D8DF1092700010926F0083 +:101BC000AC9A8BB780628BBFBB9A88E893E1ECE953 +:101BD000F1E03197F1F70197D1F7BB987894EE24B3 +:101BE000FF2410918100135017FDD9C080917E0011 +:101BF000CCE0D0E0C81BD109CB57DF4F80917D00EE +:101C00008D3209F090C0183009F0C7C083EC809382 +:101C100071008AE580936000109269002881822F0C +:101C200080769981882321F1992341F482E690E01E +:101C30009093800080937F0024E06BC0913069F422 +:101C40008A8180936A008C819D819093700080933B +:101C50006F0027FD59C09FEF58C0809166009230F9 +:101C600011F4816001C084608093660020E051C05F +:101C70008A8110927A00992331F410927B008AE7CE +:101C800090E022E03CC0953019F48093820034C08B +:101C9000963011F58B81813019F482E697E104C00A +:101CA000823041F484E797E19093800080937F0035 +:101CB00022E10EC0833059F48A81882341F48EE5F5 +:101CC00097E19093800080937F0024E001C020E0A2 +:101CD00080E4809369001DC0983019F484E890E096 +:101CE00009C0993019F48093840006C09A3021F419 +:101CF0008AE790E021E003C08AE790E020E090933B +:101D0000800080937F0005C09E8180E880936900F9 +:101D100007C08F81882319F49E81921708F0922FB3 +:101D2000909361003AC08091690087FF36C080912E +:101D30006A00811B80936A0080916F00909170000F +:101D4000009739F48881998190936C0080936B009F +:101D500012C08430910539F48881998190936E0086 +:101D600080936D0008C08A53974128F081E18093E9 +:101D70005700E89507C088819981C1DE125011F0A3 +:101D80002296DACF80916A00882339F48091660028 +:101D900082608093660010926100109281008091B1 +:101DA000600084FF3CC0809161008F3FC1F1182F1B +:101DB000893008F018E0811B8093610080917100E8 +:101DC00098E88927809371001123E1F0E0917F006A +:101DD000F09180008091690086FF09C0912FA2E7F1 +:101DE000B0E084918D9331969150D9F707C0912F2F +:101DF000A2E7B0E081918D939150E1F7F0938000DC +:101E0000E0937F0082E790E0612FF2DC612F6C5F4E +:101E10006C3019F08FEF809361006093600094E163 +:101E200086B3887131F49150D9F7109282001092E4 +:101E30007C0010E0992309F411E08091680081177B +:101E400039F0112319F4F8945DD078941093680058 +:101E50008CE991E00197F1F780916600882319F0F1 +:101E6000EE24FF2403C00894E11CF11C182F80FF0E +:101E700014C0F894E0E4F7E1E054F04083E080938C +:101E80005700E89507B600FCFDCF3097A9F71092F0 +:101E9000700010926F0068DE789411FF0FC08AE323 +:101EA00090E20197F1F780916F00909170008F732D +:101EB0009070892B11F058DE01C00FDE12FF12C0A6 +:101EC00080916700882311F408C04EDE80916F0076 +:101ED0009091700080549741C0F382E291EA01979B +:101EE000F1F708C01092660080E5E81683ECF8066A +:101EF00008F477CEF8941BBE15BA10925F021092C8 +:101F00005E021CCCFF920F931F93CF93DF9380E868 +:101F1000F82E00E0C0E0D0E0102F1F0D11BF6CDCE8 +:101F200029E0843392070CF0102FF6942196C830E4 +:101F3000D10511F0012FF0CF115011BF1F5F012FFC +:101F4000EC0110C059DC8453994097FF03C0909571 +:101F500081959F4F8C179D0714F401B7EC0181B751 +:101F60008F5F81BF21B730E0812F90E0019682170B +:101F7000930744F701BFDF91CF911F910F91FF901D +:061F80000895F894FFCF64 +:061F86005AFF173A400863 :0400000300001740A2 :00000001FF diff --git a/firmware/main.map b/firmware/main.map index 5c381d2..59b6163 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 0x00001740 0x89c +.text 0x00001740 0x846 *(.vectors) .vectors 0x00001740 0x1e /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o 0x00001740 __vectors @@ -166,48 +166,46 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a *(.vectors) *(.progmem.gcc*) *(.progmem*) - .progmem.data 0x0000175e 0x56 main.o - 0x00001790 usbDescriptorDevice + .progmem.data 0x0000175e 0x28 main.o + 0x00001762 usbDescriptorDevice 0x0000175e usbDescriptorString0 - 0x000017a2 usbDescriptorConfiguration - 0x00001762 usbDescriptorStringVendor - 0x00001784 usbDescriptorStringDevice - 0x000017b4 . = ALIGN (0x2) - 0x000017b4 __trampolines_start = . + 0x00001774 usbDescriptorConfiguration + 0x00001786 . = ALIGN (0x2) + 0x00001786 __trampolines_start = . *(.trampolines) - .trampolines 0x000017b4 0x0 linker stubs + .trampolines 0x00001786 0x0 linker stubs *(.trampolines*) - 0x000017b4 __trampolines_end = . + 0x00001786 __trampolines_end = . *(.jumptables) *(.jumptables*) *(.lowtext) *(.lowtext*) - 0x000017b4 __ctors_start = . + 0x00001786 __ctors_start = . *(.ctors) - 0x000017b4 __ctors_end = . - 0x000017b4 __dtors_start = . + 0x00001786 __ctors_end = . + 0x00001786 __dtors_start = . *(.dtors) - 0x000017b4 __dtors_end = . + 0x00001786 __dtors_end = . SORT(*)(.ctors) SORT(*)(.dtors) *(.init0) - .init0 0x000017b4 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o - 0x000017b4 __init + .init0 0x00001786 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o + 0x00001786 __init *(.init0) *(.init1) *(.init1) *(.init2) - .init2 0x000017b4 0xc /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o + .init2 0x00001786 0xc /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o *(.init2) *(.init3) - .init3 0x000017c0 0x8 main.o - 0x000017c0 PushMagicWord + .init3 0x00001792 0x8 main.o + 0x00001792 PushMagicWord *(.init3) *(.init4) - .init4 0x000017c8 0x16 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_copy_data.o) - 0x000017c8 __do_copy_data - .init4 0x000017de 0x10 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_clear_bss.o) - 0x000017de __do_clear_bss + .init4 0x0000179a 0x16 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_copy_data.o) + 0x0000179a __do_copy_data + .init4 0x000017b0 0x10 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_clear_bss.o) + 0x000017b0 __do_clear_bss *(.init4) *(.init5) *(.init5) @@ -218,40 +216,40 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a *(.init8) *(.init8) *(.init9) - .init9 0x000017ee 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o + .init9 0x000017c0 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o *(.init9) *(.text) - .text 0x000017f2 0x2 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o - 0x000017f2 __vector_1 - 0x000017f2 __vector_12 - 0x000017f2 __bad_interrupt - 0x000017f2 __vector_6 - 0x000017f2 __vector_3 - 0x000017f2 __vector_11 - 0x000017f2 __vector_13 - 0x000017f2 __vector_7 - 0x000017f2 __vector_5 - 0x000017f2 __vector_4 - 0x000017f2 __vector_9 - 0x000017f2 __vector_8 - 0x000017f2 __vector_14 - 0x000017f2 __vector_10 - .text 0x000017f4 0x314 usbdrv/usbdrvasm.o - 0x000017f4 usbCrc16 - 0x0000181e usbCrc16Append - 0x0000184c __vector_2 - 0x00001826 usbMeasureFrameLength - .text 0x00001b08 0x452 main.o - 0x00001bbc main - .text 0x00001f5a 0x7e libs-device/osccal.o - 0x00001f5a calibrateOscillator - 0x00001fd8 . = ALIGN (0x2) + .text 0x000017c4 0x2 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o + 0x000017c4 __vector_1 + 0x000017c4 __vector_12 + 0x000017c4 __bad_interrupt + 0x000017c4 __vector_6 + 0x000017c4 __vector_3 + 0x000017c4 __vector_11 + 0x000017c4 __vector_13 + 0x000017c4 __vector_7 + 0x000017c4 __vector_5 + 0x000017c4 __vector_4 + 0x000017c4 __vector_9 + 0x000017c4 __vector_8 + 0x000017c4 __vector_14 + 0x000017c4 __vector_10 + .text 0x000017c6 0x314 usbdrv/usbdrvasm.o + 0x000017c6 usbCrc16 + 0x000017f0 usbCrc16Append + 0x0000181e __vector_2 + 0x000017f8 usbMeasureFrameLength + .text 0x00001ada 0x42a main.o + 0x00001b8e main + .text 0x00001f04 0x7e libs-device/osccal.o + 0x00001f04 calibrateOscillator + 0x00001f82 . = ALIGN (0x2) *(.text.*) - 0x00001fd8 . = ALIGN (0x2) + 0x00001f82 . = ALIGN (0x2) *(.fini9) - .fini9 0x00001fd8 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o) - 0x00001fd8 exit - 0x00001fd8 _exit + .fini9 0x00001f82 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o) + 0x00001f82 exit + 0x00001f82 _exit *(.fini9) *(.fini8) *(.fini8) @@ -270,11 +268,11 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00001fd8 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o) + .fini0 0x00001f82 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o) *(.fini0) - 0x00001fdc _etext = . + 0x00001f86 _etext = . -.data 0x00800060 0x6 load address 0x00001fdc +.data 0x00800060 0x6 load address 0x00001f86 0x00800060 PROVIDE (__data_start, .) *(.data) .data 0x00800060 0x6 main.o @@ -305,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, .) - 0x00001fdc __data_load_start = LOADADDR (.data) - 0x00001fe2 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00001f86 __data_load_start = LOADADDR (.data) + 0x00001f8c __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 ccbea1a..d83c0c8 100644 Binary files a/firmware/main.o and b/firmware/main.o differ diff --git a/firmware/nyan-cat-dump.bin b/firmware/nyan-cat-dump.bin deleted file mode 100644 index 123a7c6..0000000 Binary files a/firmware/nyan-cat-dump.bin and /dev/null differ diff --git a/firmware/temp-dump.bin b/firmware/temp-dump.bin deleted file mode 100644 index a5bdf24..0000000 Binary files a/firmware/temp-dump.bin and /dev/null differ diff --git a/firmware/upload.rb b/firmware/upload.rb index 8561867..abfd15e 100644 --- a/firmware/upload.rb +++ b/firmware/upload.rb @@ -13,7 +13,7 @@ class MicroBoot def self.all usb = LIBUSB::Context.new usb.devices.select { |device| - device.product == 'uBoot' + device.idVendor == 0x16d0 && device.idProduct == 0x0753 #&& device.product == "\xB5B" }.map { |device| self.new(device) } diff --git a/firmware/usbconfig.h b/firmware/usbconfig.h index bca0ec0..f093a28 100644 --- a/firmware/usbconfig.h +++ b/firmware/usbconfig.h @@ -177,12 +177,12 @@ /* -------------------------- Device Description --------------------------- */ -#define USB_CFG_VENDOR_ID 0xc0, 0x16 /* = 0x16c0 = 5824 = voti.nl */ +#define USB_CFG_VENDOR_ID 0xD0, 0x16 /* = 0x16d0 */ /* USB vendor ID for the device, low byte first. If you have registered your * own Vendor ID, define it here. Otherwise you may use one of obdev's free * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules! */ -#define USB_CFG_DEVICE_ID 0xdc, 0x05 /* = 0x05dc = 1500 */ +#define USB_CFG_DEVICE_ID 0x53, 0x07 /* = 0x0753 = Digistump */ /* This is the ID of the product, low byte first. It is interpreted in the * scope of the vendor ID. If you have registered your own VID with usb.org * or if you have licensed a PID from somebody else, define it here. Otherwise @@ -195,8 +195,8 @@ // electric arrow - not compliant with obdev's rules but we'll have our own vid-pid soon //#define USB_CFG_VENDOR_NAME 0x2301 //#define USB_CFG_VENDOR_NAME_LEN 1 -#define USB_CFG_VENDOR_NAME 'c','r','e','a','t','i','v','e','p','o','n','y','.','c','o','m' -#define USB_CFG_VENDOR_NAME_LEN 16 +//#define USB_CFG_VENDOR_NAME 'd','i','g','i','s','t','u','m','p','.','c','o','m' +//#define USB_CFG_VENDOR_NAME_LEN 13 /* These two values define the vendor name returned by the USB device. The name * must be given as a list of characters under single quotes. The characters * are interpreted as Unicode (UTF-16) entities. @@ -205,8 +205,8 @@ * obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for * details. */ -#define USB_CFG_DEVICE_NAME 'u','B','o','o','t' -#define USB_CFG_DEVICE_NAME_LEN 5 +//#define USB_CFG_DEVICE_NAME 0x00B5,'B' +//#define USB_CFG_DEVICE_NAME_LEN 2 /* Same as above for the device name. If you don't want a device name, undefine * the macros. See the file USB-IDs-for-free.txt before you assign a name if * you use a shared VID/PID. @@ -222,6 +222,8 @@ */ #define USB_CFG_DEVICE_CLASS 0xff /* set to 0 if deferred to interface */ #define USB_CFG_DEVICE_SUBCLASS 0 +//#define USB_CFG_DEVICE_CLASS 0xFE /* application specific */ +//#define USB_CFG_DEVICE_SUBCLASS 0x01 /* device firmware upgrade */ /* See USB specification if you want to conform to an existing device class. * Class 0xff is "vendor specific". */ diff --git a/firmware/usbdrv/oddebug.c.lst b/firmware/usbdrv/oddebug.c.lst index aeee3b7..ba3d513 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//ccMxu41o.s page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s page 1 1 .file "oddebug.c" @@ -8,16 +8,16 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxu41o.s page 5 __CCP__ = 0x34 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxu41o.s page 2 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s page 2 DEFINED SYMBOLS *ABS*:00000000 oddebug.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxu41o.s:2 *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxu41o.s:3 *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxu41o.s:4 *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxu41o.s:5 *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxu41o.s:6 *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxu41o.s:7 *ABS*:00000001 __zero_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s:2 *ABS*:0000003f __SREG__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s:3 *ABS*:0000003e __SP_H__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s:4 *ABS*:0000003d __SP_L__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s:5 *ABS*:00000034 __CCP__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s:6 *ABS*:00000000 __tmp_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s:7 *ABS*:00000001 __zero_reg__ NO UNDEFINED SYMBOLS -- cgit v1.2.3