From 2b80821ecbada3d3729d7e29080ee9b0e654e558 Mon Sep 17 00:00:00 2001 From: Jenna Fox Date: Tue, 25 Sep 2012 00:36:15 +1000 Subject: Crammed bootloader up against the edge while keeping it aligned to a page (I hope!) --- firmware/Makefile | 4 +- firmware/boot-at-addr-0.bin | Bin 0 -> 2158 bytes firmware/bootloaderconfig.h | 8 +- firmware/libs-device/osccal.c.lst | 20 +- firmware/main.bin | Bin 8924 -> 8928 bytes firmware/main.c | 60 +++-- firmware/main.c.lst | 483 +++++++++++++++++++------------------- firmware/main.hex | 280 +++++++++++----------- firmware/main.map | 126 +++++----- firmware/main.o | Bin 5712 -> 5728 bytes firmware/temp-dump.bin | Bin 8188 -> 8162 bytes firmware/usbdrv/oddebug.c.lst | 16 +- 12 files changed, 507 insertions(+), 490 deletions(-) create mode 100644 firmware/boot-at-addr-0.bin diff --git a/firmware/Makefile b/firmware/Makefile index 6596147..0e38760 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -19,8 +19,8 @@ F_CPU = 16500000 DEVICE = attiny85 # BOOTLOADER_ADDRESS is 1800 for 8k devices, 3800 for 16k and 7800 for 32k. # Can be on the start of any flash page for ATtiny85, but must be set low enough so there is space for the full boot loader -# BOOTLOADER_ADDRESS is in units of 8 bytes seems like -BOOTLOADER_ADDRESS = 1700 +# BOOTLOADER_ADDRESS is in units of 4 bytes seems like +BOOTLOADER_ADDRESS = 1740 FUSEOPT = $(FUSEOPT_t85) LOCKOPT = -U lock:w:0x2f:m diff --git a/firmware/boot-at-addr-0.bin b/firmware/boot-at-addr-0.bin new file mode 100644 index 0000000..3db2a10 Binary files /dev/null and b/firmware/boot-at-addr-0.bin differ diff --git a/firmware/bootloaderconfig.h b/firmware/bootloaderconfig.h index 3b9863d..772c01b 100644 --- a/firmware/bootloaderconfig.h +++ b/firmware/bootloaderconfig.h @@ -203,7 +203,10 @@ these macros are defined, the boot loader uses them. /* max 6200ms to not overflow idlePolls variable */ #define AUTO_EXIT_MS 5000 -#define AUTO_EXIT_CONDITION() (idlePolls > (AUTO_EXIT_MS * 10UL)) +//#define AUTO_EXIT_CONDITION() (idlePolls > (AUTO_EXIT_MS * 10UL)) + + +#define bootLoaderCondition() (idlePolls < (AUTO_EXIT_MS * 10UL)) /* ----------------------- Optional MCU Description ------------------------ */ @@ -242,9 +245,6 @@ static inline void bootLoaderExit(void) #endif } - -#define bootLoaderCondition() 1 - #endif /* __ASSEMBLER__ */ /* ------------------------------------------------------------------------- */ diff --git a/firmware/libs-device/osccal.c.lst b/firmware/libs-device/osccal.c.lst index a440be8..47df64a 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//ccmQUWbf.s page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgvKHMl.s page 1 1 .file "osccal.c" @@ -58,7 +58,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmQUWbf.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//ccmQUWbf.s page 2 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgvKHMl.s page 2 58 .L6: @@ -89,18 +89,18 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmQUWbf.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//ccmQUWbf.s page 3 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgvKHMl.s page 3 DEFINED SYMBOLS *ABS*:00000000 osccal.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmQUWbf.s:2 *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmQUWbf.s:3 *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmQUWbf.s:4 *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmQUWbf.s:5 *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmQUWbf.s:6 *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmQUWbf.s:7 *ABS*:00000001 __zero_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmQUWbf.s:11 .text:00000000 calibrateOscillator +/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 UNDEFINED SYMBOLS usbMeasureFrameLength diff --git a/firmware/main.bin b/firmware/main.bin index 358b061..ead2242 100755 Binary files a/firmware/main.bin and b/firmware/main.bin differ diff --git a/firmware/main.c b/firmware/main.c index 34628c6..a2ed8b3 100644 --- a/firmware/main.c +++ b/firmware/main.c @@ -25,9 +25,9 @@ static void leaveBootloader() __attribute__((__noreturn__)); #include "bootloaderconfig.h" #include "usbdrv/usbdrv.c" -// how many milliseconds should host wait till it sends another write? -// this needs to be above 9, 12 is too low to be reliable, 15 seems to work reliably, 20 seems safe -#define UBOOT_WRITE_SLEEP 20 +// 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 /* ------------------------------------------------------------------------ */ @@ -73,7 +73,7 @@ static void leaveBootloader() __attribute__((__noreturn__)); static uchar events = 0; // bitmap of events to run #define EVENT_ERASE_APPLICATION 1 #define EVENT_WRITE_PAGE 2 -#define EVENT_EXIT_BOOTLOADER 4 +#define EVENT_FINISH 4 #define fireEvent(event) events |= (event) #define isEvent(event) (events & (event)) @@ -201,19 +201,20 @@ static uchar usbFunctionSetup(uchar data[8]) { if (rq->bRequest == 0) { // get device info usbMsgPtr = replyBuffer; return 4; - + } else if (rq->bRequest == 1) { // write page writeLength = rq->wValue.word; currentAddress = rq->wIndex.word; - return USB_NO_MSG; // magical? IDK - USBaspLoader-tiny85 returns this and it works so whatever. + return USB_NO_MSG; // hands off work to usbFunctionWrite + } else if (rq->bRequest == 2) { // erase application fireEvent(EVENT_ERASE_APPLICATION); } else { // exit bootloader -#if BOOTLOADER_CAN_EXIT - fireEvent(EVENT_EXIT_BOOTLOADER); -#endif +# if BOOTLOADER_CAN_EXIT + fireEvent(EVENT_FINISH); +# endif } return 0; @@ -291,7 +292,7 @@ static inline void tiny85FlashInit(void) { } static inline void tiny85FlashWrites(void) { - _delay_ms(2); // TODO: why is this here? - it just adds pointless two level deep loops seems like? + _delay_us(2000); // TODO: why is this here? - it just adds pointless two level deep loops seems like? // write page to flash, interrupts will be disabled for > 4.5ms including erase if (currentAddress % SPM_PAGESIZE) { @@ -301,19 +302,21 @@ static inline void tiny85FlashWrites(void) { } } -static inline __attribute__((noreturn)) void leaveBootloader(void) { - //DBG1(0x01, 0, 0); - bootLoaderExit(); - cli(); - USB_INTR_ENABLE = 0; - USB_INTR_CFG = 0; /* also reset config bits */ - +static inline void tiny85FinishWriting(void) { // make sure remainder of flash is erased and write checksum and application reset vectors if (didWriteSomething) { while (currentAddress < BOOTLOADER_ADDRESS) { fillFlashWithVectors(); } } +} + +static inline __attribute__((noreturn)) void leaveBootloader(void) { + //DBG1(0x01, 0, 0); + bootLoaderExit(); + cli(); + USB_INTR_ENABLE = 0; + USB_INTR_CFG = 0; /* also reset config bits */ // clear magic word from bottom of stack before jumping to the app *(uint8_t*)(RAMEND) = 0x00; @@ -346,19 +349,28 @@ int __attribute__((noreturn)) main(void) { // needs to wait > 9ms before next usb request if (isEvent(EVENT_ERASE_APPLICATION)) eraseApplication(); if (isEvent(EVENT_WRITE_PAGE)) tiny85FlashWrites(); - -# if BOOTLOADER_CAN_EXIT - // exit if requested by the programming app, or if we timeout waiting for the pc with a valid app - if (isEvent(EVENT_EXIT_BOOTLOADER) || AUTO_EXIT_CONDITION()) { - _delay_ms(10); + + if (isEvent(EVENT_FINISH)) { // || AUTO_EXIT_CONDITION()) { + tiny85FinishWriting(); + +# if BOOTLOADER_CAN_EXIT + _delay_ms(10); // removing delay causes USB errors break; - } -# endif +# endif + } +// # if BOOTLOADER_CAN_EXIT +// // exit if requested by the programming app, or if we timeout waiting for the pc with a valid app +// if (isEvent(EVENT_EXIT_BOOTLOADER) || AUTO_EXIT_CONDITION()) { +// //_delay_ms(10); +// break; +// } +// # endif clearEvents(); } while(bootLoaderCondition()); /* main event loop */ } + leaveBootloader(); } diff --git a/firmware/main.c.lst b/firmware/main.c.lst index 392c616..88183db 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//ccgCENsE.s page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 1 1 .file "main.c" @@ -55,31 +55,31 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 52 0032 E430 cpi r30,4 53 0034 F105 cpc r31,__zero_reg__ 54 0036 01F0 breq .L6 - 55 0038 86E1 ldi r24,hi8(5884) - 56 003a EC3F cpi r30,lo8(5884) + 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//ccgCENsE.s page 2 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 2 58 003e 01F4 brne .L7 59 0040 2091 0000 lds r18,vectorTemp 60 0044 3091 0000 lds r19,(vectorTemp)+1 - 61 0048 2E57 subi r18,lo8(-(1154)) - 62 004a 3B4F sbci r19,hi8(-(1154)) + 61 0048 2E59 subi r18,lo8(-(1122)) + 62 004a 3B4F sbci r19,hi8(-(1122)) 63 004c 00C0 rjmp .L8 64 .L7: - 65 004e 86E1 ldi r24,hi8(5886) - 66 0050 EE3F cpi r30,lo8(5886) + 65 004e 87E1 ldi r24,hi8(5950) + 66 0050 EE33 cpi r30,lo8(5950) 67 0052 F807 cpc r31,r24 68 0054 01F4 brne .L8 69 0056 2091 0000 lds r18,vectorTemp+2 70 005a 3091 0000 lds r19,(vectorTemp+2)+1 - 71 005e 2D57 subi r18,lo8(-(1155)) - 72 0060 3B4F sbci r19,hi8(-(1155)) + 71 005e 2D59 subi r18,lo8(-(1123)) + 72 0060 3B4F sbci r19,hi8(-(1123)) 73 0062 00C0 rjmp .L8 74 .L6: - 75 0064 2FE7 ldi r18,lo8(-13441) - 76 0066 3BEC ldi r19,hi8(-13441) + 75 0064 2FE9 ldi r18,lo8(-13409) + 76 0066 3BEC ldi r19,hi8(-13409) 77 .L8: 78 /* #APP */ 79 ; 165 "main.c" 1 @@ -118,7 +118,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 112 .type fillFlashWithVectors, @function 113 fillFlashWithVectors: 114 008e CF93 push r28 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 3 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 3 115 0090 DF93 push r29 @@ -149,16 +149,16 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 140 /* prologue: naked */ 141 /* frame size = 0 */ 142 /* #APP */ - 143 ; 262 "main.c" 1 + 143 ; 263 "main.c" 1 144 0000 00EB ldi r16, 0xB0 145 ; 0 "" 2 - 146 ; 263 "main.c" 1 + 146 ; 264 "main.c" 1 147 0002 0F93 push r16 148 ; 0 "" 2 - 149 ; 264 "main.c" 1 + 149 ; 265 "main.c" 1 150 0004 07E0 ldi r16, 0x07 151 ; 0 "" 2 - 152 ; 265 "main.c" 1 + 152 ; 266 "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//ccgCENsE.s page 163 /* frame size = 0 */ 164 00b4 88E1 ldi r24,lo8(24) 165 /* #APP */ - 166 ; 330 "main.c" 1 + 166 ; 333 "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//ccgCENsE.s page 4 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 4 172 @@ -187,26 +187,26 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 175 00c0 E0E0 ldi r30,lo8(0) 176 00c2 F0E0 ldi r31,hi8(0) 177 /* #APP */ - 178 ; 283 "main.c" 1 + 178 ; 284 "main.c" 1 179 00c4 8591 lpm r24, Z+ 180 00c6 9491 lpm r25, Z 181 182 ; 0 "" 2 183 /* #NOAPP */ - 184 00c8 8F57 subi r24,lo8(-13441) - 185 00ca 9B4C sbci r25,hi8(-13441) + 184 00c8 8F59 subi r24,lo8(-13409) + 185 00ca 9B4C sbci r25,hi8(-13409) 186 00cc 01F4 brne .L16 187 00ce E4E0 ldi r30,lo8(4) 188 00d0 F0E0 ldi r31,hi8(4) 189 /* #APP */ - 190 ; 284 "main.c" 1 + 190 ; 285 "main.c" 1 191 00d2 8591 lpm r24, Z+ 192 00d4 9491 lpm r25, Z 193 194 ; 0 "" 2 195 /* #NOAPP */ - 196 00d6 8F57 subi r24,lo8(-13441) - 197 00d8 9B4C sbci r25,hi8(-13441) + 196 00d6 8F59 subi r24,lo8(-13409) + 197 00d8 9B4C sbci r25,hi8(-13409) 198 00da 01F0 breq .L17 199 .L16: 200 00dc 00D0 rcall fillFlashWithVectors @@ -233,12 +233,12 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 221 00fe 01F4 brne .L18 222 0100 BB98 cbi 55-32,3 223 /* #APP */ - 224 ; 276 "main.c" 1 + 224 ; 277 "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//ccgCENsE.s page 5 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 5 229 0106 FF24 clr r15 @@ -298,7 +298,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.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//ccgCENsE.s page 6 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 6 286 018a 00C0 rjmp .L78 @@ -358,7 +358,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 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//ccgCENsE.s page 7 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 7 343 01fa 90E0 ldi r25,hi8(usbDescriptorStringVendor) @@ -418,7 +418,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 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//ccgCENsE.s page 8 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 8 400 0266 9E81 ldd r25,Y+6 @@ -456,12 +456,12 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 432 02ae 8093 0000 sts vectorTemp+2,r24 433 02b2 00C0 rjmp .L45 434 .L46: - 435 02b4 8A5F subi r24,lo8(5882) - 436 02b6 9641 sbci r25,hi8(5882) + 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 ; 239 "main.c" 1 + 440 ; 240 "main.c" 1 441 02bc 8093 5700 sts 87, r24 442 02c0 E895 spm 443 @@ -478,7 +478,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 454 02d0 00C0 rjmp .L48 455 .L47: 456 02d2 8091 0000 lds r24,writeLength - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 9 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 9 457 02d6 8823 tst r24 @@ -538,7 +538,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 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//ccgCENsE.s page 10 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 10 514 .L54: @@ -598,7 +598,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 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//ccgCENsE.s page 11 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 11 571 ; 0 "" 2 @@ -622,8 +622,8 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 589 03c0 F894 cli 590 ; 0 "" 2 591 /* #NOAPP */ - 592 03c2 E0E0 ldi r30,lo8(5888) - 593 03c4 F7E1 ldi r31,hi8(5888) + 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)) @@ -658,7 +658,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 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//ccgCENsE.s page 12 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s page 12 628 ; 0 "" 2 @@ -674,221 +674,226 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 638 .L68: 639 0408 00D0 rcall writeFlashPage 640 .L67: - 641 040a 12FD sbrc r17,2 + 641 040a 12FF sbrs r17,2 642 040c 00C0 rjmp .L69 - 643 040e 81E5 ldi r24,lo8(-15535) - 644 0410 E816 cp r14,r24 - 645 0412 83EC ldi r24,hi8(-15535) - 646 0414 F806 cpc r15,r24 - 647 0416 00F0 brlo .L70 - 648 .L69: - 649 0418 82E2 ldi r24,lo8(-24286) - 650 041a 91EA ldi r25,hi8(-24286) - 651 /* #APP */ - 652 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas - 653 041c 0197 1: sbiw r24,1 - 654 041e 01F4 brne 1b - 655 ; 0 "" 2 - 656 ; 307 "main.c" 1 - 657 0420 F894 cli - 658 ; 0 "" 2 - 659 /* #NOAPP */ - 660 0422 1BBE out 91-32,__zero_reg__ - 661 0424 15BA out 53-32,__zero_reg__ - 662 0426 8091 0000 lds r24,didWriteSomething - 663 042a 8823 tst r24 - 664 042c 01F4 brne .L71 - 665 042e 00C0 rjmp .L72 - 666 .L73: - 667 0430 00D0 rcall fillFlashWithVectors - 668 .L71: - 669 0432 8091 0000 lds r24,currentAddress - 670 0436 9091 0000 lds r25,(currentAddress)+1 - 671 043a 8050 subi r24,lo8(5888) - 672 043c 9741 sbci r25,hi8(5888) - 673 043e 00F0 brlo .L73 - 674 .L72: - 675 0440 1092 5F02 sts 607,__zero_reg__ - 676 0444 1092 5E02 sts 606,__zero_reg__ - 677 /* #APP */ - 678 ; 323 "main.c" 1 - 679 0448 00C0 rjmp __vectors - 4 - 680 ; 0 "" 2 - 681 /* #NOAPP */ - 682 .L70: - 683 044a 1092 0000 sts events,__zero_reg__ - 684 044e 00C0 rjmp .L74 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 13 - - - 685 .size main, .-main - 686 .global usbTxLen - 687 .data - 688 .type usbTxLen, @object - 689 .size usbTxLen, 1 - 690 usbTxLen: - 691 0000 5A .byte 90 - 692 .global usbDescriptorString0 - 693 .section .progmem.data,"a",@progbits - 694 .type usbDescriptorString0, @object - 695 .size usbDescriptorString0, 4 - 696 usbDescriptorString0: - 697 0000 04 .byte 4 - 698 0001 03 .byte 3 - 699 0002 09 .byte 9 - 700 0003 04 .byte 4 - 701 .global usbDescriptorStringVendor - 702 .type usbDescriptorStringVendor, @object - 703 .size usbDescriptorStringVendor, 34 - 704 usbDescriptorStringVendor: - 705 0004 2203 .word 802 - 706 0006 6300 .word 99 - 707 0008 7200 .word 114 - 708 000a 6500 .word 101 - 709 000c 6100 .word 97 - 710 000e 7400 .word 116 - 711 0010 6900 .word 105 - 712 0012 7600 .word 118 - 713 0014 6500 .word 101 - 714 0016 7000 .word 112 - 715 0018 6F00 .word 111 - 716 001a 6E00 .word 110 - 717 001c 7900 .word 121 - 718 001e 2E00 .word 46 - 719 0020 6300 .word 99 - 720 0022 6F00 .word 111 - 721 0024 6D00 .word 109 - 722 .global usbDescriptorStringDevice - 723 .type usbDescriptorStringDevice, @object - 724 .size usbDescriptorStringDevice, 12 - 725 usbDescriptorStringDevice: - 726 0026 0C03 .word 780 - 727 0028 7500 .word 117 - 728 002a 4200 .word 66 - 729 002c 6F00 .word 111 - 730 002e 6F00 .word 111 - 731 0030 7400 .word 116 - 732 .global usbDescriptorDevice - 733 .type usbDescriptorDevice, @object - 734 .size usbDescriptorDevice, 18 - 735 usbDescriptorDevice: - 736 0032 12 .byte 18 - 737 0033 01 .byte 1 - 738 0034 10 .byte 16 - 739 0035 01 .byte 1 - 740 0036 FF .byte -1 - 741 0037 00 .byte 0 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 14 - - - 742 0038 00 .byte 0 - 743 0039 08 .byte 8 - 744 003a C0 .byte -64 - 745 003b 16 .byte 22 - 746 003c DC .byte -36 - 747 003d 05 .byte 5 - 748 003e 01 .byte 1 - 749 003f 01 .byte 1 - 750 0040 01 .byte 1 - 751 0041 02 .byte 2 - 752 0042 00 .byte 0 - 753 0043 01 .byte 1 - 754 .global usbDescriptorConfiguration - 755 .type usbDescriptorConfiguration, @object - 756 .size usbDescriptorConfiguration, 18 - 757 usbDescriptorConfiguration: - 758 0044 09 .byte 9 - 759 0045 02 .byte 2 - 760 0046 12 .byte 18 - 761 0047 00 .byte 0 - 762 0048 01 .byte 1 - 763 0049 01 .byte 1 - 764 004a 00 .byte 0 - 765 004b 80 .byte -128 - 766 004c 32 .byte 50 - 767 004d 09 .byte 9 - 768 004e 04 .byte 4 - 769 004f 00 .byte 0 - 770 0050 00 .byte 0 - 771 0051 00 .byte 0 - 772 0052 00 .byte 0 - 773 0053 00 .byte 0 - 774 0054 00 .byte 0 - 775 0055 00 .byte 0 - 776 .lcomm events,1 - 777 .lcomm didWriteSomething,1 - 778 .data - 779 .type usbMsgLen, @object - 780 .size usbMsgLen, 1 - 781 usbMsgLen: - 782 0001 FF .byte -1 - 783 .type replyBuffer.1675, @object - 784 .size replyBuffer.1675, 4 - 785 replyBuffer.1675: - 786 0002 16 .byte 22 - 787 0003 FA .byte -6 - 788 0004 40 .byte 64 - 789 0005 14 .byte 20 - 790 .lcomm wasReset.1564,1 - 791 .lcomm usbMsgFlags,1 - 792 .lcomm writeLength,1 - 793 .lcomm vectorTemp,4 - 794 .lcomm currentAddress,2 - 795 .comm usbMsgPtr,2,1 - 796 .comm usbRxToken,1,1 - 797 .comm usbConfiguration,1,1 - 798 .comm usbRxBuf,22,1 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 15 - - - 799 .comm usbInputBufOffset,1,1 - 800 .comm usbDeviceAddr,1,1 - 801 .comm usbNewDeviceAddr,1,1 - 802 .comm usbRxLen,1,1 - 803 .comm usbCurrentTok,1,1 - 804 .comm usbTxBuf,11,1 - 805 .global __do_copy_data - 806 .global __do_clear_bss - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s page 16 + 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 + 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 DEFINED SYMBOLS *ABS*:00000000 main.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:2 *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:3 *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:4 *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:5 *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:6 *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:7 *ABS*:00000001 __zero_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:10 .text:00000000 writeFlashPage -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:776 .bss:00000001 didWriteSomething -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:793 .bss:00000009 currentAddress -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:44 .text:00000024 writeWordToPageBuffer -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:792 .bss:00000005 vectorTemp -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:113 .text:0000008e fillFlashWithVectors -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:139 .init3:00000000 PushMagicWord -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:161 .text:000000b4 main +/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 *COM*:00000001 usbRxLen *COM*:00000001 usbInputBufOffset *COM*:00000016 usbRxBuf *COM*:00000001 usbRxToken *COM*:0000000b usbTxBuf -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:690 .data:00000000 usbTxLen -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:790 .bss:00000003 usbMsgFlags -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:785 .data:00000002 replyBuffer.1675 +/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 *COM*:00000002 usbMsgPtr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:791 .bss:00000004 writeLength +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:796 .bss:00000004 writeLength .bss:00000000 events *COM*:00000001 usbNewDeviceAddr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:735 .progmem.data:00000032 usbDescriptorDevice -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:757 .progmem.data:00000044 usbDescriptorConfiguration -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:696 .progmem.data:00000000 usbDescriptorString0 -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:704 .progmem.data:00000004 usbDescriptorStringVendor -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:725 .progmem.data:00000026 usbDescriptorStringDevice +/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 *COM*:00000001 usbConfiguration -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:781 .data:00000001 usbMsgLen +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:786 .data:00000001 usbMsgLen *COM*:00000001 usbDeviceAddr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgCENsE.s:777 .bss:00000002 wasReset.1564 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccuASyoo.s:782 .bss:00000002 wasReset.1564 *COM*:00000001 usbCurrentTok UNDEFINED SYMBOLS diff --git a/firmware/main.hex b/firmware/main.hex index 3ec6a83..2ee2244 100644 --- a/firmware/main.hex +++ b/firmware/main.hex @@ -1,141 +1,141 @@ -:1017000039C057C083C055C054C053C052C051C027 -:1017100050C04FC04EC04DC04CC04BC04AC0040367 -:10172000090422036300720065006100740069000F -:101730007600650070006F006E0079002E00630077 -:101740006F006D000C03750042006F006F007400A5 -:1017500012011001FF000008C016DC0501010102A2 -:10176000000109021200010100803209040000009A -:101770000000000011241FBECFE5D2E0DEBFCDBFC8 -:1017800000EB0F9307E00F9310E0A0E6B0E0EAE96A -:10179000FFE102C005900D92A636B107D9F710E01F -:1017A000A6E6B0E001C01D92AB39B107E1F7E6D182 -:1017B000F2C3A6CFA82FB92F80E090E041E050EA15 -:1017C000609530E009C02D9182279795879510F09C -:1017D00084279527305EC8F36F5FA8F30895EADF8A -:1017E0008D939D930895A6E088279927AA9569F07F -:1017F0000197E1F3B399FCCFB39BFECF81E099272A -:10180000A6B3019611F0A871D9F70895CF93CFB779 -:10181000CF93C0915F02C03B21F4C0915E02C730FC -:1018200021F0CF91CFBFCF916ACFCC27C395B39B87 -:10183000E9F7B39B0BC0B39B09C0B39B07C0B39B35 -:1018400005C0B39B03C0B39B01C0D3C00F92DF930D -:10185000C0917E00DD27CB57DF4F012EB39B03C025 -:10186000DF910F90E6CF2F930F931F934F932FEF9E -:101870004F6F06B303FB20F95F933F9350E03BE0CB -:1018800065C016B30126502953FDC89556B30127EC -:1018900003FB25F92F7306B3B1F05027102713FB74 -:1018A00026F906B22230F0F000C016B3012703FB80 -:1018B00027F90126502906B22430E8F54F77206831 -:1018C00016B30000F6CF50274F7D206206B2102FCE -:1018D000000000C006B300265029102713FB26F98C -:1018E00006B2E2CF4F7B06B3206400C0DACF0126F8 -:1018F0005029187106B269F14E7F2160012F16B38D -:1019000028C0002650294D7F06B22260102F29C022 -:10191000012650294B7F06B22460012F2DC016B33B -:1019200001265029477F2860000006B22EC04F7E56 -:1019300006B3206130C0422706B3499300265029E0 -:10194000102706B24FEF13FB20F9297F16B379F267 -:10195000187159F10126502906B2012703FB21F91C -:10196000237F06B371F2002650293150D0F006B221 -:10197000102713FB22F9277E16B351F201265029B6 -:10198000012703FB06B223F92F7C49F2000006B3BE -:10199000102713FB24F90026502906B22F7939F2BB -:1019A00070CF10E21ABF002717C03B503195C31B00 -:1019B000D04010E21ABF0881033CF9F00B34E9F083 -:1019C00020917C001981110F1213EDCF093651F1CE -:1019D0000D3211F0013E39F7009383003F915F9182 -:1019E0004F911F910F912F91DF910F90CAB7C5FDB5 -:1019F0001DCFCF91CFBFCF91189520918300222387 -:101A000069F310918100112321F5343022F13093D4 -:101A1000810020937D0010917E003BE0311B3093CC -:101A20007E0019C00091810001309CF40AE53091DC -:101A3000600034FD11C000936000C1E7D0E010C029 -:101A4000052710E000C021C0052710E0C89508BB9D -:101A500014C03AE501C032ED032EC0E0D0E032E020 -:101A600017B31861C39A08B317BB58E120E84FEFCA -:101A700020FF052708BB279517951C3F28F7000076 -:101A80004552B0F720FF0527279508BB17951C3F47 -:101A9000B8F629913A9561F7077E10918200110FEF -:101AA00008BBC250D04011F010937C0010E21ABF66 -:101AB000086017B3177E402F477E54E05A95F1F720 -:101AC00008BB17BB48BB8ACF81E080936700F894BE -:101AD000E0916F00F0917000329785E0809357009D -:101AE000E89507B600FCFDCF789408959C01E0913D -:101AF0006F00F0917000309749F1E430F105B1F0DA -:101B000086E1EC3FF80739F420916B0030916C00CE -:101B10002E573B4F0DC086E1EE3FF80749F4209168 -:101B20006D0030916E002D573B4F02C02FE73BEC0C -:101B3000F89481E0090180935700E8951124789486 -:101B40003296F0937000E0936F00089581E18093E6 -:101B50005700E895EBCFCF93DF93C0916F00D09102 -:101B60007000CF73D0708FEF9FEFC0DF2296C0342C -:101B7000D105CCF3A9DFDF91CF91089588E10FB6AD -:101B8000F89481BD11BC0FBEE0E0F0E08591949126 -:101B90008F579B4C39F4E4E0F0E0859194918F5796 -:101BA0009B4C09F0D8DF1092700010926F00AC9A35 -:101BB0008BB780628BBFBB9A88E893E1ECE9F1E0D8 -:101BC0003197F1F70197D1F7BB987894EE24FF2471 -:101BD00010918100135017FDEDC080917E00CCE084 -:101BE000D0E0C81BD109CB57DF4F80917D008D32EB -:101BF00009F0A4C0183009F0DBC083EC80937100B9 -:101C00008AE580936000109269002881822F807697 -:101C10009981882321F1992341F482E690E0909301 -:101C2000800080937F0024E07FC0913069F48A8136 -:101C300080936A008C819D819093700080936F00E7 -:101C400027FD6DC09FEF6CC080916600923011F44B -:101C5000816001C084608093660020E065C08A8155 -:101C600010927A00992331F410927B008AE790E079 -:101C700022E050C0953019F48093820048C096301D -:101C8000B1F58B81813019F480E597E104C0823091 -:101C900041F482E697E19093800080937F0022E1F7 -:101CA00022C08330F9F48A81882341F48EE197E1E0 -:101CB0009093800080937F0024E015C0813041F430 -:101CC00082E297E19093800080937F0022E20BC034 -:101CD000823041F484E497E19093800080937F0008 -:101CE0002CE001C020E080E4809369001DC09830A2 -:101CF00019F484E890E009C0993019F480938400C5 -:101D000006C09A3021F48AE790E021E003C08AE718 -:101D100090E020E09093800080937F0005C09E813A -:101D200080E88093690007C08F81882319F49E8121 -:101D3000921708F0922F909361003AC08091690049 -:101D400087FF36C080916A00811B80936A00809172 -:101D50006F0090917000009739F488819981909379 -:101D60006C0080936B0012C08430910539F4888137 -:101D7000998190936E0080936D0008C08A5F9641B0 -:101D800028F081E180935700E89507C08881998108 -:101D9000ADDE125011F02296DACF80916A008823CE -:101DA00039F4809166008260809366001092610031 -:101DB000109281008091600084FF3CC0809161009E -:101DC0008F3FC1F1182F893008F018E0811B8093F4 -:101DD00061008091710098E8892780937100112338 -:101DE000E1F0E0917F00F09180008091690086FF32 -:101DF00009C0912FA2E7B0E084918D933196915064 -:101E0000D9F707C0912FA2E7B0E081918D9391504F -:101E1000E1F7F0938000E0937F0082E790E0612F8C -:101E2000DEDC612F6C5F6C3019F08FEF8093610006 -:101E30006093600094E186B3887131F49150D9F7D2 -:101E40001092820010927C0010E0992309F411E0B6 -:101E500080916800811739F0112319F4F8945CD04F -:101E60007894109368008CE991E00197F1F78091E4 -:101E70006600882319F0EE24FF2403C00894E11CB7 -:101E8000F11C182F80FF14C0F894E0E0F7E1E05453 -:101E9000F04083E080935700E89507B600FCFDCF43 -:101EA0003097A9F71092700010926F0054DE78946A -:101EB00011FF0FC08AE390E20197F1F780916F0064 -:101EC000909170008F739070892B11F044DE01C0E7 -:101ED000FBDD12FD05C081E5E81683ECF806C8F0CD -:101EE00082E291EA0197F1F7F8941BBE15BA80914E -:101EF0006700882311F408C02EDE80916F00909156 -:101F0000700080509741C0F310925F0210925E0201 -:101F1000F5CB109266005CCEFF920F931F93CF9388 -:101F2000DF9380E8F82E00E0C0E0D0E0102F1F0D16 -:101F300011BF59DC29E0843392070CF0102FF6947E -:101F40002196C830D10511F0012FF0CF115011BFEB -:101F50001F5F012FEC0110C046DC8453994097FFAE -:101F600003C0909581959F4F8C179D0714F401B77E -:101F7000EC0181B78F5F81BF21B730E0812F90E006 -:101F800001968217930744F701BFDF91CF911F910C -:0A1F90000F91FF900895F894FFCF21 -:061F9A005AFF16FA401484 -:0400000300001700E2 +: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 +:0400000300001740A2 :00000001FF diff --git a/firmware/main.map b/firmware/main.map index ee6a42c..5c381d2 100644 --- a/firmware/main.map +++ b/firmware/main.map @@ -63,7 +63,7 @@ LOAD usbdrv/usbdrvasm.o LOAD usbdrv/oddebug.o LOAD main.o LOAD libs-device/osccal.o -Address of section .text set to 0x1700 +Address of section .text set to 0x1740 LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/libc.a LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a @@ -158,56 +158,56 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a .rela.plt *(.rela.plt) -.text 0x00001700 0x89a +.text 0x00001740 0x89c *(.vectors) - .vectors 0x00001700 0x1e /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o - 0x00001700 __vectors - 0x00001700 __vector_default + .vectors 0x00001740 0x1e /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o + 0x00001740 __vectors + 0x00001740 __vector_default *(.vectors) *(.progmem.gcc*) *(.progmem*) - .progmem.data 0x0000171e 0x56 main.o - 0x00001750 usbDescriptorDevice - 0x0000171e usbDescriptorString0 - 0x00001762 usbDescriptorConfiguration - 0x00001722 usbDescriptorStringVendor - 0x00001744 usbDescriptorStringDevice - 0x00001774 . = ALIGN (0x2) - 0x00001774 __trampolines_start = . + .progmem.data 0x0000175e 0x56 main.o + 0x00001790 usbDescriptorDevice + 0x0000175e usbDescriptorString0 + 0x000017a2 usbDescriptorConfiguration + 0x00001762 usbDescriptorStringVendor + 0x00001784 usbDescriptorStringDevice + 0x000017b4 . = ALIGN (0x2) + 0x000017b4 __trampolines_start = . *(.trampolines) - .trampolines 0x00001774 0x0 linker stubs + .trampolines 0x000017b4 0x0 linker stubs *(.trampolines*) - 0x00001774 __trampolines_end = . + 0x000017b4 __trampolines_end = . *(.jumptables) *(.jumptables*) *(.lowtext) *(.lowtext*) - 0x00001774 __ctors_start = . + 0x000017b4 __ctors_start = . *(.ctors) - 0x00001774 __ctors_end = . - 0x00001774 __dtors_start = . + 0x000017b4 __ctors_end = . + 0x000017b4 __dtors_start = . *(.dtors) - 0x00001774 __dtors_end = . + 0x000017b4 __dtors_end = . SORT(*)(.ctors) SORT(*)(.dtors) *(.init0) - .init0 0x00001774 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o - 0x00001774 __init + .init0 0x000017b4 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o + 0x000017b4 __init *(.init0) *(.init1) *(.init1) *(.init2) - .init2 0x00001774 0xc /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o + .init2 0x000017b4 0xc /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o *(.init2) *(.init3) - .init3 0x00001780 0x8 main.o - 0x00001780 PushMagicWord + .init3 0x000017c0 0x8 main.o + 0x000017c0 PushMagicWord *(.init3) *(.init4) - .init4 0x00001788 0x16 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_copy_data.o) - 0x00001788 __do_copy_data - .init4 0x0000179e 0x10 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_clear_bss.o) - 0x0000179e __do_clear_bss + .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) *(.init5) *(.init5) @@ -218,40 +218,40 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a *(.init8) *(.init8) *(.init9) - .init9 0x000017ae 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o + .init9 0x000017ee 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o *(.init9) *(.text) - .text 0x000017b2 0x2 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o - 0x000017b2 __vector_1 - 0x000017b2 __vector_12 - 0x000017b2 __bad_interrupt - 0x000017b2 __vector_6 - 0x000017b2 __vector_3 - 0x000017b2 __vector_11 - 0x000017b2 __vector_13 - 0x000017b2 __vector_7 - 0x000017b2 __vector_5 - 0x000017b2 __vector_4 - 0x000017b2 __vector_9 - 0x000017b2 __vector_8 - 0x000017b2 __vector_14 - 0x000017b2 __vector_10 - .text 0x000017b4 0x314 usbdrv/usbdrvasm.o - 0x000017b4 usbCrc16 - 0x000017de usbCrc16Append - 0x0000180c __vector_2 - 0x000017e6 usbMeasureFrameLength - .text 0x00001ac8 0x450 main.o - 0x00001b7c main - .text 0x00001f18 0x7e libs-device/osccal.o - 0x00001f18 calibrateOscillator - 0x00001f96 . = ALIGN (0x2) + .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.*) - 0x00001f96 . = ALIGN (0x2) + 0x00001fd8 . = ALIGN (0x2) *(.fini9) - .fini9 0x00001f96 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o) - 0x00001f96 exit - 0x00001f96 _exit + .fini9 0x00001fd8 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o) + 0x00001fd8 exit + 0x00001fd8 _exit *(.fini9) *(.fini8) *(.fini8) @@ -270,11 +270,11 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00001f96 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o) + .fini0 0x00001fd8 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o) *(.fini0) - 0x00001f9a _etext = . + 0x00001fdc _etext = . -.data 0x00800060 0x6 load address 0x00001f9a +.data 0x00800060 0x6 load address 0x00001fdc 0x00800060 PROVIDE (__data_start, .) *(.data) .data 0x00800060 0x6 main.o @@ -305,8 +305,8 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a 0x00800084 usbConfiguration 0x00800085 usbRxBuf 0x0080009b PROVIDE (__bss_end, .) - 0x00001f9a __data_load_start = LOADADDR (.data) - 0x00001fa0 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00001fdc __data_load_start = LOADADDR (.data) + 0x00001fe2 __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 ae5182c..ccbea1a 100644 Binary files a/firmware/main.o and b/firmware/main.o differ diff --git a/firmware/temp-dump.bin b/firmware/temp-dump.bin index 4648afa..a5bdf24 100644 Binary files a/firmware/temp-dump.bin and b/firmware/temp-dump.bin differ diff --git a/firmware/usbdrv/oddebug.c.lst b/firmware/usbdrv/oddebug.c.lst index db5279c..aeee3b7 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//ccQ867NF.s page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxu41o.s page 1 1 .file "oddebug.c" @@ -8,16 +8,16 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccQ867NF.s page 5 __CCP__ = 0x34 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 - GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccQ867NF.s page 2 + GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxu41o.s page 2 DEFINED SYMBOLS *ABS*:00000000 oddebug.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccQ867NF.s:2 *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccQ867NF.s:3 *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccQ867NF.s:4 *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccQ867NF.s:5 *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccQ867NF.s:6 *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccQ867NF.s:7 *ABS*:00000001 __zero_reg__ +/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__ NO UNDEFINED SYMBOLS -- cgit v1.2.3