diff options
author | Jenna Fox <a@creativepony.com> | 2012-09-23 18:51:54 +1000 |
---|---|---|
committer | Jenna Fox <a@creativepony.com> | 2012-09-23 18:51:54 +1000 |
commit | 41b3fdbb95bc6751d00b5c8b9aef61d0a5ec6697 (patch) | |
tree | 0651d3008beac090311f7e8b3e90c4b7aa383cad /firmware | |
parent | 190e3ec77a72cd401ceac42332f78ff93156a46d (diff) | |
download | micronucleus-41b3fdbb95bc6751d00b5c8b9aef61d0a5ec6697.tar.gz micronucleus-41b3fdbb95bc6751d00b5c8b9aef61d0a5ec6697.tar.bz2 micronucleus-41b3fdbb95bc6751d00b5c8b9aef61d0a5ec6697.zip |
Built hex successfully, but bootloader is too big! nooooooooo!
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/libs-device/osccal.c.lst | 20 | ||||
-rwxr-xr-x | firmware/main.bin | bin | 0 -> 8512 bytes | |||
-rw-r--r-- | firmware/main.c.lst | 1253 | ||||
-rw-r--r-- | firmware/main.hex | 139 | ||||
-rw-r--r-- | firmware/main.map | 160 | ||||
-rw-r--r-- | firmware/main.o | bin | 6096 -> 5992 bytes | |||
-rw-r--r-- | firmware/usbdrv/oddebug.o | bin | 623 -> 0 bytes | |||
-rw-r--r-- | firmware/usbdrv/usbdrvasm.o | bin | 4344 -> 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 Binary files differnew file mode 100755 index 0000000..352ffea --- /dev/null +++ b/firmware/main.bin 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 Binary files differindex 80b3803..c783efd 100644 --- a/firmware/main.o +++ b/firmware/main.o diff --git a/firmware/usbdrv/oddebug.o b/firmware/usbdrv/oddebug.o Binary files differdeleted file mode 100644 index b772817..0000000 --- a/firmware/usbdrv/oddebug.o +++ /dev/null diff --git a/firmware/usbdrv/usbdrvasm.o b/firmware/usbdrv/usbdrvasm.o Binary files differindex 4461d11..eee4fe0 100644 --- a/firmware/usbdrv/usbdrvasm.o +++ b/firmware/usbdrv/usbdrvasm.o |