summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenna Fox <a@creativepony.com>2012-09-26 01:08:54 +1000
committerJenna Fox <a@creativepony.com>2012-09-26 01:08:54 +1000
commit7b20da73c9a0ed03d32c2f9e654367900cb1e06f (patch)
tree66a87bd1141d43817c90a08b6f4de01095390157
parent9573415534e53c03c66b2c2aa4f6797e09220893 (diff)
downloadmicronucleus-7b20da73c9a0ed03d32c2f9e654367900cb1e06f.tar.gz
micronucleus-7b20da73c9a0ed03d32c2f9e654367900cb1e06f.tar.bz2
micronucleus-7b20da73c9a0ed03d32c2f9e654367900cb1e06f.zip
Added check to make sure BOOTLOADER_ADDRESS aligns with SPM_PAGESIZE
-rw-r--r--firmware/libs-device/osccal.c.lst20
-rwxr-xr-xfirmware/main.binbin8756 -> 8756 bytes
-rw-r--r--firmware/main.c5
-rw-r--r--firmware/main.c.lst160
-rw-r--r--firmware/main.hex270
-rw-r--r--firmware/main.map122
-rw-r--r--firmware/main.obin5416 -> 5416 bytes
-rw-r--r--firmware/temp-dump.binbin0 -> 8076 bytes
-rw-r--r--firmware/usbdrv/oddebug.c.lst16
9 files changed, 299 insertions, 294 deletions
diff --git a/firmware/libs-device/osccal.c.lst b/firmware/libs-device/osccal.c.lst
index 72f5995..086a9b7 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//cctxPubr.s page 1
+GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9Ziu99.s page 1
1 .file "osccal.c"
@@ -58,7 +58,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.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//cctxPubr.s page 2
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9Ziu99.s page 2
58 .L6:
@@ -89,18 +89,18 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.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//cctxPubr.s page 3
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9Ziu99.s page 3
DEFINED SYMBOLS
*ABS*:00000000 osccal.c
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:2 *ABS*:0000003f __SREG__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:3 *ABS*:0000003e __SP_H__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:4 *ABS*:0000003d __SP_L__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:5 *ABS*:00000034 __CCP__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:6 *ABS*:00000000 __tmp_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:7 *ABS*:00000001 __zero_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cctxPubr.s:11 .text:00000000 calibrateOscillator
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9Ziu99.s:2 *ABS*:0000003f __SREG__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9Ziu99.s:3 *ABS*:0000003e __SP_H__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9Ziu99.s:4 *ABS*:0000003d __SP_L__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9Ziu99.s:5 *ABS*:00000034 __CCP__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9Ziu99.s:6 *ABS*:00000000 __tmp_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9Ziu99.s:7 *ABS*:00000001 __zero_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc9Ziu99.s:11 .text:00000000 calibrateOscillator
UNDEFINED SYMBOLS
usbMeasureFrameLength
diff --git a/firmware/main.bin b/firmware/main.bin
index 8d7639c..fe74e56 100755
--- a/firmware/main.bin
+++ b/firmware/main.bin
Binary files differ
diff --git a/firmware/main.c b/firmware/main.c
index 30077ec..7476254 100644
--- a/firmware/main.c
+++ b/firmware/main.c
@@ -72,6 +72,11 @@ static void leaveBootloader() __attribute__((__noreturn__));
#define POSTSCRIPT_SIZE 6 /* maybe it could be 4 now we do not have checksums? */
#define PROGMEM_SIZE (BOOTLOADER_ADDRESS - POSTSCRIPT_SIZE) /* max size of user program */
+// verify the bootloader address aligns with page size
+#if BOOTLOADER_ADDRESS % SPM_PAGESIZE != 0
+# error "BOOTLOADER_ADDRESS in makefile must be a multiple of chip's pagesize"
+#endif
+
// events system schedules functions to run in the main loop
static uchar events = 0; // bitmap of events to run
#define EVENT_ERASE_APPLICATION 1
diff --git a/firmware/main.c.lst b/firmware/main.c.lst
index 3cdf41b..0f0e1b8 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//ccd49vnP.s page 1
+GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 1
1 .file "main.c"
@@ -16,7 +16,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
13 0000 81E0 ldi r24,lo8(1)
14 0002 8093 0000 sts didWriteSomething,r24
15 /* #APP */
- 16 ; 129 "main.c" 1
+ 16 ; 145 "main.c" 1
17 0006 F894 cli
18 ; 0 "" 2
19 /* #NOAPP */
@@ -25,7 +25,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
22 0010 3297 sbiw r30,2
23 0012 85E0 ldi r24,lo8(5)
24 /* #APP */
- 25 ; 130 "main.c" 1
+ 25 ; 146 "main.c" 1
26 0014 8093 5700 sts 87, r24
27 0018 E895 spm
28
@@ -36,7 +36,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
33 001c 00FC sbrc __tmp_reg__,0
34 001e 00C0 rjmp .L2
35 /* #APP */
- 36 ; 132 "main.c" 1
+ 36 ; 148 "main.c" 1
37 0020 7894 sei
38 ; 0 "" 2
39 /* epilogue start */
@@ -55,47 +55,47 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
52 0032 E430 cpi r30,4
53 0034 F105 cpc r31,__zero_reg__
54 0036 01F0 breq .L6
- 55 0038 87E1 ldi r24,hi8(5948)
- 56 003a EC33 cpi r30,lo8(5948)
+ 55 0038 87E1 ldi r24,hi8(6012)
+ 56 003a EC37 cpi r30,lo8(6012)
57 003c F807 cpc r31,r24
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 2
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.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 2E59 subi r18,lo8(-(1122))
- 62 004a 3B4F sbci r19,hi8(-(1122))
+ 61 0048 2E5B subi r18,lo8(-(1090))
+ 62 004a 3B4F sbci r19,hi8(-(1090))
63 004c 00C0 rjmp .L8
64 .L7:
- 65 004e 87E1 ldi r24,hi8(5950)
- 66 0050 EE33 cpi r30,lo8(5950)
+ 65 004e 87E1 ldi r24,hi8(6014)
+ 66 0050 EE37 cpi r30,lo8(6014)
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 2D59 subi r18,lo8(-(1123))
- 72 0060 3B4F sbci r19,hi8(-(1123))
+ 71 005e 2D5B subi r18,lo8(-(1091))
+ 72 0060 3B4F sbci r19,hi8(-(1091))
73 0062 00C0 rjmp .L8
74 .L6:
- 75 0064 2FE9 ldi r18,lo8(-13409)
- 76 0066 3BEC ldi r19,hi8(-13409)
+ 75 0064 2FEB ldi r18,lo8(-13377)
+ 76 0066 3BEC ldi r19,hi8(-13377)
77 .L8:
78 /* #APP */
- 79 ; 166 "main.c" 1
+ 79 ; 185 "main.c" 1
80 0068 F894 cli
81 ; 0 "" 2
82 /* #NOAPP */
83 006a 81E0 ldi r24,lo8(1)
84 /* #APP */
- 85 ; 167 "main.c" 1
+ 85 ; 186 "main.c" 1
86 006c 0901 movw r0, r18
87 006e 8093 5700 sts 87, r24
88 0072 E895 spm
89 0074 1124 clr r1
90
91 ; 0 "" 2
- 92 ; 168 "main.c" 1
+ 92 ; 187 "main.c" 1
93 0076 7894 sei
94 ; 0 "" 2
95 /* #NOAPP */
@@ -107,7 +107,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
101 .L5:
102 0084 81E1 ldi r24,lo8(17)
103 /* #APP */
- 104 ; 164 "main.c" 1
+ 104 ; 183 "main.c" 1
105 0086 8093 5700 sts 87, r24
106 008a E895 spm
107
@@ -118,7 +118,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
112 .type fillFlashWithVectors, @function
113 fillFlashWithVectors:
114 008e CF93 push r28
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 3
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 3
115 0090 DF93 push r29
@@ -149,16 +149,16 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
140 /* prologue: naked */
141 /* frame size = 0 */
142 /* #APP */
- 143 ; 264 "main.c" 1
+ 143 ; 285 "main.c" 1
144 0000 00EB ldi r16, 0xB0
145 ; 0 "" 2
- 146 ; 265 "main.c" 1
+ 146 ; 286 "main.c" 1
147 0002 0F93 push r16
148 ; 0 "" 2
- 149 ; 266 "main.c" 1
+ 149 ; 287 "main.c" 1
150 0004 07E0 ldi r16, 0x07
151 ; 0 "" 2
- 152 ; 267 "main.c" 1
+ 152 ; 288 "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//ccd49vnP.s page
163 /* frame size = 0 */
164 00b4 88E1 ldi r24,lo8(24)
165 /* #APP */
- 166 ; 334 "main.c" 1
+ 166 ; 358 "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//ccd49vnP.s page 4
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 4
172
@@ -187,26 +187,26 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
175 00c0 E0E0 ldi r30,lo8(0)
176 00c2 F0E0 ldi r31,hi8(0)
177 /* #APP */
- 178 ; 285 "main.c" 1
+ 178 ; 306 "main.c" 1
179 00c4 8591 lpm r24, Z+
180 00c6 9491 lpm r25, Z
181
182 ; 0 "" 2
183 /* #NOAPP */
- 184 00c8 8F59 subi r24,lo8(-13409)
- 185 00ca 9B4C sbci r25,hi8(-13409)
+ 184 00c8 8F5B subi r24,lo8(-13377)
+ 185 00ca 9B4C sbci r25,hi8(-13377)
186 00cc 01F4 brne .L16
187 00ce E4E0 ldi r30,lo8(4)
188 00d0 F0E0 ldi r31,hi8(4)
189 /* #APP */
- 190 ; 286 "main.c" 1
+ 190 ; 307 "main.c" 1
191 00d2 8591 lpm r24, Z+
192 00d4 9491 lpm r25, Z
193
194 ; 0 "" 2
195 /* #NOAPP */
- 196 00d6 8F59 subi r24,lo8(-13409)
- 197 00d8 9B4C sbci r25,hi8(-13409)
+ 196 00d6 8F5B subi r24,lo8(-13377)
+ 197 00d8 9B4C sbci r25,hi8(-13377)
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//ccd49vnP.s page
221 00fe 01F4 brne .L18
222 0100 BB98 cbi 55-32,3
223 /* #APP */
- 224 ; 278 "main.c" 1
+ 224 ; 299 "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//ccd49vnP.s page 5
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 5
229 0106 FF24 clr r15
@@ -298,7 +298,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.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//ccd49vnP.s page 6
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 6
286 018a 00C0 rjmp .L76
@@ -358,7 +358,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
340 01f4 20E0 ldi r18,lo8(0)
341 .L34:
342 01f6 80E4 ldi r24,lo8(64)
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 7
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 7
343 01f8 8093 0000 sts usbMsgFlags,r24
@@ -418,7 +418,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
397 .L46:
398 025e 8091 0000 lds r24,currentAddress
399 0262 9091 0000 lds r25,(currentAddress)+1
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 8
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 8
400 0266 0097 sbiw r24,0
@@ -438,12 +438,12 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
414 0286 8093 0000 sts vectorTemp+2,r24
415 028a 00C0 rjmp .L43
416 .L44:
- 417 028c 8A53 subi r24,lo8(5946)
- 418 028e 9741 sbci r25,hi8(5946)
+ 417 028c 8A57 subi r24,lo8(6010)
+ 418 028e 9741 sbci r25,hi8(6010)
419 0290 00F0 brlo .L43
420 0292 81E1 ldi r24,lo8(17)
421 /* #APP */
- 422 ; 241 "main.c" 1
+ 422 ; 262 "main.c" 1
423 0294 8093 5700 sts 87, r24
424 0298 E895 spm
425
@@ -478,7 +478,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
454 02d4 182F mov r17,r24
455 02d6 8930 cpi r24,lo8(9)
456 02d8 00F0 brlo .L48
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 9
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 9
457 02da 18E0 ldi r17,lo8(8)
@@ -538,7 +538,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
511 0340 6093 0000 sts usbTxLen,r22
512 .L47:
513 0344 94E1 ldi r25,lo8(20)
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 10
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 10
514 .L56:
@@ -597,21 +597,21 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
567 0394 80FF sbrs r24,0
568 0396 00C0 rjmp .L62
569 /* #APP */
- 570 ; 115 "main.c" 1
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 11
+ 570 ; 130 "main.c" 1
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 11
571 0398 F894 cli
572 ; 0 "" 2
573 /* #NOAPP */
- 574 039a E0E4 ldi r30,lo8(5952)
- 575 039c F7E1 ldi r31,hi8(5952)
+ 574 039a E0E8 ldi r30,lo8(6016)
+ 575 039c F7E1 ldi r31,hi8(6016)
576 .L64:
577 039e E054 subi r30,lo8(-(-64))
578 03a0 F040 sbci r31,hi8(-(-64))
579 03a2 83E0 ldi r24,lo8(3)
580 /* #APP */
- 581 ; 119 "main.c" 1
+ 581 ; 134 "main.c" 1
582 03a4 8093 5700 sts 87, r24
583 03a8 E895 spm
584
@@ -627,7 +627,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
594 03b8 1092 0000 sts currentAddress,__zero_reg__
595 03bc 00D0 rcall fillFlashWithVectors
596 /* #APP */
- 597 ; 124 "main.c" 1
+ 597 ; 139 "main.c" 1
598 03be 7894 sei
599 ; 0 "" 2
600 /* #NOAPP */
@@ -658,7 +658,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
625 03e6 8091 0000 lds r24,didWriteSomething
626 03ea 8823 tst r24
627 03ec 01F4 brne .L68
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 12
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 12
628 03ee 00C0 rjmp .L69
@@ -667,8 +667,8 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
631 .L68:
632 03f2 8091 0000 lds r24,currentAddress
633 03f6 9091 0000 lds r25,(currentAddress)+1
- 634 03fa 8054 subi r24,lo8(5952)
- 635 03fc 9741 sbci r25,hi8(5952)
+ 634 03fa 8058 subi r24,lo8(6016)
+ 635 03fc 9741 sbci r25,hi8(6016)
636 03fe 00F0 brlo .L70
637 .L69:
638 0400 82E2 ldi r24,lo8(-24286)
@@ -690,7 +690,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
654 0418 00C0 rjmp .L72
655 .L71:
656 /* #APP */
- 657 ; 318 "main.c" 1
+ 657 ; 342 "main.c" 1
658 041a F894 cli
659 ; 0 "" 2
660 /* #NOAPP */
@@ -699,7 +699,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
663 0420 1092 5F02 sts 607,__zero_reg__
664 0424 1092 5E02 sts 606,__zero_reg__
665 /* #APP */
- 666 ; 327 "main.c" 1
+ 666 ; 351 "main.c" 1
667 0428 00C0 rjmp __vectors - 4
668 ; 0 "" 2
669 /* epilogue start */
@@ -718,7 +718,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
682 .size usbDescriptorString0, 4
683 usbDescriptorString0:
684 0000 04 .byte 4
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 13
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 13
685 0001 03 .byte 3
@@ -778,11 +778,11 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
739 .type replyBuffer.1675, @object
740 .size replyBuffer.1675, 4
741 replyBuffer.1675:
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 14
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 14
742 0002 17 .byte 23
- 743 0003 3A .byte 58
+ 743 0003 7A .byte 122
744 0004 40 .byte 64
745 0005 08 .byte 8
746 .lcomm wasReset.1562,1
@@ -802,44 +802,44 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page
760 .comm usbTxBuf,11,1
761 .global __do_copy_data
762 .global __do_clear_bss
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s page 15
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s page 15
DEFINED SYMBOLS
*ABS*:00000000 main.c
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:2 *ABS*:0000003f __SREG__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:3 *ABS*:0000003e __SP_H__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:4 *ABS*:0000003d __SP_L__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:5 *ABS*:00000034 __CCP__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:6 *ABS*:00000000 __tmp_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:7 *ABS*:00000001 __zero_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:10 .text:00000000 writeFlashPage
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:732 .bss:00000001 didWriteSomething
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:749 .bss:00000009 currentAddress
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:44 .text:00000024 writeWordToPageBuffer
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:748 .bss:00000005 vectorTemp
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:113 .text:0000008e fillFlashWithVectors
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:139 .init3:00000000 PushMagicWord
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:161 .text:000000b4 main
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:2 *ABS*:0000003f __SREG__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:3 *ABS*:0000003e __SP_H__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:4 *ABS*:0000003d __SP_L__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:5 *ABS*:00000034 __CCP__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:6 *ABS*:00000000 __tmp_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:7 *ABS*:00000001 __zero_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:10 .text:00000000 writeFlashPage
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:732 .bss:00000001 didWriteSomething
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:749 .bss:00000009 currentAddress
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:44 .text:00000024 writeWordToPageBuffer
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:748 .bss:00000005 vectorTemp
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:113 .text:0000008e fillFlashWithVectors
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:139 .init3:00000000 PushMagicWord
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.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//ccd49vnP.s:677 .data:00000000 usbTxLen
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:746 .bss:00000003 usbMsgFlags
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:741 .data:00000002 replyBuffer.1675
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:677 .data:00000000 usbTxLen
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:746 .bss:00000003 usbMsgFlags
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:741 .data:00000002 replyBuffer.1675
*COM*:00000002 usbMsgPtr
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:747 .bss:00000004 writeLength
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:747 .bss:00000004 writeLength
.bss:00000000 events
*COM*:00000001 usbNewDeviceAddr
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:691 .progmem.data:00000004 usbDescriptorDevice
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:713 .progmem.data:00000016 usbDescriptorConfiguration
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:683 .progmem.data:00000000 usbDescriptorString0
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:691 .progmem.data:00000004 usbDescriptorDevice
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:713 .progmem.data:00000016 usbDescriptorConfiguration
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:683 .progmem.data:00000000 usbDescriptorString0
*COM*:00000001 usbConfiguration
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:737 .data:00000001 usbMsgLen
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:737 .data:00000001 usbMsgLen
*COM*:00000001 usbDeviceAddr
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccd49vnP.s:733 .bss:00000002 wasReset.1562
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccCkcFzM.s:733 .bss:00000002 wasReset.1562
*COM*:00000001 usbCurrentTok
UNDEFINED SYMBOLS
diff --git a/firmware/main.hex b/firmware/main.hex
index ccefa38..6938e3b 100644
--- a/firmware/main.hex
+++ b/firmware/main.hex
@@ -1,136 +1,136 @@
-:1017400022C040C06CC03EC03DC03CC03BC03AC09F
-:1017500039C038C037C036C035C034C033C00403C8
-:10176000090412011001FF000008D01653070201FE
-:10177000000000010902120001010080320904008A
-:1017800000000000000011241FBECFE5D2E0DEBF44
-:10179000CDBF00EB0F9307E00F9310E0A0E6B0E0A1
-:1017A000E6E8FFE102C005900D92A636B107D9F731
-:1017B00010E0A6E6B0E001C01D92AB39B107E1F739
-:1017C000E6D1DFC3BDCFA82FB92F80E090E041E084
-:1017D00050EA609530E009C02D9182279795879552
-:1017E00010F084279527305EC8F36F5FA8F3089543
-:1017F000EADF8D939D930895A6E088279927AA95FF
-:1018000069F00197E1F3B399FCCFB39BFECF81E080
-:101810009927A6B3019611F0A871D9F70895CF932F
-:10182000CFB7CF93C0915F02C03B21F4C0915E025D
-:10183000C73021F0CF91CFBFCF9181CFCC27C395B7
-:10184000B39BE9F7B39B0BC0B39B09C0B39B07C025
-:10185000B39B05C0B39B03C0B39B01C0D3C00F9221
-:10186000DF93C0917E00DD27CB57DF4F012EB39B66
-:1018700003C0DF910F90E6CF2F930F931F934F93E9
-:101880002FEF4F6F06B303FB20F95F933F9350E0B8
-:101890003BE065C016B30126502953FDC89556B3E9
-:1018A000012703FB25F92F7306B3B1F0502710274A
-:1018B00013FB26F906B22230F0F000C016B3012760
-:1018C00003FB27F90126502906B22430E8F54F77AB
-:1018D000206816B30000F6CF50274F7D206206B275
-:1018E000102F000000C006B300265029102713FB5C
-:1018F00026F906B2E2CF4F7B06B3206400C0DACFF0
-:1019000001265029187106B269F14E7F2160012F1E
-:1019100016B328C0002650294D7F06B22260102F32
-:1019200029C0012650294B7F06B22460012F2DC00B
-:1019300016B301265029477F2860000006B22EC04A
-:101940004F7E06B3206130C0422706B3499300267C
-:101950005029102706B24FEF13FB20F9297F16B349
-:1019600079F2187159F10126502906B2012703FBBB
-:1019700021F9237F06B371F2002650293150D0F0AF
-:1019800006B2102713FB22F9277E16B351F2012667
-:101990005029012703FB06B223F92F7C49F20000EE
-:1019A00006B3102713FB24F90026502906B22F791D
-:1019B00039F270CF10E21ABF002717C03B503195A3
-:1019C000C31BD04010E21ABF0881033CF9F00B346E
-:1019D000E9F020917C001981110F1213EDCF093627
-:1019E00051F10D3211F0013E39F7009383003F9120
-:1019F0005F914F911F910F912F91DF910F90CAB777
-:101A0000C5FD1DCFCF91CFBFCF91189520918300F9
-:101A1000222369F310918100112321F5343022F142
-:101A20003093810020937D0010917E003BE0311BBC
-:101A300030937E0019C00091810001309CF40AE5CA
-:101A40003091600034FD11C000936000C1E7D0E028
-:101A500010C0052710E000C021C0052710E0C89580
-:101A600008BB14C03AE501C032ED032EC0E0D0E05F
-:101A700032E017B31861C39A08B317BB58E120E8E6
-:101A80004FEF20FF052708BB279517951C3F28F728
-:101A900000004552B0F720FF0527279508BB179592
-:101AA0001C3FB8F629913A9561F7077E10918200A4
-:101AB000110F08BBC250D04011F010937C0010E20F
-:101AC0001ABF086017B3177E402F477E54E05A951F
-:101AD000F1F708BB17BB48BB8ACF81E08093670052
-:101AE000F894E0916F00F0917000329785E0809358
-:101AF0005700E89507B600FCFDCF789408959C0147
-:101B0000E0916F00F0917000309749F1E430F105F9
-:101B1000B1F087E1EC33F80739F420916B00309194
-:101B20006C002E593B4F0DC087E1EE33F80749F4A6
-:101B300020916D0030916E002D593B4F02C02FE96E
-:101B40003BECF89481E0090180935700E89511245B
-:101B500078943296F0937000E0936F00089581E1DD
-:101B600080935700E895EBCFCF93DF93C0916F0040
-:101B7000D0917000CF73D0708FEF9FEFC0DF2296AF
-:101B8000C034D105CCF3A9DFDF91CF91089588E16E
-:101B90000FB6F89481BD11BC0FBEE0E0F0E0859176
-:101BA00094918F599B4C39F4E4E0F0E08591949145
-:101BB0008F599B4C09F0D8DF1092700010926F0083
-:101BC000AC9A8BB780628BBFBB9A88E893E1ECE953
-:101BD000F1E03197F1F70197D1F7BB987894EE24B3
-:101BE000FF2410918100135017FDD9C080917E0011
-:101BF000CCE0D0E0C81BD109CB57DF4F80917D00EE
-:101C00008D3209F090C0183009F0C7C083EC809382
-:101C100071008AE580936000109269002881822F0C
-:101C200080769981882321F1992341F482E690E01E
-:101C30009093800080937F0024E06BC0913069F422
-:101C40008A8180936A008C819D819093700080933B
-:101C50006F0027FD59C09FEF58C0809166009230F9
-:101C600011F4816001C084608093660020E051C05F
-:101C70008A8110927A00992331F410927B008AE7CE
-:101C800090E022E03CC0953019F48093820034C08B
-:101C9000963011F58B81813019F482E697E104C00A
-:101CA000823041F484E797E19093800080937F0035
-:101CB00022E10EC0833059F48A81882341F48EE5F5
-:101CC00097E19093800080937F0024E001C020E0A2
-:101CD00080E4809369001DC0983019F484E890E096
-:101CE00009C0993019F48093840006C09A3021F419
-:101CF0008AE790E021E003C08AE790E020E090933B
-:101D0000800080937F0005C09E8180E880936900F9
-:101D100007C08F81882319F49E81921708F0922FB3
-:101D2000909361003AC08091690087FF36C080912E
-:101D30006A00811B80936A0080916F00909170000F
-:101D4000009739F48881998190936C0080936B009F
-:101D500012C08430910539F48881998190936E0086
-:101D600080936D0008C08A53974128F081E18093E9
-:101D70005700E89507C088819981C1DE125011F0A3
-:101D80002296DACF80916A00882339F48091660028
-:101D900082608093660010926100109281008091B1
-:101DA000600084FF3CC0809161008F3FC1F1182F1B
-:101DB000893008F018E0811B8093610080917100E8
-:101DC00098E88927809371001123E1F0E0917F006A
-:101DD000F09180008091690086FF09C0912FA2E7F1
-:101DE000B0E084918D9331969150D9F707C0912F2F
-:101DF000A2E7B0E081918D939150E1F7F0938000DC
-:101E0000E0937F0082E790E0612FF2DC612F6C5F4E
-:101E10006C3019F08FEF809361006093600094E163
-:101E200086B3887131F49150D9F7109282001092E4
-:101E30007C0010E0992309F411E08091680081177B
-:101E400039F0112319F4F8945DD078941093680058
-:101E50008CE991E00197F1F780916600882319F0F1
-:101E6000EE24FF2403C00894E11CF11C182F80FF0E
-:101E700014C0F894E0E4F7E1E054F04083E080938C
-:101E80005700E89507B600FCFDCF3097A9F71092F0
-:101E9000700010926F0068DE789411FF0FC08AE323
-:101EA00090E20197F1F780916F00909170008F732D
-:101EB0009070892B11F058DE01C00FDE12FF12C0A6
-:101EC00080916700882311F408C04EDE80916F0076
-:101ED0009091700080549741C0F382E291EA01979B
-:101EE000F1F708C01092660080E5E81683ECF8066A
-:101EF00008F477CEF8941BBE15BA10925F021092C8
-:101F00005E021CCCFF920F931F93CF93DF9380E868
-:101F1000F82E00E0C0E0D0E0102F1F0D11BF6CDCE8
-:101F200029E0843392070CF0102FF6942196C830E4
-:101F3000D10511F0012FF0CF115011BF1F5F012FFC
-:101F4000EC0110C059DC8453994097FF03C0909571
-:101F500081959F4F8C179D0714F401B7EC0181B751
-:101F60008F5F81BF21B730E0812F90E0019682170B
-:101F7000930744F701BFDF91CF911F910F91FF901D
-:061F80000895F894FFCF64
-:061F86005AFF173A400863
-:0400000300001740A2
+:1017800022C040C06CC03EC03DC03CC03BC03AC05F
+:1017900039C038C037C036C035C034C033C0040388
+:1017A000090412011001FF000008D01653070201BE
+:1017B000000000010902120001010080320904004A
+:1017C00000000000000011241FBECFE5D2E0DEBF04
+:1017D000CDBF00EB0F9307E00F9310E0A0E6B0E061
+:1017E000E6ECFFE102C005900D92A636B107D9F7ED
+:1017F00010E0A6E6B0E001C01D92AB39B107E1F7F9
+:10180000E6D1DFC3BDCFA82FB92F80E090E041E043
+:1018100050EA609530E009C02D9182279795879511
+:1018200010F084279527305EC8F36F5FA8F3089502
+:10183000EADF8D939D930895A6E088279927AA95BE
+:1018400069F00197E1F3B399FCCFB39BFECF81E040
+:101850009927A6B3019611F0A871D9F70895CF93EF
+:10186000CFB7CF93C0915F02C03B21F4C0915E021D
+:10187000C73021F0CF91CFBFCF9181CFCC27C39577
+:10188000B39BE9F7B39B0BC0B39B09C0B39B07C0E5
+:10189000B39B05C0B39B03C0B39B01C0D3C00F92E1
+:1018A000DF93C0917E00DD27CB57DF4F012EB39B26
+:1018B00003C0DF910F90E6CF2F930F931F934F93A9
+:1018C0002FEF4F6F06B303FB20F95F933F9350E078
+:1018D0003BE065C016B30126502953FDC89556B3A9
+:1018E000012703FB25F92F7306B3B1F0502710270A
+:1018F00013FB26F906B22230F0F000C016B3012720
+:1019000003FB27F90126502906B22430E8F54F776A
+:10191000206816B30000F6CF50274F7D206206B234
+:10192000102F000000C006B300265029102713FB1B
+:1019300026F906B2E2CF4F7B06B3206400C0DACFAF
+:1019400001265029187106B269F14E7F2160012FDE
+:1019500016B328C0002650294D7F06B22260102FF2
+:1019600029C0012650294B7F06B22460012F2DC0CB
+:1019700016B301265029477F2860000006B22EC00A
+:101980004F7E06B3206130C0422706B3499300263C
+:101990005029102706B24FEF13FB20F9297F16B309
+:1019A00079F2187159F10126502906B2012703FB7B
+:1019B00021F9237F06B371F2002650293150D0F06F
+:1019C00006B2102713FB22F9277E16B351F2012627
+:1019D0005029012703FB06B223F92F7C49F20000AE
+:1019E00006B3102713FB24F90026502906B22F79DD
+:1019F00039F270CF10E21ABF002717C03B50319563
+:101A0000C31BD04010E21ABF0881033CF9F00B342D
+:101A1000E9F020917C001981110F1213EDCF0936E6
+:101A200051F10D3211F0013E39F7009383003F91DF
+:101A30005F914F911F910F912F91DF910F90CAB736
+:101A4000C5FD1DCFCF91CFBFCF91189520918300B9
+:101A5000222369F310918100112321F5343022F102
+:101A60003093810020937D0010917E003BE0311B7C
+:101A700030937E0019C00091810001309CF40AE58A
+:101A80003091600034FD11C000936000C1E7D0E0E8
+:101A900010C0052710E000C021C0052710E0C89540
+:101AA00008BB14C03AE501C032ED032EC0E0D0E01F
+:101AB00032E017B31861C39A08B317BB58E120E8A6
+:101AC0004FEF20FF052708BB279517951C3F28F7E8
+:101AD00000004552B0F720FF0527279508BB179552
+:101AE0001C3FB8F629913A9561F7077E1091820064
+:101AF000110F08BBC250D04011F010937C0010E2CF
+:101B00001ABF086017B3177E402F477E54E05A95DE
+:101B1000F1F708BB17BB48BB8ACF81E08093670011
+:101B2000F894E0916F00F0917000329785E0809317
+:101B30005700E89507B600FCFDCF789408959C0106
+:101B4000E0916F00F0917000309749F1E430F105B9
+:101B5000B1F087E1EC37F80739F420916B00309150
+:101B60006C002E5B3B4F0DC087E1EE37F80749F460
+:101B700020916D0030916E002D5B3B4F02C02FEB2A
+:101B80003BECF89481E0090180935700E89511241B
+:101B900078943296F0937000E0936F00089581E19D
+:101BA00080935700E895EBCFCF93DF93C0916F0000
+:101BB000D0917000CF73D0708FEF9FEFC0DF22966F
+:101BC000C034D105CCF3A9DFDF91CF91089588E12E
+:101BD0000FB6F89481BD11BC0FBEE0E0F0E0859136
+:101BE00094918F5B9B4C39F4E4E0F0E08591949103
+:101BF0008F5B9B4C09F0D8DF1092700010926F0041
+:101C0000AC9A8BB780628BBFBB9A88E893E1ECE912
+:101C1000F1E03197F1F70197D1F7BB987894EE2472
+:101C2000FF2410918100135017FDD9C080917E00D0
+:101C3000CCE0D0E0C81BD109CB57DF4F80917D00AD
+:101C40008D3209F090C0183009F0C7C083EC809342
+:101C500071008AE580936000109269002881822FCC
+:101C600080769981882321F1992341F482E690E0DE
+:101C70009093800080937F0024E06BC0913069F4E2
+:101C80008A8180936A008C819D81909370008093FB
+:101C90006F0027FD59C09FEF58C0809166009230B9
+:101CA00011F4816001C084608093660020E051C01F
+:101CB0008A8110927A00992331F410927B008AE78E
+:101CC00090E022E03CC0953019F48093820034C04B
+:101CD000963011F58B81813019F482EA97E104C0C6
+:101CE000823041F484EB97E19093800080937F00F1
+:101CF00022E10EC0833059F48A81882341F48EE9B1
+:101D000097E19093800080937F0024E001C020E061
+:101D100080E4809369001DC0983019F484E890E055
+:101D200009C0993019F48093840006C09A3021F4D8
+:101D30008AE790E021E003C08AE790E020E09093FA
+:101D4000800080937F0005C09E8180E880936900B9
+:101D500007C08F81882319F49E81921708F0922F73
+:101D6000909361003AC08091690087FF36C08091EE
+:101D70006A00811B80936A0080916F0090917000CF
+:101D8000009739F48881998190936C0080936B005F
+:101D900012C08430910539F48881998190936E0046
+:101DA00080936D0008C08A57974128F081E18093A5
+:101DB0005700E89507C088819981C1DE125011F063
+:101DC0002296DACF80916A00882339F480916600E8
+:101DD0008260809366001092610010928100809171
+:101DE000600084FF3CC0809161008F3FC1F1182FDB
+:101DF000893008F018E0811B8093610080917100A8
+:101E000098E88927809371001123E1F0E0917F0029
+:101E1000F09180008091690086FF09C0912FA2E7B0
+:101E2000B0E084918D9331969150D9F707C0912FEE
+:101E3000A2E7B0E081918D939150E1F7F09380009B
+:101E4000E0937F0082E790E0612FF2DC612F6C5F0E
+:101E50006C3019F08FEF809361006093600094E123
+:101E600086B3887131F49150D9F7109282001092A4
+:101E70007C0010E0992309F411E08091680081173B
+:101E800039F0112319F4F8945DD078941093680018
+:101E90008CE991E00197F1F780916600882319F0B1
+:101EA000EE24FF2403C00894E11CF11C182F80FFCE
+:101EB00014C0F894E0E8F7E1E054F04083E0809348
+:101EC0005700E89507B600FCFDCF3097A9F71092B0
+:101ED000700010926F0068DE789411FF0FC08AE3E3
+:101EE00090E20197F1F780916F00909170008F73ED
+:101EF0009070892B11F058DE01C00FDE12FF12C066
+:101F000080916700882311F408C04EDE80916F0035
+:101F10009091700080589741C0F382E291EA019756
+:101F2000F1F708C01092660080E5E81683ECF80629
+:101F300008F477CEF8941BBE15BA10925F02109287
+:101F40005E021CCCFF920F931F93CF93DF9380E828
+:101F5000F82E00E0C0E0D0E0102F1F0D11BF6CDCA8
+:101F600029E0843392070CF0102FF6942196C830A4
+:101F7000D10511F0012FF0CF115011BF1F5F012FBC
+:101F8000EC0110C059DC8453994097FF03C0909531
+:101F900081959F4F8C179D0714F401B7EC0181B711
+:101FA0008F5F81BF21B730E0812F90E001968217CB
+:101FB000930744F701BFDF91CF911F910F91FF90DD
+:061FC0000895F894FFCF24
+:061FC6005AFF177A4008E3
+:040000030000178062
:00000001FF
diff --git a/firmware/main.map b/firmware/main.map
index 59b6163..eb790ae 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 0x1740
+Address of section .text set to 0x1780
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,54 +158,54 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a
.rela.plt
*(.rela.plt)
-.text 0x00001740 0x846
+.text 0x00001780 0x846
*(.vectors)
- .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 0x00001780 0x1e /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o
+ 0x00001780 __vectors
+ 0x00001780 __vector_default
*(.vectors)
*(.progmem.gcc*)
*(.progmem*)
- .progmem.data 0x0000175e 0x28 main.o
- 0x00001762 usbDescriptorDevice
- 0x0000175e usbDescriptorString0
- 0x00001774 usbDescriptorConfiguration
- 0x00001786 . = ALIGN (0x2)
- 0x00001786 __trampolines_start = .
+ .progmem.data 0x0000179e 0x28 main.o
+ 0x000017a2 usbDescriptorDevice
+ 0x0000179e usbDescriptorString0
+ 0x000017b4 usbDescriptorConfiguration
+ 0x000017c6 . = ALIGN (0x2)
+ 0x000017c6 __trampolines_start = .
*(.trampolines)
- .trampolines 0x00001786 0x0 linker stubs
+ .trampolines 0x000017c6 0x0 linker stubs
*(.trampolines*)
- 0x00001786 __trampolines_end = .
+ 0x000017c6 __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
- 0x00001786 __ctors_start = .
+ 0x000017c6 __ctors_start = .
*(.ctors)
- 0x00001786 __ctors_end = .
- 0x00001786 __dtors_start = .
+ 0x000017c6 __ctors_end = .
+ 0x000017c6 __dtors_start = .
*(.dtors)
- 0x00001786 __dtors_end = .
+ 0x000017c6 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
- .init0 0x00001786 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o
- 0x00001786 __init
+ .init0 0x000017c6 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o
+ 0x000017c6 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
- .init2 0x00001786 0xc /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o
+ .init2 0x000017c6 0xc /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o
*(.init2)
*(.init3)
- .init3 0x00001792 0x8 main.o
- 0x00001792 PushMagicWord
+ .init3 0x000017d2 0x8 main.o
+ 0x000017d2 PushMagicWord
*(.init3)
*(.init4)
- .init4 0x0000179a 0x16 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_copy_data.o)
- 0x0000179a __do_copy_data
- .init4 0x000017b0 0x10 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_clear_bss.o)
- 0x000017b0 __do_clear_bss
+ .init4 0x000017da 0x16 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_copy_data.o)
+ 0x000017da __do_copy_data
+ .init4 0x000017f0 0x10 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_clear_bss.o)
+ 0x000017f0 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
@@ -216,40 +216,40 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a
*(.init8)
*(.init8)
*(.init9)
- .init9 0x000017c0 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o
+ .init9 0x00001800 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o
*(.init9)
*(.text)
- .text 0x000017c4 0x2 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o
- 0x000017c4 __vector_1
- 0x000017c4 __vector_12
- 0x000017c4 __bad_interrupt
- 0x000017c4 __vector_6
- 0x000017c4 __vector_3
- 0x000017c4 __vector_11
- 0x000017c4 __vector_13
- 0x000017c4 __vector_7
- 0x000017c4 __vector_5
- 0x000017c4 __vector_4
- 0x000017c4 __vector_9
- 0x000017c4 __vector_8
- 0x000017c4 __vector_14
- 0x000017c4 __vector_10
- .text 0x000017c6 0x314 usbdrv/usbdrvasm.o
- 0x000017c6 usbCrc16
- 0x000017f0 usbCrc16Append
- 0x0000181e __vector_2
- 0x000017f8 usbMeasureFrameLength
- .text 0x00001ada 0x42a main.o
- 0x00001b8e main
- .text 0x00001f04 0x7e libs-device/osccal.o
- 0x00001f04 calibrateOscillator
- 0x00001f82 . = ALIGN (0x2)
+ .text 0x00001804 0x2 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/lib/avr25/crttn85.o
+ 0x00001804 __vector_1
+ 0x00001804 __vector_12
+ 0x00001804 __bad_interrupt
+ 0x00001804 __vector_6
+ 0x00001804 __vector_3
+ 0x00001804 __vector_11
+ 0x00001804 __vector_13
+ 0x00001804 __vector_7
+ 0x00001804 __vector_5
+ 0x00001804 __vector_4
+ 0x00001804 __vector_9
+ 0x00001804 __vector_8
+ 0x00001804 __vector_14
+ 0x00001804 __vector_10
+ .text 0x00001806 0x314 usbdrv/usbdrvasm.o
+ 0x00001806 usbCrc16
+ 0x00001830 usbCrc16Append
+ 0x0000185e __vector_2
+ 0x00001838 usbMeasureFrameLength
+ .text 0x00001b1a 0x42a main.o
+ 0x00001bce main
+ .text 0x00001f44 0x7e libs-device/osccal.o
+ 0x00001f44 calibrateOscillator
+ 0x00001fc2 . = ALIGN (0x2)
*(.text.*)
- 0x00001f82 . = ALIGN (0x2)
+ 0x00001fc2 . = ALIGN (0x2)
*(.fini9)
- .fini9 0x00001f82 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o)
- 0x00001f82 exit
- 0x00001f82 _exit
+ .fini9 0x00001fc2 0x0 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o)
+ 0x00001fc2 exit
+ 0x00001fc2 _exit
*(.fini9)
*(.fini8)
*(.fini8)
@@ -268,11 +268,11 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a
*(.fini1)
*(.fini1)
*(.fini0)
- .fini0 0x00001f82 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o)
+ .fini0 0x00001fc2 0x4 /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a(_exit.o)
*(.fini0)
- 0x00001f86 _etext = .
+ 0x00001fc6 _etext = .
-.data 0x00800060 0x6 load address 0x00001f86
+.data 0x00800060 0x6 load address 0x00001fc6
0x00800060 PROVIDE (__data_start, .)
*(.data)
.data 0x00800060 0x6 main.o
@@ -303,8 +303,8 @@ LOAD /usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/avr25/libgcc.a
0x00800084 usbConfiguration
0x00800085 usbRxBuf
0x0080009b PROVIDE (__bss_end, .)
- 0x00001f86 __data_load_start = LOADADDR (.data)
- 0x00001f8c __data_load_end = (__data_load_start + SIZEOF (.data))
+ 0x00001fc6 __data_load_start = LOADADDR (.data)
+ 0x00001fcc __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 d83c0c8..e47293c 100644
--- a/firmware/main.o
+++ b/firmware/main.o
Binary files differ
diff --git a/firmware/temp-dump.bin b/firmware/temp-dump.bin
new file mode 100644
index 0000000..b8e91ed
--- /dev/null
+++ b/firmware/temp-dump.bin
Binary files differ
diff --git a/firmware/usbdrv/oddebug.c.lst b/firmware/usbdrv/oddebug.c.lst
index ba3d513..1c6aa7f 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//ccTJJzqV.s page 1
+GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccHnibUv.s page 1
1 .file "oddebug.c"
@@ -8,16 +8,16 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s page
5 __CCP__ = 0x34
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s page 2
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccHnibUv.s page 2
DEFINED SYMBOLS
*ABS*:00000000 oddebug.c
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s:2 *ABS*:0000003f __SREG__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s:3 *ABS*:0000003e __SP_H__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s:4 *ABS*:0000003d __SP_L__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s:5 *ABS*:00000034 __CCP__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s:6 *ABS*:00000000 __tmp_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccTJJzqV.s:7 *ABS*:00000001 __zero_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccHnibUv.s:2 *ABS*:0000003f __SREG__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccHnibUv.s:3 *ABS*:0000003e __SP_H__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccHnibUv.s:4 *ABS*:0000003d __SP_L__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccHnibUv.s:5 *ABS*:00000034 __CCP__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccHnibUv.s:6 *ABS*:00000000 __tmp_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccHnibUv.s:7 *ABS*:00000001 __zero_reg__
NO UNDEFINED SYMBOLS