summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--firmware/Makefile4
-rw-r--r--firmware/boot-at-addr-0.binbin0 -> 2158 bytes
-rw-r--r--firmware/bootloaderconfig.h8
-rw-r--r--firmware/libs-device/osccal.c.lst20
-rwxr-xr-xfirmware/main.binbin8924 -> 8928 bytes
-rw-r--r--firmware/main.c60
-rw-r--r--firmware/main.c.lst483
-rw-r--r--firmware/main.hex280
-rw-r--r--firmware/main.map126
-rw-r--r--firmware/main.obin5712 -> 5728 bytes
-rw-r--r--firmware/temp-dump.binbin8188 -> 8162 bytes
-rw-r--r--firmware/usbdrv/oddebug.c.lst16
12 files changed, 507 insertions, 490 deletions
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
--- /dev/null
+++ b/firmware/boot-at-addr-0.bin
Binary files 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
--- a/firmware/main.bin
+++ b/firmware/main.bin
Binary files 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
--- a/firmware/main.o
+++ b/firmware/main.o
Binary files differ
diff --git a/firmware/temp-dump.bin b/firmware/temp-dump.bin
index 4648afa..a5bdf24 100644
--- a/firmware/temp-dump.bin
+++ b/firmware/temp-dump.bin
Binary files 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