summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--firmware/libs-device/osccal.c.lst20
-rwxr-xr-xfirmware/main.binbin0 -> 8512 bytes
-rw-r--r--firmware/main.c.lst1253
-rw-r--r--firmware/main.hex139
-rw-r--r--firmware/main.map160
-rw-r--r--firmware/main.obin6096 -> 5992 bytes
-rw-r--r--firmware/usbdrv/oddebug.obin623 -> 0 bytes
-rw-r--r--firmware/usbdrv/usbdrvasm.obin4344 -> 4064 bytes
8 files changed, 846 insertions, 726 deletions
diff --git a/firmware/libs-device/osccal.c.lst b/firmware/libs-device/osccal.c.lst
index cc41e82..6f3dda5 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//ccXG9qzC.s page 1
+GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccedtz3p.s page 1
1 .file "osccal.c"
@@ -58,7 +58,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccXG9qzC.s page
55 0046 8C17 cp r24,r28
56 0048 9D07 cpc r25,r29
57 004a 04F4 brge .L6
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccXG9qzC.s page 2
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccedtz3p.s page 2
58 004c 01B7 in r16,81-32
@@ -85,18 +85,18 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccXG9qzC.s page
79 0070 FF90 pop r15
80 0072 0895 ret
81 .size calibrateOscillator, .-calibrateOscillator
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccXG9qzC.s page 3
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccedtz3p.s page 3
DEFINED SYMBOLS
*ABS*:00000000 osccal.c
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccXG9qzC.s:2 *ABS*:0000003f __SREG__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccXG9qzC.s:3 *ABS*:0000003e __SP_H__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccXG9qzC.s:4 *ABS*:0000003d __SP_L__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccXG9qzC.s:5 *ABS*:00000034 __CCP__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccXG9qzC.s:6 *ABS*:00000000 __tmp_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccXG9qzC.s:7 *ABS*:00000001 __zero_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccXG9qzC.s:11 .text:00000000 calibrateOscillator
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccedtz3p.s:2 *ABS*:0000003f __SREG__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccedtz3p.s:3 *ABS*:0000003e __SP_H__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccedtz3p.s:4 *ABS*:0000003d __SP_L__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccedtz3p.s:5 *ABS*:00000034 __CCP__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccedtz3p.s:6 *ABS*:00000000 __tmp_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccedtz3p.s:7 *ABS*:00000001 __zero_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccedtz3p.s:11 .text:00000000 calibrateOscillator
UNDEFINED SYMBOLS
usbMeasureFrameLength
diff --git a/firmware/main.bin b/firmware/main.bin
new file mode 100755
index 0000000..352ffea
--- /dev/null
+++ b/firmware/main.bin
Binary files differ
diff --git a/firmware/main.c.lst b/firmware/main.c.lst
index c1ffae2..83300d0 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//ccAhcRZ8.s page 1
+GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 1
1 .file "main.c"
@@ -58,7 +58,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page
55 002e 2430 cpi r18,4
56 0030 3105 cpc r19,__zero_reg__
57 0032 01F0 breq .L9
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 2
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 2
58 0034 44E1 ldi r20,hi8(5372)
@@ -118,7 +118,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page
112 008c 5907 cpc r21,r25
113 008e 01F0 breq .L8
114 0090 8FEF ldi r24,hi8(-1)
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 3
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 3
115 0092 4F3F cpi r20,lo8(-1)
@@ -178,7 +178,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page
169 /* prologue: naked */
170 /* frame size = 0 */
171 /* stack size = 0 */
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 4
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 4
172 .L__stack_usage = 0
@@ -238,7 +238,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page
226 0114 01F4 brne 1b
227 0116 00C0 rjmp .
228 0118 0000 nop
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 5
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 5
229 011a BB98 cbi 55-32,3
@@ -249,7 +249,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page
234 /* #NOAPP */
235 011e EE24 clr r14
236 0120 FF24 clr r15
- 237 .L64:
+ 237 .L60:
238 0122 8091 0000 lds r24,usbRxLen
239 0126 282F mov r18,r24
240 0128 2350 subi r18,lo8(-(-3))
@@ -295,20 +295,20 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page
280 0182 8091 0000 lds r24,events
281 0186 8460 ori r24,lo8(4)
282 0188 8093 0000 sts events,r24
- 283 018c 00C0 rjmp .L66
+ 283 018c 00C0 rjmp .L62
284 .L18:
285 018e 8130 cpi r24,lo8(1)
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 6
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 6
286 0190 01F0 breq .+2
- 287 0192 00C0 rjmp .L66
- 288 0194 80E0 ldi r24,lo8(replyBuffer.1886)
- 289 0196 90E0 ldi r25,hi8(replyBuffer.1886)
+ 287 0192 00C0 rjmp .L62
+ 288 0194 80E0 ldi r24,lo8(replyBuffer.1882)
+ 289 0196 90E0 ldi r25,hi8(replyBuffer.1882)
290 0198 9093 0000 sts usbMsgPtr+1,r25
291 019c 8093 0000 sts usbMsgPtr,r24
292 01a0 27E0 ldi r18,lo8(7)
- 293 01a2 00C0 rjmp .L65
+ 293 01a2 00C0 rjmp .L61
294 .L17:
295 01a4 9281 ldd r25,Z+2
296 01a6 1092 0000 sts usbTxBuf+9,__zero_reg__
@@ -323,649 +323,636 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page
305 01ba 8530 cpi r24,lo8(5)
306 01bc 01F4 brne .L25
307 01be 9093 0000 sts usbNewDeviceAddr,r25
- 308 01c2 00C0 rjmp .L73
+ 308 01c2 00C0 rjmp .L69
309 .L25:
310 01c4 8630 cpi r24,lo8(6)
- 311 01c6 01F4 brne .L26
- 312 01c8 8381 ldd r24,Z+3
- 313 01ca 8130 cpi r24,lo8(1)
- 314 01cc 01F4 brne .L27
- 315 01ce 80E0 ldi r24,lo8(usbDescriptorDevice)
- 316 01d0 90E0 ldi r25,hi8(usbDescriptorDevice)
- 317 01d2 00C0 rjmp .L72
- 318 .L27:
- 319 01d4 8230 cpi r24,lo8(2)
- 320 01d6 01F4 brne .L29
- 321 01d8 80E0 ldi r24,lo8(usbDescriptorConfiguration)
- 322 01da 90E0 ldi r25,hi8(usbDescriptorConfiguration)
- 323 .L72:
- 324 01dc 9093 0000 sts usbMsgPtr+1,r25
- 325 01e0 8093 0000 sts usbMsgPtr,r24
- 326 01e4 22E1 ldi r18,lo8(18)
- 327 01e6 00C0 rjmp .L28
+ 311 01c6 01F0 breq .+2
+ 312 01c8 00C0 rjmp .L26
+ 313 01ca 8381 ldd r24,Z+3
+ 314 01cc 8130 cpi r24,lo8(1)
+ 315 01ce 01F4 brne .L27
+ 316 01d0 80E0 ldi r24,lo8(usbDescriptorDevice)
+ 317 01d2 90E0 ldi r25,hi8(usbDescriptorDevice)
+ 318 01d4 00C0 rjmp .L68
+ 319 .L27:
+ 320 01d6 8230 cpi r24,lo8(2)
+ 321 01d8 01F4 brne .L29
+ 322 01da 80E0 ldi r24,lo8(usbDescriptorConfiguration)
+ 323 01dc 90E0 ldi r25,hi8(usbDescriptorConfiguration)
+ 324 01de 9093 0000 sts usbMsgPtr+1,r25
+ 325 01e2 8093 0000 sts usbMsgPtr,r24
+ 326 01e6 22E2 ldi r18,lo8(34)
+ 327 01e8 00C0 rjmp .L28
328 .L29:
- 329 01e8 8330 cpi r24,lo8(3)
- 330 01ea 01F4 brne .L68
- 331 01ec 9923 tst r25
- 332 01ee 01F4 brne .L30
- 333 01f0 80E0 ldi r24,lo8(usbDescriptorString0)
- 334 01f2 90E0 ldi r25,hi8(usbDescriptorString0)
- 335 01f4 9093 0000 sts usbMsgPtr+1,r25
- 336 01f8 8093 0000 sts usbMsgPtr,r24
- 337 01fc 24E0 ldi r18,lo8(4)
- 338 01fe 00C0 rjmp .L28
- 339 .L30:
- 340 0200 9130 cpi r25,lo8(1)
- 341 0202 01F4 brne .L31
- 342 0204 80E0 ldi r24,lo8(usbDescriptorStringVendor)
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 7
-
-
- 343 0206 90E0 ldi r25,hi8(usbDescriptorStringVendor)
- 344 0208 9093 0000 sts usbMsgPtr+1,r25
- 345 020c 8093 0000 sts usbMsgPtr,r24
- 346 0210 2CE1 ldi r18,lo8(28)
- 347 0212 00C0 rjmp .L28
- 348 .L31:
- 349 0214 9230 cpi r25,lo8(2)
- 350 0216 01F4 brne .L68
- 351 0218 80E0 ldi r24,lo8(usbDescriptorStringDevice)
- 352 021a 90E0 ldi r25,hi8(usbDescriptorStringDevice)
- 353 021c 9093 0000 sts usbMsgPtr+1,r25
- 354 0220 8093 0000 sts usbMsgPtr,r24
- 355 0224 2EE0 ldi r18,lo8(14)
- 356 0226 00C0 rjmp .L28
- 357 .L68:
- 358 0228 20E0 ldi r18,lo8(0)
- 359 .L28:
- 360 022a 80E4 ldi r24,lo8(64)
- 361 022c 8093 0000 sts usbMsgFlags,r24
- 362 0230 00C0 rjmp .L65
- 363 .L26:
- 364 0232 8830 cpi r24,lo8(8)
- 365 0234 01F0 breq .L69
- 366 0236 8930 cpi r24,lo8(9)
- 367 0238 01F4 brne .L33
- 368 023a 9093 0000 sts usbConfiguration,r25
- 369 023e 00C0 rjmp .L73
- 370 .L33:
- 371 0240 8A30 cpi r24,lo8(10)
- 372 0242 01F0 breq .L70
- 373 .L73:
- 374 0244 80E0 ldi r24,lo8(usbTxBuf+9)
- 375 0246 90E0 ldi r25,hi8(usbTxBuf+9)
- 376 0248 20E0 ldi r18,lo8(0)
- 377 024a 00C0 rjmp .L24
- 378 .L69:
- 379 024c 80E0 ldi r24,lo8(usbConfiguration)
- 380 024e 90E0 ldi r25,hi8(usbConfiguration)
- 381 0250 00C0 rjmp .L74
- 382 .L70:
- 383 0252 80E0 ldi r24,lo8(usbTxBuf+9)
- 384 0254 90E0 ldi r25,hi8(usbTxBuf+9)
- 385 .L74:
- 386 0256 21E0 ldi r18,lo8(1)
- 387 .L24:
- 388 0258 9093 0000 sts usbMsgPtr+1,r25
- 389 025c 8093 0000 sts usbMsgPtr,r24
- 390 0260 00C0 rjmp .L65
- 391 .L20:
- 392 0262 2681 ldd r18,Z+6
- 393 .L21:
- 394 0264 80E8 ldi r24,lo8(-128)
- 395 0266 8093 0000 sts usbMsgFlags,r24
- 396 026a 00C0 rjmp .L34
+ 329 01ea 8330 cpi r24,lo8(3)
+ 330 01ec 01F4 brne .L30
+ 331 01ee 9923 tst r25
+ 332 01f0 01F4 brne .L31
+ 333 01f2 80E0 ldi r24,lo8(usbDescriptorString0)
+ 334 01f4 90E0 ldi r25,hi8(usbDescriptorString0)
+ 335 01f6 9093 0000 sts usbMsgPtr+1,r25
+ 336 01fa 8093 0000 sts usbMsgPtr,r24
+ 337 01fe 24E0 ldi r18,lo8(4)
+ 338 0200 00C0 rjmp .L28
+ 339 .L31:
+ 340 0202 9130 cpi r25,lo8(1)
+ 341 0204 01F4 brne .L32
+ 342 0206 80E0 ldi r24,lo8(usbDescriptorStringVendor)
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 7
+
+
+ 343 0208 90E0 ldi r25,hi8(usbDescriptorStringVendor)
+ 344 .L68:
+ 345 020a 9093 0000 sts usbMsgPtr+1,r25
+ 346 020e 8093 0000 sts usbMsgPtr,r24
+ 347 0212 22E1 ldi r18,lo8(18)
+ 348 0214 00C0 rjmp .L28
+ 349 .L32:
+ 350 0216 9230 cpi r25,lo8(2)
+ 351 0218 01F4 brne .L64
+ 352 021a 80E0 ldi r24,lo8(usbDescriptorStringDevice)
+ 353 021c 90E0 ldi r25,hi8(usbDescriptorStringDevice)
+ 354 021e 9093 0000 sts usbMsgPtr+1,r25
+ 355 0222 8093 0000 sts usbMsgPtr,r24
+ 356 0226 20E1 ldi r18,lo8(16)
+ 357 0228 00C0 rjmp .L28
+ 358 .L30:
+ 359 022a 8132 cpi r24,lo8(33)
+ 360 022c 01F4 brne .L33
+ 361 022e 80E0 ldi r24,lo8(usbDescriptorConfiguration+18)
+ 362 0230 90E0 ldi r25,hi8(usbDescriptorConfiguration+18)
+ 363 0232 9093 0000 sts usbMsgPtr+1,r25
+ 364 0236 8093 0000 sts usbMsgPtr,r24
+ 365 023a 29E0 ldi r18,lo8(9)
+ 366 023c 00C0 rjmp .L28
+ 367 .L33:
+ 368 023e 8232 cpi r24,lo8(34)
+ 369 0240 01F4 brne .L64
+ 370 0242 80E0 ldi r24,lo8(usbDescriptorHidReport)
+ 371 0244 90E0 ldi r25,hi8(usbDescriptorHidReport)
+ 372 0246 9093 0000 sts usbMsgPtr+1,r25
+ 373 024a 8093 0000 sts usbMsgPtr,r24
+ 374 024e 21E2 ldi r18,lo8(33)
+ 375 0250 00C0 rjmp .L28
+ 376 .L64:
+ 377 0252 20E0 ldi r18,lo8(0)
+ 378 .L28:
+ 379 0254 80E4 ldi r24,lo8(64)
+ 380 0256 8093 0000 sts usbMsgFlags,r24
+ 381 025a 00C0 rjmp .L61
+ 382 .L26:
+ 383 025c 8830 cpi r24,lo8(8)
+ 384 025e 01F0 breq .L65
+ 385 0260 8930 cpi r24,lo8(9)
+ 386 0262 01F4 brne .L35
+ 387 0264 9093 0000 sts usbConfiguration,r25
+ 388 0268 00C0 rjmp .L69
+ 389 .L35:
+ 390 026a 8A30 cpi r24,lo8(10)
+ 391 026c 01F0 breq .L66
+ 392 .L69:
+ 393 026e 80E0 ldi r24,lo8(usbTxBuf+9)
+ 394 0270 90E0 ldi r25,hi8(usbTxBuf+9)
+ 395 0272 20E0 ldi r18,lo8(0)
+ 396 0274 00C0 rjmp .L24
397 .L65:
- 398 026c 8781 ldd r24,Z+7
- 399 026e 8823 tst r24
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 8
-
-
- 400 0270 01F4 brne .L34
- 401 0272 8681 ldd r24,Z+6
- 402 0274 8217 cp r24,r18
- 403 0276 00F4 brsh .L34
- 404 0278 282F mov r18,r24
- 405 .L34:
- 406 027a 2093 0000 sts usbMsgLen,r18
- 407 027e 00C0 rjmp .L16
- 408 .L15:
- 409 0280 9091 0000 lds r25,usbMsgFlags
- 410 0284 97FF sbrs r25,7
- 411 0286 00C0 rjmp .L16
- 412 0288 9091 0000 lds r25,state
- 413 028c 9130 cpi r25,lo8(1)
- 414 028e 01F4 brne .L35
- 415 0290 3181 ldd r19,Z+1
- 416 0292 9281 ldd r25,Z+2
- 417 0294 3496 adiw r30,4
- 418 0296 282F mov r18,r24
- 419 0298 2750 subi r18,lo8(-(-7))
- 420 029a 3093 0000 sts currentAddress,r19
- 421 029e 9093 0000 sts currentAddress+1,r25
- 422 02a2 82E0 ldi r24,lo8(2)
- 423 02a4 8093 0000 sts state,r24
- 424 .L35:
- 425 02a8 8F01 movw r16,r30
- 426 .L40:
- 427 02aa 8091 0000 lds r24,currentAddress
- 428 02ae 9091 0000 lds r25,currentAddress+1
- 429 02b2 0097 sbiw r24,0
- 430 02b4 01F4 brne .L36
- 431 02b6 D801 movw r26,r16
- 432 02b8 8D91 ld r24,X+
- 433 02ba 9C91 ld r25,X
- 434 02bc 1197 sbiw r26,1
- 435 02be 9093 0000 sts vectorTemp+1,r25
- 436 02c2 8093 0000 sts vectorTemp,r24
- 437 02c6 00C0 rjmp .L37
- 438 .L36:
- 439 02c8 8430 cpi r24,4
- 440 02ca 9105 cpc r25,__zero_reg__
- 441 02cc 01F4 brne .L38
- 442 02ce F801 movw r30,r16
- 443 02d0 8081 ld r24,Z
- 444 02d2 9181 ldd r25,Z+1
- 445 02d4 9093 0000 sts vectorTemp+2+1,r25
- 446 02d8 8093 0000 sts vectorTemp+2,r24
- 447 02dc 00C0 rjmp .L37
- 448 .L38:
- 449 02de F4E1 ldi r31,hi8(5370)
- 450 02e0 8A3F cpi r24,lo8(5370)
- 451 02e2 9F07 cpc r25,r31
- 452 02e4 00F0 brlo .L37
- 453 02e6 81E1 ldi r24,lo8(17)
- 454 /* #APP */
- 455 ; 441 "main.c" 1
- 456 02e8 8093 5700 sts 87, r24
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 9
-
-
- 457 02ec E895 spm
- 458
- 459 ; 0 "" 2
- 460 /* #NOAPP */
- 461 02ee 00C0 rjmp .L39
- 462 .L37:
- 463 02f0 D801 movw r26,r16
- 464 02f2 8D91 ld r24,X+
- 465 02f4 9D91 ld r25,X+
- 466 02f6 8D01 movw r16,r26
- 467 02f8 2983 std Y+1,r18
- 468 02fa 00D0 rcall writeWordToPageBuffer
- 469 02fc 8091 0000 lds r24,currentAddress
- 470 0300 9091 0000 lds r25,currentAddress+1
- 471 0304 0296 adiw r24,2
- 472 0306 9093 0000 sts currentAddress+1,r25
- 473 030a 8093 0000 sts currentAddress,r24
- 474 030e 2981 ldd r18,Y+1
- 475 0310 2250 subi r18,lo8(-(-2))
- 476 0312 01F4 brne .L40
- 477 .L39:
- 478 0314 8091 0000 lds r24,currentAddress
- 479 0318 9091 0000 lds r25,currentAddress+1
- 480 031c 8F73 andi r24,lo8(63)
- 481 031e 9070 andi r25,hi8(63)
- 482 0320 0097 sbiw r24,0
- 483 0322 01F0 breq .L16
- 484 0324 8091 0000 lds r24,events
- 485 0328 8260 ori r24,lo8(2)
- 486 032a 8093 0000 sts events,r24
- 487 032e 1092 0000 sts usbMsgLen,__zero_reg__
- 488 .L16:
- 489 0332 1092 0000 sts usbRxLen,__zero_reg__
- 490 .L14:
- 491 0336 8091 0000 lds r24,usbTxLen
- 492 033a 84FF sbrs r24,4
- 493 033c 00C0 rjmp .L41
- 494 033e 8091 0000 lds r24,usbMsgLen
- 495 0342 8F3F cpi r24,lo8(-1)
- 496 0344 01F4 brne .+2
- 497 0346 00C0 rjmp .L41
- 498 0348 082F mov r16,r24
- 499 034a 8930 cpi r24,lo8(9)
- 500 034c 00F0 brlo .L42
- 501 034e 08E0 ldi r16,lo8(8)
- 502 .L42:
- 503 0350 801B sub r24,r16
- 504 0352 8093 0000 sts usbMsgLen,r24
- 505 0356 8091 0000 lds r24,usbTxBuf
- 506 035a 98E8 ldi r25,lo8(-120)
- 507 035c 8927 eor r24,r25
- 508 035e 8093 0000 sts usbTxBuf,r24
- 509 0362 0023 tst r16
- 510 0364 01F0 breq .L43
- 511 0366 8091 0000 lds r24,usbMsgFlags
- 512 036a 87FF sbrs r24,7
- 513 036c 00C0 rjmp .L44
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 10
-
-
- 514 036e 80E0 ldi r24,lo8(usbTxBuf+1)
- 515 0370 90E0 ldi r25,hi8(usbTxBuf+1)
- 516 0372 602F mov r22,r16
- 517 0374 00D0 rcall usbFunctionRead
- 518 0376 082F mov r16,r24
- 519 0378 00C0 rjmp .L45
- 520 .L44:
- 521 037a E091 0000 lds r30,usbMsgPtr
- 522 037e F091 0000 lds r31,usbMsgPtr+1
- 523 0382 202F mov r18,r16
- 524 0384 2150 subi r18,lo8(-(-1))
- 525 0386 86FF sbrs r24,6
- 526 0388 00C0 rjmp .L46
- 527 038a 30E0 ldi r19,lo8(0)
- 528 038c 2050 subi r18,lo8(-(usbTxBuf+2))
- 529 038e 3040 sbci r19,hi8(-(usbTxBuf+2))
- 530 0390 A0E0 ldi r26,lo8(usbTxBuf+1)
- 531 0392 B0E0 ldi r27,hi8(usbTxBuf+1)
- 532 .L47:
- 533 /* #APP */
- 534 ; 504 "usbdrv/usbdrv.c" 1
- 535 0394 8491 lpm r24, Z
- 536
- 537 ; 0 "" 2
- 538 /* #NOAPP */
- 539 0396 8D93 st X+,r24
- 540 0398 3196 adiw r30,1
- 541 039a A217 cp r26,r18
- 542 039c B307 cpc r27,r19
- 543 039e 01F4 brne .L47
- 544 03a0 00C0 rjmp .L48
- 545 .L46:
- 546 03a2 AF01 movw r20,r30
- 547 03a4 30E0 ldi r19,lo8(0)
- 548 03a6 2050 subi r18,lo8(-(usbTxBuf+2))
- 549 03a8 3040 sbci r19,hi8(-(usbTxBuf+2))
- 550 03aa A0E0 ldi r26,lo8(usbTxBuf+1)
- 551 03ac B0E0 ldi r27,hi8(usbTxBuf+1)
- 552 .L49:
- 553 03ae FA01 movw r30,r20
- 554 03b0 8191 ld r24,Z+
- 555 03b2 AF01 movw r20,r30
- 556 03b4 8D93 st X+,r24
- 557 03b6 A217 cp r26,r18
- 558 03b8 B307 cpc r27,r19
- 559 03ba 01F4 brne .L49
- 560 .L48:
- 561 03bc F093 0000 sts usbMsgPtr+1,r31
- 562 03c0 E093 0000 sts usbMsgPtr,r30
- 563 .L45:
- 564 03c4 0930 cpi r16,lo8(9)
- 565 03c6 00F4 brsh .L50
- 566 .L43:
- 567 03c8 80E0 ldi r24,lo8(usbTxBuf+1)
- 568 03ca 90E0 ldi r25,hi8(usbTxBuf+1)
- 569 03cc 602F mov r22,r16
- 570 03ce 00D0 rcall usbCrc16Append
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 11
-
-
- 571 03d0 0C5F subi r16,lo8(-(4))
- 572 03d2 0C30 cpi r16,lo8(12)
- 573 03d4 01F0 breq .L51
- 574 03d6 8FEF ldi r24,lo8(-1)
- 575 03d8 8093 0000 sts usbMsgLen,r24
- 576 03dc 00C0 rjmp .L51
- 577 .L50:
- 578 03de 8FEF ldi r24,lo8(-1)
- 579 03e0 8093 0000 sts usbMsgLen,r24
- 580 03e4 0EE1 ldi r16,lo8(30)
- 581 .L51:
- 582 03e6 0093 0000 sts usbTxLen,r16
- 583 .L41:
- 584 03ea 84E1 ldi r24,lo8(20)
- 585 .L53:
- 586 03ec 96B3 in r25,54-32
- 587 03ee 9871 andi r25,lo8(24)
- 588 03f0 01F4 brne .L52
- 589 03f2 8150 subi r24,lo8(-(-1))
- 590 03f4 01F4 brne .L53
- 591 03f6 1092 0000 sts usbNewDeviceAddr,__zero_reg__
- 592 03fa 1092 0000 sts usbDeviceAddr,__zero_reg__
- 593 .L52:
- 594 03fe 01E0 ldi r16,lo8(1)
- 595 0400 8111 cpse r24,__zero_reg__
- 596 0402 00E0 ldi r16,lo8(0)
- 597 .L54:
- 598 0404 8091 0000 lds r24,wasReset.1824
- 599 0408 8017 cp r24,r16
- 600 040a 01F0 breq .L55
- 601 040c 0023 tst r16
- 602 040e 01F4 brne .L56
- 603 /* #APP */
- 604 ; 557 "usbdrv/usbdrv.c" 1
- 605 0410 F894 cli
- 606 ; 0 "" 2
- 607 /* #NOAPP */
- 608 0412 00D0 rcall calibrateOscillator
- 609 /* #APP */
- 610 ; 557 "usbdrv/usbdrv.c" 1
- 611 0414 7894 sei
- 612 ; 0 "" 2
- 613 /* #NOAPP */
- 614 .L56:
- 615 0416 0093 0000 sts wasReset.1824,r16
- 616 .L55:
- 617 041a 8CE9 ldi r24,lo8(412)
- 618 041c 91E0 ldi r25,hi8(412)
- 619 041e 0197 1:sbiw r24,1
- 620 0420 01F4 brne 1b
- 621 0422 0000 nop
- 622 0424 8091 0000 lds r24,events
- 623 0428 8823 tst r24
- 624 042a 01F4 brne .L71
- 625 042c 0894 sec
- 626 042e E11C adc r14,__zero_reg__
- 627 0430 F11C adc r15,__zero_reg__
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 12
-
-
- 628 0432 00C0 rjmp .L57
- 629 .L71:
- 630 0434 EE24 clr r14
- 631 0436 FF24 clr r15
- 632 .L57:
- 633 0438 80FF sbrs r24,0
- 634 043a 00C0 rjmp .L58
- 635 /* #APP */
- 636 ; 116 "main.c" 1
- 637 043c F894 cli
- 638 ; 0 "" 2
- 639 /* #NOAPP */
- 640 043e E091 0000 lds r30,currentAddress
- 641 0442 F091 0000 lds r31,currentAddress+1
- 642 0446 3297 sbiw r30,2
- 643 0448 83E0 ldi r24,lo8(3)
- 644 /* #APP */
- 645 ; 117 "main.c" 1
- 646 044a 8093 5700 sts 87, r24
- 647 044e E895 spm
- 648
- 649 ; 0 "" 2
- 650 /* #NOAPP */
- 651 .L59:
- 652 0450 07B6 in __tmp_reg__,87-32
- 653 0452 00FC sbrc __tmp_reg__,0
- 654 0454 00C0 rjmp .L59
- 655 /* #APP */
- 656 ; 119 "main.c" 1
- 657 0456 7894 sei
- 658 ; 0 "" 2
- 659 /* #NOAPP */
- 660 .L58:
- 661 0458 8091 0000 lds r24,events
- 662 045c 81FF sbrs r24,1
- 663 045e 00C0 rjmp .L60
- 664 0460 A9E3 ldi r26,lo8(8249)
- 665 0462 B0E2 ldi r27,hi8(8249)
- 666 0464 1197 1:sbiw r26,1
- 667 0466 01F4 brne 1b
- 668 0468 00C0 rjmp .
- 669 046a 0000 nop
- 670 046c 8091 0000 lds r24,currentAddress
- 671 0470 9091 0000 lds r25,currentAddress+1
- 672 0474 8F73 andi r24,lo8(63)
- 673 0476 9070 andi r25,hi8(63)
- 674 0478 0097 sbiw r24,0
- 675 047a 01F0 breq .L61
- 676 047c 00D0 rcall fillFlashWithVectors
- 677 047e 00C0 rjmp .L60
- 678 .L61:
- 679 0480 00D0 rcall writeFlashPage
- 680 .L60:
- 681 0482 8091 0000 lds r24,events
- 682 0486 82FD sbrc r24,2
- 683 0488 00C0 rjmp .L62
- 684 048a B1E5 ldi r27,lo8(-15535)
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 13
-
-
- 685 048c EB16 cp r14,r27
- 686 048e B3EC ldi r27,hi8(-15535)
- 687 0490 FB06 cpc r15,r27
- 688 0492 00F0 brlo .L63
- 689 .L62:
- 690 0494 E1E2 ldi r30,lo8(-24287)
- 691 0496 F1EA ldi r31,hi8(-24287)
- 692 0498 3197 1:sbiw r30,1
- 693 049a 01F4 brne 1b
- 694 049c 00C0 rjmp .
- 695 049e 0000 nop
- 696 /* #APP */
- 697 ; 206 "main.c" 1
- 698 04a0 F894 cli
- 699 ; 0 "" 2
- 700 /* #NOAPP */
- 701 04a2 1BBE out 91-32,__zero_reg__
- 702 04a4 15BA out 53-32,__zero_reg__
- 703 04a6 1092 5F02 sts 607,__zero_reg__
- 704 04aa 1092 5E02 sts 606,__zero_reg__
- 705 /* #APP */
- 706 ; 223 "main.c" 1
- 707 04ae 00C0 rjmp __vectors - 4
- 708 ; 0 "" 2
- 709 /* #NOAPP */
- 710 .L63:
- 711 04b0 1092 0000 sts events,__zero_reg__
- 712 04b4 00C0 rjmp .L64
- 713 .L66:
- 714 04b6 20E0 ldi r18,lo8(0)
- 715 04b8 00C0 rjmp .L65
- 716 .size main, .-main
- 717 .global usbTxLen
- 718 .data
- 719 .type usbTxLen, @object
- 720 .size usbTxLen, 1
- 721 usbTxLen:
- 722 0000 5A .byte 90
- 723 .global usbDescriptorString0
- 724 .section .progmem.data,"a",@progbits
- 725 .type usbDescriptorString0, @object
- 726 .size usbDescriptorString0, 4
- 727 usbDescriptorString0:
- 728 0000 04 .byte 4
- 729 0001 03 .byte 3
- 730 0002 09 .byte 9
- 731 0003 04 .byte 4
- 732 .global usbDescriptorStringVendor
- 733 .type usbDescriptorStringVendor, @object
- 734 .size usbDescriptorStringVendor, 28
- 735 usbDescriptorStringVendor:
- 736 0004 1C03 .word 796
- 737 0006 7700 .word 119
- 738 0008 7700 .word 119
- 739 000a 7700 .word 119
- 740 000c 2E00 .word 46
- 741 000e 6600 .word 102
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 14
-
-
- 742 0010 6900 .word 105
- 743 0012 7300 .word 115
- 744 0014 6300 .word 99
- 745 0016 6800 .word 104
- 746 0018 6C00 .word 108
- 747 001a 2E00 .word 46
- 748 001c 6400 .word 100
- 749 001e 6500 .word 101
- 750 .global usbDescriptorStringDevice
- 751 .type usbDescriptorStringDevice, @object
- 752 .size usbDescriptorStringDevice, 14
- 753 usbDescriptorStringDevice:
- 754 0020 0E03 .word 782
- 755 0022 5500 .word 85
- 756 0024 5300 .word 83
- 757 0026 4200 .word 66
- 758 0028 6100 .word 97
- 759 002a 7300 .word 115
- 760 002c 7000 .word 112
- 761 .global usbDescriptorDevice
- 762 .type usbDescriptorDevice, @object
- 763 .size usbDescriptorDevice, 18
- 764 usbDescriptorDevice:
- 765 002e 12 .byte 18
- 766 002f 01 .byte 1
- 767 0030 10 .byte 16
- 768 0031 01 .byte 1
- 769 0032 FF .byte -1
- 770 0033 00 .byte 0
- 771 0034 00 .byte 0
- 772 0035 08 .byte 8
- 773 0036 C0 .byte -64
- 774 0037 16 .byte 22
- 775 0038 DC .byte -36
- 776 0039 05 .byte 5
- 777 003a 02 .byte 2
- 778 003b 01 .byte 1
- 779 003c 01 .byte 1
- 780 003d 02 .byte 2
- 781 003e 00 .byte 0
- 782 003f 01 .byte 1
- 783 .global usbDescriptorConfiguration
- 784 .type usbDescriptorConfiguration, @object
- 785 .size usbDescriptorConfiguration, 18
- 786 usbDescriptorConfiguration:
- 787 0040 09 .byte 9
- 788 0041 02 .byte 2
- 789 0042 12 .byte 18
- 790 0043 00 .byte 0
- 791 0044 01 .byte 1
- 792 0045 01 .byte 1
- 793 0046 00 .byte 0
- 794 0047 80 .byte -128
- 795 0048 32 .byte 50
- 796 0049 09 .byte 9
- 797 004a 04 .byte 4
- 798 004b 00 .byte 0
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 15
-
-
- 799 004c 00 .byte 0
- 800 004d 00 .byte 0
- 801 004e 00 .byte 0
- 802 004f 00 .byte 0
- 803 0050 00 .byte 0
- 804 0051 00 .byte 0
- 805 .global usbHidReportDescriptor
- 806 .type usbHidReportDescriptor, @object
- 807 .size usbHidReportDescriptor, 33
- 808 usbHidReportDescriptor:
- 809 0052 06 .byte 6
- 810 0053 00 .byte 0
- 811 0054 FF .byte -1
- 812 0055 09 .byte 9
- 813 0056 01 .byte 1
- 814 0057 A1 .byte -95
- 815 0058 01 .byte 1
- 816 0059 15 .byte 21
- 817 005a 00 .byte 0
- 818 005b 26 .byte 38
- 819 005c FF .byte -1
- 820 005d 00 .byte 0
- 821 005e 75 .byte 117
- 822 005f 08 .byte 8
- 823 0060 85 .byte -123
- 824 0061 01 .byte 1
- 825 0062 95 .byte -107
- 826 0063 06 .byte 6
- 827 0064 09 .byte 9
- 828 0065 00 .byte 0
- 829 0066 B2 .byte -78
- 830 0067 02 .byte 2
- 831 0068 01 .byte 1
- 832 0069 85 .byte -123
- 833 006a 02 .byte 2
- 834 006b 95 .byte -107
- 835 006c 83 .byte -125
- 836 006d 09 .byte 9
- 837 006e 00 .byte 0
- 838 006f B2 .byte -78
- 839 0070 02 .byte 2
- 840 0071 01 .byte 1
- 841 0072 C0 .byte -64
- 842 .comm usbMsgPtr,2,1
- 843 .comm usbRxToken,1,1
- 844 .comm usbConfiguration,1,1
- 845 .comm usbRxBuf,22,1
- 846 .comm usbInputBufOffset,1,1
- 847 .comm usbDeviceAddr,1,1
- 848 .comm usbNewDeviceAddr,1,1
- 849 .comm usbRxLen,1,1
- 850 .comm usbCurrentTok,1,1
- 851 .comm usbTxBuf,11,1
- 852 .lcomm currentAddress,2
- 853 .lcomm events,1
- 854 .data
- 855 .type usbMsgLen, @object
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 16
-
-
- 856 .size usbMsgLen, 1
- 857 usbMsgLen:
- 858 0001 FF .byte -1
- 859 .lcomm usbMsgFlags,1
- 860 .lcomm state,1
- 861 .type replyBuffer.1886, @object
- 862 .size replyBuffer.1886, 7
- 863 replyBuffer.1886:
- 864 0002 01 .byte 1
- 865 0003 40 .byte 64
- 866 0004 00 .byte 0
- 867 0005 FA .byte -6
- 868 0006 14 .byte 20
- 869 0007 00 .byte 0
- 870 0008 00 .byte 0
- 871 .lcomm vectorTemp,4
- 872 .lcomm wasReset.1824,1
- 873 .global __do_copy_data
- 874 .global __do_clear_bss
- GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s page 17
+ 398 0276 80E0 ldi r24,lo8(usbConfiguration)
+ 399 0278 90E0 ldi r25,hi8(usbConfiguration)
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 8
+
+
+ 400 027a 00C0 rjmp .L70
+ 401 .L66:
+ 402 027c 80E0 ldi r24,lo8(usbTxBuf+9)
+ 403 027e 90E0 ldi r25,hi8(usbTxBuf+9)
+ 404 .L70:
+ 405 0280 21E0 ldi r18,lo8(1)
+ 406 .L24:
+ 407 0282 9093 0000 sts usbMsgPtr+1,r25
+ 408 0286 8093 0000 sts usbMsgPtr,r24
+ 409 028a 00C0 rjmp .L61
+ 410 .L20:
+ 411 028c 2681 ldd r18,Z+6
+ 412 .L21:
+ 413 028e 80E8 ldi r24,lo8(-128)
+ 414 0290 8093 0000 sts usbMsgFlags,r24
+ 415 0294 00C0 rjmp .L36
+ 416 .L61:
+ 417 0296 8781 ldd r24,Z+7
+ 418 0298 8823 tst r24
+ 419 029a 01F4 brne .L36
+ 420 029c 8681 ldd r24,Z+6
+ 421 029e 8217 cp r24,r18
+ 422 02a0 00F4 brsh .L36
+ 423 02a2 282F mov r18,r24
+ 424 .L36:
+ 425 02a4 2093 0000 sts usbMsgLen,r18
+ 426 02a8 00C0 rjmp .L16
+ 427 .L15:
+ 428 02aa 9091 0000 lds r25,usbMsgFlags
+ 429 02ae 97FF sbrs r25,7
+ 430 02b0 00C0 rjmp .L16
+ 431 02b2 9091 0000 lds r25,state
+ 432 02b6 9130 cpi r25,lo8(1)
+ 433 02b8 01F4 brne .L37
+ 434 02ba 3181 ldd r19,Z+1
+ 435 02bc 9281 ldd r25,Z+2
+ 436 02be 3496 adiw r30,4
+ 437 02c0 282F mov r18,r24
+ 438 02c2 2750 subi r18,lo8(-(-7))
+ 439 02c4 3093 0000 sts currentAddress,r19
+ 440 02c8 9093 0000 sts currentAddress+1,r25
+ 441 02cc 82E0 ldi r24,lo8(2)
+ 442 02ce 8093 0000 sts state,r24
+ 443 .L37:
+ 444 02d2 8F01 movw r16,r30
+ 445 .L42:
+ 446 02d4 8091 0000 lds r24,currentAddress
+ 447 02d8 9091 0000 lds r25,currentAddress+1
+ 448 02dc 0097 sbiw r24,0
+ 449 02de 01F4 brne .L38
+ 450 02e0 D801 movw r26,r16
+ 451 02e2 8D91 ld r24,X+
+ 452 02e4 9C91 ld r25,X
+ 453 02e6 1197 sbiw r26,1
+ 454 02e8 9093 0000 sts vectorTemp+1,r25
+ 455 02ec 8093 0000 sts vectorTemp,r24
+ 456 02f0 00C0 rjmp .L39
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 9
+
+
+ 457 .L38:
+ 458 02f2 8430 cpi r24,4
+ 459 02f4 9105 cpc r25,__zero_reg__
+ 460 02f6 01F4 brne .L40
+ 461 02f8 F801 movw r30,r16
+ 462 02fa 8081 ld r24,Z
+ 463 02fc 9181 ldd r25,Z+1
+ 464 02fe 9093 0000 sts vectorTemp+2+1,r25
+ 465 0302 8093 0000 sts vectorTemp+2,r24
+ 466 0306 00C0 rjmp .L39
+ 467 .L40:
+ 468 0308 F4E1 ldi r31,hi8(5370)
+ 469 030a 8A3F cpi r24,lo8(5370)
+ 470 030c 9F07 cpc r25,r31
+ 471 030e 00F0 brlo .L39
+ 472 0310 81E1 ldi r24,lo8(17)
+ 473 /* #APP */
+ 474 ; 441 "main.c" 1
+ 475 0312 8093 5700 sts 87, r24
+ 476 0316 E895 spm
+ 477
+ 478 ; 0 "" 2
+ 479 /* #NOAPP */
+ 480 0318 00C0 rjmp .L41
+ 481 .L39:
+ 482 031a D801 movw r26,r16
+ 483 031c 8D91 ld r24,X+
+ 484 031e 9D91 ld r25,X+
+ 485 0320 8D01 movw r16,r26
+ 486 0322 2983 std Y+1,r18
+ 487 0324 00D0 rcall writeWordToPageBuffer
+ 488 0326 8091 0000 lds r24,currentAddress
+ 489 032a 9091 0000 lds r25,currentAddress+1
+ 490 032e 0296 adiw r24,2
+ 491 0330 9093 0000 sts currentAddress+1,r25
+ 492 0334 8093 0000 sts currentAddress,r24
+ 493 0338 2981 ldd r18,Y+1
+ 494 033a 2250 subi r18,lo8(-(-2))
+ 495 033c 01F4 brne .L42
+ 496 .L41:
+ 497 033e 8091 0000 lds r24,currentAddress
+ 498 0342 9091 0000 lds r25,currentAddress+1
+ 499 0346 8F73 andi r24,lo8(63)
+ 500 0348 9070 andi r25,hi8(63)
+ 501 034a 0097 sbiw r24,0
+ 502 034c 01F0 breq .L16
+ 503 034e 8091 0000 lds r24,events
+ 504 0352 8260 ori r24,lo8(2)
+ 505 0354 8093 0000 sts events,r24
+ 506 0358 1092 0000 sts usbMsgLen,__zero_reg__
+ 507 .L16:
+ 508 035c 1092 0000 sts usbRxLen,__zero_reg__
+ 509 .L14:
+ 510 0360 8091 0000 lds r24,usbTxLen
+ 511 0364 84FF sbrs r24,4
+ 512 0366 00C0 rjmp .L43
+ 513 0368 8091 0000 lds r24,usbMsgLen
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 10
+
+
+ 514 036c 8F3F cpi r24,lo8(-1)
+ 515 036e 01F4 brne .+2
+ 516 0370 00C0 rjmp .L43
+ 517 0372 082F mov r16,r24
+ 518 0374 8930 cpi r24,lo8(9)
+ 519 0376 00F0 brlo .L44
+ 520 0378 08E0 ldi r16,lo8(8)
+ 521 .L44:
+ 522 037a 801B sub r24,r16
+ 523 037c 8093 0000 sts usbMsgLen,r24
+ 524 0380 8091 0000 lds r24,usbTxBuf
+ 525 0384 98E8 ldi r25,lo8(-120)
+ 526 0386 8927 eor r24,r25
+ 527 0388 8093 0000 sts usbTxBuf,r24
+ 528 038c 0023 tst r16
+ 529 038e 01F0 breq .L45
+ 530 0390 E091 0000 lds r30,usbMsgPtr
+ 531 0394 F091 0000 lds r31,usbMsgPtr+1
+ 532 0398 9091 0000 lds r25,usbMsgFlags
+ 533 039c 802F mov r24,r16
+ 534 039e 8150 subi r24,lo8(-(-1))
+ 535 03a0 96FF sbrs r25,6
+ 536 03a2 00C0 rjmp .L46
+ 537 03a4 90E0 ldi r25,lo8(0)
+ 538 03a6 8050 subi r24,lo8(-(usbTxBuf+2))
+ 539 03a8 9040 sbci r25,hi8(-(usbTxBuf+2))
+ 540 03aa A0E0 ldi r26,lo8(usbTxBuf+1)
+ 541 03ac B0E0 ldi r27,hi8(usbTxBuf+1)
+ 542 .L47:
+ 543 /* #APP */
+ 544 ; 504 "usbdrv/usbdrv.c" 1
+ 545 03ae 2491 lpm r18, Z
+ 546
+ 547 ; 0 "" 2
+ 548 /* #NOAPP */
+ 549 03b0 2D93 st X+,r18
+ 550 03b2 3196 adiw r30,1
+ 551 03b4 A817 cp r26,r24
+ 552 03b6 B907 cpc r27,r25
+ 553 03b8 01F4 brne .L47
+ 554 03ba 00C0 rjmp .L48
+ 555 .L46:
+ 556 03bc 9F01 movw r18,r30
+ 557 03be 90E0 ldi r25,lo8(0)
+ 558 03c0 8050 subi r24,lo8(-(usbTxBuf+2))
+ 559 03c2 9040 sbci r25,hi8(-(usbTxBuf+2))
+ 560 03c4 A0E0 ldi r26,lo8(usbTxBuf+1)
+ 561 03c6 B0E0 ldi r27,hi8(usbTxBuf+1)
+ 562 .L49:
+ 563 03c8 F901 movw r30,r18
+ 564 03ca 4191 ld r20,Z+
+ 565 03cc 9F01 movw r18,r30
+ 566 03ce 4D93 st X+,r20
+ 567 03d0 A817 cp r26,r24
+ 568 03d2 B907 cpc r27,r25
+ 569 03d4 01F4 brne .L49
+ 570 .L48:
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 11
+
+
+ 571 03d6 F093 0000 sts usbMsgPtr+1,r31
+ 572 03da E093 0000 sts usbMsgPtr,r30
+ 573 .L45:
+ 574 03de 80E0 ldi r24,lo8(usbTxBuf+1)
+ 575 03e0 90E0 ldi r25,hi8(usbTxBuf+1)
+ 576 03e2 602F mov r22,r16
+ 577 03e4 00D0 rcall usbCrc16Append
+ 578 03e6 0C5F subi r16,lo8(-(4))
+ 579 03e8 0C30 cpi r16,lo8(12)
+ 580 03ea 01F0 breq .L50
+ 581 03ec 8FEF ldi r24,lo8(-1)
+ 582 03ee 8093 0000 sts usbMsgLen,r24
+ 583 .L50:
+ 584 03f2 0093 0000 sts usbTxLen,r16
+ 585 .L43:
+ 586 03f6 84E1 ldi r24,lo8(20)
+ 587 .L52:
+ 588 03f8 96B3 in r25,54-32
+ 589 03fa 9871 andi r25,lo8(24)
+ 590 03fc 01F4 brne .L51
+ 591 03fe 8150 subi r24,lo8(-(-1))
+ 592 0400 01F4 brne .L52
+ 593 0402 1092 0000 sts usbNewDeviceAddr,__zero_reg__
+ 594 0406 1092 0000 sts usbDeviceAddr,__zero_reg__
+ 595 .L51:
+ 596 040a 8CE9 ldi r24,lo8(412)
+ 597 040c 91E0 ldi r25,hi8(412)
+ 598 040e 0197 1:sbiw r24,1
+ 599 0410 01F4 brne 1b
+ 600 0412 0000 nop
+ 601 0414 8091 0000 lds r24,events
+ 602 0418 8823 tst r24
+ 603 041a 01F4 brne .L67
+ 604 041c 0894 sec
+ 605 041e E11C adc r14,__zero_reg__
+ 606 0420 F11C adc r15,__zero_reg__
+ 607 0422 00C0 rjmp .L53
+ 608 .L67:
+ 609 0424 EE24 clr r14
+ 610 0426 FF24 clr r15
+ 611 .L53:
+ 612 0428 80FF sbrs r24,0
+ 613 042a 00C0 rjmp .L54
+ 614 /* #APP */
+ 615 ; 116 "main.c" 1
+ 616 042c F894 cli
+ 617 ; 0 "" 2
+ 618 /* #NOAPP */
+ 619 042e E091 0000 lds r30,currentAddress
+ 620 0432 F091 0000 lds r31,currentAddress+1
+ 621 0436 3297 sbiw r30,2
+ 622 0438 83E0 ldi r24,lo8(3)
+ 623 /* #APP */
+ 624 ; 117 "main.c" 1
+ 625 043a 8093 5700 sts 87, r24
+ 626 043e E895 spm
+ 627
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 12
+
+
+ 628 ; 0 "" 2
+ 629 /* #NOAPP */
+ 630 .L55:
+ 631 0440 07B6 in __tmp_reg__,87-32
+ 632 0442 00FC sbrc __tmp_reg__,0
+ 633 0444 00C0 rjmp .L55
+ 634 /* #APP */
+ 635 ; 119 "main.c" 1
+ 636 0446 7894 sei
+ 637 ; 0 "" 2
+ 638 /* #NOAPP */
+ 639 .L54:
+ 640 0448 8091 0000 lds r24,events
+ 641 044c 81FF sbrs r24,1
+ 642 044e 00C0 rjmp .L56
+ 643 0450 A9E3 ldi r26,lo8(8249)
+ 644 0452 B0E2 ldi r27,hi8(8249)
+ 645 0454 1197 1:sbiw r26,1
+ 646 0456 01F4 brne 1b
+ 647 0458 00C0 rjmp .
+ 648 045a 0000 nop
+ 649 045c 8091 0000 lds r24,currentAddress
+ 650 0460 9091 0000 lds r25,currentAddress+1
+ 651 0464 8F73 andi r24,lo8(63)
+ 652 0466 9070 andi r25,hi8(63)
+ 653 0468 0097 sbiw r24,0
+ 654 046a 01F0 breq .L57
+ 655 046c 00D0 rcall fillFlashWithVectors
+ 656 046e 00C0 rjmp .L56
+ 657 .L57:
+ 658 0470 00D0 rcall writeFlashPage
+ 659 .L56:
+ 660 0472 8091 0000 lds r24,events
+ 661 0476 82FD sbrc r24,2
+ 662 0478 00C0 rjmp .L58
+ 663 047a B1E5 ldi r27,lo8(-15535)
+ 664 047c EB16 cp r14,r27
+ 665 047e B3EC ldi r27,hi8(-15535)
+ 666 0480 FB06 cpc r15,r27
+ 667 0482 00F0 brlo .L59
+ 668 .L58:
+ 669 0484 E1E2 ldi r30,lo8(-24287)
+ 670 0486 F1EA ldi r31,hi8(-24287)
+ 671 0488 3197 1:sbiw r30,1
+ 672 048a 01F4 brne 1b
+ 673 048c 00C0 rjmp .
+ 674 048e 0000 nop
+ 675 /* #APP */
+ 676 ; 206 "main.c" 1
+ 677 0490 F894 cli
+ 678 ; 0 "" 2
+ 679 /* #NOAPP */
+ 680 0492 1BBE out 91-32,__zero_reg__
+ 681 0494 15BA out 53-32,__zero_reg__
+ 682 0496 1092 5F02 sts 607,__zero_reg__
+ 683 049a 1092 5E02 sts 606,__zero_reg__
+ 684 /* #APP */
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 13
+
+
+ 685 ; 223 "main.c" 1
+ 686 049e 00C0 rjmp __vectors - 4
+ 687 ; 0 "" 2
+ 688 /* #NOAPP */
+ 689 .L59:
+ 690 04a0 1092 0000 sts events,__zero_reg__
+ 691 04a4 00C0 rjmp .L60
+ 692 .L62:
+ 693 04a6 20E0 ldi r18,lo8(0)
+ 694 04a8 00C0 rjmp .L61
+ 695 .size main, .-main
+ 696 .global usbTxLen
+ 697 .data
+ 698 .type usbTxLen, @object
+ 699 .size usbTxLen, 1
+ 700 usbTxLen:
+ 701 0000 5A .byte 90
+ 702 .global usbDescriptorString0
+ 703 .section .progmem.data,"a",@progbits
+ 704 .type usbDescriptorString0, @object
+ 705 .size usbDescriptorString0, 4
+ 706 usbDescriptorString0:
+ 707 0000 04 .byte 4
+ 708 0001 03 .byte 3
+ 709 0002 09 .byte 9
+ 710 0003 04 .byte 4
+ 711 .global usbDescriptorStringVendor
+ 712 .type usbDescriptorStringVendor, @object
+ 713 .size usbDescriptorStringVendor, 18
+ 714 usbDescriptorStringVendor:
+ 715 0004 1203 .word 786
+ 716 0006 6F00 .word 111
+ 717 0008 6200 .word 98
+ 718 000a 6400 .word 100
+ 719 000c 6500 .word 101
+ 720 000e 7600 .word 118
+ 721 0010 2E00 .word 46
+ 722 0012 6100 .word 97
+ 723 0014 7400 .word 116
+ 724 .global usbDescriptorStringDevice
+ 725 .type usbDescriptorStringDevice, @object
+ 726 .size usbDescriptorStringDevice, 16
+ 727 usbDescriptorStringDevice:
+ 728 0016 1003 .word 784
+ 729 0018 4800 .word 72
+ 730 001a 4900 .word 73
+ 731 001c 4400 .word 68
+ 732 001e 4200 .word 66
+ 733 0020 6F00 .word 111
+ 734 0022 6F00 .word 111
+ 735 0024 7400 .word 116
+ 736 .global usbDescriptorDevice
+ 737 .type usbDescriptorDevice, @object
+ 738 .size usbDescriptorDevice, 18
+ 739 usbDescriptorDevice:
+ 740 0026 12 .byte 18
+ 741 0027 01 .byte 1
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 14
+
+
+ 742 0028 10 .byte 16
+ 743 0029 01 .byte 1
+ 744 002a 00 .byte 0
+ 745 002b 00 .byte 0
+ 746 002c 00 .byte 0
+ 747 002d 08 .byte 8
+ 748 002e C0 .byte -64
+ 749 002f 16 .byte 22
+ 750 0030 DF .byte -33
+ 751 0031 05 .byte 5
+ 752 0032 00 .byte 0
+ 753 0033 01 .byte 1
+ 754 0034 01 .byte 1
+ 755 0035 02 .byte 2
+ 756 0036 00 .byte 0
+ 757 0037 01 .byte 1
+ 758 .global usbDescriptorConfiguration
+ 759 .type usbDescriptorConfiguration, @object
+ 760 .size usbDescriptorConfiguration, 34
+ 761 usbDescriptorConfiguration:
+ 762 0038 09 .byte 9
+ 763 0039 02 .byte 2
+ 764 003a 22 .byte 34
+ 765 003b 00 .byte 0
+ 766 003c 01 .byte 1
+ 767 003d 01 .byte 1
+ 768 003e 00 .byte 0
+ 769 003f 80 .byte -128
+ 770 0040 32 .byte 50
+ 771 0041 09 .byte 9
+ 772 0042 04 .byte 4
+ 773 0043 00 .byte 0
+ 774 0044 00 .byte 0
+ 775 0045 01 .byte 1
+ 776 0046 03 .byte 3
+ 777 0047 00 .byte 0
+ 778 0048 00 .byte 0
+ 779 0049 00 .byte 0
+ 780 004a 09 .byte 9
+ 781 004b 21 .byte 33
+ 782 004c 01 .byte 1
+ 783 004d 01 .byte 1
+ 784 004e 00 .byte 0
+ 785 004f 01 .byte 1
+ 786 0050 22 .byte 34
+ 787 0051 21 .byte 33
+ 788 0052 00 .byte 0
+ 789 0053 07 .byte 7
+ 790 0054 05 .byte 5
+ 791 0055 81 .byte -127
+ 792 0056 03 .byte 3
+ 793 0057 08 .byte 8
+ 794 0058 00 .byte 0
+ 795 0059 C8 .byte -56
+ 796 .global usbDescriptorHidReport
+ 797 .type usbDescriptorHidReport, @object
+ 798 .size usbDescriptorHidReport, 33
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 15
+
+
+ 799 usbDescriptorHidReport:
+ 800 005a 06 .byte 6
+ 801 005b 00 .byte 0
+ 802 005c FF .byte -1
+ 803 005d 09 .byte 9
+ 804 005e 01 .byte 1
+ 805 005f A1 .byte -95
+ 806 0060 01 .byte 1
+ 807 0061 15 .byte 21
+ 808 0062 00 .byte 0
+ 809 0063 26 .byte 38
+ 810 0064 FF .byte -1
+ 811 0065 00 .byte 0
+ 812 0066 75 .byte 117
+ 813 0067 08 .byte 8
+ 814 0068 85 .byte -123
+ 815 0069 01 .byte 1
+ 816 006a 95 .byte -107
+ 817 006b 06 .byte 6
+ 818 006c 09 .byte 9
+ 819 006d 00 .byte 0
+ 820 006e B2 .byte -78
+ 821 006f 02 .byte 2
+ 822 0070 01 .byte 1
+ 823 0071 85 .byte -123
+ 824 0072 02 .byte 2
+ 825 0073 95 .byte -107
+ 826 0074 83 .byte -125
+ 827 0075 09 .byte 9
+ 828 0076 00 .byte 0
+ 829 0077 B2 .byte -78
+ 830 0078 02 .byte 2
+ 831 0079 01 .byte 1
+ 832 007a C0 .byte -64
+ 833 .comm usbMsgPtr,2,1
+ 834 .comm usbRxToken,1,1
+ 835 .comm usbConfiguration,1,1
+ 836 .comm usbRxBuf,22,1
+ 837 .comm usbInputBufOffset,1,1
+ 838 .comm usbDeviceAddr,1,1
+ 839 .comm usbNewDeviceAddr,1,1
+ 840 .comm usbRxLen,1,1
+ 841 .comm usbCurrentTok,1,1
+ 842 .comm usbTxBuf,11,1
+ 843 .lcomm currentAddress,2
+ 844 .lcomm events,1
+ 845 .data
+ 846 .type usbMsgLen, @object
+ 847 .size usbMsgLen, 1
+ 848 usbMsgLen:
+ 849 0001 FF .byte -1
+ 850 .lcomm usbMsgFlags,1
+ 851 .lcomm state,1
+ 852 .type replyBuffer.1882, @object
+ 853 .size replyBuffer.1882, 7
+ 854 replyBuffer.1882:
+ 855 0002 01 .byte 1
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 16
+
+
+ 856 0003 40 .byte 64
+ 857 0004 00 .byte 0
+ 858 0005 FA .byte -6
+ 859 0006 14 .byte 20
+ 860 0007 00 .byte 0
+ 861 0008 00 .byte 0
+ 862 .lcomm vectorTemp,4
+ 863 .global __do_copy_data
+ 864 .global __do_clear_bss
+ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s page 17
DEFINED SYMBOLS
*ABS*:00000000 main.c
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:2 *ABS*:0000003f __SREG__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:3 *ABS*:0000003e __SP_H__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:4 *ABS*:0000003d __SP_L__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:5 *ABS*:00000034 __CCP__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:6 *ABS*:00000000 __tmp_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:7 *ABS*:00000001 __zero_reg__
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:10 .text:00000000 writeFlashPage
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:2 *ABS*:0000003f __SREG__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:3 *ABS*:0000003e __SP_H__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:4 *ABS*:0000003d __SP_L__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:5 *ABS*:00000034 __CCP__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:6 *ABS*:00000000 __tmp_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:7 *ABS*:00000001 __zero_reg__
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:10 .text:00000000 writeFlashPage
.bss:00000000 currentAddress
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:44 .text:0000001e writeWordToPageBuffer
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:860 .bss:00000005 vectorTemp
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:852 .bss:00000002 events
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:140 .text:000000ba fillFlashWithVectors
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:168 .init3:00000000 PushMagicWord
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:192 .text:000000e0 main
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:44 .text:0000001e writeWordToPageBuffer
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:851 .bss:00000005 vectorTemp
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:843 .bss:00000002 events
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:140 .text:000000ba fillFlashWithVectors
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:168 .init3:00000000 PushMagicWord
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:192 .text:000000e0 main
*COM*:00000001 usbRxLen
*COM*:00000001 usbInputBufOffset
*COM*:00000016 usbRxBuf
*COM*:00000001 usbRxToken
*COM*:0000000b usbTxBuf
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:721 .data:00000000 usbTxLen
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:853 .bss:00000003 usbMsgFlags
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:859 .bss:00000004 state
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:863 .data:00000002 replyBuffer.1886
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:700 .data:00000000 usbTxLen
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:844 .bss:00000003 usbMsgFlags
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:850 .bss:00000004 state
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:854 .data:00000002 replyBuffer.1882
*COM*:00000002 usbMsgPtr
*COM*:00000001 usbNewDeviceAddr
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:764 .progmem.data:0000002e usbDescriptorDevice
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:786 .progmem.data:00000040 usbDescriptorConfiguration
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:727 .progmem.data:00000000 usbDescriptorString0
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:735 .progmem.data:00000004 usbDescriptorStringVendor
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:753 .progmem.data:00000020 usbDescriptorStringDevice
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:739 .progmem.data:00000026 usbDescriptorDevice
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:761 .progmem.data:00000038 usbDescriptorConfiguration
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:706 .progmem.data:00000000 usbDescriptorString0
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:714 .progmem.data:00000004 usbDescriptorStringVendor
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:727 .progmem.data:00000016 usbDescriptorStringDevice
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:799 .progmem.data:0000005a usbDescriptorHidReport
*COM*:00000001 usbConfiguration
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:857 .data:00000001 usbMsgLen
+/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccDo3M0x.s:848 .data:00000001 usbMsgLen
*COM*:00000001 usbDeviceAddr
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:871 .bss:00000009 wasReset.1824
-/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccAhcRZ8.s:808 .progmem.data:00000052 usbHidReportDescriptor
*COM*:00000001 usbCurrentTok
UNDEFINED SYMBOLS
-usbFunctionRead
usbCrc16Append
-calibrateOscillator
__vectors
__do_copy_data
__do_clear_bss
diff --git a/firmware/main.hex b/firmware/main.hex
new file mode 100644
index 0000000..fe2f6b3
--- /dev/null
+++ b/firmware/main.hex
@@ -0,0 +1,139 @@
+:101500004CC06AC083C068C067C066C065C064C0A4
+:1015100063C062C061C060C05FC05EC05DC00403E4
+:10152000090412036F0062006400650076002E005B
+:1015300061007400100348004900440042006F003D
+:101540006F0074001201100100000008C016DF05D2
+:10155000000101020001090222000101008032099C
+:101560000400000103000000092101010001222103
+:1015700000070581030800C80600FF0901A1011545
+:101580000026FF007508850195060900B202018555
+:101590000295830900B20201C00011241FBECFE5ED
+:1015A000D2E0DEBFCDBF00EB0F9307E00F9310E05A
+:1015B000A0E6B0E0EEE7FDE102C005900D92AA368C
+:1015C000B107D9F710E0AAE6B0E001C01D92AD392D
+:1015D000B107E1F7EDD1D1C393CFA82FB92F80E0A8
+:1015E00090E041E050EA609530E009C02D918227FB
+:1015F0009795879510F084279527305EC8F36F5F25
+:10160000A8F30895EADF8D939D930895CF93CFB704
+:10161000CF93C0915F02C03B21F4C0915E02C730FE
+:1016200021F0CF91CFBFCF916ACFCC27C395B39B89
+:10163000E9F7B39B0BC0B39B09C0B39B07C0B39B37
+:1016400005C0B39B03C0B39B01C0D5C00F92DF930D
+:10165000C0918000DD27C957DF4F012EB39B03C027
+:10166000DF910F90E6CF2F930F931F934F932FEFA0
+:101670004F6F06B303FB20F95F933F9350E03BE0CD
+:1016800065C016B30126502953FDC89556B30127EE
+:1016900003FB25F92F7306B3B1F05027102713FB76
+:1016A00026F906B22230F0F000C016B3012703FB82
+:1016B00027F90126502906B22430E8F54F77206833
+:1016C00016B30000F6CF50274F7D206206B2102FD0
+:1016D000000000C006B300265029102713FB26F98E
+:1016E00006B2E2CF4F7B06B3206400C0DACF0126FA
+:1016F0005029187106B269F14E7F2160012F16B38F
+:1017000028C0002650294D7F06B22260102F29C024
+:10171000012650294B7F06B22460012F2DC016B33D
+:1017200001265029477F2860000006B22EC04F7E58
+:1017300006B3206130C0422706B3499300265029E2
+:10174000102706B24FEF13FB20F9297F16B379F269
+:10175000187159F10126502906B2012703FB21F91E
+:10176000237F06B371F2002650293150D0F006B223
+:10177000102713FB22F9277E16B351F201265029B8
+:10178000012703FB06B223F92F7C49F2000006B3C0
+:10179000102713FB24F90026502906B22F7939F2BD
+:1017A00070CF10E21ABF002719C03B503195C31B00
+:1017B000D04010E21ABF0881033C09F10B34F9F064
+:1017C00020917E001981110F1213EDCF4A81441F21
+:1017D000093651F10D3211F0013E29F700938500D1
+:1017E0003F915F914F911F910F912F91DF910F903A
+:1017F000CAB7C5FD1BCFCF91CFBFCF911895209110
+:101800008500222369F310918300112331F53430D0
+:1018100032F13093830020937F00109180003BE0F1
+:10182000311B309380001BC0009183000130ACF469
+:101830000AE54F7091F43091600034FD11C00093BF
+:101840006000C3E7D0E010C0052710E000C021C051
+:10185000052710E0C89508BB14C03AE501C032ED79
+:10186000032EC0E0D0E032E017B31861C39A08B38A
+:1018700017BB58E120E84FEF20FF052708BB27954D
+:1018800017951C3F28F700004552B0F720FF0527A9
+:10189000279508BB17951C3FB8F629913A9561F733
+:1018A000077E10918400110F08BBC250D04011F088
+:1018B00010937E0010E21ABF086017B3177E402F06
+:1018C000477E54E05A95F1F708BB17BB48BB88CF59
+:1018D000F894E0916A00F0916B00329785E0809374
+:1018E0005700E89507B600FCFDCF78940895209145
+:1018F0006A0030916B002115310509F441C0243094
+:101900003105B1F044E12C3F340739F480916F0088
+:10191000909170008E579A4F0DC044E12E3F3407CE
+:1019200049F480917100909172008D579A4F02C0D6
+:101930008FE79AECF894E0916A00F0916B0021E057
+:101940000C0120935700E8951124789420916A00A7
+:1019500030916B00F901459154914817590749F0AE
+:101960008FEF4F3F580729F080916C008160809382
+:101970006C002E5F3F4F30936B0020936A000895F8
+:1019800081E180935700E895D3CFCF93DF93C09147
+:101990006A00D0916B00CF73D0708FEF9FEFA7DFFD
+:1019A0002296C034D105CCF393DFDF91CF91089517
+:1019B000DF93CF930F92CDB7DEB788E10FB6F894DF
+:1019C00081BD11BC0FBE10926B0010926A00AC9AE0
+:1019D0008BB780628BBFBB9A8FE49DE2A9E18150F7
+:1019E0009040A040E1F700C00000BB987894EE243E
+:1019F000FF2480918300282F235027FD19C1909147
+:101A00008000ECE0F0E0E91BF109E957FF4F90910D
+:101A10007F009D3209F0B1C0283009F007C183EC86
+:101A2000809373008AE58093600010926D0090812E
+:101A3000292F207681812223E9F0893081F4828167
+:101A4000823039F481E080936E0097FD87C02FEFDC
+:101A500086C080916C00846080936C008CC1813062
+:101A600009F089C182E690E0909382008093810022
+:101A700027E079C0928110927C00882331F4109283
+:101A80007D008CE790E022E064C0853019F49093EB
+:101A9000840055C0863009F049C08381813019F433
+:101AA00084E495E11AC0823041F486E595E1909393
+:101AB00082008093810022E235C08330F1F49923C3
+:101AC00041F48EE195E1909382008093810024E0BF
+:101AD00029C0913041F482E295E190938200809395
+:101AE000810022E11FC09230E1F484E395E19093FC
+:101AF00082008093810020E115C0813241F488E6A4
+:101B000095E1909382008093810029E00BC082329E
+:101B100041F488E795E1909382008093810021E26F
+:101B200001C020E080E480936D001DC0883059F032
+:101B3000893019F49093860002C08A3039F08CE71E
+:101B400090E020E006C086E890E002C08CE790E0DC
+:101B500021E0909382008093810005C0268180E877
+:101B600080936D0007C08781882321F486818217C6
+:101B700008F4282F2093610059C090916D0097FFC1
+:101B800055C090916E00913061F43181928134960C
+:101B9000282F275030936A0090936B0082E0809347
+:101BA0006E008F0180916A0090916B00009749F45C
+:101BB000D8018D919C9111979093700080936F0044
+:101BC00014C08430910541F4F80180819181909393
+:101BD00072008093710009C0F4E18A3F9F0728F0EA
+:101BE00081E180935700E89512C0D8018D919D91B5
+:101BF0008D0129837CDE80916A0090916B000296B2
+:101C000090936B0080936A002981225059F680914D
+:101C10006A0090916B008F739070009739F08091FB
+:101C20006C00826080936C001092610010928300BF
+:101C30008091600084FF47C0809161008F3F09F46C
+:101C400042C0082F893008F008E0801B80936100B3
+:101C50008091730098E8892780937300002339F1FD
+:101C6000E0918100F091820090916D00802F815071
+:101C700096FF0CC090E08B589F4FA4E7B0E02491F2
+:101C80002D933196A817B907D1F70DC09F0190E0A9
+:101C90008B589F4FA4E7B0E0F90141919F014D930C
+:101CA000A817B907C9F7F0938200E093810084E791
+:101CB00090E0602FA7DC0C5F0C3019F08FEF809361
+:101CC00061000093600084E196B3987131F4815013
+:101CD000D9F71092840010927E008CE991E0019770
+:101CE000F1F7000080916C00882321F40894E11C36
+:101CF000F11C02C0EE24FF2480FF0EC0F894E09196
+:101D00006A00F0916B00329783E080935700E8956A
+:101D100007B600FCFDCF789480916C0081FF11C064
+:101D2000A9E3B0E21197F1F700C0000080916A00CA
+:101D300090916B008F739070009711F026DE01C0B8
+:101D4000C7DD80916C0082FD05C0B1E5EB16B3ECF8
+:101D5000FB0670F0E1E2F1EA3197F1F700C0000014
+:101D6000F8941BBE15BA10925F0210925E02C6CBA9
+:0E1D700010926C003ECE20E0F6CEF894FFCF2D
+:0A1D7E005AFF014000FA14000000B3
+:0400000300001500E4
+:00000001FF
diff --git a/firmware/main.map b/firmware/main.map
index 779e9da..994016f 100644
--- a/firmware/main.map
+++ b/firmware/main.map
@@ -27,9 +27,7 @@ Discarded input sections
.bss 0x00000000 0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o
.data 0x00000000 0x0 usbdrv/usbdrvasm.o
.bss 0x00000000 0x0 usbdrv/usbdrvasm.o
- .text 0x00000000 0x0 usbdrv/oddebug.o
- .data 0x00000000 0x0 usbdrv/oddebug.o
- .bss 0x00000000 0x0 usbdrv/oddebug.o
+ .text 0x00000000 0x74 libs-device/osccal.o
.data 0x00000000 0x0 libs-device/osccal.o
.bss 0x00000000 0x0 libs-device/osccal.o
.text 0x00000000 0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o)
@@ -60,7 +58,6 @@ Linker script and memory map
LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o
LOAD usbdrv/usbdrvasm.o
-LOAD usbdrv/oddebug.o
LOAD main.o
LOAD libs-device/osccal.o
Address of section .text set to 0x1500
@@ -158,7 +155,7 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a
.rela.plt
*(.rela.plt)
-.text 0x00001500 0x918
+.text 0x00001500 0x87e
*(.vectors)
.vectors 0x00001500 0x1e /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o
0x00001500 __vectors
@@ -166,50 +163,50 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a
*(.vectors)
*(.progmem.gcc*)
*(.progmem*)
- .progmem.data 0x0000151e 0x73 main.o
+ .progmem.data 0x0000151e 0x7b main.o
0x0000151e usbDescriptorString0
0x00001522 usbDescriptorStringVendor
- 0x0000153e usbDescriptorStringDevice
- 0x0000154c usbDescriptorDevice
- 0x0000155e usbDescriptorConfiguration
- 0x00001570 usbHidReportDescriptor
- 0x00001592 . = ALIGN (0x2)
- *fill* 0x00001591 0x1 00
- 0x00001592 __trampolines_start = .
+ 0x00001534 usbDescriptorStringDevice
+ 0x00001544 usbDescriptorDevice
+ 0x00001556 usbDescriptorConfiguration
+ 0x00001578 usbDescriptorHidReport
+ 0x0000159a . = ALIGN (0x2)
+ *fill* 0x00001599 0x1 00
+ 0x0000159a __trampolines_start = .
*(.trampolines)
- .trampolines 0x00001592 0x0 linker stubs
+ .trampolines 0x0000159a 0x0 linker stubs
*(.trampolines*)
- 0x00001592 __trampolines_end = .
+ 0x0000159a __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
- 0x00001592 __ctors_start = .
+ 0x0000159a __ctors_start = .
*(.ctors)
- 0x00001592 __ctors_end = .
- 0x00001592 __dtors_start = .
+ 0x0000159a __ctors_end = .
+ 0x0000159a __dtors_start = .
*(.dtors)
- 0x00001592 __dtors_end = .
+ 0x0000159a __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
- .init0 0x00001592 0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o
- 0x00001592 __init
+ .init0 0x0000159a 0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o
+ 0x0000159a __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
- .init2 0x00001592 0xc /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o
+ .init2 0x0000159a 0xc /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o
*(.init2)
*(.init3)
- .init3 0x0000159e 0x8 main.o
- 0x0000159e PushMagicWord
+ .init3 0x000015a6 0x8 main.o
+ 0x000015a6 PushMagicWord
*(.init3)
*(.init4)
- .init4 0x000015a6 0x16 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_copy_data.o)
- 0x000015a6 __do_copy_data
- .init4 0x000015bc 0x10 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_clear_bss.o)
- 0x000015bc __do_clear_bss
+ .init4 0x000015ae 0x16 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_copy_data.o)
+ 0x000015ae __do_copy_data
+ .init4 0x000015c4 0x10 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_clear_bss.o)
+ 0x000015c4 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
@@ -220,40 +217,37 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a
*(.init8)
*(.init8)
*(.init9)
- .init9 0x000015cc 0x4 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o
+ .init9 0x000015d4 0x4 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o
*(.init9)
*(.text)
- .text 0x000015d0 0x2 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o
- 0x000015d0 __vector_10
- 0x000015d0 __vector_12
- 0x000015d0 __bad_interrupt
- 0x000015d0 __vector_6
- 0x000015d0 __vector_3
- 0x000015d0 __vector_11
- 0x000015d0 __vector_13
- 0x000015d0 __vector_7
- 0x000015d0 __vector_5
- 0x000015d0 __vector_4
- 0x000015d0 __vector_9
- 0x000015d0 __vector_8
- 0x000015d0 __vector_14
- 0x000015d0 __vector_1
- .text 0x000015d2 0x314 usbdrv/usbdrvasm.o
- 0x000015d2 usbCrc16
- 0x000015fc usbCrc16Append
- 0x00001604 usbMeasureFrameLength
- 0x0000162a __vector_2
- .text 0x000018e6 0x4ba main.o
- 0x000019c6 main
- .text 0x00001da0 0x74 libs-device/osccal.o
- 0x00001da0 calibrateOscillator
- 0x00001e14 . = ALIGN (0x2)
+ .text 0x000015d8 0x2 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o
+ 0x000015d8 __vector_10
+ 0x000015d8 __vector_12
+ 0x000015d8 __bad_interrupt
+ 0x000015d8 __vector_6
+ 0x000015d8 __vector_3
+ 0x000015d8 __vector_11
+ 0x000015d8 __vector_13
+ 0x000015d8 __vector_7
+ 0x000015d8 __vector_5
+ 0x000015d8 __vector_4
+ 0x000015d8 __vector_9
+ 0x000015d8 __vector_8
+ 0x000015d8 __vector_14
+ 0x000015d8 __vector_1
+ .text 0x000015da 0x2f6 usbdrv/usbdrvasm.o
+ 0x000015da usbCrc16
+ 0x00001604 usbCrc16Append
+ 0x0000160c __vector_2
+ .text 0x000018d0 0x4aa main.o
+ 0x000019b0 main
+ 0x00001d7a . = ALIGN (0x2)
*(.text.*)
- 0x00001e14 . = ALIGN (0x2)
+ 0x00001d7a . = ALIGN (0x2)
*(.fini9)
- .fini9 0x00001e14 0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o)
- 0x00001e14 exit
- 0x00001e14 _exit
+ .fini9 0x00001d7a 0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o)
+ 0x00001d7a exit
+ 0x00001d7a _exit
*(.fini9)
*(.fini8)
*(.fini8)
@@ -272,11 +266,11 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a
*(.fini1)
*(.fini1)
*(.fini0)
- .fini0 0x00001e14 0x4 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o)
+ .fini0 0x00001d7a 0x4 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o)
*(.fini0)
- 0x00001e18 _etext = .
+ 0x00001d7e _etext = .
-.data 0x00800060 0xa load address 0x00001e18
+.data 0x00800060 0xa load address 0x00001d7e
0x00800060 PROVIDE (__data_start, .)
*(.data)
.data 0x00800060 0x9 main.o
@@ -290,33 +284,33 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a
0x0080006a _edata = .
0x0080006a PROVIDE (__data_end, .)
-.bss 0x0080006a 0x34
+.bss 0x0080006a 0x33
0x0080006a PROVIDE (__bss_start, .)
*(.bss)
- .bss 0x0080006a 0xa main.o
+ .bss 0x0080006a 0x9 main.o
*(.bss*)
*(COMMON)
- COMMON 0x00800074 0x2a main.o
- 0x00800074 usbTxBuf
- 0x0080007f usbDeviceAddr
- 0x00800080 usbRxToken
- 0x00800081 usbInputBufOffset
- 0x00800082 usbMsgPtr
- 0x00800084 usbRxLen
- 0x00800085 usbNewDeviceAddr
- 0x00800086 usbCurrentTok
- 0x00800087 usbConfiguration
- 0x00800088 usbRxBuf
- 0x0080009e PROVIDE (__bss_end, .)
- 0x00001e18 __data_load_start = LOADADDR (.data)
- 0x00001e22 __data_load_end = (__data_load_start + SIZEOF (.data))
-
-.noinit 0x0080009e 0x0
- 0x0080009e PROVIDE (__noinit_start, .)
+ COMMON 0x00800073 0x2a main.o
+ 0x00800073 usbTxBuf
+ 0x0080007e usbDeviceAddr
+ 0x0080007f usbRxToken
+ 0x00800080 usbInputBufOffset
+ 0x00800081 usbMsgPtr
+ 0x00800083 usbRxLen
+ 0x00800084 usbNewDeviceAddr
+ 0x00800085 usbCurrentTok
+ 0x00800086 usbConfiguration
+ 0x00800087 usbRxBuf
+ 0x0080009d PROVIDE (__bss_end, .)
+ 0x00001d7e __data_load_start = LOADADDR (.data)
+ 0x00001d88 __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit 0x0080009d 0x0
+ 0x0080009d PROVIDE (__noinit_start, .)
*(.noinit*)
- 0x0080009e PROVIDE (__noinit_end, .)
- 0x0080009e _end = .
- 0x0080009e PROVIDE (__heap_start, .)
+ 0x0080009d PROVIDE (__noinit_end, .)
+ 0x0080009d _end = .
+ 0x0080009d PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
diff --git a/firmware/main.o b/firmware/main.o
index 80b3803..c783efd 100644
--- a/firmware/main.o
+++ b/firmware/main.o
Binary files differ
diff --git a/firmware/usbdrv/oddebug.o b/firmware/usbdrv/oddebug.o
deleted file mode 100644
index b772817..0000000
--- a/firmware/usbdrv/oddebug.o
+++ /dev/null
Binary files differ
diff --git a/firmware/usbdrv/usbdrvasm.o b/firmware/usbdrv/usbdrvasm.o
index 4461d11..eee4fe0 100644
--- a/firmware/usbdrv/usbdrvasm.o
+++ b/firmware/usbdrv/usbdrvasm.o
Binary files differ