+++ /dev/null
-
-USBtoSerial.elf: file format elf32-avr
-
-Sections:
-Idx Name Size VMA LMA File off Algn
- 0 .data 0000004e 00800100 00001f94 00002028 2**0
- CONTENTS, ALLOC, LOAD, DATA
- 1 .text 00001f94 00000000 00000000 00000094 2**1
- CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .bss 00000186 0080014e 0080014e 00002076 2**0
- ALLOC
- 3 .stab 0000255c 00000000 00000000 00002078 2**2
- CONTENTS, READONLY, DEBUGGING
- 4 .stabstr 000004d5 00000000 00000000 000045d4 2**0
- CONTENTS, READONLY, DEBUGGING
- 5 .debug_aranges 000005e0 00000000 00000000 00004aa9 2**0
- CONTENTS, READONLY, DEBUGGING
- 6 .debug_pubnames 00000fa4 00000000 00000000 00005089 2**0
- CONTENTS, READONLY, DEBUGGING
- 7 .debug_info 00009390 00000000 00000000 0000602d 2**0
- CONTENTS, READONLY, DEBUGGING
- 8 .debug_abbrev 000021fc 00000000 00000000 0000f3bd 2**0
- CONTENTS, READONLY, DEBUGGING
- 9 .debug_line 00007d90 00000000 00000000 000115b9 2**0
- CONTENTS, READONLY, DEBUGGING
- 10 .debug_frame 00000980 00000000 00000000 0001934c 2**2
- CONTENTS, READONLY, DEBUGGING
- 11 .debug_str 00003dc5 00000000 00000000 00019ccc 2**0
- CONTENTS, READONLY, DEBUGGING
- 12 .debug_loc 00004b8d 00000000 00000000 0001da91 2**0
- CONTENTS, READONLY, DEBUGGING
- 13 .debug_pubtypes 00001111 00000000 00000000 0002261e 2**0
- CONTENTS, READONLY, DEBUGGING
- 14 .debug_ranges 00000868 00000000 00000000 0002372f 2**0
- CONTENTS, READONLY, DEBUGGING
-
-Disassembly of section .text:
-
-00000000 <__vectors>:
- BytesInTransfer++;
- }
- }
-
- return ENDPOINT_RWSTREAM_NoError;
-}
- 0: 9a c0 rjmp .+308 ; 0x136 <__ctors_end>
- #if defined(USB_CAN_BE_BOTH)
- USB_CurrentMode = USB_MODE_None;
- #endif
-
- USB_IsInitialized = false;
-}
- 2: 00 00 nop
- 4: b4 c0 rjmp .+360 ; 0x16e <__bad_interrupt>
- 6: 00 00 nop
- 8: b2 c0 rjmp .+356 ; 0x16e <__bad_interrupt>
- a: 00 00 nop
- c: b0 c0 rjmp .+352 ; 0x16e <__bad_interrupt>
- e: 00 00 nop
- 10: ae c0 rjmp .+348 ; 0x16e <__bad_interrupt>
- 12: 00 00 nop
- 14: ac c0 rjmp .+344 ; 0x16e <__bad_interrupt>
- 16: 00 00 nop
- 18: aa c0 rjmp .+340 ; 0x16e <__bad_interrupt>
- 1a: 00 00 nop
- 1c: a8 c0 rjmp .+336 ; 0x16e <__bad_interrupt>
- 1e: 00 00 nop
- 20: a6 c0 rjmp .+332 ; 0x16e <__bad_interrupt>
- 22: 00 00 nop
- 24: a4 c0 rjmp .+328 ; 0x16e <__bad_interrupt>
- 26: 00 00 nop
- 28: a2 c0 rjmp .+324 ; 0x16e <__bad_interrupt>
- 2a: 00 00 nop
- 2c: 0c 94 b7 09 jmp 0x136e ; 0x136e <__vector_11>
- 30: 0c 94 5b 0a jmp 0x14b6 ; 0x14b6 <__vector_12>
- 34: 9c c0 rjmp .+312 ; 0x16e <__bad_interrupt>
- 36: 00 00 nop
- 38: 9a c0 rjmp .+308 ; 0x16e <__bad_interrupt>
- 3a: 00 00 nop
- 3c: 98 c0 rjmp .+304 ; 0x16e <__bad_interrupt>
- 3e: 00 00 nop
- 40: 96 c0 rjmp .+300 ; 0x16e <__bad_interrupt>
- 42: 00 00 nop
- 44: 94 c0 rjmp .+296 ; 0x16e <__bad_interrupt>
- 46: 00 00 nop
- 48: 92 c0 rjmp .+292 ; 0x16e <__bad_interrupt>
- 4a: 00 00 nop
- 4c: 90 c0 rjmp .+288 ; 0x16e <__bad_interrupt>
- 4e: 00 00 nop
- 50: 8e c0 rjmp .+284 ; 0x16e <__bad_interrupt>
- 52: 00 00 nop
- 54: 4b c1 rjmp .+662 ; 0x2ec <__vector_21>
- 56: 00 00 nop
- 58: 8a c0 rjmp .+276 ; 0x16e <__bad_interrupt>
- 5a: 00 00 nop
- 5c: 69 c3 rjmp .+1746 ; 0x730 <__vector_23>
- 5e: 00 00 nop
- 60: 86 c0 rjmp .+268 ; 0x16e <__bad_interrupt>
- 62: 00 00 nop
- 64: 84 c0 rjmp .+264 ; 0x16e <__bad_interrupt>
- 66: 00 00 nop
- 68: 82 c0 rjmp .+260 ; 0x16e <__bad_interrupt>
- 6a: 00 00 nop
- 6c: 80 c0 rjmp .+256 ; 0x16e <__bad_interrupt>
- 6e: 00 00 nop
- 70: 7e c0 rjmp .+252 ; 0x16e <__bad_interrupt>
- 72: 00 00 nop
- 74: 7c c0 rjmp .+248 ; 0x16e <__bad_interrupt>
- 76: 00 00 nop
- 78: 7a c0 rjmp .+244 ; 0x16e <__bad_interrupt>
- 7a: 00 00 nop
- 7c: 78 c0 rjmp .+240 ; 0x16e <__bad_interrupt>
- 7e: 00 00 nop
- 80: 76 c0 rjmp .+236 ; 0x16e <__bad_interrupt>
- 82: 00 00 nop
- 84: 74 c0 rjmp .+232 ; 0x16e <__bad_interrupt>
- 86: 00 00 nop
- 88: 72 c0 rjmp .+228 ; 0x16e <__bad_interrupt>
- 8a: 00 00 nop
- 8c: 70 c0 rjmp .+224 ; 0x16e <__bad_interrupt>
- 8e: 00 00 nop
- 90: 6e c0 rjmp .+220 ; 0x16e <__bad_interrupt>
- 92: 00 00 nop
- 94: 6c c0 rjmp .+216 ; 0x16e <__bad_interrupt>
- 96: 00 00 nop
-
-00000098 <DeviceDescriptor>:
- 98: 12 01 10 01 02 00 00 08 eb 03 4b 20 01 00 01 02 ..........K ....
- a8: dc 01 ..
-
-000000aa <ConfigurationDescriptor>:
- aa: 09 02 3e 00 02 01 00 c0 32 09 04 00 00 01 02 02 ..>.....2.......
- ba: 01 00 05 24 00 10 01 04 24 02 06 05 24 06 00 01 ...$....$...$...
- ca: 07 05 82 03 08 00 ff 09 04 01 00 02 0a 00 00 00 ................
- da: 07 05 04 02 10 00 05 07 05 83 02 10 00 05 ..............
-
-000000e8 <LanguageString>:
- e8: 04 03 09 04 ....
-
-000000ec <ManufacturerString>:
- ec: 18 03 44 00 65 00 61 00 6e 00 20 00 43 00 61 00 ..D.e.a.n. .C.a.
- fc: 6d 00 65 00 72 00 61 00 00 00 m.e.r.a...
-
-00000106 <ProductString>:
- 106: 2e 03 4c 00 55 00 46 00 41 00 20 00 55 00 53 00 ..L.U.F.A. .U.S.
- 116: 42 00 2d 00 52 00 53 00 32 00 33 00 32 00 20 00 B.-.R.S.2.3.2. .
- 126: 41 00 64 00 61 00 70 00 74 00 65 00 72 00 00 00 A.d.a.p.t.e.r...
-
-00000136 <__ctors_end>:
- 136: 11 24 eor r1, r1
- 138: 1f be out 0x3f, r1 ; 63
- 13a: cf ef ldi r28, 0xFF ; 255
- 13c: d4 e0 ldi r29, 0x04 ; 4
- 13e: de bf out 0x3e, r29 ; 62
- 140: cd bf out 0x3d, r28 ; 61
-
-00000142 <__do_copy_data>:
- 142: 11 e0 ldi r17, 0x01 ; 1
- 144: a0 e0 ldi r26, 0x00 ; 0
- 146: b1 e0 ldi r27, 0x01 ; 1
- 148: e4 e9 ldi r30, 0x94 ; 148
- 14a: ff e1 ldi r31, 0x1F ; 31
- 14c: 02 c0 rjmp .+4 ; 0x152 <__do_copy_data+0x10>
- 14e: 05 90 lpm r0, Z+
- 150: 0d 92 st X+, r0
- 152: ae 34 cpi r26, 0x4E ; 78
- 154: b1 07 cpc r27, r17
- 156: d9 f7 brne .-10 ; 0x14e <__do_copy_data+0xc>
-
-00000158 <__do_clear_bss>:
- 158: 12 e0 ldi r17, 0x02 ; 2
- 15a: ae e4 ldi r26, 0x4E ; 78
- 15c: b1 e0 ldi r27, 0x01 ; 1
- 15e: 01 c0 rjmp .+2 ; 0x162 <.do_clear_bss_start>
-
-00000160 <.do_clear_bss_loop>:
- 160: 1d 92 st X+, r1
-
-00000162 <.do_clear_bss_start>:
- 162: a4 3d cpi r26, 0xD4 ; 212
- 164: b1 07 cpc r27, r17
- 166: e1 f7 brne .-8 ; 0x160 <.do_clear_bss_loop>
- 168: b3 d6 rcall .+3430 ; 0xed0 <main>
- 16a: 0c 94 c8 0f jmp 0x1f90 ; 0x1f90 <_exit>
-
-0000016e <__bad_interrupt>:
- 16e: 48 cf rjmp .-368 ; 0x0 <__vectors>
-
-00000170 <RingBuffer_Insert>:
- * \param[in] Data Data element to insert into the buffer.
- */
- static inline void RingBuffer_Insert(RingBuffer_t* Buffer, const uint8_t Data) ATTR_NON_NULL_PTR_ARG(1);
- static inline void RingBuffer_Insert(RingBuffer_t* Buffer, const uint8_t Data)
- {
- GCC_FORCE_POINTER_ACCESS(Buffer);
- 170: fc 01 movw r30, r24
-
- *Buffer->In = Data;
- 172: a0 81 ld r26, Z
- 174: b1 81 ldd r27, Z+1 ; 0x01
- 176: 6c 93 st X, r22
-
- if (++Buffer->In == Buffer->End)
- 178: 80 81 ld r24, Z
- 17a: 91 81 ldd r25, Z+1 ; 0x01
- 17c: 01 96 adiw r24, 0x01 ; 1
- 17e: 91 83 std Z+1, r25 ; 0x01
- 180: 80 83 st Z, r24
- 182: 26 81 ldd r18, Z+6 ; 0x06
- 184: 37 81 ldd r19, Z+7 ; 0x07
- 186: 82 17 cp r24, r18
- 188: 93 07 cpc r25, r19
- 18a: 21 f4 brne .+8 ; 0x194 <RingBuffer_Insert+0x24>
- Buffer->In = Buffer->Start;
- 18c: 84 81 ldd r24, Z+4 ; 0x04
- 18e: 95 81 ldd r25, Z+5 ; 0x05
- 190: 91 83 std Z+1, r25 ; 0x01
- 192: 80 83 st Z, r24
- static inline uint_reg_t GetGlobalInterruptMask(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- return SREG;
- 194: 2f b7 in r18, 0x3f ; 63
- static inline void GlobalInterruptDisable(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- cli();
- 196: f8 94 cli
-
- uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
- GlobalInterruptDisable();
-
- Buffer->Count++;
- 198: 82 85 ldd r24, Z+10 ; 0x0a
- 19a: 93 85 ldd r25, Z+11 ; 0x0b
- 19c: 01 96 adiw r24, 0x01 ; 1
- 19e: 93 87 std Z+11, r25 ; 0x0b
- 1a0: 82 87 std Z+10, r24 ; 0x0a
- static inline void SetGlobalInterruptMask(const uint_reg_t GlobalIntState)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- SREG = GlobalIntState;
- 1a2: 2f bf out 0x3f, r18 ; 63
-
- SetGlobalInterruptMask(CurrentGlobalInt);
- }
- 1a4: 08 95 ret
-
-000001a6 <RingBuffer_Remove>:
- * \return Next data element stored in the buffer.
- */
- static inline uint8_t RingBuffer_Remove(RingBuffer_t* Buffer) ATTR_NON_NULL_PTR_ARG(1);
- static inline uint8_t RingBuffer_Remove(RingBuffer_t* Buffer)
- {
- GCC_FORCE_POINTER_ACCESS(Buffer);
- 1a6: fc 01 movw r30, r24
-
- uint8_t Data = *Buffer->Out;
- 1a8: a2 81 ldd r26, Z+2 ; 0x02
- 1aa: b3 81 ldd r27, Z+3 ; 0x03
- 1ac: 8d 91 ld r24, X+
-
- if (++Buffer->Out == Buffer->End)
- 1ae: b3 83 std Z+3, r27 ; 0x03
- 1b0: a2 83 std Z+2, r26 ; 0x02
- 1b2: 26 81 ldd r18, Z+6 ; 0x06
- 1b4: 37 81 ldd r19, Z+7 ; 0x07
- 1b6: a2 17 cp r26, r18
- 1b8: b3 07 cpc r27, r19
- 1ba: 21 f4 brne .+8 ; 0x1c4 <RingBuffer_Remove+0x1e>
- Buffer->Out = Buffer->Start;
- 1bc: 24 81 ldd r18, Z+4 ; 0x04
- 1be: 35 81 ldd r19, Z+5 ; 0x05
- 1c0: 33 83 std Z+3, r19 ; 0x03
- 1c2: 22 83 std Z+2, r18 ; 0x02
- static inline uint_reg_t GetGlobalInterruptMask(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- return SREG;
- 1c4: 9f b7 in r25, 0x3f ; 63
- static inline void GlobalInterruptDisable(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- cli();
- 1c6: f8 94 cli
-
- uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
- GlobalInterruptDisable();
-
- Buffer->Count--;
- 1c8: 22 85 ldd r18, Z+10 ; 0x0a
- 1ca: 33 85 ldd r19, Z+11 ; 0x0b
- 1cc: 21 50 subi r18, 0x01 ; 1
- 1ce: 30 40 sbci r19, 0x00 ; 0
- 1d0: 33 87 std Z+11, r19 ; 0x0b
- 1d2: 22 87 std Z+10, r18 ; 0x0a
- static inline void SetGlobalInterruptMask(const uint_reg_t GlobalIntState)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- SREG = GlobalIntState;
- 1d4: 9f bf out 0x3f, r25 ; 63
-
- SetGlobalInterruptMask(CurrentGlobalInt);
-
- return Data;
- }
- 1d6: 08 95 ret
-
-000001d8 <set_x>:
-
-uint8_t phase_pattern[4] = { 0b00001010, 0b00001001, 0b00000101, 0b00000110};
-
-
-void set_x(uint8_t byte) {
- PORTX0 &= ~(1<<X0);
- 1d8: 2a 98 cbi 0x05, 2 ; 5
- PORTX1 &= ~(1<<X1);
- 1da: 2b 98 cbi 0x05, 3 ; 5
- PORTX2 &= ~(1<<X2);
- 1dc: 2c 98 cbi 0x05, 4 ; 5
- PORTX3 &= ~(1<<X3);
- 1de: 2d 98 cbi 0x05, 5 ; 5
-
- PORTX0 |= ((byte & (1<<0))>>0)<<X0;
- 1e0: 45 b1 in r20, 0x05 ; 5
- 1e2: 90 e0 ldi r25, 0x00 ; 0
- 1e4: 9c 01 movw r18, r24
- 1e6: 21 70 andi r18, 0x01 ; 1
- 1e8: 30 70 andi r19, 0x00 ; 0
- 1ea: 22 0f add r18, r18
- 1ec: 33 1f adc r19, r19
- 1ee: 22 0f add r18, r18
- 1f0: 33 1f adc r19, r19
- 1f2: 42 2b or r20, r18
- 1f4: 45 b9 out 0x05, r20 ; 5
- PORTX1 |= ((byte & (1<<1))>>1)<<X1;
- 1f6: 45 b1 in r20, 0x05 ; 5
- 1f8: 9c 01 movw r18, r24
- 1fa: 22 70 andi r18, 0x02 ; 2
- 1fc: 30 70 andi r19, 0x00 ; 0
- 1fe: 35 95 asr r19
- 200: 27 95 ror r18
- 202: 73 e0 ldi r23, 0x03 ; 3
- 204: 22 0f add r18, r18
- 206: 33 1f adc r19, r19
- 208: 7a 95 dec r23
- 20a: e1 f7 brne .-8 ; 0x204 <set_x+0x2c>
- 20c: 42 2b or r20, r18
- 20e: 45 b9 out 0x05, r20 ; 5
- PORTX2 |= ((byte & (1<<2))>>2)<<X2;
- 210: 45 b1 in r20, 0x05 ; 5
- 212: 9c 01 movw r18, r24
- 214: 24 70 andi r18, 0x04 ; 4
- 216: 30 70 andi r19, 0x00 ; 0
- 218: 35 95 asr r19
- 21a: 27 95 ror r18
- 21c: 35 95 asr r19
- 21e: 27 95 ror r18
- 220: 54 e0 ldi r21, 0x04 ; 4
- 222: 22 0f add r18, r18
- 224: 33 1f adc r19, r19
- 226: 5a 95 dec r21
- 228: e1 f7 brne .-8 ; 0x222 <set_x+0x4a>
- 22a: 42 2b or r20, r18
- 22c: 45 b9 out 0x05, r20 ; 5
- PORTX3 |= ((byte & (1<<3))>>3)<<X3;
- 22e: 25 b1 in r18, 0x05 ; 5
- 230: 88 70 andi r24, 0x08 ; 8
- 232: 90 70 andi r25, 0x00 ; 0
- 234: 43 e0 ldi r20, 0x03 ; 3
- 236: 95 95 asr r25
- 238: 87 95 ror r24
- 23a: 4a 95 dec r20
- 23c: e1 f7 brne .-8 ; 0x236 <set_x+0x5e>
- 23e: 35 e0 ldi r19, 0x05 ; 5
- 240: 88 0f add r24, r24
- 242: 99 1f adc r25, r25
- 244: 3a 95 dec r19
- 246: e1 f7 brne .-8 ; 0x240 <set_x+0x68>
- 248: 28 2b or r18, r24
- 24a: 25 b9 out 0x05, r18 ; 5
-}
- 24c: 08 95 ret
-
-0000024e <set_y>:
-
-void set_y(uint8_t byte) {
- PORTY0 &= ~(1<<Y0);
- 24e: 2f 98 cbi 0x05, 7 ; 5
- PORTY1 &= ~(1<<Y1);
- 250: 2e 98 cbi 0x05, 6 ; 5
- PORTY2 &= ~(1<<Y2);
- 252: 47 98 cbi 0x08, 7 ; 8
- PORTY3 &= ~(1<<Y3);
- 254: 46 98 cbi 0x08, 6 ; 8
-
- PORTY0 |= ((byte & (1<<0))>>0)<<Y0;
- 256: 45 b1 in r20, 0x05 ; 5
- 258: 90 e0 ldi r25, 0x00 ; 0
- 25a: 9c 01 movw r18, r24
- 25c: 36 95 lsr r19
- 25e: 32 2f mov r19, r18
- 260: 22 27 eor r18, r18
- 262: 37 95 ror r19
- 264: 27 95 ror r18
- 266: 42 2b or r20, r18
- 268: 45 b9 out 0x05, r20 ; 5
- PORTY1 |= ((byte & (1<<1))>>1)<<Y1;
- 26a: 45 b1 in r20, 0x05 ; 5
- 26c: 9c 01 movw r18, r24
- 26e: 22 70 andi r18, 0x02 ; 2
- 270: 30 70 andi r19, 0x00 ; 0
- 272: 35 95 asr r19
- 274: 27 95 ror r18
- 276: 76 e0 ldi r23, 0x06 ; 6
- 278: 22 0f add r18, r18
- 27a: 33 1f adc r19, r19
- 27c: 7a 95 dec r23
- 27e: e1 f7 brne .-8 ; 0x278 <set_y+0x2a>
- 280: 42 2b or r20, r18
- 282: 45 b9 out 0x05, r20 ; 5
- PORTY2 |= ((byte & (1<<2))>>2)<<Y2;
- 284: 48 b1 in r20, 0x08 ; 8
- 286: 9c 01 movw r18, r24
- 288: 24 70 andi r18, 0x04 ; 4
- 28a: 30 70 andi r19, 0x00 ; 0
- 28c: 35 95 asr r19
- 28e: 27 95 ror r18
- 290: 35 95 asr r19
- 292: 27 95 ror r18
- 294: 36 95 lsr r19
- 296: 32 2f mov r19, r18
- 298: 22 27 eor r18, r18
- 29a: 37 95 ror r19
- 29c: 27 95 ror r18
- 29e: 42 2b or r20, r18
- 2a0: 48 b9 out 0x08, r20 ; 8
- PORTY3 |= ((byte & (1<<3))>>3)<<Y3;
- 2a2: 28 b1 in r18, 0x08 ; 8
- 2a4: 88 70 andi r24, 0x08 ; 8
- 2a6: 90 70 andi r25, 0x00 ; 0
- 2a8: b3 e0 ldi r27, 0x03 ; 3
- 2aa: 95 95 asr r25
- 2ac: 87 95 ror r24
- 2ae: ba 95 dec r27
- 2b0: e1 f7 brne .-8 ; 0x2aa <set_y+0x5c>
- 2b2: a6 e0 ldi r26, 0x06 ; 6
- 2b4: 88 0f add r24, r24
- 2b6: 99 1f adc r25, r25
- 2b8: aa 95 dec r26
- 2ba: e1 f7 brne .-8 ; 0x2b4 <set_y+0x66>
- 2bc: 28 2b or r18, r24
- 2be: 28 b9 out 0x08, r18 ; 8
-}
- 2c0: 08 95 ret
-
-000002c2 <RingBuffer_InitBuffer.clone.0>:
- const uint16_t Size) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
- static inline void RingBuffer_InitBuffer(RingBuffer_t* Buffer,
- uint8_t* const DataPtr,
- const uint16_t Size)
- {
- GCC_FORCE_POINTER_ACCESS(Buffer);
- 2c2: fc 01 movw r30, r24
- static inline uint_reg_t GetGlobalInterruptMask(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- return SREG;
- 2c4: 2f b7 in r18, 0x3f ; 63
- static inline void GlobalInterruptDisable(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- cli();
- 2c6: f8 94 cli
-
- uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
- GlobalInterruptDisable();
-
- Buffer->In = DataPtr;
- 2c8: 71 83 std Z+1, r23 ; 0x01
- 2ca: 60 83 st Z, r22
- Buffer->Out = DataPtr;
- 2cc: 73 83 std Z+3, r23 ; 0x03
- 2ce: 62 83 std Z+2, r22 ; 0x02
- Buffer->Start = &DataPtr[0];
- 2d0: 75 83 std Z+5, r23 ; 0x05
- 2d2: 64 83 std Z+4, r22 ; 0x04
- Buffer->End = &DataPtr[Size];
- 2d4: 60 58 subi r22, 0x80 ; 128
- 2d6: 7f 4f sbci r23, 0xFF ; 255
- 2d8: 77 83 std Z+7, r23 ; 0x07
- 2da: 66 83 std Z+6, r22 ; 0x06
- Buffer->Size = Size;
- 2dc: 80 e8 ldi r24, 0x80 ; 128
- 2de: 90 e0 ldi r25, 0x00 ; 0
- 2e0: 91 87 std Z+9, r25 ; 0x09
- 2e2: 80 87 std Z+8, r24 ; 0x08
- Buffer->Count = 0;
- 2e4: 13 86 std Z+11, r1 ; 0x0b
- 2e6: 12 86 std Z+10, r1 ; 0x0a
- static inline void SetGlobalInterruptMask(const uint_reg_t GlobalIntState)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- SREG = GlobalIntState;
- 2e8: 2f bf out 0x3f, r18 ; 63
-
- SetGlobalInterruptMask(CurrentGlobalInt);
- }
- 2ea: 08 95 ret
-
-000002ec <__vector_21>:
-u08 adb_werte[MAX_ADB];
-u08 t0ovfcount;
-volatile u08 adb_data_length;
-
-
-ISR( TIMER0_OVF_vect) {
- 2ec: 1f 92 push r1
- 2ee: 0f 92 push r0
- 2f0: 0f b6 in r0, 0x3f ; 63
- 2f2: 0f 92 push r0
- 2f4: 11 24 eor r1, r1
- 2f6: 8f 93 push r24
- t0ovfcount++;
- 2f8: 80 91 c6 02 lds r24, 0x02C6
- 2fc: 8f 5f subi r24, 0xFF ; 255
- 2fe: 80 93 c6 02 sts 0x02C6, r24
-}
- 302: 8f 91 pop r24
- 304: 0f 90 pop r0
- 306: 0f be out 0x3f, r0 ; 63
- 308: 0f 90 pop r0
- 30a: 1f 90 pop r1
- 30c: 18 95 reti
-
-0000030e <t0ext>:
-
-uint16_t t0ext(void) {
- return (t0ovfcount * 256 + (u16) TCNT0); // return current counter value
- 30e: 86 b5 in r24, 0x26 ; 38
- 310: 30 91 c6 02 lds r19, 0x02C6
- 314: 20 e0 ldi r18, 0x00 ; 0
- 316: 28 0f add r18, r24
- 318: 31 1d adc r19, r1
- // plus number of already passed counter cycles times 256
-}
- 31a: c9 01 movw r24, r18
- 31c: 08 95 ret
-
-0000031e <t0rst>:
-
-void t0rst(void) {
- TCNT0 = 0; // set counter to zero
- 31e: 16 bc out 0x26, r1 ; 38
- t0ovfcount = 0; // set overflow counter to zero
- 320: 10 92 c6 02 sts 0x02C6, r1
-
-}
- 324: 08 95 ret
-
-00000326 <adb>:
-// Befehl in adb_werte[0]. Empfangene bzw. zu sendende Daten in adb_werte[1 bis 8]
-
-
-
-
-u08 adb(void) {
- 326: df 92 push r13
- 328: ef 92 push r14
- 32a: ff 92 push r15
- 32c: 0f 93 push r16
- 32e: 1f 93 push r17
- 330: cf 93 push r28
- 332: df 93 push r29
-#define ADB_IMPULS_TLT TAKT/ADB_VORTEILER_B*250/1000000 // !!! 375 mach das mit anderem prescaler
-// #define ADB_IMPULS_TLT TAKT/ADB_VORTEILER_A*31/1000000 // modified
- //#define ADB_IMPULS_PAUSE TAKT/ADB_VORTEILER_B*200/1000000
-
- //Attention Signal
- TCCR0B = ADB_VORTEILER_A_BIT;
- 334: 83 e0 ldi r24, 0x03 ; 3
- 336: 85 bd out 0x25, r24 ; 37
- t0rst(); // TCNT0 = 0; // Zähler auf null setzen
- 338: f2 df rcall .-28 ; 0x31e <t0rst>
- ADB_PDIR |= ADB_BIT; // Ausgang 0
- 33a: 50 9a sbi 0x0a, 0 ; 10
- ADB_POUT &= ~ADB_BIT;
- 33c: 58 98 cbi 0x0b, 0 ; 11
- while (t0ext() < ADB_IMPULS_ATT)
- 33e: e7 df rcall .-50 ; 0x30e <t0ext>
- 340: bc 01 movw r22, r24
- 342: 80 e0 ldi r24, 0x00 ; 0
- 344: 90 e0 ldi r25, 0x00 ; 0
- 346: 0e 94 81 0e call 0x1d02 ; 0x1d02 <__floatunsisf>
- 34a: 20 e0 ldi r18, 0x00 ; 0
- 34c: 30 e8 ldi r19, 0x80 ; 128
- 34e: 4e e0 ldi r20, 0x0E ; 14
- 350: 53 e4 ldi r21, 0x43 ; 67
- 352: 0e 94 e9 0d call 0x1bd2 ; 0x1bd2 <__cmpsf2>
- 356: 87 fd sbrc r24, 7
- 358: f2 cf rjmp .-28 ; 0x33e <adb+0x18>
- ; // Warteschleife
-
- TCCR0B = ADB_VORTEILER_B_BIT; // ab hier alles im schnellen modus
- 35a: 82 e0 ldi r24, 0x02 ; 2
- 35c: 85 bd out 0x25, r24 ; 37
-
- anzahl_out = 1; // Mindestens Befehl übertragen
- 35e: dd 24 eor r13, r13
- 360: d3 94 inc r13
- z_byte = 0;
- 362: 10 e0 ldi r17, 0x00 ; 0
- do {
- // START BIT (1)
- t0rst(); // TCNT0 = 0;
- 364: dc df rcall .-72 ; 0x31e <t0rst>
- ADB_PDIR |= ADB_BIT; // Ausgang 0
- 366: 50 9a sbi 0x0a, 0 ; 10
- ADB_POUT &= ~ADB_BIT;
- 368: 58 98 cbi 0x0b, 0 ; 11
- while (t0ext() < ADB_IMPULS_KURZ)
- 36a: d1 df rcall .-94 ; 0x30e <t0ext>
- 36c: bc 01 movw r22, r24
- 36e: 80 e0 ldi r24, 0x00 ; 0
- 370: 90 e0 ldi r25, 0x00 ; 0
- 372: 0e 94 81 0e call 0x1d02 ; 0x1d02 <__floatunsisf>
- 376: 20 e0 ldi r18, 0x00 ; 0
- 378: 30 e0 ldi r19, 0x00 ; 0
- 37a: 4c e8 ldi r20, 0x8C ; 140
- 37c: 52 e4 ldi r21, 0x42 ; 66
- 37e: 0e 94 e9 0d call 0x1bd2 ; 0x1bd2 <__cmpsf2>
- 382: 87 fd sbrc r24, 7
- 384: f2 cf rjmp .-28 ; 0x36a <adb+0x44>
- ;
- ADB_PDIR &= ~ADB_BIT; // Eingang über Pullup
- 386: 50 98 cbi 0x0a, 0 ; 10
- ADB_POUT |= ADB_BIT;
- 388: 58 9a sbi 0x0b, 0 ; 11
- while (t0ext() < ADB_IMPULS_KURZ + ADB_IMPULS_LANG)
- 38a: c1 df rcall .-126 ; 0x30e <t0ext>
- 38c: bc 01 movw r22, r24
- 38e: 80 e0 ldi r24, 0x00 ; 0
- 390: 90 e0 ldi r25, 0x00 ; 0
- 392: 0e 94 81 0e call 0x1d02 ; 0x1d02 <__floatunsisf>
- 396: 20 e0 ldi r18, 0x00 ; 0
- 398: 30 e0 ldi r19, 0x00 ; 0
- 39a: 48 e4 ldi r20, 0x48 ; 72
- 39c: 53 e4 ldi r21, 0x43 ; 67
- 39e: 0e 94 e9 0d call 0x1bd2 ; 0x1bd2 <__cmpsf2>
- 3a2: 87 fd sbrc r24, 7
- 3a4: f2 cf rjmp .-28 ; 0x38a <adb+0x64>
- 3a6: 41 c0 rjmp .+130 ; 0x42a <adb+0x104>
- ;
-
- for (; z_byte < anzahl_out; z_byte++) {
- 3a8: c8 e0 ldi r28, 0x08 ; 8
- 3aa: d0 e0 ldi r29, 0x00 ; 0
- 3ac: 00 e8 ldi r16, 0x80 ; 128
- for (bitpos = 128; bitpos; bitpos >>= 1) { //Daten ausgeben
- t0rst(); // TCNT0 = 0;
- ADB_PDIR |= ADB_BIT; // Ausgang 0
- ADB_POUT &= ~ADB_BIT;
- if (adb_werte[z_byte] & bitpos)
- 3ae: e1 2e mov r14, r17
- 3b0: ff 24 eor r15, r15
- 3b2: 8d ea ldi r24, 0xAD ; 173
- 3b4: 92 e0 ldi r25, 0x02 ; 2
- 3b6: e8 0e add r14, r24
- 3b8: f9 1e adc r15, r25
- while (t0ext() < ADB_IMPULS_KURZ + ADB_IMPULS_LANG)
- ;
-
- for (; z_byte < anzahl_out; z_byte++) {
- for (bitpos = 128; bitpos; bitpos >>= 1) { //Daten ausgeben
- t0rst(); // TCNT0 = 0;
- 3ba: b1 df rcall .-158 ; 0x31e <t0rst>
- ADB_PDIR |= ADB_BIT; // Ausgang 0
- 3bc: 50 9a sbi 0x0a, 0 ; 10
- ADB_POUT &= ~ADB_BIT;
- 3be: 58 98 cbi 0x0b, 0 ; 11
- if (adb_werte[z_byte] & bitpos)
- 3c0: f7 01 movw r30, r14
- 3c2: 80 81 ld r24, Z
- 3c4: 80 23 and r24, r16
- 3c6: 79 f0 breq .+30 ; 0x3e6 <adb+0xc0>
- while (t0ext() < ADB_IMPULS_KURZ)
- 3c8: a2 df rcall .-188 ; 0x30e <t0ext>
- 3ca: bc 01 movw r22, r24
- 3cc: 80 e0 ldi r24, 0x00 ; 0
- 3ce: 90 e0 ldi r25, 0x00 ; 0
- 3d0: 0e 94 81 0e call 0x1d02 ; 0x1d02 <__floatunsisf>
- 3d4: 20 e0 ldi r18, 0x00 ; 0
- 3d6: 30 e0 ldi r19, 0x00 ; 0
- 3d8: 4c e8 ldi r20, 0x8C ; 140
- 3da: 52 e4 ldi r21, 0x42 ; 66
- 3dc: 0e 94 e9 0d call 0x1bd2 ; 0x1bd2 <__cmpsf2>
- 3e0: 87 fd sbrc r24, 7
- 3e2: f2 cf rjmp .-28 ; 0x3c8 <adb+0xa2>
- 3e4: 0e c0 rjmp .+28 ; 0x402 <adb+0xdc>
- ;
- else
- while (t0ext() < ADB_IMPULS_LANG)
- 3e6: 93 df rcall .-218 ; 0x30e <t0ext>
- 3e8: bc 01 movw r22, r24
- 3ea: 80 e0 ldi r24, 0x00 ; 0
- 3ec: 90 e0 ldi r25, 0x00 ; 0
- 3ee: 0e 94 81 0e call 0x1d02 ; 0x1d02 <__floatunsisf>
- 3f2: 20 e0 ldi r18, 0x00 ; 0
- 3f4: 30 e0 ldi r19, 0x00 ; 0
- 3f6: 42 e0 ldi r20, 0x02 ; 2
- 3f8: 53 e4 ldi r21, 0x43 ; 67
- 3fa: 0e 94 e9 0d call 0x1bd2 ; 0x1bd2 <__cmpsf2>
- 3fe: 87 fd sbrc r24, 7
- 400: f2 cf rjmp .-28 ; 0x3e6 <adb+0xc0>
- ;
- ADB_PDIR &= ~ADB_BIT; // Eingang über Pullup
- 402: 50 98 cbi 0x0a, 0 ; 10
- ADB_POUT |= ADB_BIT;
- 404: 58 9a sbi 0x0b, 0 ; 11
- while (t0ext() < ADB_IMPULS_KURZ + ADB_IMPULS_LANG)
- 406: 83 df rcall .-250 ; 0x30e <t0ext>
- 408: bc 01 movw r22, r24
- 40a: 80 e0 ldi r24, 0x00 ; 0
- 40c: 90 e0 ldi r25, 0x00 ; 0
- 40e: 0e 94 81 0e call 0x1d02 ; 0x1d02 <__floatunsisf>
- 412: 20 e0 ldi r18, 0x00 ; 0
- 414: 30 e0 ldi r19, 0x00 ; 0
- 416: 48 e4 ldi r20, 0x48 ; 72
- 418: 53 e4 ldi r21, 0x43 ; 67
- 41a: 0e 94 e9 0d call 0x1bd2 ; 0x1bd2 <__cmpsf2>
- 41e: 87 fd sbrc r24, 7
- 420: f2 cf rjmp .-28 ; 0x406 <adb+0xe0>
- ADB_POUT |= ADB_BIT;
- while (t0ext() < ADB_IMPULS_KURZ + ADB_IMPULS_LANG)
- ;
-
- for (; z_byte < anzahl_out; z_byte++) {
- for (bitpos = 128; bitpos; bitpos >>= 1) { //Daten ausgeben
- 422: 06 95 lsr r16
- 424: 21 97 sbiw r28, 0x01 ; 1
- 426: 49 f6 brne .-110 ; 0x3ba <adb+0x94>
- ADB_PDIR &= ~ADB_BIT; // Eingang über Pullup
- ADB_POUT |= ADB_BIT;
- while (t0ext() < ADB_IMPULS_KURZ + ADB_IMPULS_LANG)
- ;
-
- for (; z_byte < anzahl_out; z_byte++) {
- 428: 1f 5f subi r17, 0xFF ; 255
- 42a: 1d 15 cp r17, r13
- 42c: 08 f4 brcc .+2 ; 0x430 <adb+0x10a>
- 42e: bc cf rjmp .-136 ; 0x3a8 <adb+0x82>
- while (t0ext() < ADB_IMPULS_KURZ + ADB_IMPULS_LANG)
- ;
- }
- }
- // STOP BIT (0)
- t0rst(); // TCNT0 = 0;
- 430: 76 df rcall .-276 ; 0x31e <t0rst>
- ADB_PDIR |= ADB_BIT; // Ausgang 0
- 432: 50 9a sbi 0x0a, 0 ; 10
- ADB_POUT &= ~ADB_BIT;
- 434: 58 98 cbi 0x0b, 0 ; 11
- while (t0ext() < ADB_IMPULS_LANG)
- 436: 6b df rcall .-298 ; 0x30e <t0ext>
- 438: bc 01 movw r22, r24
- 43a: 80 e0 ldi r24, 0x00 ; 0
- 43c: 90 e0 ldi r25, 0x00 ; 0
- 43e: 0e 94 81 0e call 0x1d02 ; 0x1d02 <__floatunsisf>
- 442: 20 e0 ldi r18, 0x00 ; 0
- 444: 30 e0 ldi r19, 0x00 ; 0
- 446: 42 e0 ldi r20, 0x02 ; 2
- 448: 53 e4 ldi r21, 0x43 ; 67
- 44a: 0e 94 e9 0d call 0x1bd2 ; 0x1bd2 <__cmpsf2>
- 44e: 87 fd sbrc r24, 7
- 450: f2 cf rjmp .-28 ; 0x436 <adb+0x110>
- ;
- ADB_PDIR &= ~ADB_BIT; // Eingang über Pullup
- 452: 50 98 cbi 0x0a, 0 ; 10
- ADB_POUT |= ADB_BIT;
- 454: 58 9a sbi 0x0b, 0 ; 11
- while (t0ext() < ADB_IMPULS_KURZ + ADB_IMPULS_LANG)
- 456: 5b df rcall .-330 ; 0x30e <t0ext>
- 458: bc 01 movw r22, r24
- 45a: 80 e0 ldi r24, 0x00 ; 0
- 45c: 90 e0 ldi r25, 0x00 ; 0
- 45e: 0e 94 81 0e call 0x1d02 ; 0x1d02 <__floatunsisf>
- 462: 20 e0 ldi r18, 0x00 ; 0
- 464: 30 e0 ldi r19, 0x00 ; 0
- 466: 48 e4 ldi r20, 0x48 ; 72
- 468: 53 e4 ldi r21, 0x43 ; 67
- 46a: 0e 94 e9 0d call 0x1bd2 ; 0x1bd2 <__cmpsf2>
- 46e: 87 fd sbrc r24, 7
- 470: f2 cf rjmp .-28 ; 0x456 <adb+0x130>
- ;
-
- // Entscheidung, ob noch weitere Daten übertragen werden
- if (adb_werte[0] == COM_LISTEN3)
- 472: 80 91 ad 02 lds r24, 0x02AD
- 476: 8b 33 cpi r24, 0x3B ; 59
- 478: 29 f0 breq .+10 ; 0x484 <adb+0x15e>
- anzahl_out = 2 + 1;
- else if (adb_werte[0] == COM_LISTEN1)
- 47a: 89 33 cpi r24, 0x39 ; 57
- 47c: 41 f4 brne .+16 ; 0x48e <adb+0x168>
- anzahl_out = 8 + 1;
- 47e: 09 e0 ldi r16, 0x09 ; 9
- 480: d0 2e mov r13, r16
- 482: 02 c0 rjmp .+4 ; 0x488 <adb+0x162>
- while (t0ext() < ADB_IMPULS_KURZ + ADB_IMPULS_LANG)
- ;
-
- // Entscheidung, ob noch weitere Daten übertragen werden
- if (adb_werte[0] == COM_LISTEN3)
- anzahl_out = 2 + 1;
- 484: b3 e0 ldi r27, 0x03 ; 3
- 486: db 2e mov r13, r27
- else if (adb_werte[0] == COM_LISTEN1)
- anzahl_out = 8 + 1;
- else
- z_byte = 8;
- } while (z_byte < 2);
- 488: 11 30 cpi r17, 0x01 ; 1
- 48a: 09 f4 brne .+2 ; 0x48e <adb+0x168>
- 48c: 6b cf rjmp .-298 ; 0x364 <adb+0x3e>
-
- // Warten auf Rückgabewerte sonst Abbruch
- // TCCR0 = ADB_VORTEILER_A_BIT; // micha modifikation
- t0rst(); // TCNT0 = 0;
- 48e: 47 df rcall .-370 ; 0x31e <t0rst>
-
- do {
- if (t0ext() > ADB_IMPULS_TLT) {
- 490: 3e df rcall .-388 ; 0x30e <t0ext>
- 492: bc 01 movw r22, r24
- 494: 80 e0 ldi r24, 0x00 ; 0
- 496: 90 e0 ldi r25, 0x00 ; 0
- 498: 0e 94 81 0e call 0x1d02 ; 0x1d02 <__floatunsisf>
- 49c: 20 e0 ldi r18, 0x00 ; 0
- 49e: 30 e0 ldi r19, 0x00 ; 0
- 4a0: 4a ef ldi r20, 0xFA ; 250
- 4a2: 53 e4 ldi r21, 0x43 ; 67
- 4a4: 0e 94 33 0f call 0x1e66 ; 0x1e66 <__gesf2>
- 4a8: 18 16 cp r1, r24
- 4aa: 0c f4 brge .+2 ; 0x4ae <adb+0x188>
- 4ac: 42 c0 rjmp .+132 ; 0x532 <__stack+0x33>
- return (0);
- }
- } while (ADB_PIN & ADB_BIT);
- 4ae: 48 99 sbic 0x09, 0 ; 9
- 4b0: ef cf rjmp .-34 ; 0x490 <adb+0x16a>
- while (!(ADB_PIN & ADB_BIT))
- 4b2: 48 9b sbis 0x09, 0 ; 9
- 4b4: fe cf rjmp .-4 ; 0x4b2 <adb+0x18c>
- 4b6: ce ea ldi r28, 0xAE ; 174
- 4b8: d2 e0 ldi r29, 0x02 ; 2
- 4ba: 11 e0 ldi r17, 0x01 ; 1
- 4bc: 01 c0 rjmp .+2 ; 0x4c0 <adb+0x19a>
- while (!(ADB_PIN & ADB_BIT))
- ;
- if (t0ext() < (ADB_IMPULS_KURZ + ADB_IMPULS_LANG) / 2)
- adb_werte[z_byte] += bitpos;
- }
- z_byte++;
- 4be: 18 2f mov r17, r24
- while (!(ADB_PIN & ADB_BIT))
- ; // Start Bit
-
- z_byte = 1;
- while (z_byte < MAX_ADB) {
- adb_werte[z_byte] = 0;
- 4c0: 18 82 st Y, r1
- 4c2: a8 e0 ldi r26, 0x08 ; 8
- 4c4: ea 2e mov r14, r26
- 4c6: f1 2c mov r15, r1
- for (bitpos = 128; bitpos; bitpos >>= 1) { //Bits einlesen
- 4c8: 00 e8 ldi r16, 0x80 ; 128
- //TCCR0 = ADB_VORTEILER_B_BIT; //micha modifikation
- t0rst(); // TCNT0 = 0;
- 4ca: 29 df rcall .-430 ; 0x31e <t0rst>
- // Abbruch wenn keine weiteren Bytes übertragen werden.
- do {
- if (t0ext() > ADB_IMPULS_KURZ + ADB_IMPULS_LANG) {
- 4cc: 20 df rcall .-448 ; 0x30e <t0ext>
- 4ce: bc 01 movw r22, r24
- 4d0: 80 e0 ldi r24, 0x00 ; 0
- 4d2: 90 e0 ldi r25, 0x00 ; 0
- 4d4: 0e 94 81 0e call 0x1d02 ; 0x1d02 <__floatunsisf>
- 4d8: 20 e0 ldi r18, 0x00 ; 0
- 4da: 30 e0 ldi r19, 0x00 ; 0
- 4dc: 48 e4 ldi r20, 0x48 ; 72
- 4de: 53 e4 ldi r21, 0x43 ; 67
- 4e0: 0e 94 33 0f call 0x1e66 ; 0x1e66 <__gesf2>
- 4e4: 18 16 cp r1, r24
- 4e6: 14 f4 brge .+4 ; 0x4ec <adb+0x1c6>
- return (z_byte - 1);
- 4e8: 11 50 subi r17, 0x01 ; 1
- 4ea: 24 c0 rjmp .+72 ; 0x534 <__stack+0x35>
- }
- } while (ADB_PIN & ADB_BIT);
- 4ec: 48 99 sbic 0x09, 0 ; 9
- 4ee: ee cf rjmp .-36 ; 0x4cc <adb+0x1a6>
- t0rst(); // TCNT0 = 0;
- 4f0: 16 df rcall .-468 ; 0x31e <t0rst>
- while (!(ADB_PIN & ADB_BIT))
- 4f2: 48 9b sbis 0x09, 0 ; 9
- 4f4: fe cf rjmp .-4 ; 0x4f2 <adb+0x1cc>
- ;
- if (t0ext() < (ADB_IMPULS_KURZ + ADB_IMPULS_LANG) / 2)
- 4f6: 0b df rcall .-490 ; 0x30e <t0ext>
- 4f8: bc 01 movw r22, r24
- 4fa: 80 e0 ldi r24, 0x00 ; 0
- 4fc: 90 e0 ldi r25, 0x00 ; 0
- 4fe: 0e 94 81 0e call 0x1d02 ; 0x1d02 <__floatunsisf>
- 502: 20 e0 ldi r18, 0x00 ; 0
- 504: 30 e0 ldi r19, 0x00 ; 0
- 506: 48 ec ldi r20, 0xC8 ; 200
- 508: 52 e4 ldi r21, 0x42 ; 66
- 50a: 0e 94 e9 0d call 0x1bd2 ; 0x1bd2 <__cmpsf2>
- 50e: 87 ff sbrs r24, 7
- 510: 03 c0 rjmp .+6 ; 0x518 <__stack+0x19>
- adb_werte[z_byte] += bitpos;
- 512: 88 81 ld r24, Y
- 514: 80 0f add r24, r16
- 516: 88 83 st Y, r24
- ; // Start Bit
-
- z_byte = 1;
- while (z_byte < MAX_ADB) {
- adb_werte[z_byte] = 0;
- for (bitpos = 128; bitpos; bitpos >>= 1) { //Bits einlesen
- 518: 06 95 lsr r16
- 51a: 08 94 sec
- 51c: e1 08 sbc r14, r1
- 51e: f1 08 sbc r15, r1
- 520: e1 14 cp r14, r1
- 522: f1 04 cpc r15, r1
- 524: 91 f6 brne .-92 ; 0x4ca <adb+0x1a4>
- while (!(ADB_PIN & ADB_BIT))
- ;
- if (t0ext() < (ADB_IMPULS_KURZ + ADB_IMPULS_LANG) / 2)
- adb_werte[z_byte] += bitpos;
- }
- z_byte++;
- 526: 81 2f mov r24, r17
- 528: 8f 5f subi r24, 0xFF ; 255
- 52a: 21 96 adiw r28, 0x01 ; 1
- } while (ADB_PIN & ADB_BIT);
- while (!(ADB_PIN & ADB_BIT))
- ; // Start Bit
-
- z_byte = 1;
- while (z_byte < MAX_ADB) {
- 52c: 89 30 cpi r24, 0x09 ; 9
- 52e: 39 f6 brne .-114 ; 0x4be <adb+0x198>
- 530: 01 c0 rjmp .+2 ; 0x534 <__stack+0x35>
- // TCCR0 = ADB_VORTEILER_A_BIT; // micha modifikation
- t0rst(); // TCNT0 = 0;
-
- do {
- if (t0ext() > ADB_IMPULS_TLT) {
- return (0);
- 532: 10 e0 ldi r17, 0x00 ; 0
- adb_werte[z_byte] += bitpos;
- }
- z_byte++;
- }
- return (z_byte - 1);
-}
- 534: 81 2f mov r24, r17
- 536: df 91 pop r29
- 538: cf 91 pop r28
- 53a: 1f 91 pop r17
- 53c: 0f 91 pop r16
- 53e: ff 90 pop r15
- 540: ef 90 pop r14
- 542: df 90 pop r13
- 544: 08 95 ret
-
-00000546 <touchpad_init>:
-
-void touchpad_init(void) {
- // Eingänge
- ADB_PDIR &= ~ADB_BIT;
- 546: 50 98 cbi 0x0a, 0 ; 10
-
- // Pull Up einschalten
- ADB_POUT |= ADB_BIT;
- 548: 58 9a sbi 0x0b, 0 ; 11
-
- //enable timer0 interrupt
- TIMSK0 |= (1 << TOIE0);
- 54a: ee e6 ldi r30, 0x6E ; 110
- 54c: f0 e0 ldi r31, 0x00 ; 0
- 54e: 80 81 ld r24, Z
- 550: 81 60 ori r24, 0x01 ; 1
- 552: 80 83 st Z, r24
-}
- 554: 08 95 ret
-
-00000556 <touchpad_read>:
-
-uint8_t touchpad_read(void) {
- adb_werte[0] = COM_TALK0;
- 556: 8c e3 ldi r24, 0x3C ; 60
- 558: 80 93 ad 02 sts 0x02AD, r24
- adb_data_length = adb();
- 55c: e4 de rcall .-568 ; 0x326 <adb>
- 55e: 80 93 c7 02 sts 0x02C7, r24
- return adb_data_length;
- 562: 80 91 c7 02 lds r24, 0x02C7
-}
- 566: 08 95 ret
-
-00000568 <touchpad_set_rel_mode_100dpi>:
- _delay_ms(100);
-}
-
-void touchpad_set_rel_mode_100dpi(void) {
- // Auf Relativmodus umschalten
- adb_werte[0] = COM_LISTEN3;
- 568: 8b e3 ldi r24, 0x3B ; 59
- 56a: 80 93 ad 02 sts 0x02AD, r24
- adb_werte[1] = BITS(0110,0011);
- 56e: 83 e6 ldi r24, 0x63 ; 99
- 570: 80 93 ae 02 sts 0x02AE, r24
- adb_werte[2] = 1; //default modus: 100 dpi mouse
- 574: 81 e0 ldi r24, 0x01 ; 1
- 576: 80 93 af 02 sts 0x02AF, r24
- adb();
- 57a: d5 de rcall .-598 ; 0x326 <adb>
- #else
- //round up by default
- __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
- #endif
-
- __builtin_avr_delay_cycles(__ticks_dc);
- 57c: 8f ef ldi r24, 0xFF ; 255
- 57e: 91 ee ldi r25, 0xE1 ; 225
- 580: a4 e0 ldi r26, 0x04 ; 4
- 582: 81 50 subi r24, 0x01 ; 1
- 584: 90 40 sbci r25, 0x00 ; 0
- 586: a0 40 sbci r26, 0x00 ; 0
- 588: e1 f7 brne .-8 ; 0x582 <touchpad_set_rel_mode_100dpi+0x1a>
- 58a: 00 c0 rjmp .+0 ; 0x58c <touchpad_set_rel_mode_100dpi+0x24>
- 58c: 00 00 nop
- _delay_ms(100);
-
-}
- 58e: 08 95 ret
-
-00000590 <delta_y>:
- return ((adb_werte[4] & 0b01110000) << 6)
- | ((adb_werte[3] & 0b01110000) << 3) | (adb_werte[1] & 0b01111111);
-}
-
-int8_t delta_y(void) {
- if(adb_data_length ==0) {
- 590: 80 91 c7 02 lds r24, 0x02C7
- 594: 88 23 and r24, r24
- 596: 51 f0 breq .+20 ; 0x5ac <delta_y+0x1c>
- return 0;
- }
- if (adb_werte[1] & 0b01000000) {
- 598: 80 91 ae 02 lds r24, 0x02AE
- 59c: 86 ff sbrs r24, 6
- 59e: 04 c0 rjmp .+8 ; 0x5a8 <delta_y+0x18>
- return -((128 - adb_werte[1]) & 0b00111111);
- 5a0: 81 95 neg r24
- 5a2: 8f 73 andi r24, 0x3F ; 63
- 5a4: 81 95 neg r24
- 5a6: 08 95 ret
- } else {
- return adb_werte[1] & 0b00111111;
- 5a8: 8f 73 andi r24, 0x3F ; 63
- 5aa: 08 95 ret
- | ((adb_werte[3] & 0b01110000) << 3) | (adb_werte[1] & 0b01111111);
-}
-
-int8_t delta_y(void) {
- if(adb_data_length ==0) {
- return 0;
- 5ac: 80 e0 ldi r24, 0x00 ; 0
- if (adb_werte[1] & 0b01000000) {
- return -((128 - adb_werte[1]) & 0b00111111);
- } else {
- return adb_werte[1] & 0b00111111;
- }
-}
- 5ae: 08 95 ret
-
-000005b0 <delta_x>:
-
-int8_t delta_x(void) {
- if(adb_data_length ==0) {
- 5b0: 80 91 c7 02 lds r24, 0x02C7
- 5b4: 88 23 and r24, r24
- 5b6: 51 f0 breq .+20 ; 0x5cc <delta_x+0x1c>
- return 0;
- }
- if (adb_werte[2] & 0b01000000) {
- 5b8: 80 91 af 02 lds r24, 0x02AF
- 5bc: 86 ff sbrs r24, 6
- 5be: 04 c0 rjmp .+8 ; 0x5c8 <delta_x+0x18>
- return -((128 - adb_werte[2]) & 0b00111111);
- 5c0: 81 95 neg r24
- 5c2: 8f 73 andi r24, 0x3F ; 63
- 5c4: 81 95 neg r24
- 5c6: 08 95 ret
- } else {
- return adb_werte[2] & 0b00111111;
- 5c8: 8f 73 andi r24, 0x3F ; 63
- 5ca: 08 95 ret
- }
-}
-
-int8_t delta_x(void) {
- if(adb_data_length ==0) {
- return 0;
- 5cc: 80 e0 ldi r24, 0x00 ; 0
- if (adb_werte[2] & 0b01000000) {
- return -((128 - adb_werte[2]) & 0b00111111);
- } else {
- return adb_werte[2] & 0b00111111;
- }
-}
- 5ce: 08 95 ret
-
-000005d0 <init_leds>:
-
-void init_leds(void) {
- DDRLED0 |= 1<<LED0;
- 5d0: 21 9a sbi 0x04, 1 ; 4
- DDRLED1 |= 1<<LED1;
- 5d2: 20 9a sbi 0x04, 0 ; 4
- DDRLED2 |= 1<<LED2;
- 5d4: 56 9a sbi 0x0a, 6 ; 10
-}
- 5d6: 08 95 ret
-
-000005d8 <set_led0>:
-
-
-void set_led0(uint8_t value){
- PORTLED0 &= ~(1<<LED0);
- 5d8: 29 98 cbi 0x05, 1 ; 5
- PORTLED0 |= (value & 0x01)<<LED0;
- 5da: 25 b1 in r18, 0x05 ; 5
- 5dc: 90 e0 ldi r25, 0x00 ; 0
- 5de: 81 70 andi r24, 0x01 ; 1
- 5e0: 90 70 andi r25, 0x00 ; 0
- 5e2: 88 0f add r24, r24
- 5e4: 99 1f adc r25, r25
- 5e6: 28 2b or r18, r24
- 5e8: 25 b9 out 0x05, r18 ; 5
-}
- 5ea: 08 95 ret
-
-000005ec <set_led1>:
-
-void set_led1(uint8_t value){
- PORTLED1 &= ~(1<<LED1);
- 5ec: 28 98 cbi 0x05, 0 ; 5
- PORTLED1 |= (value & 0x01)<<LED1;
- 5ee: 95 b1 in r25, 0x05 ; 5
- 5f0: 81 70 andi r24, 0x01 ; 1
- 5f2: 89 2b or r24, r25
- 5f4: 85 b9 out 0x05, r24 ; 5
-}
- 5f6: 08 95 ret
-
-000005f8 <set_led2>:
-
-void set_led2(uint8_t value){
- PORTLED2 &= ~(1<<LED2);
- 5f8: 5e 98 cbi 0x0b, 6 ; 11
- PORTLED2 |= (value & 0x01)<<LED2;
- 5fa: 2b b1 in r18, 0x0b ; 11
- 5fc: 90 e0 ldi r25, 0x00 ; 0
- 5fe: 81 70 andi r24, 0x01 ; 1
- 600: 90 70 andi r25, 0x00 ; 0
- 602: f6 e0 ldi r31, 0x06 ; 6
- 604: 88 0f add r24, r24
- 606: 99 1f adc r25, r25
- 608: fa 95 dec r31
- 60a: e1 f7 brne .-8 ; 0x604 <set_led2+0xc>
- 60c: 28 2b or r18, r24
- 60e: 2b b9 out 0x0b, r18 ; 11
-}
- 610: 08 95 ret
-
-00000612 <init_sw>:
-
-
-void init_sw(void) {
- DDRSW0 &= ~(1<<SW0);
- 612: 54 98 cbi 0x0a, 4 ; 10
- DDRSW1 &= ~(1<<SW1);
- 614: 3d 98 cbi 0x07, 5 ; 7
- DDRSW2 &= ~(1<<SW2);
- 616: 3c 98 cbi 0x07, 4 ; 7
- PORTSW0 |= (1<<SW0);
- 618: 5c 9a sbi 0x0b, 4 ; 11
- PORTSW1 |= (1<<SW1);
- 61a: 45 9a sbi 0x08, 5 ; 8
- PORTSW2 |= (1<<SW2);
- 61c: 44 9a sbi 0x08, 4 ; 8
-}
- 61e: 08 95 ret
-
-00000620 <sw0_state>:
-
-
-uint8_t sw0_state(void){
- return (PINSW0 & (1<<SW0))>>SW0;
- 620: 89 b1 in r24, 0x09 ; 9
- 622: 90 e0 ldi r25, 0x00 ; 0
- 624: 80 71 andi r24, 0x10 ; 16
- 626: 90 70 andi r25, 0x00 ; 0
- 628: a4 e0 ldi r26, 0x04 ; 4
- 62a: 95 95 asr r25
- 62c: 87 95 ror r24
- 62e: aa 95 dec r26
- 630: e1 f7 brne .-8 ; 0x62a <sw0_state+0xa>
-}
- 632: 08 95 ret
-
-00000634 <sw1_state>:
-
-uint8_t sw1_state(void){
- return (PINSW1 & (1<<SW1))>>SW1;
- 634: 86 b1 in r24, 0x06 ; 6
- 636: 90 e0 ldi r25, 0x00 ; 0
- 638: 80 72 andi r24, 0x20 ; 32
- 63a: 90 70 andi r25, 0x00 ; 0
- 63c: b5 e0 ldi r27, 0x05 ; 5
- 63e: 95 95 asr r25
- 640: 87 95 ror r24
- 642: ba 95 dec r27
- 644: e1 f7 brne .-8 ; 0x63e <sw1_state+0xa>
-}
- 646: 08 95 ret
-
-00000648 <sw2_state>:
-
-uint8_t sw2_state(void){
- return (PINSW2 & (1<<SW2))>>SW2;
- 648: 86 b1 in r24, 0x06 ; 6
- 64a: 90 e0 ldi r25, 0x00 ; 0
- 64c: 80 71 andi r24, 0x10 ; 16
- 64e: 90 70 andi r25, 0x00 ; 0
- 650: 24 e0 ldi r18, 0x04 ; 4
- 652: 95 95 asr r25
- 654: 87 95 ror r24
- 656: 2a 95 dec r18
- 658: e1 f7 brne .-8 ; 0x652 <sw2_state+0xa>
- 65a: 08 95 ret
-
-0000065c <Usb2SerialTask>:
-
-
-
-
-
-void Usb2SerialTask(void) {
- 65c: 1f 93 push r17
- static inline uint_reg_t GetGlobalInterruptMask(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- return SREG;
- 65e: 8f b7 in r24, 0x3f ; 63
- static inline void GlobalInterruptDisable(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- cli();
- 660: f8 94 cli
- uint16_t Count;
-
- uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
- GlobalInterruptDisable();
-
- Count = Buffer->Count;
- 662: 20 91 5c 01 lds r18, 0x015C
- 666: 30 91 5d 01 lds r19, 0x015D
- static inline void SetGlobalInterruptMask(const uint_reg_t GlobalIntState)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- SREG = GlobalIntState;
- 66a: 8f bf out 0x3f, r24 ; 63
-
- /* Only try to read in bytes from the CDC interface if the transmit buffer is not full */
- if (!(RingBuffer_IsFull(&USBtoUSART_Buffer)))
- 66c: 80 91 5a 01 lds r24, 0x015A
- 670: 90 91 5b 01 lds r25, 0x015B
- 674: 28 17 cp r18, r24
- 676: 39 07 cpc r19, r25
- 678: 51 f0 breq .+20 ; 0x68e <Usb2SerialTask+0x32>
- {
- int16_t ReceivedByte = CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
- 67a: 88 e2 ldi r24, 0x28 ; 40
- 67c: 91 e0 ldi r25, 0x01 ; 1
- 67e: 0e 94 56 0d call 0x1aac ; 0x1aac <CDC_Device_ReceiveByte>
- 682: bc 01 movw r22, r24
-
- /* Read bytes from the USB OUT endpoint into the USART transmit buffer */
- if (!(ReceivedByte < 0))
- 684: 97 fd sbrc r25, 7
- 686: 03 c0 rjmp .+6 ; 0x68e <Usb2SerialTask+0x32>
- RingBuffer_Insert(&USBtoUSART_Buffer, ReceivedByte);
- 688: 82 e5 ldi r24, 0x52 ; 82
- 68a: 91 e0 ldi r25, 0x01 ; 1
- 68c: 71 dd rcall .-1310 ; 0x170 <RingBuffer_Insert>
- static inline uint_reg_t GetGlobalInterruptMask(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- return SREG;
- 68e: 2f b7 in r18, 0x3f ; 63
- static inline void GlobalInterruptDisable(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- cli();
- 690: f8 94 cli
- 692: 80 91 e8 01 lds r24, 0x01E8
- 696: 90 91 e9 01 lds r25, 0x01E9
- static inline void SetGlobalInterruptMask(const uint_reg_t GlobalIntState)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- SREG = GlobalIntState;
- 69a: 2f bf out 0x3f, r18 ; 63
- }
-
- /* Check if the UART receive buffer flush timer has expired or the buffer is nearly full */
- uint16_t BufferCount = RingBuffer_GetCount(&USARTtoUSB_Buffer);
- if (BufferCount)
- 69c: 00 97 sbiw r24, 0x00 ; 0
- 69e: 09 f1 breq .+66 ; 0x6e2 <Usb2SerialTask+0x86>
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 6a0: 20 91 29 01 lds r18, 0x0129
- 6a4: 2f 70 andi r18, 0x0F ; 15
- 6a6: 20 93 e9 00 sts 0x00E9, r18
- * \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
- */
- static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsINReady(void)
- {
- return ((UEINTX & (1 << TXINI)) ? true : false);
- 6aa: 20 91 e8 00 lds r18, 0x00E8
- {
- Endpoint_SelectEndpoint(VirtualSerial_CDC_Interface.Config.DataINEndpoint.Address);
-
- /* Check if a packet is already enqueued to the host - if so, we shouldn't try to send more data
- * until it completes as there is a chance nothing is listening and a lengthy timeout could occur */
- if (Endpoint_IsINReady())
- 6ae: 20 ff sbrs r18, 0
- 6b0: 18 c0 rjmp .+48 ; 0x6e2 <Usb2SerialTask+0x86>
- {
- /* Never send more than one bank size less one byte to the host at a time, so that we don't block
- * while a Zero Length Packet (ZLP) to terminate the transfer is sent if the host isn't listening */
- uint8_t BytesToSend = MIN(BufferCount, (CDC_TXRX_EPSIZE - 1));
- 6b2: 80 31 cpi r24, 0x10 ; 16
- 6b4: 91 05 cpc r25, r1
- 6b6: 10 f0 brcs .+4 ; 0x6bc <Usb2SerialTask+0x60>
- 6b8: 8f e0 ldi r24, 0x0F ; 15
- 6ba: 90 e0 ldi r25, 0x00 ; 0
- 6bc: 18 2f mov r17, r24
-
- /* Read bytes from the USART receive buffer into the USB IN endpoint */
- while (BytesToSend--)
- 6be: 0f c0 rjmp .+30 ; 0x6de <Usb2SerialTask+0x82>
- * \return Next data element stored in the buffer.
- */
- static inline uint8_t RingBuffer_Peek(RingBuffer_t* const Buffer) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(1);
- static inline uint8_t RingBuffer_Peek(RingBuffer_t* const Buffer)
- {
- return *Buffer->Out;
- 6c0: e0 91 e0 01 lds r30, 0x01E0
- 6c4: f0 91 e1 01 lds r31, 0x01E1
- {
- /* Try to send the next byte of data to the host, abort if there is an error without dequeuing */
- if (CDC_Device_SendByte(&VirtualSerial_CDC_Interface,
- 6c8: 88 e2 ldi r24, 0x28 ; 40
- 6ca: 91 e0 ldi r25, 0x01 ; 1
- 6cc: 60 81 ld r22, Z
- 6ce: 0e 94 e5 0c call 0x19ca ; 0x19ca <CDC_Device_SendByte>
- 6d2: 11 50 subi r17, 0x01 ; 1
- 6d4: 88 23 and r24, r24
- 6d6: 29 f4 brne .+10 ; 0x6e2 <Usb2SerialTask+0x86>
- {
- break;
- }
-
- /* Dequeue the already sent byte from the buffer now we have confirmed that no transmission error occurred */
- RingBuffer_Remove(&USARTtoUSB_Buffer);
- 6d8: 8e ed ldi r24, 0xDE ; 222
- 6da: 91 e0 ldi r25, 0x01 ; 1
- 6dc: 64 dd rcall .-1336 ; 0x1a6 <RingBuffer_Remove>
- /* Never send more than one bank size less one byte to the host at a time, so that we don't block
- * while a Zero Length Packet (ZLP) to terminate the transfer is sent if the host isn't listening */
- uint8_t BytesToSend = MIN(BufferCount, (CDC_TXRX_EPSIZE - 1));
-
- /* Read bytes from the USART receive buffer into the USB IN endpoint */
- while (BytesToSend--)
- 6de: 11 23 and r17, r17
- 6e0: 79 f7 brne .-34 ; 0x6c0 <Usb2SerialTask+0x64>
-// if (!(RingBuffer_IsEmpty(&USBtoUSART_Buffer))) {
-// Serial_SendByte(RingBuffer_Remove(&USBtoUSART_Buffer));
-// dummy = RingBuffer_Remove(&USBtoUSART_Buffer);
-// sendPayload(&dummy,1,0);
-// }
- CDC_Device_USBTask(&VirtualSerial_CDC_Interface);
- 6e2: 88 e2 ldi r24, 0x28 ; 40
- 6e4: 91 e0 ldi r25, 0x01 ; 1
- 6e6: 0e 94 3f 0d call 0x1a7e ; 0x1a7e <CDC_Device_USBTask>
- USB_USBTask();
- 6ea: 0e 94 f9 0b call 0x17f2 ; 0x17f2 <USB_USBTask>
-
-}
- 6ee: 1f 91 pop r17
- 6f0: 08 95 ret
-
-000006f2 <SetupHardware>:
-
-/** Configures the board hardware and chip peripherals for the demo's functionality. */
-void SetupHardware(void)
-{
- /* Disable watchdog if enabled by bootloader/fuses */
- MCUSR &= ~(1 << WDRF);
- 6f2: 84 b7 in r24, 0x34 ; 52
- 6f4: 87 7f andi r24, 0xF7 ; 247
- 6f6: 84 bf out 0x34, r24 ; 52
- wdt_disable();
- 6f8: 88 e1 ldi r24, 0x18 ; 24
- 6fa: 0f b6 in r0, 0x3f ; 63
- 6fc: f8 94 cli
- 6fe: 80 93 60 00 sts 0x0060, r24
- 702: 10 92 60 00 sts 0x0060, r1
- 706: 0f be out 0x3f, r0 ; 63
-The type of x is clock_div_t.
-*/
-void clock_prescale_set(clock_div_t __x)
-{
- uint8_t __tmp = _BV(CLKPCE);
- __asm__ __volatile__ (
- 708: 90 e0 ldi r25, 0x00 ; 0
- 70a: 80 e8 ldi r24, 0x80 ; 128
- 70c: 0f b6 in r0, 0x3f ; 63
- 70e: f8 94 cli
- 710: 80 93 61 00 sts 0x0061, r24
- 714: 90 93 61 00 sts 0x0061, r25
- 718: 0f be out 0x3f, r0 ; 63
- clock_prescale_set(clock_div_1);
-
- /* Hardware Initialization */
-// LEDs_Init();
- USB_Init();
-}
- 71a: 1a c6 rjmp .+3124 ; 0x1350 <USB_Init>
-
-0000071c <EVENT_USB_Device_Connect>:
-
-/** Event handler for the library USB Connection event. */
-void EVENT_USB_Device_Connect(void)
-{
-// LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
-}
- 71c: 08 95 ret
-
-0000071e <EVENT_USB_Device_Disconnect>:
-
-/** Event handler for the library USB Disconnection event. */
-void EVENT_USB_Device_Disconnect(void)
-{
-// LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-}
- 71e: 08 95 ret
-
-00000720 <EVENT_USB_Device_ConfigurationChanged>:
-/** Event handler for the library USB Configuration Changed event. */
-void EVENT_USB_Device_ConfigurationChanged(void)
-{
- bool ConfigSuccess = true;
-
- ConfigSuccess &= CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface);
- 720: 88 e2 ldi r24, 0x28 ; 40
- 722: 91 e0 ldi r25, 0x01 ; 1
- 724: 0c 94 c1 0c jmp 0x1982 ; 0x1982 <CDC_Device_ConfigureEndpoints>
-
-00000728 <EVENT_USB_Device_ControlRequest>:
-}
-
-/** Event handler for the library USB Control Request reception event. */
-void EVENT_USB_Device_ControlRequest(void)
-{
- CDC_Device_ProcessControlRequest(&VirtualSerial_CDC_Interface);
- 728: 88 e2 ldi r24, 0x28 ; 40
- 72a: 91 e0 ldi r25, 0x01 ; 1
- 72c: 0c 94 14 0c jmp 0x1828 ; 0x1828 <CDC_Device_ProcessControlRequest>
-
-00000730 <__vector_23>:
-
-/** ISR to manage the reception of data from the serial port, placing received bytes into a circular buffer
- * for later transmission to the host.
- */
-ISR(USART1_RX_vect, ISR_BLOCK)
-{
- 730: 1f 92 push r1
- 732: 0f 92 push r0
- 734: 0f b6 in r0, 0x3f ; 63
- 736: 0f 92 push r0
- 738: 11 24 eor r1, r1
- 73a: 2f 93 push r18
- 73c: 3f 93 push r19
- 73e: 4f 93 push r20
- 740: 5f 93 push r21
- 742: 6f 93 push r22
- 744: 7f 93 push r23
- 746: 8f 93 push r24
- 748: 9f 93 push r25
- 74a: af 93 push r26
- 74c: bf 93 push r27
- 74e: ef 93 push r30
- 750: ff 93 push r31
- uint8_t ReceivedByte = UDR1;
- 752: 60 91 ce 00 lds r22, 0x00CE
-
- if (USB_DeviceState == DEVICE_STATE_Configured)
- 756: 8e b3 in r24, 0x1e ; 30
- 758: 84 30 cpi r24, 0x04 ; 4
- 75a: 19 f4 brne .+6 ; 0x762 <__vector_23+0x32>
- RingBuffer_Insert(&USARTtoUSB_Buffer, ReceivedByte);
- 75c: 8e ed ldi r24, 0xDE ; 222
- 75e: 91 e0 ldi r25, 0x01 ; 1
- 760: 07 dd rcall .-1522 ; 0x170 <RingBuffer_Insert>
-}
- 762: ff 91 pop r31
- 764: ef 91 pop r30
- 766: bf 91 pop r27
- 768: af 91 pop r26
- 76a: 9f 91 pop r25
- 76c: 8f 91 pop r24
- 76e: 7f 91 pop r23
- 770: 6f 91 pop r22
- 772: 5f 91 pop r21
- 774: 4f 91 pop r20
- 776: 3f 91 pop r19
- 778: 2f 91 pop r18
- 77a: 0f 90 pop r0
- 77c: 0f be out 0x3f, r0 ; 63
- 77e: 0f 90 pop r0
- 780: 1f 90 pop r1
- 782: 18 95 reti
-
-00000784 <EVENT_CDC_Device_LineEncodingChanged>:
-/** Event handler for the CDC Class driver Line Encoding Changed event.
- *
- * \param[in] CDCInterfaceInfo Pointer to the CDC class interface configuration structure being referenced
- */
-void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
-{
- 784: 8f 92 push r8
- 786: 9f 92 push r9
- 788: af 92 push r10
- 78a: bf 92 push r11
- 78c: cf 92 push r12
- 78e: df 92 push r13
- 790: ef 92 push r14
- 792: ff 92 push r15
- 794: 1f 93 push r17
- 796: fc 01 movw r30, r24
- uint8_t ConfigMask = 0;
-
- switch (CDCInterfaceInfo->State.LineEncoding.ParityType)
- 798: a1 8d ldd r26, Z+25 ; 0x19
- 79a: a1 50 subi r26, 0x01 ; 1
- 79c: a2 30 cpi r26, 0x02 ; 2
- 79e: 28 f4 brcc .+10 ; 0x7aa <EVENT_CDC_Device_LineEncodingChanged+0x26>
- 7a0: b0 e0 ldi r27, 0x00 ; 0
- 7a2: a9 5b subi r26, 0xB9 ; 185
- 7a4: be 4f sbci r27, 0xFE ; 254
- 7a6: 1c 91 ld r17, X
- 7a8: 01 c0 rjmp .+2 ; 0x7ac <EVENT_CDC_Device_LineEncodingChanged+0x28>
- 7aa: 10 e0 ldi r17, 0x00 ; 0
- case CDC_PARITY_Even:
- ConfigMask = (1 << UPM11);
- break;
- }
-
- if (CDCInterfaceInfo->State.LineEncoding.CharFormat == CDC_LINEENCODING_TwoStopBits)
- 7ac: 80 8d ldd r24, Z+24 ; 0x18
- 7ae: 82 30 cpi r24, 0x02 ; 2
- 7b0: 09 f4 brne .+2 ; 0x7b4 <EVENT_CDC_Device_LineEncodingChanged+0x30>
- ConfigMask |= (1 << USBS1);
- 7b2: 18 60 ori r17, 0x08 ; 8
-
- switch (CDCInterfaceInfo->State.LineEncoding.DataBits)
- 7b4: 82 8d ldd r24, Z+26 ; 0x1a
- 7b6: 87 30 cpi r24, 0x07 ; 7
- 7b8: 31 f0 breq .+12 ; 0x7c6 <EVENT_CDC_Device_LineEncodingChanged+0x42>
- 7ba: 88 30 cpi r24, 0x08 ; 8
- 7bc: 31 f0 breq .+12 ; 0x7ca <EVENT_CDC_Device_LineEncodingChanged+0x46>
- 7be: 86 30 cpi r24, 0x06 ; 6
- 7c0: 29 f4 brne .+10 ; 0x7cc <EVENT_CDC_Device_LineEncodingChanged+0x48>
- {
- case 6:
- ConfigMask |= (1 << UCSZ10);
- 7c2: 12 60 ori r17, 0x02 ; 2
- break;
- 7c4: 03 c0 rjmp .+6 ; 0x7cc <EVENT_CDC_Device_LineEncodingChanged+0x48>
- case 7:
- ConfigMask |= (1 << UCSZ11);
- 7c6: 14 60 ori r17, 0x04 ; 4
- break;
- 7c8: 01 c0 rjmp .+2 ; 0x7cc <EVENT_CDC_Device_LineEncodingChanged+0x48>
- case 8:
- ConfigMask |= ((1 << UCSZ11) | (1 << UCSZ10));
- 7ca: 16 60 ori r17, 0x06 ; 6
- break;
- }
-
- /* Must turn off USART before reconfiguring it, otherwise incorrect operation may occur */
- UCSR1B = 0;
- 7cc: 10 92 c9 00 sts 0x00C9, r1
- UCSR1A = 0;
- 7d0: 10 92 c8 00 sts 0x00C8, r1
- UCSR1C = 0;
- 7d4: 10 92 ca 00 sts 0x00CA, r1
-
- /* Set the new baud rate before configuring the USART */
- UBRR1 = SERIAL_2X_UBBRVAL(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS);
- 7d8: c4 88 ldd r12, Z+20 ; 0x14
- 7da: d5 88 ldd r13, Z+21 ; 0x15
- 7dc: e6 88 ldd r14, Z+22 ; 0x16
- 7de: f7 88 ldd r15, Z+23 ; 0x17
- 7e0: c7 01 movw r24, r14
- 7e2: b6 01 movw r22, r12
- 7e4: 96 95 lsr r25
- 7e6: 87 95 ror r24
- 7e8: 77 95 ror r23
- 7ea: 67 95 ror r22
- 7ec: 0e 94 81 0e call 0x1d02 ; 0x1d02 <__floatunsisf>
- 7f0: 20 e0 ldi r18, 0x00 ; 0
- 7f2: 34 e2 ldi r19, 0x24 ; 36
- 7f4: 44 ef ldi r20, 0xF4 ; 244
- 7f6: 59 e4 ldi r21, 0x49 ; 73
- 7f8: 0e 94 85 0d call 0x1b0a ; 0x1b0a <__addsf3>
- 7fc: 4b 01 movw r8, r22
- 7fe: 5c 01 movw r10, r24
- 800: c7 01 movw r24, r14
- 802: b6 01 movw r22, r12
- 804: 0e 94 81 0e call 0x1d02 ; 0x1d02 <__floatunsisf>
- 808: 9b 01 movw r18, r22
- 80a: ac 01 movw r20, r24
- 80c: c5 01 movw r24, r10
- 80e: b4 01 movw r22, r8
- 810: 0e 94 ed 0d call 0x1bda ; 0x1bda <__divsf3>
- 814: 20 e0 ldi r18, 0x00 ; 0
- 816: 30 e0 ldi r19, 0x00 ; 0
- 818: 40 e8 ldi r20, 0x80 ; 128
- 81a: 5f e3 ldi r21, 0x3F ; 63
- 81c: 0e 94 84 0d call 0x1b08 ; 0x1b08 <__subsf3>
- 820: 0e 94 55 0e call 0x1caa ; 0x1caa <__fixunssfsi>
- 824: 70 93 cd 00 sts 0x00CD, r23
- 828: 60 93 cc 00 sts 0x00CC, r22
-
- /* Reconfigure the USART in double speed mode for a wider baud rate range at the expense of accuracy */
- UCSR1C = ConfigMask;
- 82c: 10 93 ca 00 sts 0x00CA, r17
- UCSR1A = (1 << U2X1);
- 830: 82 e0 ldi r24, 0x02 ; 2
- 832: 80 93 c8 00 sts 0x00C8, r24
- UCSR1B = ((1 << RXCIE1) | (1 << TXEN1) | (1 << RXEN1));
- 836: 88 e9 ldi r24, 0x98 ; 152
- 838: 80 93 c9 00 sts 0x00C9, r24
-}
- 83c: 1f 91 pop r17
- 83e: ff 90 pop r15
- 840: ef 90 pop r14
- 842: df 90 pop r13
- 844: cf 90 pop r12
- 846: bf 90 pop r11
- 848: af 90 pop r10
- 84a: 9f 90 pop r9
- 84c: 8f 90 pop r8
- 84e: 08 95 ret
-
-00000850 <uart_putc>:
-
-
-
-
-void uart_putc(unsigned char data)
-{
- 850: 68 2f mov r22, r24
-
- if (USB_DeviceState == DEVICE_STATE_Configured){
- 852: 8e b3 in r24, 0x1e ; 30
- 854: 84 30 cpi r24, 0x04 ; 4
- 856: 19 f4 brne .+6 ; 0x85e <uart_putc+0xe>
- RingBuffer_Insert(&USARTtoUSB_Buffer, data);
- 858: 8e ed ldi r24, 0xDE ; 222
- 85a: 91 e0 ldi r25, 0x01 ; 1
- 85c: 89 cc rjmp .-1774 ; 0x170 <RingBuffer_Insert>
- 85e: 08 95 ret
-
-00000860 <uart_puts>:
- }
-
-}
-
-void uart_puts(const char *s )
-{
- 860: ef 92 push r14
- 862: ff 92 push r15
- 864: cf 93 push r28
- 866: df 93 push r29
- 868: e8 2e mov r14, r24
- 86a: e7 01 movw r28, r14
- 86c: 7e 01 movw r14, r28
- 86e: f9 2e mov r15, r25
- 870: e7 01 movw r28, r14
- while (*s)
- 872: 01 c0 rjmp .+2 ; 0x876 <uart_puts+0x16>
- uart_putc(*s++);
- 874: ed df rcall .-38 ; 0x850 <uart_putc>
-
-}
-
-void uart_puts(const char *s )
-{
- while (*s)
- 876: 89 91 ld r24, Y+
- 878: 88 23 and r24, r24
- 87a: e1 f7 brne .-8 ; 0x874 <uart_puts+0x14>
- uart_putc(*s++);
-
-}/* uart_puts */
- 87c: df 91 pop r29
- 87e: cf 91 pop r28
- 880: ff 90 pop r15
- 882: ef 90 pop r14
- 884: 08 95 ret
-
-00000886 <my_uitoa>:
-
-
-// convert an unsigned integer to string
-void my_uitoa(uint32_t zahl, char* string, uint8_t no_digits, char leading_char) {
- 886: 2f 92 push r2
- 888: 3f 92 push r3
- 88a: 4f 92 push r4
- 88c: 5f 92 push r5
- 88e: 6f 92 push r6
- 890: 7f 92 push r7
- 892: 8f 92 push r8
- 894: 9f 92 push r9
- 896: af 92 push r10
- 898: bf 92 push r11
- 89a: cf 92 push r12
- 89c: df 92 push r13
- 89e: ef 92 push r14
- 8a0: ff 92 push r15
- 8a2: 0f 93 push r16
- 8a4: 1f 93 push r17
- 8a6: cf 93 push r28
- 8a8: df 93 push r29
- 8aa: 6b 01 movw r12, r22
- 8ac: 7c 01 movw r14, r24
- int8_t i; // schleifenzähler
-
- string[no_digits] = '\0'; // String Terminator
- 8ae: 82 2f mov r24, r18
- 8b0: 90 e0 ldi r25, 0x00 ; 0
- 8b2: fa 01 movw r30, r20
- 8b4: e8 0f add r30, r24
- 8b6: f9 1f adc r31, r25
- 8b8: 10 82 st Z, r1
- for (i = (no_digits - 1); i >= 0; i--) {
- 8ba: 12 2f mov r17, r18
- 8bc: 11 50 subi r17, 0x01 ; 1
-
-}/* uart_puts */
-
-
-// convert an unsigned integer to string
-void my_uitoa(uint32_t zahl, char* string, uint8_t no_digits, char leading_char) {
- 8be: 41 2e mov r4, r17
- 8c0: 55 24 eor r5, r5
- 8c2: 47 fc sbrc r4, 7
- 8c4: 50 94 com r5
- 8c6: ea 01 movw r28, r20
- 8c8: c4 0d add r28, r4
- 8ca: d5 1d adc r29, r5
- int8_t i; // schleifenzähler
-
- string[no_digits] = '\0'; // String Terminator
- for (i = (no_digits - 1); i >= 0; i--) {
- 8cc: aa 24 eor r10, r10
- 8ce: bb 24 eor r11, r11
- if (zahl == 0 && i < (no_digits - 1)) {
- string[i] = leading_char;
- } else {
- string[i] = (zahl % 10) + '0';
- 8d0: 4a e0 ldi r20, 0x0A ; 10
- 8d2: 64 2e mov r6, r20
- 8d4: 71 2c mov r7, r1
- 8d6: 81 2c mov r8, r1
- 8d8: 91 2c mov r9, r1
-void my_uitoa(uint32_t zahl, char* string, uint8_t no_digits, char leading_char) {
- int8_t i; // schleifenzähler
-
- string[no_digits] = '\0'; // String Terminator
- for (i = (no_digits - 1); i >= 0; i--) {
- if (zahl == 0 && i < (no_digits - 1)) {
- 8da: 1c 01 movw r2, r24
- 8dc: 08 94 sec
- 8de: 21 08 sbc r2, r1
- 8e0: 31 08 sbc r3, r1
-// convert an unsigned integer to string
-void my_uitoa(uint32_t zahl, char* string, uint8_t no_digits, char leading_char) {
- int8_t i; // schleifenzähler
-
- string[no_digits] = '\0'; // String Terminator
- for (i = (no_digits - 1); i >= 0; i--) {
- 8e2: 22 c0 rjmp .+68 ; 0x928 <my_uitoa+0xa2>
- if (zahl == 0 && i < (no_digits - 1)) {
- 8e4: c1 14 cp r12, r1
- 8e6: d1 04 cpc r13, r1
- 8e8: e1 04 cpc r14, r1
- 8ea: f1 04 cpc r15, r1
- 8ec: 41 f4 brne .+16 ; 0x8fe <my_uitoa+0x78>
-
-}/* uart_puts */
-
-
-// convert an unsigned integer to string
-void my_uitoa(uint32_t zahl, char* string, uint8_t no_digits, char leading_char) {
- 8ee: c5 01 movw r24, r10
- 8f0: 84 0d add r24, r4
- 8f2: 95 1d adc r25, r5
- int8_t i; // schleifenzähler
-
- string[no_digits] = '\0'; // String Terminator
- for (i = (no_digits - 1); i >= 0; i--) {
- if (zahl == 0 && i < (no_digits - 1)) {
- 8f4: 82 15 cp r24, r2
- 8f6: 93 05 cpc r25, r3
- 8f8: 14 f4 brge .+4 ; 0x8fe <my_uitoa+0x78>
- string[i] = leading_char;
- 8fa: 08 83 st Y, r16
- 8fc: 08 c0 rjmp .+16 ; 0x90e <my_uitoa+0x88>
- } else {
- string[i] = (zahl % 10) + '0';
- 8fe: c7 01 movw r24, r14
- 900: b6 01 movw r22, r12
- 902: a4 01 movw r20, r8
- 904: 93 01 movw r18, r6
- 906: 0e 94 70 0f call 0x1ee0 ; 0x1ee0 <__udivmodsi4>
- 90a: 60 5d subi r22, 0xD0 ; 208
- 90c: 68 83 st Y, r22
- } // Modulo rechnen, dann den ASCII-Code von '0' addieren
- zahl /= 10;
- 90e: c7 01 movw r24, r14
- 910: b6 01 movw r22, r12
- 912: a4 01 movw r20, r8
- 914: 93 01 movw r18, r6
- 916: 0e 94 70 0f call 0x1ee0 ; 0x1ee0 <__udivmodsi4>
- 91a: 69 01 movw r12, r18
- 91c: 7a 01 movw r14, r20
-// convert an unsigned integer to string
-void my_uitoa(uint32_t zahl, char* string, uint8_t no_digits, char leading_char) {
- int8_t i; // schleifenzähler
-
- string[no_digits] = '\0'; // String Terminator
- for (i = (no_digits - 1); i >= 0; i--) {
- 91e: 11 50 subi r17, 0x01 ; 1
- 920: 21 97 sbiw r28, 0x01 ; 1
- 922: 08 94 sec
- 924: a1 08 sbc r10, r1
- 926: b1 08 sbc r11, r1
- 928: 17 ff sbrs r17, 7
- 92a: dc cf rjmp .-72 ; 0x8e4 <my_uitoa+0x5e>
- string[i] = (zahl % 10) + '0';
- } // Modulo rechnen, dann den ASCII-Code von '0' addieren
- zahl /= 10;
- }
-
-}
- 92c: df 91 pop r29
- 92e: cf 91 pop r28
- 930: 1f 91 pop r17
- 932: 0f 91 pop r16
- 934: ff 90 pop r15
- 936: ef 90 pop r14
- 938: df 90 pop r13
- 93a: cf 90 pop r12
- 93c: bf 90 pop r11
- 93e: af 90 pop r10
- 940: 9f 90 pop r9
- 942: 8f 90 pop r8
- 944: 7f 90 pop r7
- 946: 6f 90 pop r6
- 948: 5f 90 pop r5
- 94a: 4f 90 pop r4
- 94c: 3f 90 pop r3
- 94e: 2f 90 pop r2
- 950: 08 95 ret
-
-00000952 <sign>:
-
-int8_t sign(int16_t x) {
- return (x > 0) - (x < 0);
- 952: 21 e0 ldi r18, 0x01 ; 1
- 954: 18 16 cp r1, r24
- 956: 19 06 cpc r1, r25
- 958: 0c f0 brlt .+2 ; 0x95c <sign+0xa>
- 95a: 20 e0 ldi r18, 0x00 ; 0
- 95c: 89 2f mov r24, r25
- 95e: 88 1f adc r24, r24
- 960: 88 27 eor r24, r24
- 962: 88 1f adc r24, r24
-}
- 964: 28 1b sub r18, r24
- 966: 82 2f mov r24, r18
- 968: 08 95 ret
-
-0000096a <uart_print_number_wlzeros>:
- my_uitoa(abs(zahl),stringbuffer,no_digits,' ');
- uart_puts(stringbuffer);
-}
-
-
-void uart_print_number_wlzeros(uint32_t zahl, uint8_t no_digits) {
- 96a: 0f 93 push r16
- 96c: 24 2f mov r18, r20
- my_uitoa(abs(zahl),stringbuffer,no_digits,'0');
- 96e: 77 ff sbrs r23, 7
- 970: 03 c0 rjmp .+6 ; 0x978 <uart_print_number_wlzeros+0xe>
- 972: 70 95 com r23
- 974: 61 95 neg r22
- 976: 7f 4f sbci r23, 0xFF ; 255
- 978: 88 27 eor r24, r24
- 97a: 77 fd sbrc r23, 7
- 97c: 80 95 com r24
- 97e: 98 2f mov r25, r24
- 980: 46 eb ldi r20, 0xB6 ; 182
- 982: 52 e0 ldi r21, 0x02 ; 2
- 984: 00 e3 ldi r16, 0x30 ; 48
- 986: 7f df rcall .-258 ; 0x886 <my_uitoa>
- uart_puts(stringbuffer);
- 988: 86 eb ldi r24, 0xB6 ; 182
- 98a: 92 e0 ldi r25, 0x02 ; 2
- 98c: 69 df rcall .-302 ; 0x860 <uart_puts>
-}
- 98e: 0f 91 pop r16
- 990: 08 95 ret
-
-00000992 <uart_print_signed_number>:
-
-void uart_print_signed_number(uint32_t zahl, uint8_t no_digits) {
- 992: ff 92 push r15
- 994: 0f 93 push r16
- 996: 1f 93 push r17
- 998: 24 2f mov r18, r20
- my_uitoa(abs(zahl),stringbuffer,no_digits,' ');
- 99a: f6 2e mov r15, r22
- 99c: 17 2f mov r17, r23
- 99e: 77 ff sbrs r23, 7
- 9a0: 03 c0 rjmp .+6 ; 0x9a8 <uart_print_signed_number+0x16>
- 9a2: 70 95 com r23
- 9a4: 61 95 neg r22
- 9a6: 7f 4f sbci r23, 0xFF ; 255
- 9a8: 88 27 eor r24, r24
- 9aa: 77 fd sbrc r23, 7
- 9ac: 80 95 com r24
- 9ae: 98 2f mov r25, r24
- 9b0: 46 eb ldi r20, 0xB6 ; 182
- 9b2: 52 e0 ldi r21, 0x02 ; 2
- 9b4: 00 e2 ldi r16, 0x20 ; 32
- 9b6: 67 df rcall .-306 ; 0x886 <my_uitoa>
- if (sign(zahl) < 0) {
- 9b8: 8f 2d mov r24, r15
- 9ba: 91 2f mov r25, r17
- 9bc: ca df rcall .-108 ; 0x952 <sign>
- 9be: 87 ff sbrs r24, 7
- 9c0: 02 c0 rjmp .+4 ; 0x9c6 <uart_print_signed_number+0x34>
- uart_putc('-');
- 9c2: 8d e2 ldi r24, 0x2D ; 45
- 9c4: 01 c0 rjmp .+2 ; 0x9c8 <uart_print_signed_number+0x36>
- } else {
- uart_putc('+');
- 9c6: 8b e2 ldi r24, 0x2B ; 43
- 9c8: 43 df rcall .-378 ; 0x850 <uart_putc>
- }
- uart_puts(stringbuffer);
- 9ca: 86 eb ldi r24, 0xB6 ; 182
- 9cc: 92 e0 ldi r25, 0x02 ; 2
- 9ce: 48 df rcall .-368 ; 0x860 <uart_puts>
-
-}
- 9d0: 1f 91 pop r17
- 9d2: 0f 91 pop r16
- 9d4: ff 90 pop r15
- 9d6: 08 95 ret
-
-000009d8 <init_motors>:
- PORTY2 |= ((byte & (1<<2))>>2)<<Y2;
- PORTY3 |= ((byte & (1<<3))>>3)<<Y3;
-}
-
-void init_motors(void){
- set_x(0);
- 9d8: 80 e0 ldi r24, 0x00 ; 0
- 9da: fe db rcall .-2052 ; 0x1d8 <set_x>
- set_y(0);
- 9dc: 80 e0 ldi r24, 0x00 ; 0
- 9de: 37 dc rcall .-1938 ; 0x24e <set_y>
- DDRX0 |= (1<<X0);
- 9e0: 22 9a sbi 0x04, 2 ; 4
- DDRX1 |= (1<<X1);
- 9e2: 23 9a sbi 0x04, 3 ; 4
- DDRX2 |= (1<<X2);
- 9e4: 24 9a sbi 0x04, 4 ; 4
- DDRX3 |= (1<<X3);
- 9e6: 25 9a sbi 0x04, 5 ; 4
- DDRY0 |= (1<<Y0);
- 9e8: 27 9a sbi 0x04, 7 ; 4
- DDRY1 |= (1<<Y1);
- 9ea: 26 9a sbi 0x04, 6 ; 4
- DDRY2 |= (1<<Y2);
- 9ec: 3f 9a sbi 0x07, 7 ; 7
- DDRY3 |= (1<<Y3);
- 9ee: 3e 9a sbi 0x07, 6 ; 7
-}
- 9f0: 08 95 ret
-
-000009f2 <motor_step>:
-
-
-
-uint8_t motor_step(uint8_t motor, int8_t direction) { // motor: M1 or M2, direction +1 or -1, 0 for coil deactivation
- 9f2: 0f 93 push r16
- 9f4: 1f 93 push r17
- 9f6: 16 2f mov r17, r22
- 9f8: 82 30 cpi r24, 0x02 ; 2
- 9fa: 50 f4 brcc .+20 ; 0xa10 <motor_step+0x1e>
- 9fc: a8 2f mov r26, r24
- 9fe: b0 e0 ldi r27, 0x00 ; 0
- a00: aa 0f add r26, r26
- a02: bb 1f adc r27, r27
- a04: a7 5b subi r26, 0xB7 ; 183
- a06: be 4f sbci r27, 0xFE ; 254
- a08: 2d 91 ld r18, X+
- a0a: 3c 91 ld r19, X
- a0c: 11 97 sbiw r26, 0x01 ; 1
- a0e: 02 c0 rjmp .+4 ; 0xa14 <motor_step+0x22>
- a10: 2c ee ldi r18, 0xEC ; 236
- a12: 30 e0 ldi r19, 0x00 ; 0
- case Y:
- setport = &set_y;
- break;
- }
-
- next_phase = (phase_memory[motor] + 4 + direction) % 4;
- a14: e8 2f mov r30, r24
- a16: f0 e0 ldi r31, 0x00 ; 0
- a18: 81 2f mov r24, r17
- a1a: 99 27 eor r25, r25
- a1c: 87 fd sbrc r24, 7
- a1e: 90 95 com r25
- a20: 04 96 adiw r24, 0x04 ; 4
- a22: ea 55 subi r30, 0x5A ; 90
- a24: fd 4f sbci r31, 0xFD ; 253
- a26: 40 81 ld r20, Z
- a28: 84 0f add r24, r20
- a2a: 91 1d adc r25, r1
- a2c: 64 e0 ldi r22, 0x04 ; 4
- a2e: 70 e0 ldi r23, 0x00 ; 0
- a30: 0e 94 5d 0f call 0x1eba ; 0x1eba <__divmodhi4>
- phase_memory[motor] = next_phase;
- a34: 80 83 st Z, r24
-
-
- next_pattern = phase_pattern[next_phase];
- a36: e8 2f mov r30, r24
- a38: f0 e0 ldi r31, 0x00 ; 0
- a3a: ed 5b subi r30, 0xBD ; 189
- a3c: fe 4f sbci r31, 0xFE ; 254
- a3e: 00 81 ld r16, Z
- if (direction != 0) {
- a40: 11 23 and r17, r17
- a42: 11 f0 breq .+4 ; 0xa48 <motor_step+0x56>
- (*setport)(next_pattern);
- a44: 80 2f mov r24, r16
- a46: 01 c0 rjmp .+2 ; 0xa4a <motor_step+0x58>
- } else {
- (*setport)(0);
- a48: 80 e0 ldi r24, 0x00 ; 0
- a4a: f9 01 movw r30, r18
- a4c: 09 95 icall
- }
-
- return next_pattern;
-
-}
- a4e: 80 2f mov r24, r16
- a50: 1f 91 pop r17
- a52: 0f 91 pop r16
- a54: 08 95 ret
-
-00000a56 <move_plate>:
- return val;
-}
-
-#define PHASE_DELAY_MS 10
-
-uint8_t move_plate(int16_t dx, int16_t dy){
- a56: 0f 93 push r16
- a58: 1f 93 push r17
- static int16_t todo_x,todo_y = 0;
- int8_t signum;
- uint8_t returnval = 0;
- todo_x += dx;
- a5a: 20 91 a4 02 lds r18, 0x02A4
- a5e: 30 91 a5 02 lds r19, 0x02A5
- a62: 28 0f add r18, r24
- a64: 39 1f adc r19, r25
- a66: 30 93 a5 02 sts 0x02A5, r19
- a6a: 20 93 a4 02 sts 0x02A4, r18
- todo_y += dy;
- a6e: 80 91 a2 02 lds r24, 0x02A2
- a72: 90 91 a3 02 lds r25, 0x02A3
- a76: 86 0f add r24, r22
- a78: 97 1f adc r25, r23
- a7a: 90 93 a3 02 sts 0x02A3, r25
- a7e: 80 93 a2 02 sts 0x02A2, r24
-
- signum = sign(todo_x);
- a82: c9 01 movw r24, r18
- a84: 66 df rcall .-308 ; 0x952 <sign>
- a86: 08 2f mov r16, r24
-#define PHASE_DELAY_MS 10
-
-uint8_t move_plate(int16_t dx, int16_t dy){
- static int16_t todo_x,todo_y = 0;
- int8_t signum;
- uint8_t returnval = 0;
- a88: 11 e0 ldi r17, 0x01 ; 1
- a8a: 88 23 and r24, r24
- a8c: 09 f4 brne .+2 ; 0xa90 <move_plate+0x3a>
- a8e: 10 e0 ldi r17, 0x00 ; 0
-
- signum = sign(todo_x);
- if(signum != 0) {
- returnval++;
- }
- motor_step(X,signum);
- a90: 80 e0 ldi r24, 0x00 ; 0
- a92: 60 2f mov r22, r16
- a94: ae df rcall .-164 ; 0x9f2 <motor_step>
- todo_x -= signum;
- a96: 60 2f mov r22, r16
- a98: 77 27 eor r23, r23
- a9a: 67 fd sbrc r22, 7
- a9c: 70 95 com r23
- a9e: 20 91 a4 02 lds r18, 0x02A4
- aa2: 30 91 a5 02 lds r19, 0x02A5
- aa6: 26 1b sub r18, r22
- aa8: 37 0b sbc r19, r23
- aaa: 30 93 a5 02 sts 0x02A5, r19
- aae: 20 93 a4 02 sts 0x02A4, r18
-
- signum = sign(todo_y);
- ab2: 80 91 a2 02 lds r24, 0x02A2
- ab6: 90 91 a3 02 lds r25, 0x02A3
- aba: 4b df rcall .-362 ; 0x952 <sign>
- abc: 08 2f mov r16, r24
- if(signum != 0) {
- abe: 81 11 cpse r24, r1
- returnval++;
- ac0: 1f 5f subi r17, 0xFF ; 255
- }
- motor_step(Y,signum);
- ac2: 81 e0 ldi r24, 0x01 ; 1
- ac4: 60 2f mov r22, r16
- ac6: 95 df rcall .-214 ; 0x9f2 <motor_step>
- todo_y -= signum;
- ac8: 60 2f mov r22, r16
- aca: 77 27 eor r23, r23
- acc: 67 fd sbrc r22, 7
- ace: 70 95 com r23
- ad0: 20 91 a2 02 lds r18, 0x02A2
- ad4: 30 91 a3 02 lds r19, 0x02A3
- ad8: 26 1b sub r18, r22
- ada: 37 0b sbc r19, r23
- adc: 30 93 a3 02 sts 0x02A3, r19
- ae0: 20 93 a2 02 sts 0x02A2, r18
- ae4: 8f e3 ldi r24, 0x3F ; 63
- ae6: 9c e9 ldi r25, 0x9C ; 156
- ae8: 01 97 sbiw r24, 0x01 ; 1
- aea: f1 f7 brne .-4 ; 0xae8 <move_plate+0x92>
- aec: 00 c0 rjmp .+0 ; 0xaee <move_plate+0x98>
- aee: 00 00 nop
- _delay_ms(PHASE_DELAY_MS);
-
- return returnval; // busy
-
-}
- af0: 81 2f mov r24, r17
- af2: 1f 91 pop r17
- af4: 0f 91 pop r16
- af6: 08 95 ret
-
-00000af8 <print_steps_in_mm>:
-
-
-void print_steps_in_mm(int16_t steps) {
- af8: 0f 93 push r16
- afa: 1f 93 push r17
- afc: 8c 01 movw r16, r24
- int16_t predot,postdot;
-
- predot = steps/24;
- afe: 68 e1 ldi r22, 0x18 ; 24
- b00: 70 e0 ldi r23, 0x00 ; 0
- b02: 0e 94 5d 0f call 0x1eba ; 0x1eba <__divmodhi4>
- postdot = ((abs(steps)%24)*417)/10;
- uart_print_signed_number(predot,3);
- b06: 88 27 eor r24, r24
- b08: 77 fd sbrc r23, 7
- b0a: 80 95 com r24
- b0c: 98 2f mov r25, r24
- b0e: 43 e0 ldi r20, 0x03 ; 3
- b10: 40 df rcall .-384 ; 0x992 <uart_print_signed_number>
- uart_putc('.');
- b12: 8e e2 ldi r24, 0x2E ; 46
- b14: 9d de rcall .-710 ; 0x850 <uart_putc>
-
-void print_steps_in_mm(int16_t steps) {
- int16_t predot,postdot;
-
- predot = steps/24;
- postdot = ((abs(steps)%24)*417)/10;
- b16: c8 01 movw r24, r16
- b18: 17 ff sbrs r17, 7
- b1a: 03 c0 rjmp .+6 ; 0xb22 <print_steps_in_mm+0x2a>
- b1c: 90 95 com r25
- b1e: 81 95 neg r24
- b20: 9f 4f sbci r25, 0xFF ; 255
- b22: 68 e1 ldi r22, 0x18 ; 24
- b24: 70 e0 ldi r23, 0x00 ; 0
- b26: 0e 94 5d 0f call 0x1eba ; 0x1eba <__divmodhi4>
- b2a: 61 ea ldi r22, 0xA1 ; 161
- b2c: 71 e0 ldi r23, 0x01 ; 1
- b2e: 0e 94 37 0f call 0x1e6e ; 0x1e6e <__mulhi3>
- b32: 6a e0 ldi r22, 0x0A ; 10
- b34: 70 e0 ldi r23, 0x00 ; 0
- b36: 0e 94 5d 0f call 0x1eba ; 0x1eba <__divmodhi4>
- uart_print_signed_number(predot,3);
- uart_putc('.');
- uart_print_number_wlzeros(postdot,3);
- b3a: 88 27 eor r24, r24
- b3c: 77 fd sbrc r23, 7
- b3e: 80 95 com r24
- b40: 98 2f mov r25, r24
- b42: 43 e0 ldi r20, 0x03 ; 3
- b44: 12 df rcall .-476 ; 0x96a <uart_print_number_wlzeros>
-
-}
- b46: 1f 91 pop r17
- b48: 0f 91 pop r16
- b4a: 08 95 ret
-
-00000b4c <pos_report>:
-
-void pos_report(void){
- uart_puts("x_pos: ");
- b4c: 80 e0 ldi r24, 0x00 ; 0
- b4e: 91 e0 ldi r25, 0x01 ; 1
- b50: 87 de rcall .-754 ; 0x860 <uart_puts>
-// uart_print_signed_number(plate_pos_x,6);
- print_steps_in_mm(plate_pos_x);
- b52: 80 91 4e 01 lds r24, 0x014E
- b56: 90 91 4f 01 lds r25, 0x014F
- b5a: ce df rcall .-100 ; 0xaf8 <print_steps_in_mm>
-// my_uitoa(plate_pos_x, stringbuffer, 6);
-// uart_puts(stringbuffer);
- uart_puts(" y_pos: ");
- b5c: 88 e0 ldi r24, 0x08 ; 8
- b5e: 91 e0 ldi r25, 0x01 ; 1
- b60: 7f de rcall .-770 ; 0x860 <uart_puts>
-// uart_print_signed_number(plate_pos_y,6);
- print_steps_in_mm(plate_pos_y);
- b62: 80 91 50 01 lds r24, 0x0150
- b66: 90 91 51 01 lds r25, 0x0151
- b6a: c6 df rcall .-116 ; 0xaf8 <print_steps_in_mm>
- uart_puts("\r");
- b6c: 82 e1 ldi r24, 0x12 ; 18
- b6e: 91 e0 ldi r25, 0x01 ; 1
-}
- b70: 77 ce rjmp .-786 ; 0x860 <uart_puts>
-
-00000b72 <parse_command>:
-#define POSITION 0
-#define GOTO 1
-#define MOVEREL 2
-#define SETZERO 3
-
-void parse_command(void){
- b72: cf 92 push r12
- b74: df 92 push r13
- b76: ef 92 push r14
- b78: ff 92 push r15
- b7a: 0f 93 push r16
- b7c: 1f 93 push r17
- b7e: cf 93 push r28
- b80: df 93 push r29
- static inline uint_reg_t GetGlobalInterruptMask(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- return SREG;
- b82: 2f b7 in r18, 0x3f ; 63
- static inline void GlobalInterruptDisable(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- cli();
- b84: f8 94 cli
- uint16_t Count;
-
- uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
- GlobalInterruptDisable();
-
- Count = Buffer->Count;
- b86: 80 91 5c 01 lds r24, 0x015C
- b8a: 90 91 5d 01 lds r25, 0x015D
- static inline void SetGlobalInterruptMask(const uint_reg_t GlobalIntState)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- SREG = GlobalIntState;
- b8e: 2f bf out 0x3f, r18 ; 63
- uint8_t action=0,axis=0;
- int8_t num_sign = 1;
- char byte;
-
- /* Load the next byte from the USART transmit buffer into the USART */
- if (!(RingBuffer_IsEmpty(&USBtoUSART_Buffer))) {
- b90: 00 97 sbiw r24, 0x00 ; 0
- b92: 09 f4 brne .+2 ; 0xb96 <parse_command+0x24>
- b94: 94 c1 rjmp .+808 ; 0xebe <parse_command+0x34c>
- byte = RingBuffer_Remove(&USBtoUSART_Buffer);
- b96: 82 e5 ldi r24, 0x52 ; 82
- b98: 91 e0 ldi r25, 0x01 ; 1
- b9a: 05 db rcall .-2550 ; 0x1a6 <RingBuffer_Remove>
- b9c: 18 2f mov r17, r24
-
- if (byte == '\r' || byte == '\n') {// end of command, evaluate cemmand!
- b9e: 8d 30 cpi r24, 0x0D ; 13
- ba0: 19 f0 breq .+6 ; 0xba8 <parse_command+0x36>
- ba2: 8a 30 cpi r24, 0x0A ; 10
- ba4: 09 f0 breq .+2 ; 0xba8 <parse_command+0x36>
- ba6: 74 c1 rjmp .+744 ; 0xe90 <parse_command+0x31e>
- uart_puts("\r\n");
- ba8: 84 e1 ldi r24, 0x14 ; 20
- baa: 91 e0 ldi r25, 0x01 ; 1
- bac: 59 de rcall .-846 ; 0x860 <uart_puts>
- cmdbuffer[cmdPos] = '\0'; // terminate new command string
- bae: 80 91 6d 02 lds r24, 0x026D
- bb2: e8 2f mov r30, r24
- bb4: f0 e0 ldi r31, 0x00 ; 0
- bb6: ee 57 subi r30, 0x7E ; 126
- bb8: fd 4f sbci r31, 0xFD ; 253
- bba: 10 82 st Z, r1
- curCmdLen = cmdPos;
- bbc: 80 93 6c 02 sts 0x026C, r24
- cmdPos = 0;
- bc0: 10 92 6d 02 sts 0x026D, r1
-
-
- if (cmdbuffer[0] == 'g' || cmdbuffer[0] == 'G') { // goto command
- bc4: 80 91 82 02 lds r24, 0x0282
- bc8: 87 36 cpi r24, 0x67 ; 103
- bca: 59 f0 breq .+22 ; 0xbe2 <parse_command+0x70>
- bcc: 87 34 cpi r24, 0x47 ; 71
- bce: 49 f0 breq .+18 ; 0xbe2 <parse_command+0x70>
- action = GOTO;
- } else if ( cmdbuffer[0] == 'm' || cmdbuffer[0] == 'M') {
- bd0: 8d 36 cpi r24, 0x6D ; 109
- bd2: 49 f0 breq .+18 ; 0xbe6 <parse_command+0x74>
- bd4: 8d 34 cpi r24, 0x4D ; 77
- bd6: 39 f0 breq .+14 ; 0xbe6 <parse_command+0x74>
- action = MOVEREL;
- } else if ( cmdbuffer[0] == 'z' || cmdbuffer[0] == 'Z' ) {
- bd8: 8a 37 cpi r24, 0x7A ; 122
- bda: 39 f0 breq .+14 ; 0xbea <parse_command+0x78>
- bdc: 8a 35 cpi r24, 0x5A ; 90
- bde: 39 f4 brne .+14 ; 0xbee <parse_command+0x7c>
- be0: 04 c0 rjmp .+8 ; 0xbea <parse_command+0x78>
- curCmdLen = cmdPos;
- cmdPos = 0;
-
-
- if (cmdbuffer[0] == 'g' || cmdbuffer[0] == 'G') { // goto command
- action = GOTO;
- be2: 01 e0 ldi r16, 0x01 ; 1
- be4: 05 c0 rjmp .+10 ; 0xbf0 <parse_command+0x7e>
- } else if ( cmdbuffer[0] == 'm' || cmdbuffer[0] == 'M') {
- action = MOVEREL;
- be6: 02 e0 ldi r16, 0x02 ; 2
- be8: 03 c0 rjmp .+6 ; 0xbf0 <parse_command+0x7e>
- } else if ( cmdbuffer[0] == 'z' || cmdbuffer[0] == 'Z' ) {
- action = SETZERO;
- bea: 03 e0 ldi r16, 0x03 ; 3
- bec: 01 c0 rjmp .+2 ; 0xbf0 <parse_command+0x7e>
- } else {
- action = POSITION;
- bee: 00 e0 ldi r16, 0x00 ; 0
- }
-
- if (cmdbuffer[1] == 'x' || cmdbuffer[1] == 'X') {
- bf0: 80 91 83 02 lds r24, 0x0283
- bf4: 88 37 cpi r24, 0x78 ; 120
- bf6: 39 f0 breq .+14 ; 0xc06 <parse_command+0x94>
- bf8: 88 35 cpi r24, 0x58 ; 88
- bfa: 29 f0 breq .+10 ; 0xc06 <parse_command+0x94>
- axis = X;
- } else if (cmdbuffer[1] == 'y' || cmdbuffer[1] == 'Y') {
- bfc: 89 37 cpi r24, 0x79 ; 121
- bfe: 29 f0 breq .+10 ; 0xc0a <parse_command+0x98>
-#define POSITION 0
-#define GOTO 1
-#define MOVEREL 2
-#define SETZERO 3
-
-void parse_command(void){
- c00: 11 e0 ldi r17, 0x01 ; 1
- c02: 89 35 cpi r24, 0x59 ; 89
- c04: 19 f0 breq .+6 ; 0xc0c <parse_command+0x9a>
- } else {
- action = POSITION;
- }
-
- if (cmdbuffer[1] == 'x' || cmdbuffer[1] == 'X') {
- axis = X;
- c06: 10 e0 ldi r17, 0x00 ; 0
- c08: 01 c0 rjmp .+2 ; 0xc0c <parse_command+0x9a>
- } else if (cmdbuffer[1] == 'y' || cmdbuffer[1] == 'Y') {
- axis = Y;
- c0a: 11 e0 ldi r17, 0x01 ; 1
- }
-
- // if you expect coordinate, parse number!
- if (action == GOTO || action == MOVEREL){
- c0c: 80 2f mov r24, r16
- c0e: 81 50 subi r24, 0x01 ; 1
- c10: 82 30 cpi r24, 0x02 ; 2
- c12: 08 f0 brcs .+2 ; 0xc16 <parse_command+0xa4>
- c14: 6d c0 rjmp .+218 ; 0xcf0 <parse_command+0x17e>
-
- predot = 0;
- c16: 10 92 71 02 sts 0x0271, r1
- c1a: 10 92 70 02 sts 0x0270, r1
- postdot = 0;
- c1e: 10 92 6f 02 sts 0x026F, r1
- c22: 10 92 6e 02 sts 0x026E, r1
- num_sign = 1;
- num_start = 0;
- c26: 10 92 6b 02 sts 0x026B, r1
- nums_found = 0;
- c2a: 10 92 6a 02 sts 0x026A, r1
-
- for (uint8_t i=2; i<=curCmdLen; i++) {
- c2e: 72 e0 ldi r23, 0x02 ; 2
- c30: f7 2e mov r15, r23
- // if you expect coordinate, parse number!
- if (action == GOTO || action == MOVEREL){
-
- predot = 0;
- postdot = 0;
- num_sign = 1;
- c32: dd 24 eor r13, r13
- c34: d3 94 inc r13
- predot = atoi(numbuffer);
- } else { // its the postdot digits
- uint8_t postdotlen = i-num_start;
- if (postdotlen < 3){ // if too small ,fill with zeros
- for( uint8_t j = postdotlen; j <=2; j++) {
- numbuffer[j] = '0';
- c36: 60 e3 ldi r22, 0x30 ; 48
- c38: c6 2e mov r12, r22
- postdot = 0;
- num_sign = 1;
- num_start = 0;
- nums_found = 0;
-
- for (uint8_t i=2; i<=curCmdLen; i++) {
- c3a: 54 c0 rjmp .+168 ; 0xce4 <parse_command+0x172>
- if ( num_start == 0 && cmdbuffer[i] == '-' ) { // if you find a minus before
- c3c: e0 90 6b 02 lds r14, 0x026B
- c40: ee 20 and r14, r14
- c42: 49 f4 brne .+18 ; 0xc56 <parse_command+0xe4>
- c44: ef 2d mov r30, r15
- c46: f0 e0 ldi r31, 0x00 ; 0
- c48: ee 57 subi r30, 0x7E ; 126
- c4a: fd 4f sbci r31, 0xFD ; 253
- c4c: 80 81 ld r24, Z
- c4e: 8d 32 cpi r24, 0x2D ; 45
- c50: 11 f4 brne .+4 ; 0xc56 <parse_command+0xe4>
- // you find a digit, it's a negative number
- num_sign = -1;
- c52: dd 24 eor r13, r13
- c54: da 94 dec r13
- }
-
- if ( cmdbuffer[i] >= 48 && cmdbuffer[i] <= 57 ){ // is it a number?
- c56: cf 2d mov r28, r15
- c58: d0 e0 ldi r29, 0x00 ; 0
- c5a: fe 01 movw r30, r28
- c5c: ee 57 subi r30, 0x7E ; 126
- c5e: fd 4f sbci r31, 0xFD ; 253
- c60: 80 81 ld r24, Z
- c62: 80 53 subi r24, 0x30 ; 48
- c64: 8a 30 cpi r24, 0x0A ; 10
- c66: 28 f4 brcc .+10 ; 0xc72 <parse_command+0x100>
- if ( num_start == 0) { // this is the first digit in the string
- c68: ee 20 and r14, r14
- c6a: d9 f5 brne .+118 ; 0xce2 <parse_command+0x170>
- num_start = i;
- c6c: f0 92 6b 02 sts 0x026B, r15
- c70: 38 c0 rjmp .+112 ; 0xce2 <parse_command+0x170>
- }
- } else { // no digit!
- if ( num_start != 0) { // digits have been found before
- c72: ee 20 and r14, r14
- c74: b1 f1 breq .+108 ; 0xce2 <parse_command+0x170>
- strncpy(numbuffer,cmdbuffer+num_start,i-num_start); // copy number found to
- c76: 6e 2d mov r22, r14
- c78: 70 e0 ldi r23, 0x00 ; 0
- c7a: c6 1b sub r28, r22
- c7c: d7 0b sbc r29, r23
- c7e: 6e 57 subi r22, 0x7E ; 126
- c80: 7d 4f sbci r23, 0xFD ; 253
- c82: 82 e7 ldi r24, 0x72 ; 114
- c84: 92 e0 ldi r25, 0x02 ; 2
- c86: ae 01 movw r20, r28
- c88: 0e 94 af 0f call 0x1f5e ; 0x1f5e <strncpy>
- // numbuffer
- numbuffer[i-num_start] = '\0'; // make sure it's always a terminated string
- c8c: ce 58 subi r28, 0x8E ; 142
- c8e: dd 4f sbci r29, 0xFD ; 253
- c90: 18 82 st Y, r1
- nums_found++;
- c92: 80 91 6a 02 lds r24, 0x026A
- c96: 8f 5f subi r24, 0xFF ; 255
- c98: 80 93 6a 02 sts 0x026A, r24
- if(nums_found == 1) { // its the predot digits
- c9c: 81 30 cpi r24, 0x01 ; 1
- c9e: 49 f4 brne .+18 ; 0xcb2 <parse_command+0x140>
- predot = atoi(numbuffer);
- ca0: 82 e7 ldi r24, 0x72 ; 114
- ca2: 92 e0 ldi r25, 0x02 ; 2
- ca4: 0e 94 92 0f call 0x1f24 ; 0x1f24 <atoi>
- ca8: 90 93 71 02 sts 0x0271, r25
- cac: 80 93 70 02 sts 0x0270, r24
- cb0: 16 c0 rjmp .+44 ; 0xcde <parse_command+0x16c>
- } else { // its the postdot digits
- uint8_t postdotlen = i-num_start;
- cb2: 8f 2d mov r24, r15
- cb4: 8e 19 sub r24, r14
- if (postdotlen < 3){ // if too small ,fill with zeros
- cb6: 83 30 cpi r24, 0x03 ; 3
- cb8: 40 f4 brcc .+16 ; 0xcca <parse_command+0x158>
- for( uint8_t j = postdotlen; j <=2; j++) {
- numbuffer[j] = '0';
- cba: e8 2f mov r30, r24
- cbc: f0 e0 ldi r31, 0x00 ; 0
- cbe: ee 58 subi r30, 0x8E ; 142
- cc0: fd 4f sbci r31, 0xFD ; 253
- cc2: c0 82 st Z, r12
- if(nums_found == 1) { // its the predot digits
- predot = atoi(numbuffer);
- } else { // its the postdot digits
- uint8_t postdotlen = i-num_start;
- if (postdotlen < 3){ // if too small ,fill with zeros
- for( uint8_t j = postdotlen; j <=2; j++) {
- cc4: 8f 5f subi r24, 0xFF ; 255
- cc6: 83 30 cpi r24, 0x03 ; 3
- cc8: c1 f7 brne .-16 ; 0xcba <parse_command+0x148>
- numbuffer[j] = '0';
- }
- }
- // crop the number to three post dot digits
- numbuffer[3] = '\0';
- cca: 10 92 75 02 sts 0x0275, r1
-
- postdot = atoi(numbuffer);
- cce: 82 e7 ldi r24, 0x72 ; 114
- cd0: 92 e0 ldi r25, 0x02 ; 2
- cd2: 0e 94 92 0f call 0x1f24 ; 0x1f24 <atoi>
- cd6: 90 93 6f 02 sts 0x026F, r25
- cda: 80 93 6e 02 sts 0x026E, r24
- }
- num_start = 0;
- cde: 10 92 6b 02 sts 0x026B, r1
- postdot = 0;
- num_sign = 1;
- num_start = 0;
- nums_found = 0;
-
- for (uint8_t i=2; i<=curCmdLen; i++) {
- ce2: f3 94 inc r15
- ce4: 80 91 6c 02 lds r24, 0x026C
- ce8: 8f 15 cp r24, r15
- cea: 08 f0 brcs .+2 ; 0xcee <parse_command+0x17c>
- cec: a7 cf rjmp .-178 ; 0xc3c <parse_command+0xca>
- cee: 02 c0 rjmp .+4 ; 0xcf4 <parse_command+0x182>
- static char cmdbuffer[32];
- static char numbuffer[16];
- static uint16_t predot = 0,postdot = 0;
- static uint8_t cmdPos, curCmdLen, num_start = 0, nums_found = 0;
- uint8_t action=0,axis=0;
- int8_t num_sign = 1;
- cf0: dd 24 eor r13, r13
- cf2: d3 94 inc r13
-
- }
-
- int16_t steps = 0,dest=0;
-
- switch (action) {
- cf4: 02 30 cpi r16, 0x02 ; 2
- cf6: 09 f4 brne .+2 ; 0xcfa <parse_command+0x188>
- cf8: 61 c0 rjmp .+194 ; 0xdbc <parse_command+0x24a>
- cfa: 03 30 cpi r16, 0x03 ; 3
- cfc: 09 f4 brne .+2 ; 0xd00 <parse_command+0x18e>
- cfe: be c0 rjmp .+380 ; 0xe7c <parse_command+0x30a>
- d00: 01 30 cpi r16, 0x01 ; 1
- d02: 09 f0 breq .+2 ; 0xd06 <parse_command+0x194>
- d04: c3 c0 rjmp .+390 ; 0xe8c <parse_command+0x31a>
- case GOTO:
- uart_puts("GOTO ");
- d06: 87 e1 ldi r24, 0x17 ; 23
- d08: 91 e0 ldi r25, 0x01 ; 1
- d0a: aa dd rcall .-1196 ; 0x860 <uart_puts>
- uart_putc(88+axis);// x or y
- d0c: 81 2f mov r24, r17
- d0e: 88 5a subi r24, 0xA8 ; 168
- d10: 9f dd rcall .-1218 ; 0x850 <uart_putc>
- uart_putc(' ');
- d12: 80 e2 ldi r24, 0x20 ; 32
- d14: 9d dd rcall .-1222 ; 0x850 <uart_putc>
- uart_print_signed_number(predot*num_sign,3);
- d16: cd 2d mov r28, r13
- d18: dd 27 eor r29, r29
- d1a: c7 fd sbrc r28, 7
- d1c: d0 95 com r29
- d1e: 60 91 70 02 lds r22, 0x0270
- d22: 70 91 71 02 lds r23, 0x0271
- d26: ce 01 movw r24, r28
- d28: 0e 94 37 0f call 0x1e6e ; 0x1e6e <__mulhi3>
- d2c: bc 01 movw r22, r24
- d2e: 80 e0 ldi r24, 0x00 ; 0
- d30: 90 e0 ldi r25, 0x00 ; 0
- d32: 43 e0 ldi r20, 0x03 ; 3
- d34: 2e de rcall .-932 ; 0x992 <uart_print_signed_number>
- uart_putc('.');
- d36: 8e e2 ldi r24, 0x2E ; 46
- d38: 8b dd rcall .-1258 ; 0x850 <uart_putc>
- uart_print_number_wlzeros(postdot,3);
- d3a: 60 91 6e 02 lds r22, 0x026E
- d3e: 70 91 6f 02 lds r23, 0x026F
- d42: 80 e0 ldi r24, 0x00 ; 0
- d44: 90 e0 ldi r25, 0x00 ; 0
- d46: 43 e0 ldi r20, 0x03 ; 3
- d48: 10 de rcall .-992 ; 0x96a <uart_print_number_wlzeros>
- uart_puts("\r\n");
- d4a: 84 e1 ldi r24, 0x14 ; 20
- d4c: 91 e0 ldi r25, 0x01 ; 1
- d4e: 88 dd rcall .-1264 ; 0x860 <uart_puts>
-
- dest = num_sign *( predot*24 +(postdot*10)/416);
- d50: 80 91 6e 02 lds r24, 0x026E
- d54: 90 91 6f 02 lds r25, 0x026F
- d58: 6a e0 ldi r22, 0x0A ; 10
- d5a: 70 e0 ldi r23, 0x00 ; 0
- d5c: 0e 94 37 0f call 0x1e6e ; 0x1e6e <__mulhi3>
- d60: 60 ea ldi r22, 0xA0 ; 160
- d62: 71 e0 ldi r23, 0x01 ; 1
- d64: 0e 94 49 0f call 0x1e92 ; 0x1e92 <__udivmodhi4>
- d68: 9b 01 movw r18, r22
- d6a: 80 91 70 02 lds r24, 0x0270
- d6e: 90 91 71 02 lds r25, 0x0271
- d72: 68 e1 ldi r22, 0x18 ; 24
- d74: 70 e0 ldi r23, 0x00 ; 0
- d76: 0e 94 37 0f call 0x1e6e ; 0x1e6e <__mulhi3>
- d7a: 28 0f add r18, r24
- d7c: 39 1f adc r19, r25
- d7e: ce 01 movw r24, r28
- d80: b9 01 movw r22, r18
- d82: 0e 94 37 0f call 0x1e6e ; 0x1e6e <__mulhi3>
-
- if (axis == X) {
- d86: 11 23 and r17, r17
- d88: 69 f4 brne .+26 ; 0xda4 <parse_command+0x232>
- steps = dest - plate_pos_x; // experimental correction!
- d8a: 20 91 4e 01 lds r18, 0x014E
- d8e: 30 91 4f 01 lds r19, 0x014F
- d92: e8 2e mov r14, r24
- d94: e7 01 movw r28, r14
- d96: 7e 01 movw r14, r28
- d98: f9 2e mov r15, r25
- d9a: e7 01 movw r28, r14
- d9c: c2 1b sub r28, r18
- d9e: d3 0b sbc r29, r19
- move_plate(steps,0);
- da0: ce 01 movw r24, r28
- da2: 4f c0 rjmp .+158 ; 0xe42 <parse_command+0x2d0>
- plate_pos_x += steps;
- } else if (axis == Y) {
- steps = dest - plate_pos_y;
- da4: 20 91 50 01 lds r18, 0x0150
- da8: 30 91 51 01 lds r19, 0x0151
- dac: e8 2e mov r14, r24
- dae: e7 01 movw r28, r14
- db0: 7e 01 movw r14, r28
- db2: f9 2e mov r15, r25
- db4: e7 01 movw r28, r14
- db6: c2 1b sub r28, r18
- db8: d3 0b sbc r29, r19
- dba: 51 c0 rjmp .+162 ; 0xe5e <parse_command+0x2ec>
- }
- pos_report();
-
- break;
- case MOVEREL:
- uart_puts("MOVE ");
- dbc: 8d e1 ldi r24, 0x1D ; 29
- dbe: 91 e0 ldi r25, 0x01 ; 1
- dc0: 4f dd rcall .-1378 ; 0x860 <uart_puts>
- uart_putc(88+axis);// x or y
- dc2: 81 2f mov r24, r17
- dc4: 88 5a subi r24, 0xA8 ; 168
- dc6: 44 dd rcall .-1400 ; 0x850 <uart_putc>
- uart_putc(' ');
- dc8: 80 e2 ldi r24, 0x20 ; 32
- dca: 42 dd rcall .-1404 ; 0x850 <uart_putc>
- uart_print_signed_number(predot*num_sign,3);
- dcc: cd 2d mov r28, r13
- dce: dd 27 eor r29, r29
- dd0: c7 fd sbrc r28, 7
- dd2: d0 95 com r29
- dd4: 60 91 70 02 lds r22, 0x0270
- dd8: 70 91 71 02 lds r23, 0x0271
- ddc: ce 01 movw r24, r28
- dde: 0e 94 37 0f call 0x1e6e ; 0x1e6e <__mulhi3>
- de2: bc 01 movw r22, r24
- de4: 80 e0 ldi r24, 0x00 ; 0
- de6: 90 e0 ldi r25, 0x00 ; 0
- de8: 43 e0 ldi r20, 0x03 ; 3
- dea: d3 dd rcall .-1114 ; 0x992 <uart_print_signed_number>
- uart_putc('.');
- dec: 8e e2 ldi r24, 0x2E ; 46
- dee: 30 dd rcall .-1440 ; 0x850 <uart_putc>
- uart_print_number_wlzeros(postdot,3);
- df0: 60 91 6e 02 lds r22, 0x026E
- df4: 70 91 6f 02 lds r23, 0x026F
- df8: 80 e0 ldi r24, 0x00 ; 0
- dfa: 90 e0 ldi r25, 0x00 ; 0
- dfc: 43 e0 ldi r20, 0x03 ; 3
- dfe: b5 dd rcall .-1174 ; 0x96a <uart_print_number_wlzeros>
- uart_puts("\r\n");
- e00: 84 e1 ldi r24, 0x14 ; 20
- e02: 91 e0 ldi r25, 0x01 ; 1
- e04: 2d dd rcall .-1446 ; 0x860 <uart_puts>
-
- steps = num_sign *( predot*24 +(postdot*10)/416);
- e06: 80 91 6e 02 lds r24, 0x026E
- e0a: 90 91 6f 02 lds r25, 0x026F
- e0e: 6a e0 ldi r22, 0x0A ; 10
- e10: 70 e0 ldi r23, 0x00 ; 0
- e12: 0e 94 37 0f call 0x1e6e ; 0x1e6e <__mulhi3>
- e16: 60 ea ldi r22, 0xA0 ; 160
- e18: 71 e0 ldi r23, 0x01 ; 1
- e1a: 0e 94 49 0f call 0x1e92 ; 0x1e92 <__udivmodhi4>
- e1e: 9b 01 movw r18, r22
- e20: 80 91 70 02 lds r24, 0x0270
- e24: 90 91 71 02 lds r25, 0x0271
- e28: 68 e1 ldi r22, 0x18 ; 24
- e2a: 70 e0 ldi r23, 0x00 ; 0
- e2c: 0e 94 37 0f call 0x1e6e ; 0x1e6e <__mulhi3>
- e30: 28 0f add r18, r24
- e32: 39 1f adc r19, r25
- e34: ce 01 movw r24, r28
- e36: b9 01 movw r22, r18
- e38: 0e 94 37 0f call 0x1e6e ; 0x1e6e <__mulhi3>
- e3c: ec 01 movw r28, r24
-
- if (axis == X) {
- e3e: 11 23 and r17, r17
- e40: 71 f4 brne .+28 ; 0xe5e <parse_command+0x2ec>
- move_plate(steps,0);
- e42: 60 e0 ldi r22, 0x00 ; 0
- e44: 70 e0 ldi r23, 0x00 ; 0
- e46: 07 de rcall .-1010 ; 0xa56 <move_plate>
- plate_pos_x += steps;
- e48: 80 91 4e 01 lds r24, 0x014E
- e4c: 90 91 4f 01 lds r25, 0x014F
- e50: 8c 0f add r24, r28
- e52: 9d 1f adc r25, r29
- e54: 90 93 4f 01 sts 0x014F, r25
- e58: 80 93 4e 01 sts 0x014E, r24
- e5c: 17 c0 rjmp .+46 ; 0xe8c <parse_command+0x31a>
- } else if (axis == Y) {
- move_plate(0,steps);
- e5e: 80 e0 ldi r24, 0x00 ; 0
- e60: 90 e0 ldi r25, 0x00 ; 0
- e62: be 01 movw r22, r28
- e64: f8 dd rcall .-1040 ; 0xa56 <move_plate>
- plate_pos_y += steps;
- e66: 80 91 50 01 lds r24, 0x0150
- e6a: 90 91 51 01 lds r25, 0x0151
- e6e: 8c 0f add r24, r28
- e70: 9d 1f adc r25, r29
- e72: 90 93 51 01 sts 0x0151, r25
- e76: 80 93 50 01 sts 0x0150, r24
- e7a: 08 c0 rjmp .+16 ; 0xe8c <parse_command+0x31a>
- }
- pos_report();
- break;
-
- case SETZERO:
- plate_pos_x = 0;
- e7c: 10 92 4f 01 sts 0x014F, r1
- e80: 10 92 4e 01 sts 0x014E, r1
- plate_pos_y = 0;
- e84: 10 92 51 01 sts 0x0151, r1
- e88: 10 92 50 01 sts 0x0150, r1
- pos_report();
- break;
-
- case POSITION:
- pos_report();
- e8c: 5f de rcall .-834 ; 0xb4c <pos_report>
- break;
- e8e: 17 c0 rjmp .+46 ; 0xebe <parse_command+0x34c>
- }
-
-
-
- } else { // queue command
- if( cmdPos == 0 ){
- e90: 80 91 6d 02 lds r24, 0x026D
- e94: 88 23 and r24, r24
- e96: 19 f4 brne .+6 ; 0xe9e <parse_command+0x32c>
- uart_puts("\r\n$ ");
- e98: 83 e2 ldi r24, 0x23 ; 35
- e9a: 91 e0 ldi r25, 0x01 ; 1
- e9c: e1 dc rcall .-1598 ; 0x860 <uart_puts>
- e9e: 80 91 6d 02 lds r24, 0x026D
- }
-
- if( byte == 8 ){ // backspace
- ea2: 18 30 cpi r17, 0x08 ; 8
- ea4: 11 f4 brne .+4 ; 0xeaa <parse_command+0x338>
- cmdPos--;
- ea6: 81 50 subi r24, 0x01 ; 1
- ea8: 06 c0 rjmp .+12 ; 0xeb6 <parse_command+0x344>
- } else {
- cmdbuffer[cmdPos++] = byte;
- eaa: e8 2f mov r30, r24
- eac: f0 e0 ldi r31, 0x00 ; 0
- eae: ee 57 subi r30, 0x7E ; 126
- eb0: fd 4f sbci r31, 0xFD ; 253
- eb2: 10 83 st Z, r17
- eb4: 8f 5f subi r24, 0xFF ; 255
- eb6: 80 93 6d 02 sts 0x026D, r24
- }
- uart_putc(byte);
- eba: 81 2f mov r24, r17
- ebc: c9 dc rcall .-1646 ; 0x850 <uart_putc>
-
-
- }
- }
-}
- ebe: df 91 pop r29
- ec0: cf 91 pop r28
- ec2: 1f 91 pop r17
- ec4: 0f 91 pop r16
- ec6: ff 90 pop r15
- ec8: ef 90 pop r14
- eca: df 90 pop r13
- ecc: cf 90 pop r12
- ece: 08 95 ret
-
-00000ed0 <main>:
-
-int main(void)
-{
- ed0: 0f 93 push r16
- ed2: 1f 93 push r17
- ed4: df 93 push r29
- ed6: cf 93 push r28
- ed8: 0f 92 push r0
- eda: cd b7 in r28, 0x3d ; 61
- edc: de b7 in r29, 0x3e ; 62
-
- init_motors();
- ede: 7c dd rcall .-1288 ; 0x9d8 <init_motors>
- init_leds();
- ee0: 77 db rcall .-2322 ; 0x5d0 <init_leds>
- init_sw();
- ee2: 97 db rcall .-2258 ; 0x612 <init_sw>
-
-
- char dummy;
- uint8_t field_val = 0;
- SetupHardware();
- ee4: 06 dc rcall .-2036 ; 0x6f2 <SetupHardware>
-
-
-
- RingBuffer_InitBuffer(&USBtoUSART_Buffer, USBtoUSART_Buffer_Data, sizeof(USBtoUSART_Buffer_Data));
- ee6: 82 e5 ldi r24, 0x52 ; 82
- ee8: 91 e0 ldi r25, 0x01 ; 1
- eea: 6e e5 ldi r22, 0x5E ; 94
- eec: 71 e0 ldi r23, 0x01 ; 1
- eee: e9 d9 rcall .-3118 ; 0x2c2 <RingBuffer_InitBuffer.clone.0>
- RingBuffer_InitBuffer(&USARTtoUSB_Buffer, USARTtoUSB_Buffer_Data, sizeof(USARTtoUSB_Buffer_Data));
- ef0: 8e ed ldi r24, 0xDE ; 222
- ef2: 91 e0 ldi r25, 0x01 ; 1
- ef4: 6a ee ldi r22, 0xEA ; 234
- ef6: 71 e0 ldi r23, 0x01 ; 1
- ef8: e4 d9 rcall .-3128 ; 0x2c2 <RingBuffer_InitBuffer.clone.0>
- static inline void GlobalInterruptEnable(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- sei();
- efa: 78 94 sei
-
-// LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
- GlobalInterruptEnable();
-
- touchpad_init(); // you need to call this to setup the I/O pin!
- efc: 24 db rcall .-2488 ; 0x546 <touchpad_init>
- efe: 8f ef ldi r24, 0xFF ; 255
- f00: 99 e6 ldi r25, 0x69 ; 105
- f02: a8 e1 ldi r26, 0x18 ; 24
- f04: 81 50 subi r24, 0x01 ; 1
- f06: 90 40 sbci r25, 0x00 ; 0
- f08: a0 40 sbci r26, 0x00 ; 0
- f0a: e1 f7 brne .-8 ; 0xf04 <main+0x34>
- f0c: 00 c0 rjmp .+0 ; 0xf0e <main+0x3e>
- f0e: 00 00 nop
- _delay_ms(500);
- sei();
- f10: 78 94 sei
- uint16_t loopcounter=0;
-
-
-
-// uart_puts("you selected the relative position demo modus:\n\r");
- touchpad_set_rel_mode_100dpi();// use touchpad in relative mode
- f12: 2a db rcall .-2476 ; 0x568 <touchpad_set_rel_mode_100dpi>
-// touchpad_set_rel_mode_200dpi(); // uncomment this line if you want double resolution
- int16_t x, y = 0;
- int8_t dx, dy = 0;
- uint8_t busy = 0, last_busy = 0;
- f14: 10 e0 ldi r17, 0x00 ; 0
- f16: 01 c0 rjmp .+2 ; 0xf1a <main+0x4a>
- }
- }
-}
-
-int main(void)
-{
- f18: 18 2f mov r17, r24
- int8_t dx, dy = 0;
- uint8_t busy = 0, last_busy = 0;
-
- while (1) {
-
- set_led0(sw0_state());
- f1a: 82 db rcall .-2300 ; 0x620 <sw0_state>
- f1c: 5d db rcall .-2374 ; 0x5d8 <set_led0>
- set_led1(sw1_state());
- f1e: 8a db rcall .-2284 ; 0x634 <sw1_state>
- f20: 65 db rcall .-2358 ; 0x5ec <set_led1>
- set_led2(sw2_state());
- f22: 92 db rcall .-2268 ; 0x648 <sw2_state>
- f24: 69 db rcall .-2350 ; 0x5f8 <set_led2>
-
- Usb2SerialTask();
- f26: 9a db rcall .-2252 ; 0x65c <Usb2SerialTask>
-// loopcounter++;
-// if(loopcounter<2000) {
-// continue;
-// }
-// loopcounter=0;
- parse_command(); // read data from virtual comport
- f28: 24 de rcall .-952 ; 0xb72 <parse_command>
- touchpad_read(); // read data from touchpad
- f2a: 15 db rcall .-2518 ; 0x556 <touchpad_read>
-
- dx = -delta_x();// returns the amount your finger has moved in x direction since last readout
- f2c: 41 db rcall .-2430 ; 0x5b0 <delta_x>
- f2e: 08 2f mov r16, r24
- dy = -delta_y();// returns the amount your finger has moved in y direction since last readout
- f30: 2f db rcall .-2466 ; 0x590 <delta_y>
-// }
-// loopcounter=0;
- parse_command(); // read data from virtual comport
- touchpad_read(); // read data from touchpad
-
- dx = -delta_x();// returns the amount your finger has moved in x direction since last readout
- f32: 01 95 neg r16
- dy = -delta_y();// returns the amount your finger has moved in y direction since last readout
-
- // increment/decrement some dummy variables with the
-
- plate_pos_x += dx;
- f34: 40 2f mov r20, r16
- f36: 55 27 eor r21, r21
- f38: 47 fd sbrc r20, 7
- f3a: 50 95 com r21
- f3c: 20 91 4e 01 lds r18, 0x014E
- f40: 30 91 4f 01 lds r19, 0x014F
- f44: 24 0f add r18, r20
- f46: 35 1f adc r19, r21
- f48: 30 93 4f 01 sts 0x014F, r19
- f4c: 20 93 4e 01 sts 0x014E, r18
-// loopcounter=0;
- parse_command(); // read data from virtual comport
- touchpad_read(); // read data from touchpad
-
- dx = -delta_x();// returns the amount your finger has moved in x direction since last readout
- dy = -delta_y();// returns the amount your finger has moved in y direction since last readout
- f50: 81 95 neg r24
-
- // increment/decrement some dummy variables with the
-
- plate_pos_x += dx;
- plate_pos_y += dy;
- f52: 68 2f mov r22, r24
- f54: 77 27 eor r23, r23
- f56: 67 fd sbrc r22, 7
- f58: 70 95 com r23
- f5a: 80 91 50 01 lds r24, 0x0150
- f5e: 90 91 51 01 lds r25, 0x0151
- f62: 86 0f add r24, r22
- f64: 97 1f adc r25, r23
- f66: 90 93 51 01 sts 0x0151, r25
- f6a: 80 93 50 01 sts 0x0150, r24
-
-
- last_busy = busy;
- busy = move_plate(dx,dy);
- f6e: ca 01 movw r24, r20
- f70: 72 dd rcall .-1308 ; 0xa56 <move_plate>
-
-
- if (last_busy && !(busy)){
- f72: 11 23 and r17, r17
- f74: 89 f2 breq .-94 ; 0xf18 <main+0x48>
- f76: 88 23 and r24, r24
- f78: 79 f6 brne .-98 ; 0xf18 <main+0x48>
- pos_report();
- f7a: 89 83 std Y+1, r24 ; 0x01
- f7c: e7 dd rcall .-1074 ; 0xb4c <pos_report>
- f7e: 89 81 ldd r24, Y+1 ; 0x01
- f80: cb cf rjmp .-106 ; 0xf18 <main+0x48>
-
-00000f82 <CALLBACK_USB_GetDescriptor>:
- const uint8_t DescriptorNumber = (wValue & 0xFF);
-
- const void* Address = NULL;
- uint16_t Size = NO_DESCRIPTOR;
-
- switch (DescriptorType)
- f82: 92 30 cpi r25, 0x02 ; 2
- f84: 29 f0 breq .+10 ; 0xf90 <CALLBACK_USB_GetDescriptor+0xe>
- f86: 93 30 cpi r25, 0x03 ; 3
- f88: 41 f0 breq .+16 ; 0xf9a <CALLBACK_USB_GetDescriptor+0x18>
- f8a: 91 30 cpi r25, 0x01 ; 1
- f8c: e9 f4 brne .+58 ; 0xfc8 <CALLBACK_USB_GetDescriptor+0x46>
- f8e: 17 c0 rjmp .+46 ; 0xfbe <CALLBACK_USB_GetDescriptor+0x3c>
- Address = &DeviceDescriptor;
- Size = sizeof(USB_Descriptor_Device_t);
- break;
- case DTYPE_Configuration:
- Address = &ConfigurationDescriptor;
- Size = sizeof(USB_Descriptor_Configuration_t);
- f90: 2e e3 ldi r18, 0x3E ; 62
- f92: 30 e0 ldi r19, 0x00 ; 0
- case DTYPE_Device:
- Address = &DeviceDescriptor;
- Size = sizeof(USB_Descriptor_Device_t);
- break;
- case DTYPE_Configuration:
- Address = &ConfigurationDescriptor;
- f94: ea ea ldi r30, 0xAA ; 170
- f96: f0 e0 ldi r31, 0x00 ; 0
- Size = sizeof(USB_Descriptor_Configuration_t);
- break;
- f98: 1b c0 rjmp .+54 ; 0xfd0 <CALLBACK_USB_GetDescriptor+0x4e>
- case DTYPE_String:
- switch (DescriptorNumber)
- f9a: 81 30 cpi r24, 0x01 ; 1
- f9c: 41 f0 breq .+16 ; 0xfae <CALLBACK_USB_GetDescriptor+0x2c>
- f9e: 81 30 cpi r24, 0x01 ; 1
- fa0: 18 f0 brcs .+6 ; 0xfa8 <CALLBACK_USB_GetDescriptor+0x26>
- fa2: 82 30 cpi r24, 0x02 ; 2
- fa4: 89 f4 brne .+34 ; 0xfc8 <CALLBACK_USB_GetDescriptor+0x46>
- fa6: 06 c0 rjmp .+12 ; 0xfb4 <CALLBACK_USB_GetDescriptor+0x32>
- {
- case 0x00:
- Address = &LanguageString;
- Size = pgm_read_byte(&LanguageString.Header.Size);
- fa8: e8 ee ldi r30, 0xE8 ; 232
- faa: f0 e0 ldi r31, 0x00 ; 0
- fac: 05 c0 rjmp .+10 ; 0xfb8 <CALLBACK_USB_GetDescriptor+0x36>
- break;
- case 0x01:
- Address = &ManufacturerString;
- Size = pgm_read_byte(&ManufacturerString.Header.Size);
- fae: ec ee ldi r30, 0xEC ; 236
- fb0: f0 e0 ldi r31, 0x00 ; 0
- fb2: 02 c0 rjmp .+4 ; 0xfb8 <CALLBACK_USB_GetDescriptor+0x36>
- break;
- case 0x02:
- Address = &ProductString;
- Size = pgm_read_byte(&ProductString.Header.Size);
- fb4: e6 e0 ldi r30, 0x06 ; 6
- fb6: f1 e0 ldi r31, 0x01 ; 1
- fb8: 24 91 lpm r18, Z+
- fba: 30 e0 ldi r19, 0x00 ; 0
- break;
- fbc: 09 c0 rjmp .+18 ; 0xfd0 <CALLBACK_USB_GetDescriptor+0x4e>
-
- switch (DescriptorType)
- {
- case DTYPE_Device:
- Address = &DeviceDescriptor;
- Size = sizeof(USB_Descriptor_Device_t);
- fbe: 22 e1 ldi r18, 0x12 ; 18
- fc0: 30 e0 ldi r19, 0x00 ; 0
- uint16_t Size = NO_DESCRIPTOR;
-
- switch (DescriptorType)
- {
- case DTYPE_Device:
- Address = &DeviceDescriptor;
- fc2: e8 e9 ldi r30, 0x98 ; 152
- fc4: f0 e0 ldi r31, 0x00 ; 0
- fc6: 04 c0 rjmp .+8 ; 0xfd0 <CALLBACK_USB_GetDescriptor+0x4e>
-{
- const uint8_t DescriptorType = (wValue >> 8);
- const uint8_t DescriptorNumber = (wValue & 0xFF);
-
- const void* Address = NULL;
- uint16_t Size = NO_DESCRIPTOR;
- fc8: 20 e0 ldi r18, 0x00 ; 0
- fca: 30 e0 ldi r19, 0x00 ; 0
- const void** const DescriptorAddress)
-{
- const uint8_t DescriptorType = (wValue >> 8);
- const uint8_t DescriptorNumber = (wValue & 0xFF);
-
- const void* Address = NULL;
- fcc: e0 e0 ldi r30, 0x00 ; 0
- fce: f0 e0 ldi r31, 0x00 ; 0
- }
-
- break;
- }
-
- *DescriptorAddress = Address;
- fd0: da 01 movw r26, r20
- fd2: 11 96 adiw r26, 0x01 ; 1
- fd4: fc 93 st X, r31
- fd6: ee 93 st -X, r30
- return Size;
-}
- fd8: c9 01 movw r24, r18
- fda: 08 95 ret
-
-00000fdc <Endpoint_Write_Control_Stream_LE>:
-#if defined(TEMPLATE_FUNC_NAME)
-
-uint8_t TEMPLATE_FUNC_NAME (const void* const Buffer,
- uint16_t Length)
-{
- uint8_t* DataStream = ((uint8_t*)Buffer + TEMPLATE_BUFFER_OFFSET(Length));
- fdc: 28 2f mov r18, r24
- fde: 39 2f mov r19, r25
- fe0: f9 01 movw r30, r18
- bool LastPacketFull = false;
-
- if (Length > USB_ControlRequest.wLength)
- fe2: 80 91 d2 02 lds r24, 0x02D2
- fe6: 90 91 d3 02 lds r25, 0x02D3
- fea: 86 17 cp r24, r22
- fec: 97 07 cpc r25, r23
- fee: 18 f4 brcc .+6 ; 0xff6 <Endpoint_Write_Control_Stream_LE+0x1a>
- ff0: bc 01 movw r22, r24
- ff2: 20 e0 ldi r18, 0x00 ; 0
- ff4: 34 c0 rjmp .+104 ; 0x105e <Endpoint_Write_Control_Stream_LE+0x82>
- Length = USB_ControlRequest.wLength;
- else if (!(Length))
- ff6: 61 15 cp r22, r1
- ff8: 71 05 cpc r23, r1
- ffa: d9 f7 brne .-10 ; 0xff2 <Endpoint_Write_Control_Stream_LE+0x16>
- */
- static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearIN(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
- ffc: 80 91 e8 00 lds r24, 0x00E8
- 1000: 8e 77 andi r24, 0x7E ; 126
- 1002: 80 93 e8 00 sts 0x00E8, r24
- 1006: f5 cf rjmp .-22 ; 0xff2 <Endpoint_Write_Control_Stream_LE+0x16>
- Endpoint_ClearIN();
-
- while (Length || LastPacketFull)
- {
- uint8_t USB_DeviceState_LCL = USB_DeviceState;
- 1008: 8e b3 in r24, 0x1e ; 30
-
- if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
- 100a: 88 23 and r24, r24
- 100c: e9 f1 breq .+122 ; 0x1088 <Endpoint_Write_Control_Stream_LE+0xac>
- return ENDPOINT_RWCSTREAM_DeviceDisconnected;
- else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
- 100e: 85 30 cpi r24, 0x05 ; 5
- 1010: b9 f1 breq .+110 ; 0x1080 <Endpoint_Write_Control_Stream_LE+0xa4>
- * \return Boolean \c true if the selected endpoint has received a SETUP packet, \c false otherwise.
- */
- static inline bool Endpoint_IsSETUPReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsSETUPReceived(void)
- {
- return ((UEINTX & (1 << RXSTPI)) ? true : false);
- 1012: 80 91 e8 00 lds r24, 0x00E8
- return ENDPOINT_RWCSTREAM_BusSuspended;
- else if (Endpoint_IsSETUPReceived())
- 1016: 83 fd sbrc r24, 3
- 1018: 35 c0 rjmp .+106 ; 0x1084 <Endpoint_Write_Control_Stream_LE+0xa8>
- * \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
- */
- static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsOUTReceived(void)
- {
- return ((UEINTX & (1 << RXOUTI)) ? true : false);
- 101a: 80 91 e8 00 lds r24, 0x00E8
- return ENDPOINT_RWCSTREAM_HostAborted;
- else if (Endpoint_IsOUTReceived())
- 101e: 82 fd sbrc r24, 2
- 1020: 29 c0 rjmp .+82 ; 0x1074 <Endpoint_Write_Control_Stream_LE+0x98>
- * \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
- */
- static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsINReady(void)
- {
- return ((UEINTX & (1 << TXINI)) ? true : false);
- 1022: 80 91 e8 00 lds r24, 0x00E8
- break;
-
- if (Endpoint_IsINReady())
- 1026: 80 ff sbrs r24, 0
- 1028: 1a c0 rjmp .+52 ; 0x105e <Endpoint_Write_Control_Stream_LE+0x82>
- #if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
- return UEBCX;
- #elif defined(USB_SERIES_4_AVR)
- return (((uint16_t)UEBCHX << 8) | UEBCLX);
- #elif defined(USB_SERIES_2_AVR)
- return UEBCLX;
- 102a: 80 91 f2 00 lds r24, 0x00F2
- 102e: 90 e0 ldi r25, 0x00 ; 0
- {
- uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint();
-
- while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize))
- 1030: 06 c0 rjmp .+12 ; 0x103e <Endpoint_Write_Control_Stream_LE+0x62>
- {
- TEMPLATE_TRANSFER_BYTE(DataStream);
- 1032: 21 91 ld r18, Z+
- * \param[in] Data Data to write into the the currently selected endpoint's FIFO buffer.
- */
- static inline void Endpoint_Write_8(const uint8_t Data) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_Write_8(const uint8_t Data)
- {
- UEDATX = Data;
- 1034: 20 93 f1 00 sts 0x00F1, r18
- TEMPLATE_BUFFER_MOVE(DataStream, 1);
- Length--;
- 1038: 61 50 subi r22, 0x01 ; 1
- 103a: 70 40 sbci r23, 0x00 ; 0
- BytesInEndpoint++;
- 103c: 01 96 adiw r24, 0x01 ; 1
-
- if (Endpoint_IsINReady())
- {
- uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint();
-
- while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize))
- 103e: 61 15 cp r22, r1
- 1040: 71 05 cpc r23, r1
- 1042: 19 f0 breq .+6 ; 0x104a <Endpoint_Write_Control_Stream_LE+0x6e>
- 1044: 88 30 cpi r24, 0x08 ; 8
- 1046: 91 05 cpc r25, r1
- 1048: a0 f3 brcs .-24 ; 0x1032 <Endpoint_Write_Control_Stream_LE+0x56>
- TEMPLATE_BUFFER_MOVE(DataStream, 1);
- Length--;
- BytesInEndpoint++;
- }
-
- LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize);
- 104a: 21 e0 ldi r18, 0x01 ; 1
- 104c: 88 30 cpi r24, 0x08 ; 8
- 104e: 91 05 cpc r25, r1
- 1050: 09 f0 breq .+2 ; 0x1054 <Endpoint_Write_Control_Stream_LE+0x78>
- 1052: 20 e0 ldi r18, 0x00 ; 0
- */
- static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearIN(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
- 1054: 80 91 e8 00 lds r24, 0x00E8
- 1058: 8e 77 andi r24, 0x7E ; 126
- 105a: 80 93 e8 00 sts 0x00E8, r24
- if (Length > USB_ControlRequest.wLength)
- Length = USB_ControlRequest.wLength;
- else if (!(Length))
- Endpoint_ClearIN();
-
- while (Length || LastPacketFull)
- 105e: 61 15 cp r22, r1
- 1060: 71 05 cpc r23, r1
- 1062: 91 f6 brne .-92 ; 0x1008 <Endpoint_Write_Control_Stream_LE+0x2c>
- 1064: 22 23 and r18, r18
- 1066: 81 f6 brne .-96 ; 0x1008 <Endpoint_Write_Control_Stream_LE+0x2c>
- 1068: 05 c0 rjmp .+10 ; 0x1074 <Endpoint_Write_Control_Stream_LE+0x98>
- }
- }
-
- while (!(Endpoint_IsOUTReceived()))
- {
- uint8_t USB_DeviceState_LCL = USB_DeviceState;
- 106a: 8e b3 in r24, 0x1e ; 30
-
- if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
- 106c: 88 23 and r24, r24
- 106e: 61 f0 breq .+24 ; 0x1088 <Endpoint_Write_Control_Stream_LE+0xac>
- return ENDPOINT_RWCSTREAM_DeviceDisconnected;
- else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
- 1070: 85 30 cpi r24, 0x05 ; 5
- 1072: 61 f0 breq .+24 ; 0x108c <Endpoint_Write_Control_Stream_LE+0xb0>
- * \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
- */
- static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsOUTReceived(void)
- {
- return ((UEINTX & (1 << RXOUTI)) ? true : false);
- 1074: 80 91 e8 00 lds r24, 0x00E8
- LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize);
- Endpoint_ClearIN();
- }
- }
-
- while (!(Endpoint_IsOUTReceived()))
- 1078: 82 ff sbrs r24, 2
- 107a: f7 cf rjmp .-18 ; 0x106a <Endpoint_Write_Control_Stream_LE+0x8e>
- return ENDPOINT_RWCSTREAM_DeviceDisconnected;
- else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
- return ENDPOINT_RWCSTREAM_BusSuspended;
- }
-
- return ENDPOINT_RWCSTREAM_NoError;
- 107c: 80 e0 ldi r24, 0x00 ; 0
- 107e: 08 95 ret
- uint8_t USB_DeviceState_LCL = USB_DeviceState;
-
- if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
- return ENDPOINT_RWCSTREAM_DeviceDisconnected;
- else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
- return ENDPOINT_RWCSTREAM_BusSuspended;
- 1080: 83 e0 ldi r24, 0x03 ; 3
- 1082: 08 95 ret
- else if (Endpoint_IsSETUPReceived())
- return ENDPOINT_RWCSTREAM_HostAborted;
- 1084: 81 e0 ldi r24, 0x01 ; 1
- 1086: 08 95 ret
- while (!(Endpoint_IsOUTReceived()))
- {
- uint8_t USB_DeviceState_LCL = USB_DeviceState;
-
- if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
- return ENDPOINT_RWCSTREAM_DeviceDisconnected;
- 1088: 82 e0 ldi r24, 0x02 ; 2
- 108a: 08 95 ret
- else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
- return ENDPOINT_RWCSTREAM_BusSuspended;
- 108c: 83 e0 ldi r24, 0x03 ; 3
- }
-
- return ENDPOINT_RWCSTREAM_NoError;
-}
- 108e: 08 95 ret
-
-00001090 <Endpoint_Write_Control_PStream_LE>:
-#if defined(TEMPLATE_FUNC_NAME)
-
-uint8_t TEMPLATE_FUNC_NAME (const void* const Buffer,
- uint16_t Length)
-{
- uint8_t* DataStream = ((uint8_t*)Buffer + TEMPLATE_BUFFER_OFFSET(Length));
- 1090: e8 2f mov r30, r24
- 1092: f9 2f mov r31, r25
- bool LastPacketFull = false;
-
- if (Length > USB_ControlRequest.wLength)
- 1094: 80 91 d2 02 lds r24, 0x02D2
- 1098: 90 91 d3 02 lds r25, 0x02D3
- 109c: 86 17 cp r24, r22
- 109e: 97 07 cpc r25, r23
- 10a0: 18 f4 brcc .+6 ; 0x10a8 <Endpoint_Write_Control_PStream_LE+0x18>
- 10a2: bc 01 movw r22, r24
- 10a4: 20 e0 ldi r18, 0x00 ; 0
- 10a6: 36 c0 rjmp .+108 ; 0x1114 <Endpoint_Write_Control_PStream_LE+0x84>
- Length = USB_ControlRequest.wLength;
- else if (!(Length))
- 10a8: 61 15 cp r22, r1
- 10aa: 71 05 cpc r23, r1
- 10ac: d9 f7 brne .-10 ; 0x10a4 <Endpoint_Write_Control_PStream_LE+0x14>
- */
- static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearIN(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
- 10ae: 80 91 e8 00 lds r24, 0x00E8
- 10b2: 8e 77 andi r24, 0x7E ; 126
- 10b4: 80 93 e8 00 sts 0x00E8, r24
- 10b8: f5 cf rjmp .-22 ; 0x10a4 <Endpoint_Write_Control_PStream_LE+0x14>
- Endpoint_ClearIN();
-
- while (Length || LastPacketFull)
- {
- uint8_t USB_DeviceState_LCL = USB_DeviceState;
- 10ba: 8e b3 in r24, 0x1e ; 30
-
- if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
- 10bc: 88 23 and r24, r24
- 10be: 09 f4 brne .+2 ; 0x10c2 <Endpoint_Write_Control_PStream_LE+0x32>
- 10c0: 3e c0 rjmp .+124 ; 0x113e <Endpoint_Write_Control_PStream_LE+0xae>
- return ENDPOINT_RWCSTREAM_DeviceDisconnected;
- else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
- 10c2: 85 30 cpi r24, 0x05 ; 5
- 10c4: c1 f1 breq .+112 ; 0x1136 <Endpoint_Write_Control_PStream_LE+0xa6>
- * \return Boolean \c true if the selected endpoint has received a SETUP packet, \c false otherwise.
- */
- static inline bool Endpoint_IsSETUPReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsSETUPReceived(void)
- {
- return ((UEINTX & (1 << RXSTPI)) ? true : false);
- 10c6: 80 91 e8 00 lds r24, 0x00E8
- return ENDPOINT_RWCSTREAM_BusSuspended;
- else if (Endpoint_IsSETUPReceived())
- 10ca: 83 fd sbrc r24, 3
- 10cc: 36 c0 rjmp .+108 ; 0x113a <Endpoint_Write_Control_PStream_LE+0xaa>
- * \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
- */
- static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsOUTReceived(void)
- {
- return ((UEINTX & (1 << RXOUTI)) ? true : false);
- 10ce: 80 91 e8 00 lds r24, 0x00E8
- return ENDPOINT_RWCSTREAM_HostAborted;
- else if (Endpoint_IsOUTReceived())
- 10d2: 82 fd sbrc r24, 2
- 10d4: 2a c0 rjmp .+84 ; 0x112a <Endpoint_Write_Control_PStream_LE+0x9a>
- * \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
- */
- static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsINReady(void)
- {
- return ((UEINTX & (1 << TXINI)) ? true : false);
- 10d6: 80 91 e8 00 lds r24, 0x00E8
- break;
-
- if (Endpoint_IsINReady())
- 10da: 80 ff sbrs r24, 0
- 10dc: 1b c0 rjmp .+54 ; 0x1114 <Endpoint_Write_Control_PStream_LE+0x84>
- #if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
- return UEBCX;
- #elif defined(USB_SERIES_4_AVR)
- return (((uint16_t)UEBCHX << 8) | UEBCLX);
- #elif defined(USB_SERIES_2_AVR)
- return UEBCLX;
- 10de: 80 91 f2 00 lds r24, 0x00F2
- 10e2: 90 e0 ldi r25, 0x00 ; 0
- {
- uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint();
-
- while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize))
- 10e4: 07 c0 rjmp .+14 ; 0x10f4 <Endpoint_Write_Control_PStream_LE+0x64>
- {
- TEMPLATE_TRANSFER_BYTE(DataStream);
- 10e6: 24 91 lpm r18, Z+
- * \param[in] Data Data to write into the the currently selected endpoint's FIFO buffer.
- */
- static inline void Endpoint_Write_8(const uint8_t Data) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_Write_8(const uint8_t Data)
- {
- UEDATX = Data;
- 10e8: 20 93 f1 00 sts 0x00F1, r18
- TEMPLATE_BUFFER_MOVE(DataStream, 1);
- 10ec: 31 96 adiw r30, 0x01 ; 1
- Length--;
- 10ee: 61 50 subi r22, 0x01 ; 1
- 10f0: 70 40 sbci r23, 0x00 ; 0
- BytesInEndpoint++;
- 10f2: 01 96 adiw r24, 0x01 ; 1
-
- if (Endpoint_IsINReady())
- {
- uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint();
-
- while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize))
- 10f4: 61 15 cp r22, r1
- 10f6: 71 05 cpc r23, r1
- 10f8: 19 f0 breq .+6 ; 0x1100 <Endpoint_Write_Control_PStream_LE+0x70>
- 10fa: 88 30 cpi r24, 0x08 ; 8
- 10fc: 91 05 cpc r25, r1
- 10fe: 98 f3 brcs .-26 ; 0x10e6 <Endpoint_Write_Control_PStream_LE+0x56>
- TEMPLATE_BUFFER_MOVE(DataStream, 1);
- Length--;
- BytesInEndpoint++;
- }
-
- LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize);
- 1100: 21 e0 ldi r18, 0x01 ; 1
- 1102: 88 30 cpi r24, 0x08 ; 8
- 1104: 91 05 cpc r25, r1
- 1106: 09 f0 breq .+2 ; 0x110a <Endpoint_Write_Control_PStream_LE+0x7a>
- 1108: 20 e0 ldi r18, 0x00 ; 0
- */
- static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearIN(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
- 110a: 80 91 e8 00 lds r24, 0x00E8
- 110e: 8e 77 andi r24, 0x7E ; 126
- 1110: 80 93 e8 00 sts 0x00E8, r24
- if (Length > USB_ControlRequest.wLength)
- Length = USB_ControlRequest.wLength;
- else if (!(Length))
- Endpoint_ClearIN();
-
- while (Length || LastPacketFull)
- 1114: 61 15 cp r22, r1
- 1116: 71 05 cpc r23, r1
- 1118: 81 f6 brne .-96 ; 0x10ba <Endpoint_Write_Control_PStream_LE+0x2a>
- 111a: 22 23 and r18, r18
- 111c: 71 f6 brne .-100 ; 0x10ba <Endpoint_Write_Control_PStream_LE+0x2a>
- 111e: 05 c0 rjmp .+10 ; 0x112a <Endpoint_Write_Control_PStream_LE+0x9a>
- }
- }
-
- while (!(Endpoint_IsOUTReceived()))
- {
- uint8_t USB_DeviceState_LCL = USB_DeviceState;
- 1120: 8e b3 in r24, 0x1e ; 30
-
- if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
- 1122: 88 23 and r24, r24
- 1124: 61 f0 breq .+24 ; 0x113e <Endpoint_Write_Control_PStream_LE+0xae>
- return ENDPOINT_RWCSTREAM_DeviceDisconnected;
- else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
- 1126: 85 30 cpi r24, 0x05 ; 5
- 1128: 61 f0 breq .+24 ; 0x1142 <Endpoint_Write_Control_PStream_LE+0xb2>
- * \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
- */
- static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsOUTReceived(void)
- {
- return ((UEINTX & (1 << RXOUTI)) ? true : false);
- 112a: 80 91 e8 00 lds r24, 0x00E8
- LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize);
- Endpoint_ClearIN();
- }
- }
-
- while (!(Endpoint_IsOUTReceived()))
- 112e: 82 ff sbrs r24, 2
- 1130: f7 cf rjmp .-18 ; 0x1120 <Endpoint_Write_Control_PStream_LE+0x90>
- return ENDPOINT_RWCSTREAM_DeviceDisconnected;
- else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
- return ENDPOINT_RWCSTREAM_BusSuspended;
- }
-
- return ENDPOINT_RWCSTREAM_NoError;
- 1132: 80 e0 ldi r24, 0x00 ; 0
- 1134: 08 95 ret
- uint8_t USB_DeviceState_LCL = USB_DeviceState;
-
- if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
- return ENDPOINT_RWCSTREAM_DeviceDisconnected;
- else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
- return ENDPOINT_RWCSTREAM_BusSuspended;
- 1136: 83 e0 ldi r24, 0x03 ; 3
- 1138: 08 95 ret
- else if (Endpoint_IsSETUPReceived())
- return ENDPOINT_RWCSTREAM_HostAborted;
- 113a: 81 e0 ldi r24, 0x01 ; 1
- 113c: 08 95 ret
- while (!(Endpoint_IsOUTReceived()))
- {
- uint8_t USB_DeviceState_LCL = USB_DeviceState;
-
- if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
- return ENDPOINT_RWCSTREAM_DeviceDisconnected;
- 113e: 82 e0 ldi r24, 0x02 ; 2
- 1140: 08 95 ret
- else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
- return ENDPOINT_RWCSTREAM_BusSuspended;
- 1142: 83 e0 ldi r24, 0x03 ; 3
- }
-
- return ENDPOINT_RWCSTREAM_NoError;
-}
- 1144: 08 95 ret
-
-00001146 <Endpoint_ConfigureEndpoint_Prv>:
- UECFG0X = UECFG0XData;
- UECFG1X = UECFG1XData;
-
- return Endpoint_IsConfigured();
-#else
- for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++)
- 1146: 98 2f mov r25, r24
- 1148: 2c c0 rjmp .+88 ; 0x11a2 <Endpoint_ConfigureEndpoint_Prv+0x5c>
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 114a: 29 2f mov r18, r25
- 114c: 2f 70 andi r18, 0x0F ; 15
- 114e: 20 93 e9 00 sts 0x00E9, r18
- uint8_t UECFG1XTemp;
- uint8_t UEIENXTemp;
-
- Endpoint_SelectEndpoint(EPNum);
-
- if (EPNum == Number)
- 1152: 98 17 cp r25, r24
- 1154: 39 f0 breq .+14 ; 0x1164 <Endpoint_ConfigureEndpoint_Prv+0x1e>
- UECFG1XTemp = UECFG1XData;
- UEIENXTemp = 0;
- }
- else
- {
- UECFG0XTemp = UECFG0X;
- 1156: 70 91 ec 00 lds r23, 0x00EC
- UECFG1XTemp = UECFG1X;
- 115a: 20 91 ed 00 lds r18, 0x00ED
- UEIENXTemp = UEIENX;
- 115e: 50 91 f0 00 lds r21, 0x00F0
- 1162: 03 c0 rjmp .+6 ; 0x116a <Endpoint_ConfigureEndpoint_Prv+0x24>
- Endpoint_SelectEndpoint(EPNum);
-
- if (EPNum == Number)
- {
- UECFG0XTemp = UECFG0XData;
- UECFG1XTemp = UECFG1XData;
- 1164: 24 2f mov r18, r20
-
- Endpoint_SelectEndpoint(EPNum);
-
- if (EPNum == Number)
- {
- UECFG0XTemp = UECFG0XData;
- 1166: 76 2f mov r23, r22
- UECFG1XTemp = UECFG1XData;
- UEIENXTemp = 0;
- 1168: 50 e0 ldi r21, 0x00 ; 0
- UECFG0XTemp = UECFG0X;
- UECFG1XTemp = UECFG1X;
- UEIENXTemp = UEIENX;
- }
-
- if (!(UECFG1XTemp & (1 << ALLOC)))
- 116a: 21 ff sbrs r18, 1
- 116c: 19 c0 rjmp .+50 ; 0x11a0 <Endpoint_ConfigureEndpoint_Prv+0x5a>
- * to and from a host.
- */
- static inline void Endpoint_DisableEndpoint(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_DisableEndpoint(void)
- {
- UECONX &= ~(1 << EPEN);
- 116e: 30 91 eb 00 lds r19, 0x00EB
- 1172: 3e 7f andi r19, 0xFE ; 254
- 1174: 30 93 eb 00 sts 0x00EB, r19
- continue;
-
- Endpoint_DisableEndpoint();
- UECFG1X &= ~(1 << ALLOC);
- 1178: 30 91 ed 00 lds r19, 0x00ED
- 117c: 3d 7f andi r19, 0xFD ; 253
- 117e: 30 93 ed 00 sts 0x00ED, r19
- * \note Endpoints must first be configured properly via \ref Endpoint_ConfigureEndpoint().
- */
- static inline void Endpoint_EnableEndpoint(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_EnableEndpoint(void)
- {
- UECONX |= (1 << EPEN);
- 1182: 30 91 eb 00 lds r19, 0x00EB
- 1186: 31 60 ori r19, 0x01 ; 1
- 1188: 30 93 eb 00 sts 0x00EB, r19
-
- Endpoint_EnableEndpoint();
- UECFG0X = UECFG0XTemp;
- 118c: 70 93 ec 00 sts 0x00EC, r23
- UECFG1X = UECFG1XTemp;
- 1190: 20 93 ed 00 sts 0x00ED, r18
- UEIENX = UEIENXTemp;
- 1194: 50 93 f0 00 sts 0x00F0, r21
- * \return Boolean \c true if the currently selected endpoint has been configured, \c false otherwise.
- */
- static inline bool Endpoint_IsConfigured(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsConfigured(void)
- {
- return ((UESTA0X & (1 << CFGOK)) ? true : false);
- 1198: 20 91 ee 00 lds r18, 0x00EE
-
- if (!(Endpoint_IsConfigured()))
- 119c: 27 ff sbrs r18, 7
- 119e: 08 c0 rjmp .+16 ; 0x11b0 <Endpoint_ConfigureEndpoint_Prv+0x6a>
- UECFG0X = UECFG0XData;
- UECFG1X = UECFG1XData;
-
- return Endpoint_IsConfigured();
-#else
- for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++)
- 11a0: 9f 5f subi r25, 0xFF ; 255
- 11a2: 95 30 cpi r25, 0x05 ; 5
- 11a4: 90 f2 brcs .-92 ; 0x114a <Endpoint_ConfigureEndpoint_Prv+0x4>
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 11a6: 8f 70 andi r24, 0x0F ; 15
- 11a8: 80 93 e9 00 sts 0x00E9, r24
- if (!(Endpoint_IsConfigured()))
- return false;
- }
-
- Endpoint_SelectEndpoint(Number);
- return true;
- 11ac: 81 e0 ldi r24, 0x01 ; 1
- 11ae: 08 95 ret
- UECFG0X = UECFG0XTemp;
- UECFG1X = UECFG1XTemp;
- UEIENX = UEIENXTemp;
-
- if (!(Endpoint_IsConfigured()))
- return false;
- 11b0: 80 e0 ldi r24, 0x00 ; 0
- }
-
- Endpoint_SelectEndpoint(Number);
- return true;
-#endif
-}
- 11b2: 08 95 ret
-
-000011b4 <Endpoint_ConfigureEndpointTable>:
-uint8_t USB_Device_ControlEndpointSize = ENDPOINT_CONTROLEP_DEFAULT_SIZE;
-#endif
-
-bool Endpoint_ConfigureEndpointTable(const USB_Endpoint_Table_t* const Table,
- const uint8_t Entries)
-{
- 11b4: ef 92 push r14
- 11b6: ff 92 push r15
- 11b8: 0f 93 push r16
- 11ba: 1f 93 push r17
- 11bc: cf 93 push r28
- 11be: df 93 push r29
- 11c0: 16 2f mov r17, r22
- {
- if (!(Table[i].Address))
- continue;
-
- if (!(Endpoint_ConfigureEndpoint(Table[i].Address, Table[i].Type, Table[i].Size, Table[i].Banks)))
- return false;
- 11c2: e8 2e mov r14, r24
- 11c4: e7 01 movw r28, r14
- 11c6: 7e 01 movw r14, r28
- 11c8: f9 2e mov r15, r25
- 11ca: e7 01 movw r28, r14
-#endif
-
-bool Endpoint_ConfigureEndpointTable(const USB_Endpoint_Table_t* const Table,
- const uint8_t Entries)
-{
- for (uint8_t i = 0; i < Entries; i++)
- 11cc: 00 e0 ldi r16, 0x00 ; 0
- 11ce: 2a c0 rjmp .+84 ; 0x1224 <Endpoint_ConfigureEndpointTable+0x70>
- {
- if (!(Table[i].Address))
- 11d0: 98 81 ld r25, Y
- 11d2: 99 23 and r25, r25
- 11d4: 29 f1 breq .+74 ; 0x1220 <Endpoint_ConfigureEndpointTable+0x6c>
- continue;
-
- if (!(Endpoint_ConfigureEndpoint(Table[i].Address, Table[i].Type, Table[i].Size, Table[i].Banks)))
- 11d6: 6b 81 ldd r22, Y+3 ; 0x03
- 11d8: e9 81 ldd r30, Y+1 ; 0x01
- 11da: fa 81 ldd r31, Y+2 ; 0x02
- 11dc: 2c 81 ldd r18, Y+4 ; 0x04
- static inline bool Endpoint_ConfigureEndpoint(const uint8_t Address,
- const uint8_t Type,
- const uint16_t Size,
- const uint8_t Banks)
- {
- uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
- 11de: 89 2f mov r24, r25
- 11e0: 8f 70 andi r24, 0x0F ; 15
-
- if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
- 11e2: 85 30 cpi r24, 0x05 ; 5
- 11e4: 18 f5 brcc .+70 ; 0x122c <Endpoint_ConfigureEndpointTable+0x78>
- return false;
-
- return Endpoint_ConfigureEndpoint_Prv(Number,
- ((Type << EPTYPE0) | ((Address & ENDPOINT_DIR_IN) ? (1 << EPDIR) : 0)),
- 11e6: 62 95 swap r22
- 11e8: 66 0f add r22, r22
- 11ea: 66 0f add r22, r22
- 11ec: 60 7c andi r22, 0xC0 ; 192
- 11ee: 99 1f adc r25, r25
- 11f0: 99 27 eor r25, r25
- 11f2: 99 1f adc r25, r25
- uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
-
- if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
- return false;
-
- return Endpoint_ConfigureEndpoint_Prv(Number,
- 11f4: 69 2b or r22, r25
- 11f6: 22 30 cpi r18, 0x02 ; 2
- 11f8: 10 f0 brcs .+4 ; 0x11fe <Endpoint_ConfigureEndpointTable+0x4a>
- 11fa: 96 e0 ldi r25, 0x06 ; 6
- 11fc: 01 c0 rjmp .+2 ; 0x1200 <Endpoint_ConfigureEndpointTable+0x4c>
- 11fe: 92 e0 ldi r25, 0x02 ; 2
- static inline uint8_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes) ATTR_WARN_UNUSED_RESULT ATTR_CONST
- ATTR_ALWAYS_INLINE;
- static inline uint8_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes)
- {
- uint8_t MaskVal = 0;
- uint16_t CheckBytes = 8;
- 1200: 28 e0 ldi r18, 0x08 ; 8
- 1202: 30 e0 ldi r19, 0x00 ; 0
- /* Inline Functions: */
- static inline uint8_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes) ATTR_WARN_UNUSED_RESULT ATTR_CONST
- ATTR_ALWAYS_INLINE;
- static inline uint8_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes)
- {
- uint8_t MaskVal = 0;
- 1204: 40 e0 ldi r20, 0x00 ; 0
- 1206: 03 c0 rjmp .+6 ; 0x120e <Endpoint_ConfigureEndpointTable+0x5a>
- uint16_t CheckBytes = 8;
-
- while (CheckBytes < Bytes)
- {
- MaskVal++;
- 1208: 4f 5f subi r20, 0xFF ; 255
- CheckBytes <<= 1;
- 120a: 22 0f add r18, r18
- 120c: 33 1f adc r19, r19
- static inline uint8_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes)
- {
- uint8_t MaskVal = 0;
- uint16_t CheckBytes = 8;
-
- while (CheckBytes < Bytes)
- 120e: 2e 17 cp r18, r30
- 1210: 3f 07 cpc r19, r31
- 1212: d0 f3 brcs .-12 ; 0x1208 <Endpoint_ConfigureEndpointTable+0x54>
- {
- MaskVal++;
- CheckBytes <<= 1;
- }
-
- return (MaskVal << EPSIZE0);
- 1214: 42 95 swap r20
- 1216: 40 7f andi r20, 0xF0 ; 240
- uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
-
- if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
- return false;
-
- return Endpoint_ConfigureEndpoint_Prv(Number,
- 1218: 49 2b or r20, r25
- 121a: 95 df rcall .-214 ; 0x1146 <Endpoint_ConfigureEndpoint_Prv>
- 121c: 88 23 and r24, r24
- 121e: 31 f0 breq .+12 ; 0x122c <Endpoint_ConfigureEndpointTable+0x78>
-#endif
-
-bool Endpoint_ConfigureEndpointTable(const USB_Endpoint_Table_t* const Table,
- const uint8_t Entries)
-{
- for (uint8_t i = 0; i < Entries; i++)
- 1220: 0f 5f subi r16, 0xFF ; 255
- 1222: 25 96 adiw r28, 0x05 ; 5
- 1224: 01 17 cp r16, r17
- 1226: a0 f2 brcs .-88 ; 0x11d0 <Endpoint_ConfigureEndpointTable+0x1c>
-
- if (!(Endpoint_ConfigureEndpoint(Table[i].Address, Table[i].Type, Table[i].Size, Table[i].Banks)))
- return false;
- }
-
- return true;
- 1228: 81 e0 ldi r24, 0x01 ; 1
- 122a: 01 c0 rjmp .+2 ; 0x122e <Endpoint_ConfigureEndpointTable+0x7a>
- {
- if (!(Table[i].Address))
- continue;
-
- if (!(Endpoint_ConfigureEndpoint(Table[i].Address, Table[i].Type, Table[i].Size, Table[i].Banks)))
- return false;
- 122c: 80 e0 ldi r24, 0x00 ; 0
- }
-
- return true;
-}
- 122e: df 91 pop r29
- 1230: cf 91 pop r28
- 1232: 1f 91 pop r17
- 1234: 0f 91 pop r16
- 1236: ff 90 pop r15
- 1238: ef 90 pop r14
- 123a: 08 95 ret
-
-0000123c <Endpoint_ClearStatusStage>:
- }
-}
-
-void Endpoint_ClearStatusStage(void)
-{
- if (USB_ControlRequest.bmRequestType & REQDIR_DEVICETOHOST)
- 123c: 80 91 cc 02 lds r24, 0x02CC
- 1240: 87 ff sbrs r24, 7
- 1242: 11 c0 rjmp .+34 ; 0x1266 <Endpoint_ClearStatusStage+0x2a>
- 1244: 03 c0 rjmp .+6 ; 0x124c <Endpoint_ClearStatusStage+0x10>
- {
- while (!(Endpoint_IsOUTReceived()))
- {
- if (USB_DeviceState == DEVICE_STATE_Unattached)
- 1246: 8e b3 in r24, 0x1e ; 30
- 1248: 88 23 and r24, r24
- 124a: b1 f0 breq .+44 ; 0x1278 <Endpoint_ClearStatusStage+0x3c>
- * \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
- */
- static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsOUTReceived(void)
- {
- return ((UEINTX & (1 << RXOUTI)) ? true : false);
- 124c: 80 91 e8 00 lds r24, 0x00E8
-
-void Endpoint_ClearStatusStage(void)
-{
- if (USB_ControlRequest.bmRequestType & REQDIR_DEVICETOHOST)
- {
- while (!(Endpoint_IsOUTReceived()))
- 1250: 82 ff sbrs r24, 2
- 1252: f9 cf rjmp .-14 ; 0x1246 <Endpoint_ClearStatusStage+0xa>
- */
- static inline void Endpoint_ClearOUT(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearOUT(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UEINTX &= ~((1 << RXOUTI) | (1 << FIFOCON));
- 1254: 80 91 e8 00 lds r24, 0x00E8
- 1258: 8b 77 andi r24, 0x7B ; 123
- 125a: 80 93 e8 00 sts 0x00E8, r24
- 125e: 08 95 ret
- }
- else
- {
- while (!(Endpoint_IsINReady()))
- {
- if (USB_DeviceState == DEVICE_STATE_Unattached)
- 1260: 8e b3 in r24, 0x1e ; 30
- 1262: 88 23 and r24, r24
- 1264: 49 f0 breq .+18 ; 0x1278 <Endpoint_ClearStatusStage+0x3c>
- * \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
- */
- static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsINReady(void)
- {
- return ((UEINTX & (1 << TXINI)) ? true : false);
- 1266: 80 91 e8 00 lds r24, 0x00E8
-
- Endpoint_ClearOUT();
- }
- else
- {
- while (!(Endpoint_IsINReady()))
- 126a: 80 ff sbrs r24, 0
- 126c: f9 cf rjmp .-14 ; 0x1260 <Endpoint_ClearStatusStage+0x24>
- */
- static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearIN(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
- 126e: 80 91 e8 00 lds r24, 0x00E8
- 1272: 8e 77 andi r24, 0x7E ; 126
- 1274: 80 93 e8 00 sts 0x00E8, r24
- 1278: 08 95 ret
-
-0000127a <Endpoint_WaitUntilReady>:
- * \return Current USB frame number from the USB controller.
- */
- static inline uint16_t USB_Device_GetFrameNumber(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
- static inline uint16_t USB_Device_GetFrameNumber(void)
- {
- return UDFNUM;
- 127a: 80 91 e4 00 lds r24, 0x00E4
- 127e: 90 91 e5 00 lds r25, 0x00E5
-
-#if !defined(CONTROL_ONLY_DEVICE)
-uint8_t Endpoint_WaitUntilReady(void)
-{
- #if (USB_STREAM_TIMEOUT_MS < 0xFF)
- uint8_t TimeoutMSRem = USB_STREAM_TIMEOUT_MS;
- 1282: 44 e6 ldi r20, 0x64 ; 100
- * \return The currently selected endpoint's direction, as a \c ENDPOINT_DIR_* mask.
- */
- static inline uint8_t Endpoint_GetEndpointDirection(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline uint8_t Endpoint_GetEndpointDirection(void)
- {
- return (UECFG0X & (1 << EPDIR)) ? ENDPOINT_DIR_IN : ENDPOINT_DIR_OUT;
- 1284: 20 91 ec 00 lds r18, 0x00EC
- 1288: 20 ff sbrs r18, 0
- 128a: 25 c0 rjmp .+74 ; 0x12d6 <Endpoint_WaitUntilReady+0x5c>
- * \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
- */
- static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsINReady(void)
- {
- return ((UEINTX & (1 << TXINI)) ? true : false);
- 128c: 20 91 e8 00 lds r18, 0x00E8
-
- for (;;)
- {
- if (Endpoint_GetEndpointDirection() == ENDPOINT_DIR_IN)
- {
- if (Endpoint_IsINReady())
- 1290: 20 fd sbrc r18, 0
- 1292: 15 c0 rjmp .+42 ; 0x12be <Endpoint_WaitUntilReady+0x44>
- {
- if (Endpoint_IsOUTReceived())
- return ENDPOINT_READYWAIT_NoError;
- }
-
- uint8_t USB_DeviceState_LCL = USB_DeviceState;
- 1294: 2e b3 in r18, 0x1e ; 30
-
- if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
- 1296: 22 23 and r18, r18
- 1298: a1 f0 breq .+40 ; 0x12c2 <Endpoint_WaitUntilReady+0x48>
- return ENDPOINT_READYWAIT_DeviceDisconnected;
- else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
- 129a: 25 30 cpi r18, 0x05 ; 5
- 129c: a1 f0 breq .+40 ; 0x12c6 <Endpoint_WaitUntilReady+0x4c>
- * \return Boolean \c true if the currently selected endpoint is stalled, \c false otherwise.
- */
- static inline bool Endpoint_IsStalled(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsStalled(void)
- {
- return ((UECONX & (1 << STALLRQ)) ? true : false);
- 129e: 20 91 eb 00 lds r18, 0x00EB
- return ENDPOINT_READYWAIT_BusSuspended;
- else if (Endpoint_IsStalled())
- 12a2: 25 fd sbrc r18, 5
- 12a4: 12 c0 rjmp .+36 ; 0x12ca <Endpoint_WaitUntilReady+0x50>
- 12a6: 20 91 e4 00 lds r18, 0x00E4
- 12aa: 30 91 e5 00 lds r19, 0x00E5
- return ENDPOINT_READYWAIT_EndpointStalled;
-
- uint16_t CurrentFrameNumber = USB_Device_GetFrameNumber();
-
- if (CurrentFrameNumber != PreviousFrameNumber)
- 12ae: 28 17 cp r18, r24
- 12b0: 39 07 cpc r19, r25
- 12b2: 41 f3 breq .-48 ; 0x1284 <Endpoint_WaitUntilReady+0xa>
- {
- PreviousFrameNumber = CurrentFrameNumber;
-
- if (!(TimeoutMSRem--))
- 12b4: 44 23 and r20, r20
- 12b6: 59 f0 breq .+22 ; 0x12ce <Endpoint_WaitUntilReady+0x54>
- 12b8: 41 50 subi r20, 0x01 ; 1
- 12ba: c9 01 movw r24, r18
- 12bc: e3 cf rjmp .-58 ; 0x1284 <Endpoint_WaitUntilReady+0xa>
- for (;;)
- {
- if (Endpoint_GetEndpointDirection() == ENDPOINT_DIR_IN)
- {
- if (Endpoint_IsINReady())
- return ENDPOINT_READYWAIT_NoError;
- 12be: 80 e0 ldi r24, 0x00 ; 0
- 12c0: 08 95 ret
- }
-
- uint8_t USB_DeviceState_LCL = USB_DeviceState;
-
- if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
- return ENDPOINT_READYWAIT_DeviceDisconnected;
- 12c2: 82 e0 ldi r24, 0x02 ; 2
- 12c4: 08 95 ret
- else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
- return ENDPOINT_READYWAIT_BusSuspended;
- 12c6: 83 e0 ldi r24, 0x03 ; 3
- 12c8: 08 95 ret
- else if (Endpoint_IsStalled())
- return ENDPOINT_READYWAIT_EndpointStalled;
- 12ca: 81 e0 ldi r24, 0x01 ; 1
- 12cc: 08 95 ret
- if (CurrentFrameNumber != PreviousFrameNumber)
- {
- PreviousFrameNumber = CurrentFrameNumber;
-
- if (!(TimeoutMSRem--))
- return ENDPOINT_READYWAIT_Timeout;
- 12ce: 84 e0 ldi r24, 0x04 ; 4
- 12d0: 08 95 ret
- return ENDPOINT_READYWAIT_NoError;
- }
- else
- {
- if (Endpoint_IsOUTReceived())
- return ENDPOINT_READYWAIT_NoError;
- 12d2: 80 e0 ldi r24, 0x00 ; 0
-
- if (!(TimeoutMSRem--))
- return ENDPOINT_READYWAIT_Timeout;
- }
- }
-}
- 12d4: 08 95 ret
- * \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
- */
- static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsOUTReceived(void)
- {
- return ((UEINTX & (1 << RXOUTI)) ? true : false);
- 12d6: 20 91 e8 00 lds r18, 0x00E8
- if (Endpoint_IsINReady())
- return ENDPOINT_READYWAIT_NoError;
- }
- else
- {
- if (Endpoint_IsOUTReceived())
- 12da: 22 ff sbrs r18, 2
- 12dc: db cf rjmp .-74 ; 0x1294 <Endpoint_WaitUntilReady+0x1a>
- 12de: f9 cf rjmp .-14 ; 0x12d2 <Endpoint_WaitUntilReady+0x58>
-
-000012e0 <USB_ResetInterface>:
-{
- #if defined(USB_CAN_BE_BOTH)
- bool UIDModeSelectEnabled = ((UHWCON & (1 << UIDE)) != 0);
- #endif
-
- USB_INT_DisableAllInterrupts();
- 12e0: 40 d0 rcall .+128 ; 0x1362 <USB_INT_DisableAllInterrupts>
- USB_INT_ClearAllInterrupts();
- 12e2: 42 d0 rcall .+132 ; 0x1368 <USB_INT_ClearAllInterrupts>
- }
-
- static inline void USB_Controller_Reset(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Controller_Reset(void)
- {
- USBCON &= ~(1 << USBE);
- 12e4: 80 91 d8 00 lds r24, 0x00D8
- 12e8: 8f 77 andi r24, 0x7F ; 127
- 12ea: 80 93 d8 00 sts 0x00D8, r24
- USBCON |= (1 << USBE);
- 12ee: 80 91 d8 00 lds r24, 0x00D8
- 12f2: 80 68 ori r24, 0x80 ; 128
- 12f4: 80 93 d8 00 sts 0x00D8, r24
- }
-
- static inline void USB_CLK_Unfreeze(void) ATTR_ALWAYS_INLINE;
- static inline void USB_CLK_Unfreeze(void)
- {
- USBCON &= ~(1 << FRZCLK);
- 12f8: 80 91 d8 00 lds r24, 0x00D8
- 12fc: 8f 7d andi r24, 0xDF ; 223
- 12fe: 80 93 d8 00 sts 0x00D8, r24
-
- /* Inline Functions: */
- static inline void USB_PLL_On(void) ATTR_ALWAYS_INLINE;
- static inline void USB_PLL_On(void)
- {
- PLLCSR = USB_PLL_PSC;
- 1302: 84 e0 ldi r24, 0x04 ; 4
- 1304: 89 bd out 0x29, r24 ; 41
- PLLCSR = (USB_PLL_PSC | (1 << PLLE));
- 1306: 86 e0 ldi r24, 0x06 ; 6
- 1308: 89 bd out 0x29, r24 ; 41
-
- if (!(USB_Options & USB_OPT_MANUAL_PLL))
- {
- #if defined(USB_SERIES_2_AVR)
- USB_PLL_On();
- while (!(USB_PLL_IsReady()));
- 130a: 09 b4 in r0, 0x29 ; 41
- 130c: 00 fe sbrs r0, 0
- 130e: fd cf rjmp .-6 ; 0x130a <USB_ResetInterface+0x2a>
-}
-
-#if defined(USB_CAN_BE_DEVICE)
-static void USB_Init_Device(void)
-{
- USB_DeviceState = DEVICE_STATE_Unattached;
- 1310: 1e ba out 0x1e, r1 ; 30
- USB_Device_ConfigurationNumber = 0;
- 1312: 10 92 c8 02 sts 0x02C8, r1
-
- #if !defined(NO_DEVICE_REMOTE_WAKEUP)
- USB_Device_RemoteWakeupEnabled = false;
- 1316: 10 92 ca 02 sts 0x02CA, r1
- #endif
-
- #if !defined(NO_DEVICE_SELF_POWER)
- USB_Device_CurrentlySelfPowered = false;
- 131a: 10 92 c9 02 sts 0x02C9, r1
- uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
-
- if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
- return false;
-
- return Endpoint_ConfigureEndpoint_Prv(Number,
- 131e: 80 e0 ldi r24, 0x00 ; 0
- 1320: 60 e0 ldi r22, 0x00 ; 0
- 1322: 42 e0 ldi r20, 0x02 ; 2
- 1324: 10 df rcall .-480 ; 0x1146 <Endpoint_ConfigureEndpoint_Prv>
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- UDINT &= ~(1 << WAKEUPI);
- break;
- case USB_INT_SUSPI:
- UDINT &= ~(1 << SUSPI);
- 1326: 80 91 e1 00 lds r24, 0x00E1
- 132a: 8e 7f andi r24, 0xFE ; 254
- 132c: 80 93 e1 00 sts 0x00E1, r24
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- UDIEN |= (1 << WAKEUPE);
- break;
- case USB_INT_SUSPI:
- UDIEN |= (1 << SUSPE);
- 1330: 80 91 e2 00 lds r24, 0x00E2
- 1334: 81 60 ori r24, 0x01 ; 1
- 1336: 80 93 e2 00 sts 0x00E2, r24
- break;
- case USB_INT_EORSTI:
- UDIEN |= (1 << EORSTE);
- 133a: 80 91 e2 00 lds r24, 0x00E2
- 133e: 88 60 ori r24, 0x08 ; 8
- 1340: 80 93 e2 00 sts 0x00E2, r24
- * register and despite the datasheet making no mention of its requirement in host mode.
- */
- static inline void USB_Attach(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Attach(void)
- {
- UDCON &= ~(1 << DETACH);
- 1344: 80 91 e0 00 lds r24, 0x00E0
- 1348: 8e 7f andi r24, 0xFE ; 254
- 134a: 80 93 e0 00 sts 0x00E0, r24
- }
-
- #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
- USB_OTGPAD_On();
- #endif
-}
- 134e: 08 95 ret
-
-00001350 <USB_Init>:
- static inline void USB_REG_On(void)
- {
- #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
- UHWCON |= (1 << UVREGE);
- #else
- REGCR &= ~(1 << REGDIS);
- 1350: e3 e6 ldi r30, 0x63 ; 99
- 1352: f0 e0 ldi r31, 0x00 ; 0
- 1354: 80 81 ld r24, Z
- 1356: 8e 7f andi r24, 0xFE ; 254
- 1358: 80 83 st Z, r24
- UHWCON &= ~(1 << UIDE);
- USB_CurrentMode = Mode;
- }
- #endif
-
- USB_IsInitialized = true;
- 135a: 81 e0 ldi r24, 0x01 ; 1
- 135c: 80 93 cb 02 sts 0x02CB, r24
-
- USB_ResetInterface();
-}
- 1360: bf cf rjmp .-130 ; 0x12e0 <USB_ResetInterface>
-
-00001362 <USB_INT_DisableAllInterrupts>:
- #if defined(USB_CAN_BE_HOST)
- UHIEN = 0;
- #endif
-
- #if defined(USB_CAN_BE_DEVICE)
- UDIEN = 0;
- 1362: 10 92 e2 00 sts 0x00E2, r1
- #endif
-}
- 1366: 08 95 ret
-
-00001368 <USB_INT_ClearAllInterrupts>:
- #if defined(USB_CAN_BE_HOST)
- UHINT = 0;
- #endif
-
- #if defined(USB_CAN_BE_DEVICE)
- UDINT = 0;
- 1368: 10 92 e1 00 sts 0x00E1, r1
- #endif
-}
- 136c: 08 95 ret
-
-0000136e <__vector_11>:
-
-ISR(USB_GEN_vect, ISR_BLOCK)
-{
- 136e: 1f 92 push r1
- 1370: 0f 92 push r0
- 1372: 0f b6 in r0, 0x3f ; 63
- 1374: 0f 92 push r0
- 1376: 11 24 eor r1, r1
- 1378: 2f 93 push r18
- 137a: 3f 93 push r19
- 137c: 4f 93 push r20
- 137e: 5f 93 push r21
- 1380: 6f 93 push r22
- 1382: 7f 93 push r23
- 1384: 8f 93 push r24
- 1386: 9f 93 push r25
- 1388: af 93 push r26
- 138a: bf 93 push r27
- 138c: ef 93 push r30
- 138e: ff 93 push r31
- case USB_INT_SUSPI:
- return (UDINT & (1 << SUSPI));
- case USB_INT_EORSTI:
- return (UDINT & (1 << EORSTI));
- case USB_INT_SOFI:
- return (UDINT & (1 << SOFI));
- 1390: 80 91 e1 00 lds r24, 0x00E1
- #if defined(USB_CAN_BE_DEVICE)
- #if !defined(NO_SOF_EVENTS)
- if (USB_INT_HasOccurred(USB_INT_SOFI) && USB_INT_IsEnabled(USB_INT_SOFI))
- 1394: 82 ff sbrs r24, 2
- 1396: 0a c0 rjmp .+20 ; 0x13ac <__vector_11+0x3e>
- case USB_INT_SUSPI:
- return (UDIEN & (1 << SUSPE));
- case USB_INT_EORSTI:
- return (UDIEN & (1 << EORSTE));
- case USB_INT_SOFI:
- return (UDIEN & (1 << SOFE));
- 1398: 80 91 e2 00 lds r24, 0x00E2
- 139c: 82 ff sbrs r24, 2
- 139e: 06 c0 rjmp .+12 ; 0x13ac <__vector_11+0x3e>
- break;
- case USB_INT_EORSTI:
- UDINT &= ~(1 << EORSTI);
- break;
- case USB_INT_SOFI:
- UDINT &= ~(1 << SOFI);
- 13a0: 80 91 e1 00 lds r24, 0x00E1
- 13a4: 8b 7f andi r24, 0xFB ; 251
- 13a6: 80 93 e1 00 sts 0x00E1, r24
- {
- USB_INT_Clear(USB_INT_SOFI);
-
- EVENT_USB_Device_StartOfFrame();
- 13aa: 22 d2 rcall .+1092 ; 0x17f0 <USB_Event_Stub>
- #endif
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- return (UDINT & (1 << WAKEUPI));
- case USB_INT_SUSPI:
- return (UDINT & (1 << SUSPI));
- 13ac: 80 91 e1 00 lds r24, 0x00E1
- EVENT_USB_Device_Disconnect();
- }
- }
- #endif
-
- if (USB_INT_HasOccurred(USB_INT_SUSPI) && USB_INT_IsEnabled(USB_INT_SUSPI))
- 13b0: 80 ff sbrs r24, 0
- 13b2: 16 c0 rjmp .+44 ; 0x13e0 <__vector_11+0x72>
- #endif
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- return (UDIEN & (1 << WAKEUPE));
- case USB_INT_SUSPI:
- return (UDIEN & (1 << SUSPE));
- 13b4: 80 91 e2 00 lds r24, 0x00E2
- 13b8: 80 ff sbrs r24, 0
- 13ba: 12 c0 rjmp .+36 ; 0x13e0 <__vector_11+0x72>
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- UDIEN &= ~(1 << WAKEUPE);
- break;
- case USB_INT_SUSPI:
- UDIEN &= ~(1 << SUSPE);
- 13bc: 80 91 e2 00 lds r24, 0x00E2
- 13c0: 8e 7f andi r24, 0xFE ; 254
- 13c2: 80 93 e2 00 sts 0x00E2, r24
- USBCON |= (1 << IDTE);
- break;
- #endif
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- UDIEN |= (1 << WAKEUPE);
- 13c6: 80 91 e2 00 lds r24, 0x00E2
- 13ca: 80 61 ori r24, 0x10 ; 16
- 13cc: 80 93 e2 00 sts 0x00E2, r24
- #endif
-
- static inline void USB_CLK_Freeze(void) ATTR_ALWAYS_INLINE;
- static inline void USB_CLK_Freeze(void)
- {
- USBCON |= (1 << FRZCLK);
- 13d0: 80 91 d8 00 lds r24, 0x00D8
- 13d4: 80 62 ori r24, 0x20 ; 32
- 13d6: 80 93 d8 00 sts 0x00D8, r24
- }
-
- static inline void USB_PLL_Off(void) ATTR_ALWAYS_INLINE;
- static inline void USB_PLL_Off(void)
- {
- PLLCSR = 0;
- 13da: 19 bc out 0x29, r1 ; 41
-
- if (!(USB_Options & USB_OPT_MANUAL_PLL))
- USB_PLL_Off();
-
- #if defined(USB_SERIES_2_AVR) && !defined(NO_LIMITED_CONTROLLER_CONNECT)
- USB_DeviceState = DEVICE_STATE_Unattached;
- 13dc: 1e ba out 0x1e, r1 ; 30
- EVENT_USB_Device_Disconnect();
- 13de: 9f d9 rcall .-3266 ; 0x71e <EVENT_USB_Device_Disconnect>
- case USB_INT_IDTI:
- return (USBINT & (1 << IDTI));
- #endif
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- return (UDINT & (1 << WAKEUPI));
- 13e0: 80 91 e1 00 lds r24, 0x00E1
- USB_DeviceState = DEVICE_STATE_Suspended;
- EVENT_USB_Device_Suspend();
- #endif
- }
-
- if (USB_INT_HasOccurred(USB_INT_WAKEUPI) && USB_INT_IsEnabled(USB_INT_WAKEUPI))
- 13e4: 84 ff sbrs r24, 4
- 13e6: 2c c0 rjmp .+88 ; 0x1440 <__vector_11+0xd2>
- case USB_INT_IDTI:
- return (USBCON & (1 << IDTE));
- #endif
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- return (UDIEN & (1 << WAKEUPE));
- 13e8: 80 91 e2 00 lds r24, 0x00E2
- 13ec: 84 ff sbrs r24, 4
- 13ee: 28 c0 rjmp .+80 ; 0x1440 <__vector_11+0xd2>
-
- /* Inline Functions: */
- static inline void USB_PLL_On(void) ATTR_ALWAYS_INLINE;
- static inline void USB_PLL_On(void)
- {
- PLLCSR = USB_PLL_PSC;
- 13f0: 84 e0 ldi r24, 0x04 ; 4
- 13f2: 89 bd out 0x29, r24 ; 41
- PLLCSR = (USB_PLL_PSC | (1 << PLLE));
- 13f4: 86 e0 ldi r24, 0x06 ; 6
- 13f6: 89 bd out 0x29, r24 ; 41
- {
- if (!(USB_Options & USB_OPT_MANUAL_PLL))
- {
- USB_PLL_On();
- while (!(USB_PLL_IsReady()));
- 13f8: 09 b4 in r0, 0x29 ; 41
- 13fa: 00 fe sbrs r0, 0
- 13fc: fd cf rjmp .-6 ; 0x13f8 <__vector_11+0x8a>
- }
-
- static inline void USB_CLK_Unfreeze(void) ATTR_ALWAYS_INLINE;
- static inline void USB_CLK_Unfreeze(void)
- {
- USBCON &= ~(1 << FRZCLK);
- 13fe: 80 91 d8 00 lds r24, 0x00D8
- 1402: 8f 7d andi r24, 0xDF ; 223
- 1404: 80 93 d8 00 sts 0x00D8, r24
- USBINT &= ~(1 << IDTI);
- break;
- #endif
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- UDINT &= ~(1 << WAKEUPI);
- 1408: 80 91 e1 00 lds r24, 0x00E1
- 140c: 8f 7e andi r24, 0xEF ; 239
- 140e: 80 93 e1 00 sts 0x00E1, r24
- USBCON &= ~(1 << IDTE);
- break;
- #endif
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- UDIEN &= ~(1 << WAKEUPE);
- 1412: 80 91 e2 00 lds r24, 0x00E2
- 1416: 8f 7e andi r24, 0xEF ; 239
- 1418: 80 93 e2 00 sts 0x00E2, r24
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- UDIEN |= (1 << WAKEUPE);
- break;
- case USB_INT_SUSPI:
- UDIEN |= (1 << SUSPE);
- 141c: 80 91 e2 00 lds r24, 0x00E2
- 1420: 81 60 ori r24, 0x01 ; 1
- 1422: 80 93 e2 00 sts 0x00E2, r24
- USB_INT_Clear(USB_INT_WAKEUPI);
-
- USB_INT_Disable(USB_INT_WAKEUPI);
- USB_INT_Enable(USB_INT_SUSPI);
-
- if (USB_Device_ConfigurationNumber)
- 1426: 80 91 c8 02 lds r24, 0x02C8
- 142a: 88 23 and r24, r24
- 142c: 21 f4 brne .+8 ; 0x1436 <__vector_11+0xc8>
- }
-
- static inline bool USB_Device_IsAddressSet(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
- static inline bool USB_Device_IsAddressSet(void)
- {
- return (UDADDR & (1 << ADDEN));
- 142e: 80 91 e3 00 lds r24, 0x00E3
- USB_DeviceState = DEVICE_STATE_Configured;
- else
- USB_DeviceState = (USB_Device_IsAddressSet()) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered;
- 1432: 87 ff sbrs r24, 7
- 1434: 02 c0 rjmp .+4 ; 0x143a <__vector_11+0xcc>
- 1436: 84 e0 ldi r24, 0x04 ; 4
- 1438: 01 c0 rjmp .+2 ; 0x143c <__vector_11+0xce>
- 143a: 81 e0 ldi r24, 0x01 ; 1
- 143c: 8e bb out 0x1e, r24 ; 30
-
- #if defined(USB_SERIES_2_AVR) && !defined(NO_LIMITED_CONTROLLER_CONNECT)
- EVENT_USB_Device_Connect();
- 143e: 6e d9 rcall .-3364 ; 0x71c <EVENT_USB_Device_Connect>
- case USB_INT_WAKEUPI:
- return (UDINT & (1 << WAKEUPI));
- case USB_INT_SUSPI:
- return (UDINT & (1 << SUSPI));
- case USB_INT_EORSTI:
- return (UDINT & (1 << EORSTI));
- 1440: 80 91 e1 00 lds r24, 0x00E1
- #else
- EVENT_USB_Device_WakeUp();
- #endif
- }
-
- if (USB_INT_HasOccurred(USB_INT_EORSTI) && USB_INT_IsEnabled(USB_INT_EORSTI))
- 1444: 83 ff sbrs r24, 3
- 1446: 26 c0 rjmp .+76 ; 0x1494 <__vector_11+0x126>
- case USB_INT_WAKEUPI:
- return (UDIEN & (1 << WAKEUPE));
- case USB_INT_SUSPI:
- return (UDIEN & (1 << SUSPE));
- case USB_INT_EORSTI:
- return (UDIEN & (1 << EORSTE));
- 1448: 80 91 e2 00 lds r24, 0x00E2
- 144c: 83 ff sbrs r24, 3
- 144e: 22 c0 rjmp .+68 ; 0x1494 <__vector_11+0x126>
- break;
- case USB_INT_SUSPI:
- UDINT &= ~(1 << SUSPI);
- break;
- case USB_INT_EORSTI:
- UDINT &= ~(1 << EORSTI);
- 1450: 80 91 e1 00 lds r24, 0x00E1
- 1454: 87 7f andi r24, 0xF7 ; 247
- 1456: 80 93 e1 00 sts 0x00E1, r24
- {
- USB_INT_Clear(USB_INT_EORSTI);
-
- USB_DeviceState = DEVICE_STATE_Default;
- 145a: 82 e0 ldi r24, 0x02 ; 2
- 145c: 8e bb out 0x1e, r24 ; 30
- USB_Device_ConfigurationNumber = 0;
- 145e: 10 92 c8 02 sts 0x02C8, r1
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- UDINT &= ~(1 << WAKEUPI);
- break;
- case USB_INT_SUSPI:
- UDINT &= ~(1 << SUSPI);
- 1462: 80 91 e1 00 lds r24, 0x00E1
- 1466: 8e 7f andi r24, 0xFE ; 254
- 1468: 80 93 e1 00 sts 0x00E1, r24
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- UDIEN &= ~(1 << WAKEUPE);
- break;
- case USB_INT_SUSPI:
- UDIEN &= ~(1 << SUSPE);
- 146c: 80 91 e2 00 lds r24, 0x00E2
- 1470: 8e 7f andi r24, 0xFE ; 254
- 1472: 80 93 e2 00 sts 0x00E2, r24
- USBCON |= (1 << IDTE);
- break;
- #endif
- #if defined(USB_CAN_BE_DEVICE)
- case USB_INT_WAKEUPI:
- UDIEN |= (1 << WAKEUPE);
- 1476: 80 91 e2 00 lds r24, 0x00E2
- 147a: 80 61 ori r24, 0x10 ; 16
- 147c: 80 93 e2 00 sts 0x00E2, r24
- uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
-
- if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
- return false;
-
- return Endpoint_ConfigureEndpoint_Prv(Number,
- 1480: 80 e0 ldi r24, 0x00 ; 0
- 1482: 60 e0 ldi r22, 0x00 ; 0
- 1484: 42 e0 ldi r20, 0x02 ; 2
- 1486: 5f de rcall .-834 ; 0x1146 <Endpoint_ConfigureEndpoint_Prv>
- break;
- case USB_INT_SOFI:
- UDIEN |= (1 << SOFE);
- break;
- case USB_INT_RXSTPI:
- UEIENX |= (1 << RXSTPE);
- 1488: 80 91 f0 00 lds r24, 0x00F0
- 148c: 88 60 ori r24, 0x08 ; 8
- 148e: 80 93 f0 00 sts 0x00F0, r24
-
- #if defined(INTERRUPT_CONTROL_ENDPOINT)
- USB_INT_Enable(USB_INT_RXSTPI);
- #endif
-
- EVENT_USB_Device_Reset();
- 1492: ae d1 rcall .+860 ; 0x17f0 <USB_Event_Stub>
- USB_ResetInterface();
-
- EVENT_USB_UIDChange();
- }
- #endif
-}
- 1494: ff 91 pop r31
- 1496: ef 91 pop r30
- 1498: bf 91 pop r27
- 149a: af 91 pop r26
- 149c: 9f 91 pop r25
- 149e: 8f 91 pop r24
- 14a0: 7f 91 pop r23
- 14a2: 6f 91 pop r22
- 14a4: 5f 91 pop r21
- 14a6: 4f 91 pop r20
- 14a8: 3f 91 pop r19
- 14aa: 2f 91 pop r18
- 14ac: 0f 90 pop r0
- 14ae: 0f be out 0x3f, r0 ; 63
- 14b0: 0f 90 pop r0
- 14b2: 1f 90 pop r1
- 14b4: 18 95 reti
-
-000014b6 <__vector_12>:
-
-#if defined(INTERRUPT_CONTROL_ENDPOINT) && defined(USB_CAN_BE_DEVICE)
-ISR(USB_COM_vect, ISR_BLOCK)
-{
- 14b6: 1f 92 push r1
- 14b8: 0f 92 push r0
- 14ba: 0f b6 in r0, 0x3f ; 63
- 14bc: 0f 92 push r0
- 14be: 11 24 eor r1, r1
- 14c0: 1f 93 push r17
- 14c2: 2f 93 push r18
- 14c4: 3f 93 push r19
- 14c6: 4f 93 push r20
- 14c8: 5f 93 push r21
- 14ca: 6f 93 push r22
- 14cc: 7f 93 push r23
- 14ce: 8f 93 push r24
- 14d0: 9f 93 push r25
- 14d2: af 93 push r26
- 14d4: bf 93 push r27
- 14d6: ef 93 push r30
- 14d8: ff 93 push r31
- */
- static inline uint8_t Endpoint_GetCurrentEndpoint(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline uint8_t Endpoint_GetCurrentEndpoint(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- return ((UENUM & ENDPOINT_EPNUM_MASK) | Endpoint_GetEndpointDirection());
- 14da: 10 91 e9 00 lds r17, 0x00E9
- 14de: 1f 70 andi r17, 0x0F ; 15
- * \return The currently selected endpoint's direction, as a \c ENDPOINT_DIR_* mask.
- */
- static inline uint8_t Endpoint_GetEndpointDirection(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline uint8_t Endpoint_GetEndpointDirection(void)
- {
- return (UECFG0X & (1 << EPDIR)) ? ENDPOINT_DIR_IN : ENDPOINT_DIR_OUT;
- 14e0: 80 91 ec 00 lds r24, 0x00EC
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 14e4: 10 92 e9 00 sts 0x00E9, r1
- break;
- case USB_INT_SOFI:
- UDIEN &= ~(1 << SOFE);
- break;
- case USB_INT_RXSTPI:
- UEIENX &= ~(1 << RXSTPE);
- 14e8: 80 91 f0 00 lds r24, 0x00F0
- 14ec: 87 7f andi r24, 0xF7 ; 247
- 14ee: 80 93 f0 00 sts 0x00F0, r24
- static inline void GlobalInterruptEnable(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- sei();
- 14f2: 78 94 sei
- Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
- USB_INT_Disable(USB_INT_RXSTPI);
-
- GlobalInterruptEnable();
-
- USB_Device_ProcessControlRequest();
- 14f4: 1b d0 rcall .+54 ; 0x152c <USB_Device_ProcessControlRequest>
- 14f6: 10 92 e9 00 sts 0x00E9, r1
- break;
- case USB_INT_SOFI:
- UDIEN |= (1 << SOFE);
- break;
- case USB_INT_RXSTPI:
- UEIENX |= (1 << RXSTPE);
- 14fa: 80 91 f0 00 lds r24, 0x00F0
- 14fe: 88 60 ori r24, 0x08 ; 8
- 1500: 80 93 f0 00 sts 0x00F0, r24
- 1504: 10 93 e9 00 sts 0x00E9, r17
-
- Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
- USB_INT_Enable(USB_INT_RXSTPI);
- Endpoint_SelectEndpoint(PrevSelectedEndpoint);
-}
- 1508: ff 91 pop r31
- 150a: ef 91 pop r30
- 150c: bf 91 pop r27
- 150e: af 91 pop r26
- 1510: 9f 91 pop r25
- 1512: 8f 91 pop r24
- 1514: 7f 91 pop r23
- 1516: 6f 91 pop r22
- 1518: 5f 91 pop r21
- 151a: 4f 91 pop r20
- 151c: 3f 91 pop r19
- 151e: 2f 91 pop r18
- 1520: 1f 91 pop r17
- 1522: 0f 90 pop r0
- 1524: 0f be out 0x3f, r0 ; 63
- 1526: 0f 90 pop r0
- 1528: 1f 90 pop r1
- 152a: 18 95 reti
-
-0000152c <USB_Device_ProcessControlRequest>:
-#if !defined(NO_DEVICE_REMOTE_WAKEUP)
-bool USB_Device_RemoteWakeupEnabled;
-#endif
-
-void USB_Device_ProcessControlRequest(void)
-{
- 152c: 1f 93 push r17
- 152e: df 93 push r29
- 1530: cf 93 push r28
- 1532: cd b7 in r28, 0x3d ; 61
- 1534: de b7 in r29, 0x3e ; 62
- 1536: ac 97 sbiw r28, 0x2c ; 44
- 1538: 0f b6 in r0, 0x3f ; 63
- 153a: f8 94 cli
- 153c: de bf out 0x3e, r29 ; 62
- 153e: 0f be out 0x3f, r0 ; 63
- 1540: cd bf out 0x3d, r28 ; 61
- USB_ControlRequest.bRequest = Endpoint_Read_8();
- USB_ControlRequest.wValue = Endpoint_Read_16_LE();
- USB_ControlRequest.wIndex = Endpoint_Read_16_LE();
- USB_ControlRequest.wLength = Endpoint_Read_16_LE();
- #else
- uint8_t* RequestHeader = (uint8_t*)&USB_ControlRequest;
- 1542: ec ec ldi r30, 0xCC ; 204
- 1544: f2 e0 ldi r31, 0x02 ; 2
- * \return Next byte in the currently selected endpoint's FIFO buffer.
- */
- static inline uint8_t Endpoint_Read_8(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline uint8_t Endpoint_Read_8(void)
- {
- return UEDATX;
- 1546: 80 91 f1 00 lds r24, 0x00F1
-
- for (uint8_t RequestHeaderByte = 0; RequestHeaderByte < sizeof(USB_Request_Header_t); RequestHeaderByte++)
- *(RequestHeader++) = Endpoint_Read_8();
- 154a: 81 93 st Z+, r24
- USB_ControlRequest.wIndex = Endpoint_Read_16_LE();
- USB_ControlRequest.wLength = Endpoint_Read_16_LE();
- #else
- uint8_t* RequestHeader = (uint8_t*)&USB_ControlRequest;
-
- for (uint8_t RequestHeaderByte = 0; RequestHeaderByte < sizeof(USB_Request_Header_t); RequestHeaderByte++)
- 154c: 22 e0 ldi r18, 0x02 ; 2
- 154e: e4 3d cpi r30, 0xD4 ; 212
- 1550: f2 07 cpc r31, r18
- 1552: c9 f7 brne .-14 ; 0x1546 <USB_Device_ProcessControlRequest+0x1a>
- *(RequestHeader++) = Endpoint_Read_8();
- #endif
-
- EVENT_USB_Device_ControlRequest();
- 1554: e9 d8 rcall .-3630 ; 0x728 <EVENT_USB_Device_ControlRequest>
- * \return Boolean \c true if the selected endpoint has received a SETUP packet, \c false otherwise.
- */
- static inline bool Endpoint_IsSETUPReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsSETUPReceived(void)
- {
- return ((UEINTX & (1 << RXSTPI)) ? true : false);
- 1556: 80 91 e8 00 lds r24, 0x00E8
-
- if (Endpoint_IsSETUPReceived())
- 155a: 83 ff sbrs r24, 3
- 155c: 31 c1 rjmp .+610 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- {
- uint8_t bmRequestType = USB_ControlRequest.bmRequestType;
- 155e: 80 91 cc 02 lds r24, 0x02CC
-
- switch (USB_ControlRequest.bRequest)
- 1562: 20 91 cd 02 lds r18, 0x02CD
- 1566: 25 30 cpi r18, 0x05 ; 5
- 1568: 09 f4 brne .+2 ; 0x156c <USB_Device_ProcessControlRequest+0x40>
- 156a: 84 c0 rjmp .+264 ; 0x1674 <USB_Device_ProcessControlRequest+0x148>
- 156c: 26 30 cpi r18, 0x06 ; 6
- 156e: 40 f4 brcc .+16 ; 0x1580 <USB_Device_ProcessControlRequest+0x54>
- 1570: 21 30 cpi r18, 0x01 ; 1
- 1572: a1 f1 breq .+104 ; 0x15dc <USB_Device_ProcessControlRequest+0xb0>
- 1574: 21 30 cpi r18, 0x01 ; 1
- 1576: 70 f0 brcs .+28 ; 0x1594 <USB_Device_ProcessControlRequest+0x68>
- 1578: 23 30 cpi r18, 0x03 ; 3
- 157a: 09 f0 breq .+2 ; 0x157e <USB_Device_ProcessControlRequest+0x52>
- 157c: 21 c1 rjmp .+578 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- 157e: 2e c0 rjmp .+92 ; 0x15dc <USB_Device_ProcessControlRequest+0xb0>
- 1580: 28 30 cpi r18, 0x08 ; 8
- 1582: 09 f4 brne .+2 ; 0x1586 <USB_Device_ProcessControlRequest+0x5a>
- 1584: ef c0 rjmp .+478 ; 0x1764 <USB_Device_ProcessControlRequest+0x238>
- 1586: 29 30 cpi r18, 0x09 ; 9
- 1588: 09 f4 brne .+2 ; 0x158c <USB_Device_ProcessControlRequest+0x60>
- 158a: fe c0 rjmp .+508 ; 0x1788 <USB_Device_ProcessControlRequest+0x25c>
- 158c: 26 30 cpi r18, 0x06 ; 6
- 158e: 09 f0 breq .+2 ; 0x1592 <USB_Device_ProcessControlRequest+0x66>
- 1590: 17 c1 rjmp .+558 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- 1592: 92 c0 rjmp .+292 ; 0x16b8 <USB_Device_ProcessControlRequest+0x18c>
- {
- case REQ_GetStatus:
- if ((bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE)) ||
- 1594: 80 38 cpi r24, 0x80 ; 128
- 1596: 21 f0 breq .+8 ; 0x15a0 <USB_Device_ProcessControlRequest+0x74>
- 1598: 82 38 cpi r24, 0x82 ; 130
- 159a: 09 f0 breq .+2 ; 0x159e <USB_Device_ProcessControlRequest+0x72>
- 159c: 11 c1 rjmp .+546 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- 159e: 08 c0 rjmp .+16 ; 0x15b0 <USB_Device_ProcessControlRequest+0x84>
- Endpoint_ClearOUT();
-}
-
-static void USB_Device_GetStatus(void)
-{
- uint8_t CurrentStatus = 0;
- 15a0: 80 91 c9 02 lds r24, 0x02C9
- if (USB_Device_CurrentlySelfPowered)
- CurrentStatus |= FEATURE_SELFPOWERED_ENABLED;
- #endif
-
- #if !defined(NO_DEVICE_REMOTE_WAKEUP)
- if (USB_Device_RemoteWakeupEnabled)
- 15a4: 90 91 ca 02 lds r25, 0x02CA
- 15a8: 99 23 and r25, r25
- 15aa: 71 f0 breq .+28 ; 0x15c8 <USB_Device_ProcessControlRequest+0x9c>
- CurrentStatus |= FEATURE_REMOTE_WAKEUP_ENABLED;
- 15ac: 82 60 ori r24, 0x02 ; 2
- 15ae: 0c c0 rjmp .+24 ; 0x15c8 <USB_Device_ProcessControlRequest+0x9c>
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 15b0: 80 91 d0 02 lds r24, 0x02D0
- 15b4: 8f 70 andi r24, 0x0F ; 15
- 15b6: 80 93 e9 00 sts 0x00E9, r24
- * \return Boolean \c true if the currently selected endpoint is stalled, \c false otherwise.
- */
- static inline bool Endpoint_IsStalled(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsStalled(void)
- {
- return ((UECONX & (1 << STALLRQ)) ? true : false);
- 15ba: 90 91 eb 00 lds r25, 0x00EB
- break;
- case (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_ENDPOINT):
- #if !defined(CONTROL_ONLY_DEVICE)
- Endpoint_SelectEndpoint((uint8_t)USB_ControlRequest.wIndex & ENDPOINT_EPNUM_MASK);
-
- CurrentStatus = Endpoint_IsStalled();
- 15be: 81 e0 ldi r24, 0x01 ; 1
- 15c0: 95 ff sbrs r25, 5
- 15c2: 80 e0 ldi r24, 0x00 ; 0
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 15c4: 10 92 e9 00 sts 0x00E9, r1
- * \note This is not applicable for non CONTROL type endpoints.
- */
- static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearSETUP(void)
- {
- UEINTX &= ~(1 << RXSTPI);
- 15c8: 90 91 e8 00 lds r25, 0x00E8
- 15cc: 97 7f andi r25, 0xF7 ; 247
- 15ce: 90 93 e8 00 sts 0x00E8, r25
- * \param[in] Data Data to write to the currently selected endpoint's FIFO buffer.
- */
- static inline void Endpoint_Write_16_LE(const uint16_t Data) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_Write_16_LE(const uint16_t Data)
- {
- UEDATX = (Data & 0xFF);
- 15d2: 80 93 f1 00 sts 0x00F1, r24
- UEDATX = (Data >> 8);
- 15d6: 10 92 f1 00 sts 0x00F1, r1
- 15da: cf c0 rjmp .+414 ; 0x177a <USB_Device_ProcessControlRequest+0x24e>
- }
-
- break;
- case REQ_ClearFeature:
- case REQ_SetFeature:
- if ((bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE)) ||
- 15dc: 88 23 and r24, r24
- 15de: 19 f0 breq .+6 ; 0x15e6 <USB_Device_ProcessControlRequest+0xba>
- 15e0: 82 30 cpi r24, 0x02 ; 2
- 15e2: 09 f0 breq .+2 ; 0x15e6 <USB_Device_ProcessControlRequest+0xba>
- 15e4: ed c0 rjmp .+474 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- Endpoint_ClearStatusStage();
-}
-
-static void USB_Device_ClearSetFeature(void)
-{
- switch (USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_RECIPIENT)
- 15e6: 90 e0 ldi r25, 0x00 ; 0
- 15e8: 8f 71 andi r24, 0x1F ; 31
- 15ea: 90 70 andi r25, 0x00 ; 0
- 15ec: 00 97 sbiw r24, 0x00 ; 0
- 15ee: 29 f0 breq .+10 ; 0x15fa <USB_Device_ProcessControlRequest+0xce>
- 15f0: 82 30 cpi r24, 0x02 ; 2
- 15f2: 91 05 cpc r25, r1
- 15f4: 09 f0 breq .+2 ; 0x15f8 <USB_Device_ProcessControlRequest+0xcc>
- 15f6: e4 c0 rjmp .+456 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- 15f8: 0b c0 rjmp .+22 ; 0x1610 <USB_Device_ProcessControlRequest+0xe4>
- {
- #if !defined(NO_DEVICE_REMOTE_WAKEUP)
- case REQREC_DEVICE:
- if ((uint8_t)USB_ControlRequest.wValue == FEATURE_SEL_DeviceRemoteWakeup)
- 15fa: 80 91 ce 02 lds r24, 0x02CE
- 15fe: 81 30 cpi r24, 0x01 ; 1
- 1600: 09 f0 breq .+2 ; 0x1604 <USB_Device_ProcessControlRequest+0xd8>
- 1602: de c0 rjmp .+444 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- USB_Device_RemoteWakeupEnabled = (USB_ControlRequest.bRequest == REQ_SetFeature);
- 1604: 23 30 cpi r18, 0x03 ; 3
- 1606: 09 f0 breq .+2 ; 0x160a <USB_Device_ProcessControlRequest+0xde>
- 1608: 80 e0 ldi r24, 0x00 ; 0
- 160a: 80 93 ca 02 sts 0x02CA, r24
- 160e: 2c c0 rjmp .+88 ; 0x1668 <USB_Device_ProcessControlRequest+0x13c>
-
- break;
- #endif
- #if !defined(CONTROL_ONLY_DEVICE)
- case REQREC_ENDPOINT:
- if ((uint8_t)USB_ControlRequest.wValue == FEATURE_SEL_EndpointHalt)
- 1610: 80 91 ce 02 lds r24, 0x02CE
- 1614: 88 23 and r24, r24
- 1616: 41 f5 brne .+80 ; 0x1668 <USB_Device_ProcessControlRequest+0x13c>
- {
- uint8_t EndpointIndex = ((uint8_t)USB_ControlRequest.wIndex & ENDPOINT_EPNUM_MASK);
- 1618: 20 91 d0 02 lds r18, 0x02D0
- 161c: 2f 70 andi r18, 0x0F ; 15
-
- if (EndpointIndex == ENDPOINT_CONTROLEP)
- 161e: 09 f4 brne .+2 ; 0x1622 <USB_Device_ProcessControlRequest+0xf6>
- 1620: cf c0 rjmp .+414 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 1622: 20 93 e9 00 sts 0x00E9, r18
- * \return Boolean \c true if the currently selected endpoint is enabled, \c false otherwise.
- */
- static inline bool Endpoint_IsEnabled(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsEnabled(void)
- {
- return ((UECONX & (1 << EPEN)) ? true : false);
- 1626: 80 91 eb 00 lds r24, 0x00EB
- return;
-
- Endpoint_SelectEndpoint(EndpointIndex);
-
- if (Endpoint_IsEnabled())
- 162a: 80 ff sbrs r24, 0
- 162c: 1d c0 rjmp .+58 ; 0x1668 <USB_Device_ProcessControlRequest+0x13c>
- {
- if (USB_ControlRequest.bRequest == REQ_SetFeature)
- 162e: 80 91 cd 02 lds r24, 0x02CD
- 1632: 83 30 cpi r24, 0x03 ; 3
- 1634: 21 f4 brne .+8 ; 0x163e <USB_Device_ProcessControlRequest+0x112>
- * \ingroup Group_EndpointPacketManagement_AVR8
- */
- static inline void Endpoint_StallTransaction(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_StallTransaction(void)
- {
- UECONX |= (1 << STALLRQ);
- 1636: 80 91 eb 00 lds r24, 0x00EB
- 163a: 80 62 ori r24, 0x20 ; 32
- 163c: 13 c0 rjmp .+38 ; 0x1664 <USB_Device_ProcessControlRequest+0x138>
- * \ingroup Group_EndpointPacketManagement_AVR8
- */
- static inline void Endpoint_ClearStall(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearStall(void)
- {
- UECONX |= (1 << STALLRQC);
- 163e: 80 91 eb 00 lds r24, 0x00EB
- 1642: 80 61 ori r24, 0x10 ; 16
- 1644: 80 93 eb 00 sts 0x00EB, r24
- * \param[in] Address Endpoint address whose FIFO buffers are to be reset.
- */
- static inline void Endpoint_ResetEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ResetEndpoint(const uint8_t Address)
- {
- UERST = (1 << (Address & ENDPOINT_EPNUM_MASK));
- 1648: 81 e0 ldi r24, 0x01 ; 1
- 164a: 90 e0 ldi r25, 0x00 ; 0
- 164c: 02 c0 rjmp .+4 ; 0x1652 <USB_Device_ProcessControlRequest+0x126>
- 164e: 88 0f add r24, r24
- 1650: 99 1f adc r25, r25
- 1652: 2a 95 dec r18
- 1654: e2 f7 brpl .-8 ; 0x164e <USB_Device_ProcessControlRequest+0x122>
- 1656: 80 93 ea 00 sts 0x00EA, r24
- UERST = 0;
- 165a: 10 92 ea 00 sts 0x00EA, r1
-
- /** Resets the data toggle of the currently selected endpoint. */
- static inline void Endpoint_ResetDataToggle(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ResetDataToggle(void)
- {
- UECONX |= (1 << RSTDT);
- 165e: 80 91 eb 00 lds r24, 0x00EB
- 1662: 88 60 ori r24, 0x08 ; 8
- 1664: 80 93 eb 00 sts 0x00EB, r24
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 1668: 10 92 e9 00 sts 0x00E9, r1
- * \note This is not applicable for non CONTROL type endpoints.
- */
- static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearSETUP(void)
- {
- UEINTX &= ~(1 << RXSTPI);
- 166c: 80 91 e8 00 lds r24, 0x00E8
- 1670: 87 7f andi r24, 0xF7 ; 247
- 1672: 86 c0 rjmp .+268 ; 0x1780 <USB_Device_ProcessControlRequest+0x254>
- USB_Device_ClearSetFeature();
- }
-
- break;
- case REQ_SetAddress:
- if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE))
- 1674: 88 23 and r24, r24
- 1676: 09 f0 breq .+2 ; 0x167a <USB_Device_ProcessControlRequest+0x14e>
- 1678: a3 c0 rjmp .+326 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- }
-}
-
-static void USB_Device_SetAddress(void)
-{
- uint8_t DeviceAddress = (USB_ControlRequest.wValue & 0x7F);
- 167a: 10 91 ce 02 lds r17, 0x02CE
- 167e: 1f 77 andi r17, 0x7F ; 127
- #endif
-
- static inline void USB_Device_SetDeviceAddress(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void USB_Device_SetDeviceAddress(const uint8_t Address)
- {
- UDADDR = (UDADDR & (1 << ADDEN)) | (Address & 0x7F);
- 1680: 80 91 e3 00 lds r24, 0x00E3
- 1684: 80 78 andi r24, 0x80 ; 128
- 1686: 81 2b or r24, r17
- 1688: 80 93 e3 00 sts 0x00E3, r24
- 168c: 80 91 e8 00 lds r24, 0x00E8
- 1690: 87 7f andi r24, 0xF7 ; 247
- 1692: 80 93 e8 00 sts 0x00E8, r24
-
- USB_Device_SetDeviceAddress(DeviceAddress);
-
- Endpoint_ClearSETUP();
-
- Endpoint_ClearStatusStage();
- 1696: d2 dd rcall .-1116 ; 0x123c <Endpoint_ClearStatusStage>
- * \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
- */
- static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsINReady(void)
- {
- return ((UEINTX & (1 << TXINI)) ? true : false);
- 1698: 80 91 e8 00 lds r24, 0x00E8
-
- while (!(Endpoint_IsINReady()));
- 169c: 80 ff sbrs r24, 0
- 169e: fc cf rjmp .-8 ; 0x1698 <USB_Device_ProcessControlRequest+0x16c>
- static inline void USB_Device_EnableDeviceAddress(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void USB_Device_EnableDeviceAddress(const uint8_t Address)
- {
- (void)Address;
-
- UDADDR |= (1 << ADDEN);
- 16a0: 80 91 e3 00 lds r24, 0x00E3
- 16a4: 80 68 ori r24, 0x80 ; 128
- 16a6: 80 93 e3 00 sts 0x00E3, r24
-
- USB_Device_EnableDeviceAddress(DeviceAddress);
-
- USB_DeviceState = (DeviceAddress) ? DEVICE_STATE_Addressed : DEVICE_STATE_Default;
- 16aa: 11 23 and r17, r17
- 16ac: 11 f0 breq .+4 ; 0x16b2 <USB_Device_ProcessControlRequest+0x186>
- 16ae: 83 e0 ldi r24, 0x03 ; 3
- 16b0: 01 c0 rjmp .+2 ; 0x16b4 <USB_Device_ProcessControlRequest+0x188>
- 16b2: 82 e0 ldi r24, 0x02 ; 2
- 16b4: 8e bb out 0x1e, r24 ; 30
- 16b6: 84 c0 rjmp .+264 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE))
- USB_Device_SetAddress();
-
- break;
- case REQ_GetDescriptor:
- if ((bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE)) ||
- 16b8: 80 58 subi r24, 0x80 ; 128
- 16ba: 82 30 cpi r24, 0x02 ; 2
- 16bc: 08 f0 brcs .+2 ; 0x16c0 <USB_Device_ProcessControlRequest+0x194>
- 16be: 80 c0 rjmp .+256 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- !(defined(USE_FLASH_DESCRIPTORS) || defined(USE_EEPROM_DESCRIPTORS) || defined(USE_RAM_DESCRIPTORS))
- uint8_t DescriptorAddressSpace;
- #endif
-
- #if !defined(NO_INTERNAL_SERIAL) && (USE_INTERNAL_SERIAL != NO_DESCRIPTOR)
- if (USB_ControlRequest.wValue == ((DTYPE_String << 8) | USE_INTERNAL_SERIAL))
- 16c0: 80 91 ce 02 lds r24, 0x02CE
- 16c4: 90 91 cf 02 lds r25, 0x02CF
- 16c8: 23 e0 ldi r18, 0x03 ; 3
- 16ca: 8c 3d cpi r24, 0xDC ; 220
- 16cc: 92 07 cpc r25, r18
- 16ce: 91 f5 brne .+100 ; 0x1734 <USB_Device_ProcessControlRequest+0x208>
- {
- USB_Descriptor_Header_t Header;
- uint16_t UnicodeString[INTERNAL_SERIAL_LENGTH_BITS / 4];
- } SignatureDescriptor;
-
- SignatureDescriptor.Header.Type = DTYPE_String;
- 16d0: 83 e0 ldi r24, 0x03 ; 3
- 16d2: 8c 83 std Y+4, r24 ; 0x04
- SignatureDescriptor.Header.Size = USB_STRING_LEN(INTERNAL_SERIAL_LENGTH_BITS / 4);
- 16d4: 8a e2 ldi r24, 0x2A ; 42
- 16d6: 8b 83 std Y+3, r24 ; 0x03
- static inline uint_reg_t GetGlobalInterruptMask(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- return SREG;
- 16d8: 5f b7 in r21, 0x3f ; 63
- static inline void GlobalInterruptDisable(void)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- cli();
- 16da: f8 94 cli
- __builtin_ssrf(AVR32_SR_GM_OFFSET);
- #elif (ARCH == ARCH_XMEGA)
- cli();
- #endif
-
- GCC_MEMORY_BARRIER();
- 16dc: de 01 movw r26, r28
- 16de: 15 96 adiw r26, 0x05 ; 5
- 16e0: 80 e0 ldi r24, 0x00 ; 0
- 16e2: 90 e0 ldi r25, 0x00 ; 0
- static inline void USB_Device_GetSerialString(uint16_t* const UnicodeString)
- {
- uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
- GlobalInterruptDisable();
-
- uint8_t SigReadAddress = INTERNAL_SERIAL_START_ADDRESS;
- 16e4: 4e e0 ldi r20, 0x0E ; 14
-
- for (uint8_t SerialCharNum = 0; SerialCharNum < (INTERNAL_SERIAL_LENGTH_BITS / 4); SerialCharNum++)
- {
- uint8_t SerialByte = boot_signature_byte_get(SigReadAddress);
- 16e6: 61 e2 ldi r22, 0x21 ; 33
- 16e8: e4 2f mov r30, r20
- 16ea: f0 e0 ldi r31, 0x00 ; 0
- 16ec: 60 93 57 00 sts 0x0057, r22
- 16f0: e4 91 lpm r30, Z+
-
- if (SerialCharNum & 0x01)
- 16f2: 80 ff sbrs r24, 0
- 16f4: 03 c0 rjmp .+6 ; 0x16fc <USB_Device_ProcessControlRequest+0x1d0>
- {
- SerialByte >>= 4;
- 16f6: e2 95 swap r30
- 16f8: ef 70 andi r30, 0x0F ; 15
- SigReadAddress++;
- 16fa: 4f 5f subi r20, 0xFF ; 255
- }
-
- SerialByte &= 0x0F;
- 16fc: ef 70 andi r30, 0x0F ; 15
- 16fe: 2e 2f mov r18, r30
- 1700: 30 e0 ldi r19, 0x00 ; 0
-
- UnicodeString[SerialCharNum] = cpu_to_le16((SerialByte >= 10) ?
- 1702: ea 30 cpi r30, 0x0A ; 10
- 1704: 18 f0 brcs .+6 ; 0x170c <USB_Device_ProcessControlRequest+0x1e0>
- 1706: 29 5c subi r18, 0xC9 ; 201
- 1708: 3f 4f sbci r19, 0xFF ; 255
- 170a: 02 c0 rjmp .+4 ; 0x1710 <USB_Device_ProcessControlRequest+0x1e4>
- 170c: 20 5d subi r18, 0xD0 ; 208
- 170e: 3f 4f sbci r19, 0xFF ; 255
- 1710: 2d 93 st X+, r18
- 1712: 3d 93 st X+, r19
- 1714: 01 96 adiw r24, 0x01 ; 1
- uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
- GlobalInterruptDisable();
-
- uint8_t SigReadAddress = INTERNAL_SERIAL_START_ADDRESS;
-
- for (uint8_t SerialCharNum = 0; SerialCharNum < (INTERNAL_SERIAL_LENGTH_BITS / 4); SerialCharNum++)
- 1716: 84 31 cpi r24, 0x14 ; 20
- 1718: 91 05 cpc r25, r1
- 171a: 31 f7 brne .-52 ; 0x16e8 <USB_Device_ProcessControlRequest+0x1bc>
- static inline void SetGlobalInterruptMask(const uint_reg_t GlobalIntState)
- {
- GCC_MEMORY_BARRIER();
-
- #if (ARCH == ARCH_AVR8)
- SREG = GlobalIntState;
- 171c: 5f bf out 0x3f, r21 ; 63
- * \note This is not applicable for non CONTROL type endpoints.
- */
- static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearSETUP(void)
- {
- UEINTX &= ~(1 << RXSTPI);
- 171e: 80 91 e8 00 lds r24, 0x00E8
- 1722: 87 7f andi r24, 0xF7 ; 247
- 1724: 80 93 e8 00 sts 0x00E8, r24
-
- USB_Device_GetSerialString(SignatureDescriptor.UnicodeString);
-
- Endpoint_ClearSETUP();
-
- Endpoint_Write_Control_Stream_LE(&SignatureDescriptor, sizeof(SignatureDescriptor));
- 1728: ce 01 movw r24, r28
- 172a: 03 96 adiw r24, 0x03 ; 3
- 172c: 6a e2 ldi r22, 0x2A ; 42
- 172e: 70 e0 ldi r23, 0x00 ; 0
- 1730: 55 dc rcall .-1878 ; 0xfdc <Endpoint_Write_Control_Stream_LE>
- 1732: 12 c0 rjmp .+36 ; 0x1758 <USB_Device_ProcessControlRequest+0x22c>
- USB_Device_GetInternalSerialDescriptor();
- return;
- }
- #endif
-
- if ((DescriptorSize = CALLBACK_USB_GetDescriptor(USB_ControlRequest.wValue, USB_ControlRequest.wIndex,
- 1734: 60 91 d0 02 lds r22, 0x02D0
- 1738: ae 01 movw r20, r28
- 173a: 4f 5f subi r20, 0xFF ; 255
- 173c: 5f 4f sbci r21, 0xFF ; 255
- 173e: 21 dc rcall .-1982 ; 0xf82 <CALLBACK_USB_GetDescriptor>
- 1740: bc 01 movw r22, r24
- 1742: 00 97 sbiw r24, 0x00 ; 0
- 1744: 09 f4 brne .+2 ; 0x1748 <USB_Device_ProcessControlRequest+0x21c>
- 1746: 3c c0 rjmp .+120 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- 1748: 80 91 e8 00 lds r24, 0x00E8
- 174c: 87 7f andi r24, 0xF7 ; 247
- 174e: 80 93 e8 00 sts 0x00E8, r24
- #if defined(USE_RAM_DESCRIPTORS) || !defined(ARCH_HAS_MULTI_ADDRESS_SPACE)
- Endpoint_Write_Control_Stream_LE(DescriptorPointer, DescriptorSize);
- #elif defined(USE_EEPROM_DESCRIPTORS)
- Endpoint_Write_Control_EStream_LE(DescriptorPointer, DescriptorSize);
- #elif defined(USE_FLASH_DESCRIPTORS)
- Endpoint_Write_Control_PStream_LE(DescriptorPointer, DescriptorSize);
- 1752: 89 81 ldd r24, Y+1 ; 0x01
- 1754: 9a 81 ldd r25, Y+2 ; 0x02
- 1756: 9c dc rcall .-1736 ; 0x1090 <Endpoint_Write_Control_PStream_LE>
- */
- static inline void Endpoint_ClearOUT(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearOUT(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UEINTX &= ~((1 << RXOUTI) | (1 << FIFOCON));
- 1758: 80 91 e8 00 lds r24, 0x00E8
- 175c: 8b 77 andi r24, 0x7B ; 123
- 175e: 80 93 e8 00 sts 0x00E8, r24
- 1762: 2e c0 rjmp .+92 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- USB_Device_GetDescriptor();
- }
-
- break;
- case REQ_GetConfiguration:
- if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE))
- 1764: 80 38 cpi r24, 0x80 ; 128
- 1766: 61 f5 brne .+88 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- * \note This is not applicable for non CONTROL type endpoints.
- */
- static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearSETUP(void)
- {
- UEINTX &= ~(1 << RXSTPI);
- 1768: 80 91 e8 00 lds r24, 0x00E8
- 176c: 87 7f andi r24, 0xF7 ; 247
- 176e: 80 93 e8 00 sts 0x00E8, r24
-
-static void USB_Device_GetConfiguration(void)
-{
- Endpoint_ClearSETUP();
-
- Endpoint_Write_8(USB_Device_ConfigurationNumber);
- 1772: 80 91 c8 02 lds r24, 0x02C8
- * \param[in] Data Data to write into the the currently selected endpoint's FIFO buffer.
- */
- static inline void Endpoint_Write_8(const uint8_t Data) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_Write_8(const uint8_t Data)
- {
- UEDATX = Data;
- 1776: 80 93 f1 00 sts 0x00F1, r24
- */
- static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearIN(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
- 177a: 80 91 e8 00 lds r24, 0x00E8
- 177e: 8e 77 andi r24, 0x7E ; 126
- 1780: 80 93 e8 00 sts 0x00E8, r24
- Endpoint_ClearIN();
-
- Endpoint_ClearStatusStage();
- 1784: 5b dd rcall .-1354 ; 0x123c <Endpoint_ClearStatusStage>
- 1786: 1c c0 rjmp .+56 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE))
- USB_Device_GetConfiguration();
-
- break;
- case REQ_SetConfiguration:
- if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE))
- 1788: 88 23 and r24, r24
- 178a: d1 f4 brne .+52 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
-}
-
-static void USB_Device_SetConfiguration(void)
-{
- #if defined(FIXED_NUM_CONFIGURATIONS)
- if ((uint8_t)USB_ControlRequest.wValue > FIXED_NUM_CONFIGURATIONS)
- 178c: 90 91 ce 02 lds r25, 0x02CE
- 1790: 92 30 cpi r25, 0x02 ; 2
- 1792: b0 f4 brcc .+44 ; 0x17c0 <USB_Device_ProcessControlRequest+0x294>
- * \note This is not applicable for non CONTROL type endpoints.
- */
- static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearSETUP(void)
- {
- UEINTX &= ~(1 << RXSTPI);
- 1794: 80 91 e8 00 lds r24, 0x00E8
- 1798: 87 7f andi r24, 0xF7 ; 247
- 179a: 80 93 e8 00 sts 0x00E8, r24
- #endif
- #endif
-
- Endpoint_ClearSETUP();
-
- USB_Device_ConfigurationNumber = (uint8_t)USB_ControlRequest.wValue;
- 179e: 90 93 c8 02 sts 0x02C8, r25
-
- Endpoint_ClearStatusStage();
- 17a2: 4c dd rcall .-1384 ; 0x123c <Endpoint_ClearStatusStage>
-
- if (USB_Device_ConfigurationNumber)
- 17a4: 80 91 c8 02 lds r24, 0x02C8
- 17a8: 88 23 and r24, r24
- 17aa: 21 f4 brne .+8 ; 0x17b4 <USB_Device_ProcessControlRequest+0x288>
- }
-
- static inline bool USB_Device_IsAddressSet(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
- static inline bool USB_Device_IsAddressSet(void)
- {
- return (UDADDR & (1 << ADDEN));
- 17ac: 80 91 e3 00 lds r24, 0x00E3
- USB_DeviceState = DEVICE_STATE_Configured;
- else
- USB_DeviceState = (USB_Device_IsAddressSet()) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered;
- 17b0: 87 ff sbrs r24, 7
- 17b2: 02 c0 rjmp .+4 ; 0x17b8 <USB_Device_ProcessControlRequest+0x28c>
- 17b4: 84 e0 ldi r24, 0x04 ; 4
- 17b6: 01 c0 rjmp .+2 ; 0x17ba <USB_Device_ProcessControlRequest+0x28e>
- 17b8: 81 e0 ldi r24, 0x01 ; 1
- 17ba: 8e bb out 0x1e, r24 ; 30
-
- EVENT_USB_Device_ConfigurationChanged();
- 17bc: 0e 94 90 03 call 0x720 ; 0x720 <EVENT_USB_Device_ConfigurationChanged>
- * \return Boolean \c true if the selected endpoint has received a SETUP packet, \c false otherwise.
- */
- static inline bool Endpoint_IsSETUPReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsSETUPReceived(void)
- {
- return ((UEINTX & (1 << RXSTPI)) ? true : false);
- 17c0: 80 91 e8 00 lds r24, 0x00E8
- default:
- break;
- }
- }
-
- if (Endpoint_IsSETUPReceived())
- 17c4: 83 ff sbrs r24, 3
- 17c6: 0a c0 rjmp .+20 ; 0x17dc <USB_Device_ProcessControlRequest+0x2b0>
- * \note This is not applicable for non CONTROL type endpoints.
- */
- static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearSETUP(void)
- {
- UEINTX &= ~(1 << RXSTPI);
- 17c8: 80 91 e8 00 lds r24, 0x00E8
- 17cc: 87 7f andi r24, 0xF7 ; 247
- 17ce: 80 93 e8 00 sts 0x00E8, r24
- * \ingroup Group_EndpointPacketManagement_AVR8
- */
- static inline void Endpoint_StallTransaction(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_StallTransaction(void)
- {
- UECONX |= (1 << STALLRQ);
- 17d2: 80 91 eb 00 lds r24, 0x00EB
- 17d6: 80 62 ori r24, 0x20 ; 32
- 17d8: 80 93 eb 00 sts 0x00EB, r24
- {
- Endpoint_ClearSETUP();
- Endpoint_StallTransaction();
- }
-}
- 17dc: ac 96 adiw r28, 0x2c ; 44
- 17de: 0f b6 in r0, 0x3f ; 63
- 17e0: f8 94 cli
- 17e2: de bf out 0x3e, r29 ; 62
- 17e4: 0f be out 0x3f, r0 ; 63
- 17e6: cd bf out 0x3d, r28 ; 61
- 17e8: cf 91 pop r28
- 17ea: df 91 pop r29
- 17ec: 1f 91 pop r17
- 17ee: 08 95 ret
-
-000017f0 <USB_Event_Stub>:
-#include "Events.h"
-
-void USB_Event_Stub(void)
-{
-
-}
- 17f0: 08 95 ret
-
-000017f2 <USB_USBTask>:
-#if defined(USB_CAN_BE_DEVICE) && !defined(DEVICE_STATE_AS_GPIOR)
-volatile uint8_t USB_DeviceState;
-#endif
-
-void USB_USBTask(void)
-{
- 17f2: 1f 93 push r17
-}
-
-#if defined(USB_CAN_BE_DEVICE)
-static void USB_DeviceTask(void)
-{
- if (USB_DeviceState == DEVICE_STATE_Unattached)
- 17f4: 8e b3 in r24, 0x1e ; 30
- 17f6: 88 23 and r24, r24
- 17f8: a9 f0 breq .+42 ; 0x1824 <USB_USBTask+0x32>
- */
- static inline uint8_t Endpoint_GetCurrentEndpoint(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline uint8_t Endpoint_GetCurrentEndpoint(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- return ((UENUM & ENDPOINT_EPNUM_MASK) | Endpoint_GetEndpointDirection());
- 17fa: 80 91 e9 00 lds r24, 0x00E9
- 17fe: 8f 70 andi r24, 0x0F ; 15
- * \return The currently selected endpoint's direction, as a \c ENDPOINT_DIR_* mask.
- */
- static inline uint8_t Endpoint_GetEndpointDirection(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline uint8_t Endpoint_GetEndpointDirection(void)
- {
- return (UECFG0X & (1 << EPDIR)) ? ENDPOINT_DIR_IN : ENDPOINT_DIR_OUT;
- 1800: 90 91 ec 00 lds r25, 0x00EC
- 1804: 90 ff sbrs r25, 0
- 1806: 02 c0 rjmp .+4 ; 0x180c <USB_USBTask+0x1a>
- 1808: 10 e8 ldi r17, 0x80 ; 128
- 180a: 01 c0 rjmp .+2 ; 0x180e <USB_USBTask+0x1c>
- 180c: 10 e0 ldi r17, 0x00 ; 0
- */
- static inline uint8_t Endpoint_GetCurrentEndpoint(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline uint8_t Endpoint_GetCurrentEndpoint(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- return ((UENUM & ENDPOINT_EPNUM_MASK) | Endpoint_GetEndpointDirection());
- 180e: 18 2b or r17, r24
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 1810: 10 92 e9 00 sts 0x00E9, r1
- * \return Boolean \c true if the selected endpoint has received a SETUP packet, \c false otherwise.
- */
- static inline bool Endpoint_IsSETUPReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsSETUPReceived(void)
- {
- return ((UEINTX & (1 << RXSTPI)) ? true : false);
- 1814: 80 91 e8 00 lds r24, 0x00E8
-
- uint8_t PrevEndpoint = Endpoint_GetCurrentEndpoint();
-
- Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
-
- if (Endpoint_IsSETUPReceived())
- 1818: 83 ff sbrs r24, 3
- 181a: 01 c0 rjmp .+2 ; 0x181e <USB_USBTask+0x2c>
- USB_Device_ProcessControlRequest();
- 181c: 87 de rcall .-754 ; 0x152c <USB_Device_ProcessControlRequest>
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 181e: 1f 70 andi r17, 0x0F ; 15
- 1820: 10 93 e9 00 sts 0x00E9, r17
- #elif defined(USB_CAN_BE_HOST)
- USB_HostTask();
- #elif defined(USB_CAN_BE_DEVICE)
- USB_DeviceTask();
- #endif
-}
- 1824: 1f 91 pop r17
- 1826: 08 95 ret
-
-00001828 <CDC_Device_ProcessControlRequest>:
-#define __INCLUDE_FROM_CDC_DRIVER
-#define __INCLUDE_FROM_CDC_DEVICE_C
-#include "CDCClassDevice.h"
-
-void CDC_Device_ProcessControlRequest(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
-{
- 1828: cf 93 push r28
- 182a: df 93 push r29
- 182c: ec 01 movw r28, r24
- * \return Boolean \c true if the selected endpoint has received a SETUP packet, \c false otherwise.
- */
- static inline bool Endpoint_IsSETUPReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsSETUPReceived(void)
- {
- return ((UEINTX & (1 << RXSTPI)) ? true : false);
- 182e: 80 91 e8 00 lds r24, 0x00E8
- if (!(Endpoint_IsSETUPReceived()))
- 1832: 83 ff sbrs r24, 3
- 1834: a3 c0 rjmp .+326 ; 0x197c <CDC_Device_ProcessControlRequest+0x154>
- return;
-
- if (USB_ControlRequest.wIndex != CDCInterfaceInfo->Config.ControlInterfaceNumber)
- 1836: 88 81 ld r24, Y
- 1838: 90 e0 ldi r25, 0x00 ; 0
- 183a: 20 91 d0 02 lds r18, 0x02D0
- 183e: 30 91 d1 02 lds r19, 0x02D1
- 1842: 28 17 cp r18, r24
- 1844: 39 07 cpc r19, r25
- 1846: 09 f0 breq .+2 ; 0x184a <CDC_Device_ProcessControlRequest+0x22>
- 1848: 99 c0 rjmp .+306 ; 0x197c <CDC_Device_ProcessControlRequest+0x154>
- return;
-
- switch (USB_ControlRequest.bRequest)
- 184a: 80 91 cd 02 lds r24, 0x02CD
- 184e: 81 32 cpi r24, 0x21 ; 33
- 1850: 69 f0 breq .+26 ; 0x186c <CDC_Device_ProcessControlRequest+0x44>
- 1852: 82 32 cpi r24, 0x22 ; 34
- 1854: 20 f4 brcc .+8 ; 0x185e <CDC_Device_ProcessControlRequest+0x36>
- 1856: 80 32 cpi r24, 0x20 ; 32
- 1858: 09 f0 breq .+2 ; 0x185c <CDC_Device_ProcessControlRequest+0x34>
- 185a: 90 c0 rjmp .+288 ; 0x197c <CDC_Device_ProcessControlRequest+0x154>
- 185c: 3c c0 rjmp .+120 ; 0x18d6 <CDC_Device_ProcessControlRequest+0xae>
- 185e: 82 32 cpi r24, 0x22 ; 34
- 1860: 09 f4 brne .+2 ; 0x1864 <CDC_Device_ProcessControlRequest+0x3c>
- 1862: 6b c0 rjmp .+214 ; 0x193a <CDC_Device_ProcessControlRequest+0x112>
- 1864: 83 32 cpi r24, 0x23 ; 35
- 1866: 09 f0 breq .+2 ; 0x186a <CDC_Device_ProcessControlRequest+0x42>
- 1868: 89 c0 rjmp .+274 ; 0x197c <CDC_Device_ProcessControlRequest+0x154>
- 186a: 7a c0 rjmp .+244 ; 0x1960 <CDC_Device_ProcessControlRequest+0x138>
- {
- case CDC_REQ_GetLineEncoding:
- if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
- 186c: 80 91 cc 02 lds r24, 0x02CC
- 1870: 81 3a cpi r24, 0xA1 ; 161
- 1872: 09 f0 breq .+2 ; 0x1876 <CDC_Device_ProcessControlRequest+0x4e>
- 1874: 83 c0 rjmp .+262 ; 0x197c <CDC_Device_ProcessControlRequest+0x154>
- * \note This is not applicable for non CONTROL type endpoints.
- */
- static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearSETUP(void)
- {
- UEINTX &= ~(1 << RXSTPI);
- 1876: 80 91 e8 00 lds r24, 0x00E8
- 187a: 87 7f andi r24, 0xF7 ; 247
- 187c: 80 93 e8 00 sts 0x00E8, r24
- * \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
- */
- static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsINReady(void)
- {
- return ((UEINTX & (1 << TXINI)) ? true : false);
- 1880: 80 91 e8 00 lds r24, 0x00E8
- {
- Endpoint_ClearSETUP();
-
- while (!(Endpoint_IsINReady()));
- 1884: 80 ff sbrs r24, 0
- 1886: fc cf rjmp .-8 ; 0x1880 <CDC_Device_ProcessControlRequest+0x58>
-
- Endpoint_Write_32_LE(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS);
- 1888: 8c 89 ldd r24, Y+20 ; 0x14
- 188a: 9d 89 ldd r25, Y+21 ; 0x15
- 188c: ae 89 ldd r26, Y+22 ; 0x16
- 188e: bf 89 ldd r27, Y+23 ; 0x17
- * \param[in] Data Data to write to the currently selected endpoint's FIFO buffer.
- */
- static inline void Endpoint_Write_32_LE(const uint32_t Data) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_Write_32_LE(const uint32_t Data)
- {
- UEDATX = (Data & 0xFF);
- 1890: 80 93 f1 00 sts 0x00F1, r24
- UEDATX = (Data >> 8);
- 1894: 29 2f mov r18, r25
- 1896: 3a 2f mov r19, r26
- 1898: 4b 2f mov r20, r27
- 189a: 55 27 eor r21, r21
- 189c: 20 93 f1 00 sts 0x00F1, r18
- UEDATX = (Data >> 16);
- 18a0: 9d 01 movw r18, r26
- 18a2: 44 27 eor r20, r20
- 18a4: 55 27 eor r21, r21
- 18a6: 20 93 f1 00 sts 0x00F1, r18
- UEDATX = (Data >> 24);
- 18aa: 8b 2f mov r24, r27
- 18ac: 99 27 eor r25, r25
- 18ae: aa 27 eor r26, r26
- 18b0: bb 27 eor r27, r27
- 18b2: 80 93 f1 00 sts 0x00F1, r24
- Endpoint_Write_8(CDCInterfaceInfo->State.LineEncoding.CharFormat);
- 18b6: 88 8d ldd r24, Y+24 ; 0x18
- * \param[in] Data Data to write into the the currently selected endpoint's FIFO buffer.
- */
- static inline void Endpoint_Write_8(const uint8_t Data) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_Write_8(const uint8_t Data)
- {
- UEDATX = Data;
- 18b8: 80 93 f1 00 sts 0x00F1, r24
- Endpoint_Write_8(CDCInterfaceInfo->State.LineEncoding.ParityType);
- 18bc: 89 8d ldd r24, Y+25 ; 0x19
- 18be: 80 93 f1 00 sts 0x00F1, r24
- Endpoint_Write_8(CDCInterfaceInfo->State.LineEncoding.DataBits);
- 18c2: 8a 8d ldd r24, Y+26 ; 0x1a
- 18c4: 80 93 f1 00 sts 0x00F1, r24
- */
- static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearIN(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
- 18c8: 80 91 e8 00 lds r24, 0x00E8
- 18cc: 8e 77 andi r24, 0x7E ; 126
- 18ce: 80 93 e8 00 sts 0x00E8, r24
-
- Endpoint_ClearIN();
- Endpoint_ClearStatusStage();
- 18d2: b4 dc rcall .-1688 ; 0x123c <Endpoint_ClearStatusStage>
- 18d4: 53 c0 rjmp .+166 ; 0x197c <CDC_Device_ProcessControlRequest+0x154>
- }
-
- break;
- case CDC_REQ_SetLineEncoding:
- if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
- 18d6: 80 91 cc 02 lds r24, 0x02CC
- 18da: 81 32 cpi r24, 0x21 ; 33
- 18dc: 09 f0 breq .+2 ; 0x18e0 <CDC_Device_ProcessControlRequest+0xb8>
- 18de: 4e c0 rjmp .+156 ; 0x197c <CDC_Device_ProcessControlRequest+0x154>
- * \note This is not applicable for non CONTROL type endpoints.
- */
- static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearSETUP(void)
- {
- UEINTX &= ~(1 << RXSTPI);
- 18e0: 80 91 e8 00 lds r24, 0x00E8
- 18e4: 87 7f andi r24, 0xF7 ; 247
- 18e6: 80 93 e8 00 sts 0x00E8, r24
- {
- Endpoint_ClearSETUP();
-
- while (!(Endpoint_IsOUTReceived()))
- 18ea: 04 c0 rjmp .+8 ; 0x18f4 <CDC_Device_ProcessControlRequest+0xcc>
- {
- if (USB_DeviceState == DEVICE_STATE_Unattached)
- 18ec: 8e b3 in r24, 0x1e ; 30
- 18ee: 88 23 and r24, r24
- 18f0: 09 f4 brne .+2 ; 0x18f4 <CDC_Device_ProcessControlRequest+0xcc>
- 18f2: 44 c0 rjmp .+136 ; 0x197c <CDC_Device_ProcessControlRequest+0x154>
- * \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
- */
- static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsOUTReceived(void)
- {
- return ((UEINTX & (1 << RXOUTI)) ? true : false);
- 18f4: 80 91 e8 00 lds r24, 0x00E8
- case CDC_REQ_SetLineEncoding:
- if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
- {
- Endpoint_ClearSETUP();
-
- while (!(Endpoint_IsOUTReceived()))
- 18f8: 82 ff sbrs r24, 2
- 18fa: f8 cf rjmp .-16 ; 0x18ec <CDC_Device_ProcessControlRequest+0xc4>
- {
- uint32_t Value;
- uint8_t Bytes[4];
- } Data;
-
- Data.Bytes[0] = UEDATX;
- 18fc: 30 91 f1 00 lds r19, 0x00F1
- Data.Bytes[1] = UEDATX;
- 1900: 20 91 f1 00 lds r18, 0x00F1
- Data.Bytes[2] = UEDATX;
- 1904: 90 91 f1 00 lds r25, 0x00F1
- Data.Bytes[3] = UEDATX;
- 1908: 80 91 f1 00 lds r24, 0x00F1
- {
- if (USB_DeviceState == DEVICE_STATE_Unattached)
- return;
- }
-
- CDCInterfaceInfo->State.LineEncoding.BaudRateBPS = Endpoint_Read_32_LE();
- 190c: 3c 8b std Y+20, r19 ; 0x14
- 190e: 2d 8b std Y+21, r18 ; 0x15
- 1910: 9e 8b std Y+22, r25 ; 0x16
- 1912: 8f 8b std Y+23, r24 ; 0x17
- * \return Next byte in the currently selected endpoint's FIFO buffer.
- */
- static inline uint8_t Endpoint_Read_8(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline uint8_t Endpoint_Read_8(void)
- {
- return UEDATX;
- 1914: 80 91 f1 00 lds r24, 0x00F1
- CDCInterfaceInfo->State.LineEncoding.CharFormat = Endpoint_Read_8();
- 1918: 88 8f std Y+24, r24 ; 0x18
- 191a: 80 91 f1 00 lds r24, 0x00F1
- CDCInterfaceInfo->State.LineEncoding.ParityType = Endpoint_Read_8();
- 191e: 89 8f std Y+25, r24 ; 0x19
- 1920: 80 91 f1 00 lds r24, 0x00F1
- CDCInterfaceInfo->State.LineEncoding.DataBits = Endpoint_Read_8();
- 1924: 8a 8f std Y+26, r24 ; 0x1a
- */
- static inline void Endpoint_ClearOUT(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearOUT(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UEINTX &= ~((1 << RXOUTI) | (1 << FIFOCON));
- 1926: 80 91 e8 00 lds r24, 0x00E8
- 192a: 8b 77 andi r24, 0x7B ; 123
- 192c: 80 93 e8 00 sts 0x00E8, r24
-
- Endpoint_ClearOUT();
- Endpoint_ClearStatusStage();
- 1930: 85 dc rcall .-1782 ; 0x123c <Endpoint_ClearStatusStage>
-
- EVENT_CDC_Device_LineEncodingChanged(CDCInterfaceInfo);
- 1932: ce 01 movw r24, r28
- 1934: 0e 94 c2 03 call 0x784 ; 0x784 <EVENT_CDC_Device_LineEncodingChanged>
- 1938: 21 c0 rjmp .+66 ; 0x197c <CDC_Device_ProcessControlRequest+0x154>
- }
-
- break;
- case CDC_REQ_SetControlLineState:
- if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
- 193a: 80 91 cc 02 lds r24, 0x02CC
- 193e: 81 32 cpi r24, 0x21 ; 33
- 1940: e9 f4 brne .+58 ; 0x197c <CDC_Device_ProcessControlRequest+0x154>
- * \note This is not applicable for non CONTROL type endpoints.
- */
- static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearSETUP(void)
- {
- UEINTX &= ~(1 << RXSTPI);
- 1942: 80 91 e8 00 lds r24, 0x00E8
- 1946: 87 7f andi r24, 0xF7 ; 247
- 1948: 80 93 e8 00 sts 0x00E8, r24
- {
- Endpoint_ClearSETUP();
- Endpoint_ClearStatusStage();
- 194c: 77 dc rcall .-1810 ; 0x123c <Endpoint_ClearStatusStage>
-
- CDCInterfaceInfo->State.ControlLineStates.HostToDevice = USB_ControlRequest.wValue;
- 194e: 80 91 ce 02 lds r24, 0x02CE
- 1952: 90 91 cf 02 lds r25, 0x02CF
- 1956: 99 8b std Y+17, r25 ; 0x11
- 1958: 88 8b std Y+16, r24 ; 0x10
-
- EVENT_CDC_Device_ControLineStateChanged(CDCInterfaceInfo);
- 195a: ce 01 movw r24, r28
- 195c: d4 d0 rcall .+424 ; 0x1b06 <CDC_Device_Event_Stub>
- 195e: 0e c0 rjmp .+28 ; 0x197c <CDC_Device_ProcessControlRequest+0x154>
- }
-
- break;
- case CDC_REQ_SendBreak:
- if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
- 1960: 80 91 cc 02 lds r24, 0x02CC
- 1964: 81 32 cpi r24, 0x21 ; 33
- 1966: 51 f4 brne .+20 ; 0x197c <CDC_Device_ProcessControlRequest+0x154>
- 1968: 80 91 e8 00 lds r24, 0x00E8
- 196c: 87 7f andi r24, 0xF7 ; 247
- 196e: 80 93 e8 00 sts 0x00E8, r24
- {
- Endpoint_ClearSETUP();
- Endpoint_ClearStatusStage();
- 1972: 64 dc rcall .-1848 ; 0x123c <Endpoint_ClearStatusStage>
-
- EVENT_CDC_Device_BreakSent(CDCInterfaceInfo, (uint8_t)USB_ControlRequest.wValue);
- 1974: ce 01 movw r24, r28
- 1976: 60 91 ce 02 lds r22, 0x02CE
- 197a: c5 d0 rcall .+394 ; 0x1b06 <CDC_Device_Event_Stub>
- }
-
- break;
- }
-}
- 197c: df 91 pop r29
- 197e: cf 91 pop r28
- 1980: 08 95 ret
-
-00001982 <CDC_Device_ConfigureEndpoints>:
-
-bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
-{
- 1982: cf 93 push r28
- 1984: df 93 push r29
- 1986: ec 01 movw r28, r24
- memset(&CDCInterfaceInfo->State, 0x00, sizeof(CDCInterfaceInfo->State));
- 1988: 40 96 adiw r24, 0x10 ; 16
- 198a: fc 01 movw r30, r24
- 198c: 8b e0 ldi r24, 0x0B ; 11
- 198e: df 01 movw r26, r30
- 1990: 1d 92 st X+, r1
- 1992: 8a 95 dec r24
- 1994: e9 f7 brne .-6 ; 0x1990 <CDC_Device_ConfigureEndpoints+0xe>
-
- CDCInterfaceInfo->Config.DataINEndpoint.Type = EP_TYPE_BULK;
- 1996: 82 e0 ldi r24, 0x02 ; 2
- 1998: 8c 83 std Y+4, r24 ; 0x04
- CDCInterfaceInfo->Config.DataOUTEndpoint.Type = EP_TYPE_BULK;
- 199a: 89 87 std Y+9, r24 ; 0x09
- CDCInterfaceInfo->Config.NotificationEndpoint.Type = EP_TYPE_INTERRUPT;
- 199c: 83 e0 ldi r24, 0x03 ; 3
- 199e: 8e 87 std Y+14, r24 ; 0x0e
-
- if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataINEndpoint, 1)))
- 19a0: ce 01 movw r24, r28
- 19a2: 01 96 adiw r24, 0x01 ; 1
- 19a4: 61 e0 ldi r22, 0x01 ; 1
- 19a6: 06 dc rcall .-2036 ; 0x11b4 <Endpoint_ConfigureEndpointTable>
- 19a8: 88 23 and r24, r24
- 19aa: 59 f0 breq .+22 ; 0x19c2 <CDC_Device_ConfigureEndpoints+0x40>
- return false;
-
- if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataOUTEndpoint, 1)))
- 19ac: ce 01 movw r24, r28
- 19ae: 06 96 adiw r24, 0x06 ; 6
- 19b0: 61 e0 ldi r22, 0x01 ; 1
- 19b2: 00 dc rcall .-2048 ; 0x11b4 <Endpoint_ConfigureEndpointTable>
- 19b4: 88 23 and r24, r24
- 19b6: 29 f0 breq .+10 ; 0x19c2 <CDC_Device_ConfigureEndpoints+0x40>
- return false;
-
- if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.NotificationEndpoint, 1)))
- 19b8: ce 01 movw r24, r28
- 19ba: 0b 96 adiw r24, 0x0b ; 11
- 19bc: 61 e0 ldi r22, 0x01 ; 1
- 19be: fa db rcall .-2060 ; 0x11b4 <Endpoint_ConfigureEndpointTable>
- 19c0: 01 c0 rjmp .+2 ; 0x19c4 <CDC_Device_ConfigureEndpoints+0x42>
-
- if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataINEndpoint, 1)))
- return false;
-
- if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataOUTEndpoint, 1)))
- return false;
- 19c2: 80 e0 ldi r24, 0x00 ; 0
-
- if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.NotificationEndpoint, 1)))
- return false;
-
- return true;
-}
- 19c4: df 91 pop r29
- 19c6: cf 91 pop r28
- 19c8: 08 95 ret
-
-000019ca <CDC_Device_SendByte>:
- return Endpoint_Write_Stream_LE(Buffer, Length, NULL);
-}
-
-uint8_t CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
- const uint8_t Data)
-{
- 19ca: df 93 push r29
- 19cc: cf 93 push r28
- 19ce: 0f 92 push r0
- 19d0: cd b7 in r28, 0x3d ; 61
- 19d2: de b7 in r29, 0x3e ; 62
- 19d4: fc 01 movw r30, r24
- if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
- 19d6: 8e b3 in r24, 0x1e ; 30
- 19d8: 84 30 cpi r24, 0x04 ; 4
- 19da: f9 f4 brne .+62 ; 0x1a1a <CDC_Device_SendByte+0x50>
- 19dc: 24 89 ldd r18, Z+20 ; 0x14
- 19de: 35 89 ldd r19, Z+21 ; 0x15
- 19e0: 46 89 ldd r20, Z+22 ; 0x16
- 19e2: 57 89 ldd r21, Z+23 ; 0x17
- 19e4: 21 15 cp r18, r1
- 19e6: 31 05 cpc r19, r1
- 19e8: 41 05 cpc r20, r1
- 19ea: 51 05 cpc r21, r1
- 19ec: b1 f0 breq .+44 ; 0x1a1a <CDC_Device_SendByte+0x50>
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 19ee: 81 81 ldd r24, Z+1 ; 0x01
- 19f0: 8f 70 andi r24, 0x0F ; 15
- 19f2: 80 93 e9 00 sts 0x00E9, r24
- * on its direction.
- */
- static inline bool Endpoint_IsReadWriteAllowed(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsReadWriteAllowed(void)
- {
- return ((UEINTX & (1 << RWAL)) ? true : false);
- 19f6: 80 91 e8 00 lds r24, 0x00E8
- return ENDPOINT_RWSTREAM_DeviceDisconnected;
-
- Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
-
- if (!(Endpoint_IsReadWriteAllowed()))
- 19fa: 85 fd sbrc r24, 5
- 19fc: 0a c0 rjmp .+20 ; 0x1a12 <CDC_Device_SendByte+0x48>
- */
- static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearIN(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
- 19fe: 80 91 e8 00 lds r24, 0x00E8
- 1a02: 8e 77 andi r24, 0x7E ; 126
- 1a04: 80 93 e8 00 sts 0x00E8, r24
- {
- Endpoint_ClearIN();
-
- uint8_t ErrorCode;
-
- if ((ErrorCode = Endpoint_WaitUntilReady()) != ENDPOINT_READYWAIT_NoError)
- 1a08: 69 83 std Y+1, r22 ; 0x01
- 1a0a: 37 dc rcall .-1938 ; 0x127a <Endpoint_WaitUntilReady>
- 1a0c: 69 81 ldd r22, Y+1 ; 0x01
- 1a0e: 88 23 and r24, r24
- 1a10: 29 f4 brne .+10 ; 0x1a1c <CDC_Device_SendByte+0x52>
- * \param[in] Data Data to write into the the currently selected endpoint's FIFO buffer.
- */
- static inline void Endpoint_Write_8(const uint8_t Data) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_Write_8(const uint8_t Data)
- {
- UEDATX = Data;
- 1a12: 60 93 f1 00 sts 0x00F1, r22
- return ErrorCode;
- }
-
- Endpoint_Write_8(Data);
- return ENDPOINT_READYWAIT_NoError;
- 1a16: 80 e0 ldi r24, 0x00 ; 0
- 1a18: 01 c0 rjmp .+2 ; 0x1a1c <CDC_Device_SendByte+0x52>
-
-uint8_t CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
- const uint8_t Data)
-{
- if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
- return ENDPOINT_RWSTREAM_DeviceDisconnected;
- 1a1a: 82 e0 ldi r24, 0x02 ; 2
- return ErrorCode;
- }
-
- Endpoint_Write_8(Data);
- return ENDPOINT_READYWAIT_NoError;
-}
- 1a1c: 0f 90 pop r0
- 1a1e: cf 91 pop r28
- 1a20: df 91 pop r29
- 1a22: 08 95 ret
-
-00001a24 <CDC_Device_Flush>:
-
-uint8_t CDC_Device_Flush(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
-{
- 1a24: fc 01 movw r30, r24
- if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
- 1a26: 8e b3 in r24, 0x1e ; 30
- 1a28: 84 30 cpi r24, 0x04 ; 4
- 1a2a: 19 f5 brne .+70 ; 0x1a72 <CDC_Device_Flush+0x4e>
- 1a2c: 24 89 ldd r18, Z+20 ; 0x14
- 1a2e: 35 89 ldd r19, Z+21 ; 0x15
- 1a30: 46 89 ldd r20, Z+22 ; 0x16
- 1a32: 57 89 ldd r21, Z+23 ; 0x17
- 1a34: 21 15 cp r18, r1
- 1a36: 31 05 cpc r19, r1
- 1a38: 41 05 cpc r20, r1
- 1a3a: 51 05 cpc r21, r1
- 1a3c: d1 f0 breq .+52 ; 0x1a72 <CDC_Device_Flush+0x4e>
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 1a3e: 81 81 ldd r24, Z+1 ; 0x01
- 1a40: 8f 70 andi r24, 0x0F ; 15
- 1a42: 80 93 e9 00 sts 0x00E9, r24
- #if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
- return UEBCX;
- #elif defined(USB_SERIES_4_AVR)
- return (((uint16_t)UEBCHX << 8) | UEBCLX);
- #elif defined(USB_SERIES_2_AVR)
- return UEBCLX;
- 1a46: 80 91 f2 00 lds r24, 0x00F2
-
- uint8_t ErrorCode;
-
- Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
-
- if (!(Endpoint_BytesInEndpoint()))
- 1a4a: 88 23 and r24, r24
- 1a4c: a1 f0 breq .+40 ; 0x1a76 <CDC_Device_Flush+0x52>
- * on its direction.
- */
- static inline bool Endpoint_IsReadWriteAllowed(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsReadWriteAllowed(void)
- {
- return ((UEINTX & (1 << RWAL)) ? true : false);
- 1a4e: 90 91 e8 00 lds r25, 0x00E8
- */
- static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearIN(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
- 1a52: 80 91 e8 00 lds r24, 0x00E8
- 1a56: 8e 77 andi r24, 0x7E ; 126
- 1a58: 80 93 e8 00 sts 0x00E8, r24
-
- bool BankFull = !(Endpoint_IsReadWriteAllowed());
-
- Endpoint_ClearIN();
-
- if (BankFull)
- 1a5c: 95 fd sbrc r25, 5
- 1a5e: 0d c0 rjmp .+26 ; 0x1a7a <CDC_Device_Flush+0x56>
- {
- if ((ErrorCode = Endpoint_WaitUntilReady()) != ENDPOINT_READYWAIT_NoError)
- 1a60: 0c dc rcall .-2024 ; 0x127a <Endpoint_WaitUntilReady>
- 1a62: 88 23 and r24, r24
- 1a64: 59 f4 brne .+22 ; 0x1a7c <CDC_Device_Flush+0x58>
- 1a66: 90 91 e8 00 lds r25, 0x00E8
- 1a6a: 9e 77 andi r25, 0x7E ; 126
- 1a6c: 90 93 e8 00 sts 0x00E8, r25
- 1a70: 08 95 ret
-}
-
-uint8_t CDC_Device_Flush(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
-{
- if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
- return ENDPOINT_RWSTREAM_DeviceDisconnected;
- 1a72: 82 e0 ldi r24, 0x02 ; 2
- 1a74: 08 95 ret
- uint8_t ErrorCode;
-
- Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
-
- if (!(Endpoint_BytesInEndpoint()))
- return ENDPOINT_READYWAIT_NoError;
- 1a76: 80 e0 ldi r24, 0x00 ; 0
- 1a78: 08 95 ret
- return ErrorCode;
-
- Endpoint_ClearIN();
- }
-
- return ENDPOINT_READYWAIT_NoError;
- 1a7a: 80 e0 ldi r24, 0x00 ; 0
-}
- 1a7c: 08 95 ret
-
-00001a7e <CDC_Device_USBTask>:
- return true;
-}
-
-void CDC_Device_USBTask(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
-{
- if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
- 1a7e: 2e b3 in r18, 0x1e ; 30
- 1a80: 24 30 cpi r18, 0x04 ; 4
- 1a82: 99 f4 brne .+38 ; 0x1aaa <CDC_Device_USBTask+0x2c>
- 1a84: fc 01 movw r30, r24
- 1a86: 24 89 ldd r18, Z+20 ; 0x14
- 1a88: 35 89 ldd r19, Z+21 ; 0x15
- 1a8a: 46 89 ldd r20, Z+22 ; 0x16
- 1a8c: 57 89 ldd r21, Z+23 ; 0x17
- 1a8e: 21 15 cp r18, r1
- 1a90: 31 05 cpc r19, r1
- 1a92: 41 05 cpc r20, r1
- 1a94: 51 05 cpc r21, r1
- 1a96: 49 f0 breq .+18 ; 0x1aaa <CDC_Device_USBTask+0x2c>
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 1a98: 21 81 ldd r18, Z+1 ; 0x01
- 1a9a: 2f 70 andi r18, 0x0F ; 15
- 1a9c: 20 93 e9 00 sts 0x00E9, r18
- * \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
- */
- static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsINReady(void)
- {
- return ((UEINTX & (1 << TXINI)) ? true : false);
- 1aa0: 20 91 e8 00 lds r18, 0x00E8
- return;
-
- #if !defined(NO_CLASS_DRIVER_AUTOFLUSH)
- Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
-
- if (Endpoint_IsINReady())
- 1aa4: 20 ff sbrs r18, 0
- 1aa6: 01 c0 rjmp .+2 ; 0x1aaa <CDC_Device_USBTask+0x2c>
- CDC_Device_Flush(CDCInterfaceInfo);
- 1aa8: bd cf rjmp .-134 ; 0x1a24 <CDC_Device_Flush>
- 1aaa: 08 95 ret
-
-00001aac <CDC_Device_ReceiveByte>:
- return 0;
- }
-}
-
-int16_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
-{
- 1aac: fc 01 movw r30, r24
- if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
- 1aae: 8e b3 in r24, 0x1e ; 30
- 1ab0: 84 30 cpi r24, 0x04 ; 4
- 1ab2: 29 f5 brne .+74 ; 0x1afe <CDC_Device_ReceiveByte+0x52>
- 1ab4: 24 89 ldd r18, Z+20 ; 0x14
- 1ab6: 35 89 ldd r19, Z+21 ; 0x15
- 1ab8: 46 89 ldd r20, Z+22 ; 0x16
- 1aba: 57 89 ldd r21, Z+23 ; 0x17
- 1abc: 21 15 cp r18, r1
- 1abe: 31 05 cpc r19, r1
- 1ac0: 41 05 cpc r20, r1
- 1ac2: 51 05 cpc r21, r1
- 1ac4: e1 f0 breq .+56 ; 0x1afe <CDC_Device_ReceiveByte+0x52>
- */
- static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_SelectEndpoint(const uint8_t Address)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UENUM = (Address & ENDPOINT_EPNUM_MASK);
- 1ac6: 86 81 ldd r24, Z+6 ; 0x06
- 1ac8: 8f 70 andi r24, 0x0F ; 15
- 1aca: 80 93 e9 00 sts 0x00E9, r24
- * \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
- */
- static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool Endpoint_IsOUTReceived(void)
- {
- return ((UEINTX & (1 << RXOUTI)) ? true : false);
- 1ace: 80 91 e8 00 lds r24, 0x00E8
-
- int16_t ReceivedByte = -1;
-
- Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataOUTEndpoint.Address);
-
- if (Endpoint_IsOUTReceived())
- 1ad2: 82 ff sbrs r24, 2
- 1ad4: 14 c0 rjmp .+40 ; 0x1afe <CDC_Device_ReceiveByte+0x52>
- #if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
- return UEBCX;
- #elif defined(USB_SERIES_4_AVR)
- return (((uint16_t)UEBCHX << 8) | UEBCLX);
- #elif defined(USB_SERIES_2_AVR)
- return UEBCLX;
- 1ad6: 80 91 f2 00 lds r24, 0x00F2
- {
- if (Endpoint_BytesInEndpoint())
- 1ada: 88 23 and r24, r24
- 1adc: 21 f0 breq .+8 ; 0x1ae6 <CDC_Device_ReceiveByte+0x3a>
- * \return Next byte in the currently selected endpoint's FIFO buffer.
- */
- static inline uint8_t Endpoint_Read_8(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline uint8_t Endpoint_Read_8(void)
- {
- return UEDATX;
- 1ade: 20 91 f1 00 lds r18, 0x00F1
- ReceivedByte = Endpoint_Read_8();
- 1ae2: 30 e0 ldi r19, 0x00 ; 0
- 1ae4: 02 c0 rjmp .+4 ; 0x1aea <CDC_Device_ReceiveByte+0x3e>
-int16_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
-{
- if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
- return -1;
-
- int16_t ReceivedByte = -1;
- 1ae6: 2f ef ldi r18, 0xFF ; 255
- 1ae8: 3f ef ldi r19, 0xFF ; 255
- #if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
- return UEBCX;
- #elif defined(USB_SERIES_4_AVR)
- return (((uint16_t)UEBCHX << 8) | UEBCLX);
- #elif defined(USB_SERIES_2_AVR)
- return UEBCLX;
- 1aea: 80 91 f2 00 lds r24, 0x00F2
- if (Endpoint_IsOUTReceived())
- {
- if (Endpoint_BytesInEndpoint())
- ReceivedByte = Endpoint_Read_8();
-
- if (!(Endpoint_BytesInEndpoint()))
- 1aee: 88 23 and r24, r24
- 1af0: 41 f4 brne .+16 ; 0x1b02 <CDC_Device_ReceiveByte+0x56>
- */
- static inline void Endpoint_ClearOUT(void) ATTR_ALWAYS_INLINE;
- static inline void Endpoint_ClearOUT(void)
- {
- #if !defined(CONTROL_ONLY_DEVICE)
- UEINTX &= ~((1 << RXOUTI) | (1 << FIFOCON));
- 1af2: 80 91 e8 00 lds r24, 0x00E8
- 1af6: 8b 77 andi r24, 0x7B ; 123
- 1af8: 80 93 e8 00 sts 0x00E8, r24
- 1afc: 02 c0 rjmp .+4 ; 0x1b02 <CDC_Device_ReceiveByte+0x56>
-int16_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
-{
- if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
- return -1;
-
- int16_t ReceivedByte = -1;
- 1afe: 2f ef ldi r18, 0xFF ; 255
- 1b00: 3f ef ldi r19, 0xFF ; 255
- if (!(Endpoint_BytesInEndpoint()))
- Endpoint_ClearOUT();
- }
-
- return ReceivedByte;
-}
- 1b02: c9 01 movw r24, r18
- 1b04: 08 95 ret
-
-00001b06 <CDC_Device_Event_Stub>:
-#endif
-
-void CDC_Device_Event_Stub(void)
-{
-
-}
- 1b06: 08 95 ret
-
-00001b08 <__subsf3>:
- 1b08: 50 58 subi r21, 0x80 ; 128
-
-00001b0a <__addsf3>:
- 1b0a: bb 27 eor r27, r27
- 1b0c: aa 27 eor r26, r26
- 1b0e: 0e d0 rcall .+28 ; 0x1b2c <__addsf3x>
- 1b10: 70 c1 rjmp .+736 ; 0x1df2 <__fp_round>
- 1b12: 61 d1 rcall .+706 ; 0x1dd6 <__fp_pscA>
- 1b14: 30 f0 brcs .+12 ; 0x1b22 <__addsf3+0x18>
- 1b16: 66 d1 rcall .+716 ; 0x1de4 <__fp_pscB>
- 1b18: 20 f0 brcs .+8 ; 0x1b22 <__addsf3+0x18>
- 1b1a: 31 f4 brne .+12 ; 0x1b28 <__addsf3+0x1e>
- 1b1c: 9f 3f cpi r25, 0xFF ; 255
- 1b1e: 11 f4 brne .+4 ; 0x1b24 <__addsf3+0x1a>
- 1b20: 1e f4 brtc .+6 ; 0x1b28 <__addsf3+0x1e>
- 1b22: 56 c1 rjmp .+684 ; 0x1dd0 <__fp_nan>
- 1b24: 0e f4 brtc .+2 ; 0x1b28 <__addsf3+0x1e>
- 1b26: e0 95 com r30
- 1b28: e7 fb bst r30, 7
- 1b2a: 4c c1 rjmp .+664 ; 0x1dc4 <__fp_inf>
-
-00001b2c <__addsf3x>:
- 1b2c: e9 2f mov r30, r25
- 1b2e: 72 d1 rcall .+740 ; 0x1e14 <__fp_split3>
- 1b30: 80 f3 brcs .-32 ; 0x1b12 <__addsf3+0x8>
- 1b32: ba 17 cp r27, r26
- 1b34: 62 07 cpc r22, r18
- 1b36: 73 07 cpc r23, r19
- 1b38: 84 07 cpc r24, r20
- 1b3a: 95 07 cpc r25, r21
- 1b3c: 18 f0 brcs .+6 ; 0x1b44 <__addsf3x+0x18>
- 1b3e: 71 f4 brne .+28 ; 0x1b5c <__addsf3x+0x30>
- 1b40: 9e f5 brtc .+102 ; 0x1ba8 <__addsf3x+0x7c>
- 1b42: 8a c1 rjmp .+788 ; 0x1e58 <__fp_zero>
- 1b44: 0e f4 brtc .+2 ; 0x1b48 <__addsf3x+0x1c>
- 1b46: e0 95 com r30
- 1b48: 0b 2e mov r0, r27
- 1b4a: ba 2f mov r27, r26
- 1b4c: a0 2d mov r26, r0
- 1b4e: 0b 01 movw r0, r22
- 1b50: b9 01 movw r22, r18
- 1b52: 90 01 movw r18, r0
- 1b54: 0c 01 movw r0, r24
- 1b56: ca 01 movw r24, r20
- 1b58: a0 01 movw r20, r0
- 1b5a: 11 24 eor r1, r1
- 1b5c: ff 27 eor r31, r31
- 1b5e: 59 1b sub r21, r25
- 1b60: 99 f0 breq .+38 ; 0x1b88 <__addsf3x+0x5c>
- 1b62: 59 3f cpi r21, 0xF9 ; 249
- 1b64: 50 f4 brcc .+20 ; 0x1b7a <__addsf3x+0x4e>
- 1b66: 50 3e cpi r21, 0xE0 ; 224
- 1b68: 68 f1 brcs .+90 ; 0x1bc4 <__addsf3x+0x98>
- 1b6a: 1a 16 cp r1, r26
- 1b6c: f0 40 sbci r31, 0x00 ; 0
- 1b6e: a2 2f mov r26, r18
- 1b70: 23 2f mov r18, r19
- 1b72: 34 2f mov r19, r20
- 1b74: 44 27 eor r20, r20
- 1b76: 58 5f subi r21, 0xF8 ; 248
- 1b78: f3 cf rjmp .-26 ; 0x1b60 <__addsf3x+0x34>
- 1b7a: 46 95 lsr r20
- 1b7c: 37 95 ror r19
- 1b7e: 27 95 ror r18
- 1b80: a7 95 ror r26
- 1b82: f0 40 sbci r31, 0x00 ; 0
- 1b84: 53 95 inc r21
- 1b86: c9 f7 brne .-14 ; 0x1b7a <__addsf3x+0x4e>
- 1b88: 7e f4 brtc .+30 ; 0x1ba8 <__addsf3x+0x7c>
- 1b8a: 1f 16 cp r1, r31
- 1b8c: ba 0b sbc r27, r26
- 1b8e: 62 0b sbc r22, r18
- 1b90: 73 0b sbc r23, r19
- 1b92: 84 0b sbc r24, r20
- 1b94: ba f0 brmi .+46 ; 0x1bc4 <__addsf3x+0x98>
- 1b96: 91 50 subi r25, 0x01 ; 1
- 1b98: a1 f0 breq .+40 ; 0x1bc2 <__addsf3x+0x96>
- 1b9a: ff 0f add r31, r31
- 1b9c: bb 1f adc r27, r27
- 1b9e: 66 1f adc r22, r22
- 1ba0: 77 1f adc r23, r23
- 1ba2: 88 1f adc r24, r24
- 1ba4: c2 f7 brpl .-16 ; 0x1b96 <__addsf3x+0x6a>
- 1ba6: 0e c0 rjmp .+28 ; 0x1bc4 <__addsf3x+0x98>
- 1ba8: ba 0f add r27, r26
- 1baa: 62 1f adc r22, r18
- 1bac: 73 1f adc r23, r19
- 1bae: 84 1f adc r24, r20
- 1bb0: 48 f4 brcc .+18 ; 0x1bc4 <__addsf3x+0x98>
- 1bb2: 87 95 ror r24
- 1bb4: 77 95 ror r23
- 1bb6: 67 95 ror r22
- 1bb8: b7 95 ror r27
- 1bba: f7 95 ror r31
- 1bbc: 9e 3f cpi r25, 0xFE ; 254
- 1bbe: 08 f0 brcs .+2 ; 0x1bc2 <__addsf3x+0x96>
- 1bc0: b3 cf rjmp .-154 ; 0x1b28 <__addsf3+0x1e>
- 1bc2: 93 95 inc r25
- 1bc4: 88 0f add r24, r24
- 1bc6: 08 f0 brcs .+2 ; 0x1bca <__addsf3x+0x9e>
- 1bc8: 99 27 eor r25, r25
- 1bca: ee 0f add r30, r30
- 1bcc: 97 95 ror r25
- 1bce: 87 95 ror r24
- 1bd0: 08 95 ret
-
-00001bd2 <__cmpsf2>:
- 1bd2: d4 d0 rcall .+424 ; 0x1d7c <__fp_cmp>
- 1bd4: 08 f4 brcc .+2 ; 0x1bd8 <__cmpsf2+0x6>
- 1bd6: 81 e0 ldi r24, 0x01 ; 1
- 1bd8: 08 95 ret
-
-00001bda <__divsf3>:
- 1bda: 0c d0 rcall .+24 ; 0x1bf4 <__divsf3x>
- 1bdc: 0a c1 rjmp .+532 ; 0x1df2 <__fp_round>
- 1bde: 02 d1 rcall .+516 ; 0x1de4 <__fp_pscB>
- 1be0: 40 f0 brcs .+16 ; 0x1bf2 <__divsf3+0x18>
- 1be2: f9 d0 rcall .+498 ; 0x1dd6 <__fp_pscA>
- 1be4: 30 f0 brcs .+12 ; 0x1bf2 <__divsf3+0x18>
- 1be6: 21 f4 brne .+8 ; 0x1bf0 <__divsf3+0x16>
- 1be8: 5f 3f cpi r21, 0xFF ; 255
- 1bea: 19 f0 breq .+6 ; 0x1bf2 <__divsf3+0x18>
- 1bec: eb c0 rjmp .+470 ; 0x1dc4 <__fp_inf>
- 1bee: 51 11 cpse r21, r1
- 1bf0: 34 c1 rjmp .+616 ; 0x1e5a <__fp_szero>
- 1bf2: ee c0 rjmp .+476 ; 0x1dd0 <__fp_nan>
-
-00001bf4 <__divsf3x>:
- 1bf4: 0f d1 rcall .+542 ; 0x1e14 <__fp_split3>
- 1bf6: 98 f3 brcs .-26 ; 0x1bde <__divsf3+0x4>
-
-00001bf8 <__divsf3_pse>:
- 1bf8: 99 23 and r25, r25
- 1bfa: c9 f3 breq .-14 ; 0x1bee <__divsf3+0x14>
- 1bfc: 55 23 and r21, r21
- 1bfe: b1 f3 breq .-20 ; 0x1bec <__divsf3+0x12>
- 1c00: 95 1b sub r25, r21
- 1c02: 55 0b sbc r21, r21
- 1c04: bb 27 eor r27, r27
- 1c06: aa 27 eor r26, r26
- 1c08: 62 17 cp r22, r18
- 1c0a: 73 07 cpc r23, r19
- 1c0c: 84 07 cpc r24, r20
- 1c0e: 38 f0 brcs .+14 ; 0x1c1e <__divsf3_pse+0x26>
- 1c10: 9f 5f subi r25, 0xFF ; 255
- 1c12: 5f 4f sbci r21, 0xFF ; 255
- 1c14: 22 0f add r18, r18
- 1c16: 33 1f adc r19, r19
- 1c18: 44 1f adc r20, r20
- 1c1a: aa 1f adc r26, r26
- 1c1c: a9 f3 breq .-22 ; 0x1c08 <__divsf3_pse+0x10>
- 1c1e: 33 d0 rcall .+102 ; 0x1c86 <__divsf3_pse+0x8e>
- 1c20: 0e 2e mov r0, r30
- 1c22: 3a f0 brmi .+14 ; 0x1c32 <__divsf3_pse+0x3a>
- 1c24: e0 e8 ldi r30, 0x80 ; 128
- 1c26: 30 d0 rcall .+96 ; 0x1c88 <__divsf3_pse+0x90>
- 1c28: 91 50 subi r25, 0x01 ; 1
- 1c2a: 50 40 sbci r21, 0x00 ; 0
- 1c2c: e6 95 lsr r30
- 1c2e: 00 1c adc r0, r0
- 1c30: ca f7 brpl .-14 ; 0x1c24 <__divsf3_pse+0x2c>
- 1c32: 29 d0 rcall .+82 ; 0x1c86 <__divsf3_pse+0x8e>
- 1c34: fe 2f mov r31, r30
- 1c36: 27 d0 rcall .+78 ; 0x1c86 <__divsf3_pse+0x8e>
- 1c38: 66 0f add r22, r22
- 1c3a: 77 1f adc r23, r23
- 1c3c: 88 1f adc r24, r24
- 1c3e: bb 1f adc r27, r27
- 1c40: 26 17 cp r18, r22
- 1c42: 37 07 cpc r19, r23
- 1c44: 48 07 cpc r20, r24
- 1c46: ab 07 cpc r26, r27
- 1c48: b0 e8 ldi r27, 0x80 ; 128
- 1c4a: 09 f0 breq .+2 ; 0x1c4e <__divsf3_pse+0x56>
- 1c4c: bb 0b sbc r27, r27
- 1c4e: 80 2d mov r24, r0
- 1c50: bf 01 movw r22, r30
- 1c52: ff 27 eor r31, r31
- 1c54: 93 58 subi r25, 0x83 ; 131
- 1c56: 5f 4f sbci r21, 0xFF ; 255
- 1c58: 2a f0 brmi .+10 ; 0x1c64 <__divsf3_pse+0x6c>
- 1c5a: 9e 3f cpi r25, 0xFE ; 254
- 1c5c: 51 05 cpc r21, r1
- 1c5e: 68 f0 brcs .+26 ; 0x1c7a <__divsf3_pse+0x82>
- 1c60: b1 c0 rjmp .+354 ; 0x1dc4 <__fp_inf>
- 1c62: fb c0 rjmp .+502 ; 0x1e5a <__fp_szero>
- 1c64: 5f 3f cpi r21, 0xFF ; 255
- 1c66: ec f3 brlt .-6 ; 0x1c62 <__divsf3_pse+0x6a>
- 1c68: 98 3e cpi r25, 0xE8 ; 232
- 1c6a: dc f3 brlt .-10 ; 0x1c62 <__divsf3_pse+0x6a>
- 1c6c: 86 95 lsr r24
- 1c6e: 77 95 ror r23
- 1c70: 67 95 ror r22
- 1c72: b7 95 ror r27
- 1c74: f7 95 ror r31
- 1c76: 9f 5f subi r25, 0xFF ; 255
- 1c78: c9 f7 brne .-14 ; 0x1c6c <__divsf3_pse+0x74>
- 1c7a: 88 0f add r24, r24
- 1c7c: 91 1d adc r25, r1
- 1c7e: 96 95 lsr r25
- 1c80: 87 95 ror r24
- 1c82: 97 f9 bld r25, 7
- 1c84: 08 95 ret
- 1c86: e1 e0 ldi r30, 0x01 ; 1
- 1c88: 66 0f add r22, r22
- 1c8a: 77 1f adc r23, r23
- 1c8c: 88 1f adc r24, r24
- 1c8e: bb 1f adc r27, r27
- 1c90: 62 17 cp r22, r18
- 1c92: 73 07 cpc r23, r19
- 1c94: 84 07 cpc r24, r20
- 1c96: ba 07 cpc r27, r26
- 1c98: 20 f0 brcs .+8 ; 0x1ca2 <__divsf3_pse+0xaa>
- 1c9a: 62 1b sub r22, r18
- 1c9c: 73 0b sbc r23, r19
- 1c9e: 84 0b sbc r24, r20
- 1ca0: ba 0b sbc r27, r26
- 1ca2: ee 1f adc r30, r30
- 1ca4: 88 f7 brcc .-30 ; 0x1c88 <__divsf3_pse+0x90>
- 1ca6: e0 95 com r30
- 1ca8: 08 95 ret
-
-00001caa <__fixunssfsi>:
- 1caa: bc d0 rcall .+376 ; 0x1e24 <__fp_splitA>
- 1cac: 88 f0 brcs .+34 ; 0x1cd0 <__fixunssfsi+0x26>
- 1cae: 9f 57 subi r25, 0x7F ; 127
- 1cb0: 90 f0 brcs .+36 ; 0x1cd6 <__fixunssfsi+0x2c>
- 1cb2: b9 2f mov r27, r25
- 1cb4: 99 27 eor r25, r25
- 1cb6: b7 51 subi r27, 0x17 ; 23
- 1cb8: a0 f0 brcs .+40 ; 0x1ce2 <__fixunssfsi+0x38>
- 1cba: d1 f0 breq .+52 ; 0x1cf0 <__fixunssfsi+0x46>
- 1cbc: 66 0f add r22, r22
- 1cbe: 77 1f adc r23, r23
- 1cc0: 88 1f adc r24, r24
- 1cc2: 99 1f adc r25, r25
- 1cc4: 1a f0 brmi .+6 ; 0x1ccc <__fixunssfsi+0x22>
- 1cc6: ba 95 dec r27
- 1cc8: c9 f7 brne .-14 ; 0x1cbc <__fixunssfsi+0x12>
- 1cca: 12 c0 rjmp .+36 ; 0x1cf0 <__fixunssfsi+0x46>
- 1ccc: b1 30 cpi r27, 0x01 ; 1
- 1cce: 81 f0 breq .+32 ; 0x1cf0 <__fixunssfsi+0x46>
- 1cd0: c3 d0 rcall .+390 ; 0x1e58 <__fp_zero>
- 1cd2: b1 e0 ldi r27, 0x01 ; 1
- 1cd4: 08 95 ret
- 1cd6: c0 c0 rjmp .+384 ; 0x1e58 <__fp_zero>
- 1cd8: 67 2f mov r22, r23
- 1cda: 78 2f mov r23, r24
- 1cdc: 88 27 eor r24, r24
- 1cde: b8 5f subi r27, 0xF8 ; 248
- 1ce0: 39 f0 breq .+14 ; 0x1cf0 <__fixunssfsi+0x46>
- 1ce2: b9 3f cpi r27, 0xF9 ; 249
- 1ce4: cc f3 brlt .-14 ; 0x1cd8 <__fixunssfsi+0x2e>
- 1ce6: 86 95 lsr r24
- 1ce8: 77 95 ror r23
- 1cea: 67 95 ror r22
- 1cec: b3 95 inc r27
- 1cee: d9 f7 brne .-10 ; 0x1ce6 <__fixunssfsi+0x3c>
- 1cf0: 3e f4 brtc .+14 ; 0x1d00 <__fixunssfsi+0x56>
- 1cf2: 90 95 com r25
- 1cf4: 80 95 com r24
- 1cf6: 70 95 com r23
- 1cf8: 61 95 neg r22
- 1cfa: 7f 4f sbci r23, 0xFF ; 255
- 1cfc: 8f 4f sbci r24, 0xFF ; 255
- 1cfe: 9f 4f sbci r25, 0xFF ; 255
- 1d00: 08 95 ret
-
-00001d02 <__floatunsisf>:
- 1d02: e8 94 clt
- 1d04: 09 c0 rjmp .+18 ; 0x1d18 <__floatsisf+0x12>
-
-00001d06 <__floatsisf>:
- 1d06: 97 fb bst r25, 7
- 1d08: 3e f4 brtc .+14 ; 0x1d18 <__floatsisf+0x12>
- 1d0a: 90 95 com r25
- 1d0c: 80 95 com r24
- 1d0e: 70 95 com r23
- 1d10: 61 95 neg r22
- 1d12: 7f 4f sbci r23, 0xFF ; 255
- 1d14: 8f 4f sbci r24, 0xFF ; 255
- 1d16: 9f 4f sbci r25, 0xFF ; 255
- 1d18: 99 23 and r25, r25
- 1d1a: a9 f0 breq .+42 ; 0x1d46 <__floatsisf+0x40>
- 1d1c: f9 2f mov r31, r25
- 1d1e: 96 e9 ldi r25, 0x96 ; 150
- 1d20: bb 27 eor r27, r27
- 1d22: 93 95 inc r25
- 1d24: f6 95 lsr r31
- 1d26: 87 95 ror r24
- 1d28: 77 95 ror r23
- 1d2a: 67 95 ror r22
- 1d2c: b7 95 ror r27
- 1d2e: f1 11 cpse r31, r1
- 1d30: f8 cf rjmp .-16 ; 0x1d22 <__floatsisf+0x1c>
- 1d32: fa f4 brpl .+62 ; 0x1d72 <__floatsisf+0x6c>
- 1d34: bb 0f add r27, r27
- 1d36: 11 f4 brne .+4 ; 0x1d3c <__floatsisf+0x36>
- 1d38: 60 ff sbrs r22, 0
- 1d3a: 1b c0 rjmp .+54 ; 0x1d72 <__floatsisf+0x6c>
- 1d3c: 6f 5f subi r22, 0xFF ; 255
- 1d3e: 7f 4f sbci r23, 0xFF ; 255
- 1d40: 8f 4f sbci r24, 0xFF ; 255
- 1d42: 9f 4f sbci r25, 0xFF ; 255
- 1d44: 16 c0 rjmp .+44 ; 0x1d72 <__floatsisf+0x6c>
- 1d46: 88 23 and r24, r24
- 1d48: 11 f0 breq .+4 ; 0x1d4e <__floatsisf+0x48>
- 1d4a: 96 e9 ldi r25, 0x96 ; 150
- 1d4c: 11 c0 rjmp .+34 ; 0x1d70 <__floatsisf+0x6a>
- 1d4e: 77 23 and r23, r23
- 1d50: 21 f0 breq .+8 ; 0x1d5a <__floatsisf+0x54>
- 1d52: 9e e8 ldi r25, 0x8E ; 142
- 1d54: 87 2f mov r24, r23
- 1d56: 76 2f mov r23, r22
- 1d58: 05 c0 rjmp .+10 ; 0x1d64 <__floatsisf+0x5e>
- 1d5a: 66 23 and r22, r22
- 1d5c: 71 f0 breq .+28 ; 0x1d7a <__floatsisf+0x74>
- 1d5e: 96 e8 ldi r25, 0x86 ; 134
- 1d60: 86 2f mov r24, r22
- 1d62: 70 e0 ldi r23, 0x00 ; 0
- 1d64: 60 e0 ldi r22, 0x00 ; 0
- 1d66: 2a f0 brmi .+10 ; 0x1d72 <__floatsisf+0x6c>
- 1d68: 9a 95 dec r25
- 1d6a: 66 0f add r22, r22
- 1d6c: 77 1f adc r23, r23
- 1d6e: 88 1f adc r24, r24
- 1d70: da f7 brpl .-10 ; 0x1d68 <__floatsisf+0x62>
- 1d72: 88 0f add r24, r24
- 1d74: 96 95 lsr r25
- 1d76: 87 95 ror r24
- 1d78: 97 f9 bld r25, 7
- 1d7a: 08 95 ret
-
-00001d7c <__fp_cmp>:
- 1d7c: 99 0f add r25, r25
- 1d7e: 00 08 sbc r0, r0
- 1d80: 55 0f add r21, r21
- 1d82: aa 0b sbc r26, r26
- 1d84: e0 e8 ldi r30, 0x80 ; 128
- 1d86: fe ef ldi r31, 0xFE ; 254
- 1d88: 16 16 cp r1, r22
- 1d8a: 17 06 cpc r1, r23
- 1d8c: e8 07 cpc r30, r24
- 1d8e: f9 07 cpc r31, r25
- 1d90: c0 f0 brcs .+48 ; 0x1dc2 <__fp_cmp+0x46>
- 1d92: 12 16 cp r1, r18
- 1d94: 13 06 cpc r1, r19
- 1d96: e4 07 cpc r30, r20
- 1d98: f5 07 cpc r31, r21
- 1d9a: 98 f0 brcs .+38 ; 0x1dc2 <__fp_cmp+0x46>
- 1d9c: 62 1b sub r22, r18
- 1d9e: 73 0b sbc r23, r19
- 1da0: 84 0b sbc r24, r20
- 1da2: 95 0b sbc r25, r21
- 1da4: 39 f4 brne .+14 ; 0x1db4 <__fp_cmp+0x38>
- 1da6: 0a 26 eor r0, r26
- 1da8: 61 f0 breq .+24 ; 0x1dc2 <__fp_cmp+0x46>
- 1daa: 23 2b or r18, r19
- 1dac: 24 2b or r18, r20
- 1dae: 25 2b or r18, r21
- 1db0: 21 f4 brne .+8 ; 0x1dba <__fp_cmp+0x3e>
- 1db2: 08 95 ret
- 1db4: 0a 26 eor r0, r26
- 1db6: 09 f4 brne .+2 ; 0x1dba <__fp_cmp+0x3e>
- 1db8: a1 40 sbci r26, 0x01 ; 1
- 1dba: a6 95 lsr r26
- 1dbc: 8f ef ldi r24, 0xFF ; 255
- 1dbe: 81 1d adc r24, r1
- 1dc0: 81 1d adc r24, r1
- 1dc2: 08 95 ret
-
-00001dc4 <__fp_inf>:
- 1dc4: 97 f9 bld r25, 7
- 1dc6: 9f 67 ori r25, 0x7F ; 127
- 1dc8: 80 e8 ldi r24, 0x80 ; 128
- 1dca: 70 e0 ldi r23, 0x00 ; 0
- 1dcc: 60 e0 ldi r22, 0x00 ; 0
- 1dce: 08 95 ret
-
-00001dd0 <__fp_nan>:
- 1dd0: 9f ef ldi r25, 0xFF ; 255
- 1dd2: 80 ec ldi r24, 0xC0 ; 192
- 1dd4: 08 95 ret
-
-00001dd6 <__fp_pscA>:
- 1dd6: 00 24 eor r0, r0
- 1dd8: 0a 94 dec r0
- 1dda: 16 16 cp r1, r22
- 1ddc: 17 06 cpc r1, r23
- 1dde: 18 06 cpc r1, r24
- 1de0: 09 06 cpc r0, r25
- 1de2: 08 95 ret
-
-00001de4 <__fp_pscB>:
- 1de4: 00 24 eor r0, r0
- 1de6: 0a 94 dec r0
- 1de8: 12 16 cp r1, r18
- 1dea: 13 06 cpc r1, r19
- 1dec: 14 06 cpc r1, r20
- 1dee: 05 06 cpc r0, r21
- 1df0: 08 95 ret
-
-00001df2 <__fp_round>:
- 1df2: 09 2e mov r0, r25
- 1df4: 03 94 inc r0
- 1df6: 00 0c add r0, r0
- 1df8: 11 f4 brne .+4 ; 0x1dfe <__fp_round+0xc>
- 1dfa: 88 23 and r24, r24
- 1dfc: 52 f0 brmi .+20 ; 0x1e12 <__fp_round+0x20>
- 1dfe: bb 0f add r27, r27
- 1e00: 40 f4 brcc .+16 ; 0x1e12 <__fp_round+0x20>
- 1e02: bf 2b or r27, r31
- 1e04: 11 f4 brne .+4 ; 0x1e0a <__fp_round+0x18>
- 1e06: 60 ff sbrs r22, 0
- 1e08: 04 c0 rjmp .+8 ; 0x1e12 <__fp_round+0x20>
- 1e0a: 6f 5f subi r22, 0xFF ; 255
- 1e0c: 7f 4f sbci r23, 0xFF ; 255
- 1e0e: 8f 4f sbci r24, 0xFF ; 255
- 1e10: 9f 4f sbci r25, 0xFF ; 255
- 1e12: 08 95 ret
-
-00001e14 <__fp_split3>:
- 1e14: 57 fd sbrc r21, 7
- 1e16: 90 58 subi r25, 0x80 ; 128
- 1e18: 44 0f add r20, r20
- 1e1a: 55 1f adc r21, r21
- 1e1c: 59 f0 breq .+22 ; 0x1e34 <__fp_splitA+0x10>
- 1e1e: 5f 3f cpi r21, 0xFF ; 255
- 1e20: 71 f0 breq .+28 ; 0x1e3e <__fp_splitA+0x1a>
- 1e22: 47 95 ror r20
-
-00001e24 <__fp_splitA>:
- 1e24: 88 0f add r24, r24
- 1e26: 97 fb bst r25, 7
- 1e28: 99 1f adc r25, r25
- 1e2a: 61 f0 breq .+24 ; 0x1e44 <__fp_splitA+0x20>
- 1e2c: 9f 3f cpi r25, 0xFF ; 255
- 1e2e: 79 f0 breq .+30 ; 0x1e4e <__fp_splitA+0x2a>
- 1e30: 87 95 ror r24
- 1e32: 08 95 ret
- 1e34: 12 16 cp r1, r18
- 1e36: 13 06 cpc r1, r19
- 1e38: 14 06 cpc r1, r20
- 1e3a: 55 1f adc r21, r21
- 1e3c: f2 cf rjmp .-28 ; 0x1e22 <__fp_split3+0xe>
- 1e3e: 46 95 lsr r20
- 1e40: f1 df rcall .-30 ; 0x1e24 <__fp_splitA>
- 1e42: 08 c0 rjmp .+16 ; 0x1e54 <__fp_splitA+0x30>
- 1e44: 16 16 cp r1, r22
- 1e46: 17 06 cpc r1, r23
- 1e48: 18 06 cpc r1, r24
- 1e4a: 99 1f adc r25, r25
- 1e4c: f1 cf rjmp .-30 ; 0x1e30 <__fp_splitA+0xc>
- 1e4e: 86 95 lsr r24
- 1e50: 71 05 cpc r23, r1
- 1e52: 61 05 cpc r22, r1
- 1e54: 08 94 sec
- 1e56: 08 95 ret
-
-00001e58 <__fp_zero>:
- 1e58: e8 94 clt
-
-00001e5a <__fp_szero>:
- 1e5a: bb 27 eor r27, r27
- 1e5c: 66 27 eor r22, r22
- 1e5e: 77 27 eor r23, r23
- 1e60: cb 01 movw r24, r22
- 1e62: 97 f9 bld r25, 7
- 1e64: 08 95 ret
-
-00001e66 <__gesf2>:
- 1e66: 8a df rcall .-236 ; 0x1d7c <__fp_cmp>
- 1e68: 08 f4 brcc .+2 ; 0x1e6c <__gesf2+0x6>
- 1e6a: 8f ef ldi r24, 0xFF ; 255
- 1e6c: 08 95 ret
-
-00001e6e <__mulhi3>:
- 1e6e: 55 27 eor r21, r21
- 1e70: 00 24 eor r0, r0
-
-00001e72 <__mulhi3_loop>:
- 1e72: 80 ff sbrs r24, 0
- 1e74: 02 c0 rjmp .+4 ; 0x1e7a <__mulhi3_skip1>
- 1e76: 06 0e add r0, r22
- 1e78: 57 1f adc r21, r23
-
-00001e7a <__mulhi3_skip1>:
- 1e7a: 66 0f add r22, r22
- 1e7c: 77 1f adc r23, r23
- 1e7e: 61 15 cp r22, r1
- 1e80: 71 05 cpc r23, r1
- 1e82: 21 f0 breq .+8 ; 0x1e8c <__mulhi3_exit>
- 1e84: 96 95 lsr r25
- 1e86: 87 95 ror r24
- 1e88: 00 97 sbiw r24, 0x00 ; 0
- 1e8a: 99 f7 brne .-26 ; 0x1e72 <__mulhi3_loop>
-
-00001e8c <__mulhi3_exit>:
- 1e8c: 95 2f mov r25, r21
- 1e8e: 80 2d mov r24, r0
- 1e90: 08 95 ret
-
-00001e92 <__udivmodhi4>:
- 1e92: aa 1b sub r26, r26
- 1e94: bb 1b sub r27, r27
- 1e96: 51 e1 ldi r21, 0x11 ; 17
- 1e98: 07 c0 rjmp .+14 ; 0x1ea8 <__udivmodhi4_ep>
-
-00001e9a <__udivmodhi4_loop>:
- 1e9a: aa 1f adc r26, r26
- 1e9c: bb 1f adc r27, r27
- 1e9e: a6 17 cp r26, r22
- 1ea0: b7 07 cpc r27, r23
- 1ea2: 10 f0 brcs .+4 ; 0x1ea8 <__udivmodhi4_ep>
- 1ea4: a6 1b sub r26, r22
- 1ea6: b7 0b sbc r27, r23
-
-00001ea8 <__udivmodhi4_ep>:
- 1ea8: 88 1f adc r24, r24
- 1eaa: 99 1f adc r25, r25
- 1eac: 5a 95 dec r21
- 1eae: a9 f7 brne .-22 ; 0x1e9a <__udivmodhi4_loop>
- 1eb0: 80 95 com r24
- 1eb2: 90 95 com r25
- 1eb4: bc 01 movw r22, r24
- 1eb6: cd 01 movw r24, r26
- 1eb8: 08 95 ret
-
-00001eba <__divmodhi4>:
- 1eba: 97 fb bst r25, 7
- 1ebc: 09 2e mov r0, r25
- 1ebe: 07 26 eor r0, r23
- 1ec0: 0a d0 rcall .+20 ; 0x1ed6 <__divmodhi4_neg1>
- 1ec2: 77 fd sbrc r23, 7
- 1ec4: 04 d0 rcall .+8 ; 0x1ece <__divmodhi4_neg2>
- 1ec6: e5 df rcall .-54 ; 0x1e92 <__udivmodhi4>
- 1ec8: 06 d0 rcall .+12 ; 0x1ed6 <__divmodhi4_neg1>
- 1eca: 00 20 and r0, r0
- 1ecc: 1a f4 brpl .+6 ; 0x1ed4 <__divmodhi4_exit>
-
-00001ece <__divmodhi4_neg2>:
- 1ece: 70 95 com r23
- 1ed0: 61 95 neg r22
- 1ed2: 7f 4f sbci r23, 0xFF ; 255
-
-00001ed4 <__divmodhi4_exit>:
- 1ed4: 08 95 ret
-
-00001ed6 <__divmodhi4_neg1>:
- 1ed6: f6 f7 brtc .-4 ; 0x1ed4 <__divmodhi4_exit>
- 1ed8: 90 95 com r25
- 1eda: 81 95 neg r24
- 1edc: 9f 4f sbci r25, 0xFF ; 255
- 1ede: 08 95 ret
-
-00001ee0 <__udivmodsi4>:
- 1ee0: a1 e2 ldi r26, 0x21 ; 33
- 1ee2: 1a 2e mov r1, r26
- 1ee4: aa 1b sub r26, r26
- 1ee6: bb 1b sub r27, r27
- 1ee8: fd 01 movw r30, r26
- 1eea: 0d c0 rjmp .+26 ; 0x1f06 <__udivmodsi4_ep>
-
-00001eec <__udivmodsi4_loop>:
- 1eec: aa 1f adc r26, r26
- 1eee: bb 1f adc r27, r27
- 1ef0: ee 1f adc r30, r30
- 1ef2: ff 1f adc r31, r31
- 1ef4: a2 17 cp r26, r18
- 1ef6: b3 07 cpc r27, r19
- 1ef8: e4 07 cpc r30, r20
- 1efa: f5 07 cpc r31, r21
- 1efc: 20 f0 brcs .+8 ; 0x1f06 <__udivmodsi4_ep>
- 1efe: a2 1b sub r26, r18
- 1f00: b3 0b sbc r27, r19
- 1f02: e4 0b sbc r30, r20
- 1f04: f5 0b sbc r31, r21
-
-00001f06 <__udivmodsi4_ep>:
- 1f06: 66 1f adc r22, r22
- 1f08: 77 1f adc r23, r23
- 1f0a: 88 1f adc r24, r24
- 1f0c: 99 1f adc r25, r25
- 1f0e: 1a 94 dec r1
- 1f10: 69 f7 brne .-38 ; 0x1eec <__udivmodsi4_loop>
- 1f12: 60 95 com r22
- 1f14: 70 95 com r23
- 1f16: 80 95 com r24
- 1f18: 90 95 com r25
- 1f1a: 9b 01 movw r18, r22
- 1f1c: ac 01 movw r20, r24
- 1f1e: bd 01 movw r22, r26
- 1f20: cf 01 movw r24, r30
- 1f22: 08 95 ret
-
-00001f24 <atoi>:
- 1f24: fc 01 movw r30, r24
- 1f26: 88 27 eor r24, r24
- 1f28: 99 27 eor r25, r25
- 1f2a: e8 94 clt
- 1f2c: 21 91 ld r18, Z+
- 1f2e: 20 32 cpi r18, 0x20 ; 32
- 1f30: e9 f3 breq .-6 ; 0x1f2c <atoi+0x8>
- 1f32: 29 30 cpi r18, 0x09 ; 9
- 1f34: 10 f0 brcs .+4 ; 0x1f3a <atoi+0x16>
- 1f36: 2e 30 cpi r18, 0x0E ; 14
- 1f38: c8 f3 brcs .-14 ; 0x1f2c <atoi+0x8>
- 1f3a: 2b 32 cpi r18, 0x2B ; 43
- 1f3c: 39 f0 breq .+14 ; 0x1f4c <atoi+0x28>
- 1f3e: 2d 32 cpi r18, 0x2D ; 45
- 1f40: 31 f4 brne .+12 ; 0x1f4e <atoi+0x2a>
- 1f42: 68 94 set
- 1f44: 03 c0 rjmp .+6 ; 0x1f4c <atoi+0x28>
- 1f46: 1a d0 rcall .+52 ; 0x1f7c <__mulhi_const_10>
- 1f48: 82 0f add r24, r18
- 1f4a: 91 1d adc r25, r1
- 1f4c: 21 91 ld r18, Z+
- 1f4e: 20 53 subi r18, 0x30 ; 48
- 1f50: 2a 30 cpi r18, 0x0A ; 10
- 1f52: c8 f3 brcs .-14 ; 0x1f46 <atoi+0x22>
- 1f54: 1e f4 brtc .+6 ; 0x1f5c <atoi+0x38>
- 1f56: 90 95 com r25
- 1f58: 81 95 neg r24
- 1f5a: 9f 4f sbci r25, 0xFF ; 255
- 1f5c: 08 95 ret
-
-00001f5e <strncpy>:
- 1f5e: fb 01 movw r30, r22
- 1f60: dc 01 movw r26, r24
- 1f62: 41 50 subi r20, 0x01 ; 1
- 1f64: 50 40 sbci r21, 0x00 ; 0
- 1f66: 48 f0 brcs .+18 ; 0x1f7a <strncpy+0x1c>
- 1f68: 01 90 ld r0, Z+
- 1f6a: 0d 92 st X+, r0
- 1f6c: 00 20 and r0, r0
- 1f6e: c9 f7 brne .-14 ; 0x1f62 <strncpy+0x4>
- 1f70: 01 c0 rjmp .+2 ; 0x1f74 <strncpy+0x16>
- 1f72: 1d 92 st X+, r1
- 1f74: 41 50 subi r20, 0x01 ; 1
- 1f76: 50 40 sbci r21, 0x00 ; 0
- 1f78: e0 f7 brcc .-8 ; 0x1f72 <strncpy+0x14>
- 1f7a: 08 95 ret
-
-00001f7c <__mulhi_const_10>:
- 1f7c: bc 01 movw r22, r24
- 1f7e: 88 0f add r24, r24
- 1f80: 99 1f adc r25, r25
- 1f82: 88 0f add r24, r24
- 1f84: 99 1f adc r25, r25
- 1f86: 86 0f add r24, r22
- 1f88: 97 1f adc r25, r23
- 1f8a: 88 0f add r24, r24
- 1f8c: 99 1f adc r25, r25
- 1f8e: 08 95 ret
-
-00001f90 <_exit>:
- 1f90: f8 94 cli
-
-00001f92 <__stop_program>:
- 1f92: ff cf rjmp .-2 ; 0x1f92 <__stop_program>
+++ /dev/null
-Archive member included because of file (symbol)
-
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o)
- USBtoSerial.o (__subsf3)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o) (__addsf3x)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
- USBtoSerial.o (__ltsf2)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3.o)
- USBtoSerial.o (__divsf3)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3.o) (__divsf3x)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fixunssfsi.o)
- USBtoSerial.o (__fixunssfsi)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(floatsisf.o)
- USBtoSerial.o (__floatunsisf)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_cmp.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o) (__fp_cmp)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_inf.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o) (__fp_inf)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_nan.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o) (__fp_nan)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscA.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o) (__fp_pscA)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscB.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o) (__fp_pscB)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_round.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o) (__fp_round)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_split3.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o) (__fp_split3)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_zero.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o) (__fp_zero)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(gesf2.o)
- USBtoSerial.o (__gtsf2)
-/usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_mulhi3.o)
- USBtoSerial.o (__mulhi3)
-/usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_mulsi3.o)
- USBtoSerial.o (__mulsi3)
-/usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodhi4.o)
- USBtoSerial.o (__udivmodhi4)
-/usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_divmodhi4.o)
- USBtoSerial.o (__divmodhi4)
-/usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodsi4.o)
- USBtoSerial.o (__udivmodsi4)
-/usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o (exit)
-/usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_copy_data.o)
- USBtoSerial.o (__do_copy_data)
-/usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_clear_bss.o)
- USBtoSerial.o (__do_clear_bss)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(atoi.o)
- USBtoSerial.o (atoi)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy_P.o)
- ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o (memcpy_P)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcmp.o)
- ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o (memcmp)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy.o)
- ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o (memcpy)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memset.o)
- ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o (memset)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(strncpy.o)
- USBtoSerial.o (strncpy)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(mul10.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(atoi.o) (__mulhi_const_10)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eerd_byte_atmega32u2.o)
- ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o (__eerd_byte_m32u2)
-/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eeupd_byte_atmega32u2.o)
- ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o (__eeupd_byte_m32u2)
-
-Allocating common symbols
-Common symbol size file
-
-adb_werte 0x9 USBtoSerial.o
-USB_IsInitialized 0x1 ../../LUFA/Drivers/USB/Core/USBTask.o
-USB_Device_ConfigurationNumber
- 0x1 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
-stringbuffer 0x10 USBtoSerial.o
-USB_Device_CurrentlySelfPowered
- 0x1 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
-USB_ControlRequest 0x8 ../../LUFA/Drivers/USB/Core/USBTask.o
-USB_Device_RemoteWakeupEnabled
- 0x1 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
-t0ovfcount 0x1 USBtoSerial.o
-adb_data_length 0x1 USBtoSerial.o
-
-Discarded input sections
-
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
- .text 0x0000000000000000 0x0 USBtoSerial.o
- .text.touchpad_set_abs_mode
- 0x0000000000000000 0x42 USBtoSerial.o
- .text.touchpad_set_rel_mode_200dpi
- 0x0000000000000000 0x2a USBtoSerial.o
- .text.z_pressure
- 0x0000000000000000 0x16 USBtoSerial.o
- .text.x_abs 0x0000000000000000 0x3c USBtoSerial.o
- .text.y_abs 0x0000000000000000 0x3e USBtoSerial.o
- .text.decode_field
- 0x0000000000000000 0x8c USBtoSerial.o
- .text.uart_print_number
- 0x0000000000000000 0x2c USBtoSerial.o
- .text.times_ten_pow
- 0x0000000000000000 0x3a USBtoSerial.o
- .text 0x0000000000000000 0x0 Descriptors.o
- .data 0x0000000000000000 0x0 Descriptors.o
- .bss 0x0000000000000000 0x0 Descriptors.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .text.USB_ProcessHIDReport
- 0x0000000000000000 0x836 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .text.USB_GetHIDReportItemInfo
- 0x0000000000000000 0xbc ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .text.USB_SetHIDReportItemInfo
- 0x0000000000000000 0xc8 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .text.USB_GetHIDReportSize
- 0x0000000000000000 0x58 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .text.USB_Device_SendRemoteWakeup
- 0x0000000000000000 0x2c ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Discard_Stream
- 0x0000000000000000 0x8e ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Null_Stream
- 0x0000000000000000 0x8e ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Write_Stream_LE
- 0x0000000000000000 0xbe ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Write_Stream_BE
- 0x0000000000000000 0xae ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Read_Stream_LE
- 0x0000000000000000 0xbe ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Read_Stream_BE
- 0x0000000000000000 0xae ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Write_PStream_LE
- 0x0000000000000000 0xc2 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Write_PStream_BE
- 0x0000000000000000 0xae ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Write_EStream_LE
- 0x0000000000000000 0xc4 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Write_EStream_BE
- 0x0000000000000000 0xb0 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Read_EStream_LE
- 0x0000000000000000 0xc2 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Read_EStream_BE
- 0x0000000000000000 0xb2 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Write_Control_Stream_BE
- 0x0000000000000000 0xb8 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Read_Control_Stream_LE
- 0x0000000000000000 0x78 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Read_Control_Stream_BE
- 0x0000000000000000 0x7a ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Write_Control_PStream_BE
- 0x0000000000000000 0xba ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Write_Control_EStream_LE
- 0x0000000000000000 0xcc ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Write_Control_EStream_BE
- 0x0000000000000000 0xda ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Read_Control_EStream_LE
- 0x0000000000000000 0x84 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text.Endpoint_Read_Control_EStream_BE
- 0x0000000000000000 0x8a ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .text.Endpoint_ClearEndpoints
- 0x0000000000000000 0x2c ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .text.USB_Disable
- 0x0000000000000000 0x2e ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .text.USB_GetNextDescriptorOfType
- 0x0000000000000000 0x4c ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .text.USB_GetNextDescriptorOfTypeBefore
- 0x0000000000000000 0x56 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .text.USB_GetNextDescriptorOfTypeAfter
- 0x0000000000000000 0x34 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .text.USB_GetNextDescriptorComp
- 0x0000000000000000 0x86 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/Events.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/Events.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/Events.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/HostStandardReq.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/HostStandardReq.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/HostStandardReq.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/USBTask.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/USBTask.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Core/USBTask.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .text.Audio_Device_ProcessControlRequest
- 0x0000000000000000 0x316 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .text.Audio_Device_ConfigureEndpoints
- 0x0000000000000000 0x30 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .text.Audio_Device_Event_Stub
- 0x0000000000000000 0x2 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .data 0x0000000000000000 0x8 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .text.CDC_Device_SendString
- 0x0000000000000000 0x46 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .text.CDC_Device_SendData
- 0x0000000000000000 0x38 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .text.CDC_Device_putchar
- 0x0000000000000000 0x20 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .text.CDC_Device_BytesReceived
- 0x0000000000000000 0x4e ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .text.CDC_Device_getchar_Blocking
- 0x0000000000000000 0x36 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .text.CDC_Device_getchar
- 0x0000000000000000 0x18 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .text.CDC_Device_SendControlLineStateChange
- 0x0000000000000000 0x8c ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .text.CDC_Device_CreateStream
- 0x0000000000000000 0x26 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .text.CDC_Device_CreateBlockingStream
- 0x0000000000000000 0x26 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .text.HID_Device_ProcessControlRequest
- 0x0000000000000000 0x28c ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .text.HID_Device_ConfigureEndpoints
- 0x0000000000000000 0x34 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .text.HID_Device_USBTask
- 0x0000000000000000 0x1a0 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .text.MS_Device_ProcessControlRequest
- 0x0000000000000000 0x7e ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .text.MS_Device_ConfigureEndpoints
- 0x0000000000000000 0x3c ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .text.MS_Device_USBTask
- 0x0000000000000000 0x266 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .text.MIDI_Device_ConfigureEndpoints
- 0x0000000000000000 0x30 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .text.MIDI_Device_SendEventPacket
- 0x0000000000000000 0x3a ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .text.MIDI_Device_Flush
- 0x0000000000000000 0x30 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .text.MIDI_Device_USBTask
- 0x0000000000000000 0x1e ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .text.MIDI_Device_ReceiveEventPacket
- 0x0000000000000000 0x44 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .data 0x0000000000000000 0x8 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .text.RNDIS_Device_ProcessControlRequest
- 0x0000000000000000 0x5bc ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .text.RNDIS_Device_ConfigureEndpoints
- 0x0000000000000000 0x4e ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .text.RNDIS_Device_USBTask
- 0x0000000000000000 0x86 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .text.RNDIS_Device_IsPacketReceived
- 0x0000000000000000 0x2e ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .text.RNDIS_Device_ReadPacket
- 0x0000000000000000 0xbe ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .text.RNDIS_Device_SendPacket
- 0x0000000000000000 0xde ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .progmem.data 0x0000000000000000 0x6c ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
- .text 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
- .data 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
- .bss 0x0000000000000000 0x0 ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fixunssfsi.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fixunssfsi.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fixunssfsi.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(floatsisf.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(floatsisf.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(floatsisf.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_cmp.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_cmp.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_cmp.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_inf.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_inf.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_inf.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_nan.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_nan.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_nan.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscA.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscA.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscA.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscB.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscB.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscB.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_round.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_round.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_round.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_split3.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_split3.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_split3.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_zero.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_zero.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_zero.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(gesf2.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(gesf2.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(gesf2.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_mulhi3.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_mulhi3.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_mulhi3.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_mulsi3.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_mulsi3.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_mulsi3.o)
- .text.libgcc 0x0000000000000000 0x32 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_mulsi3.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodhi4.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodhi4.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodhi4.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_divmodhi4.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_divmodhi4.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_divmodhi4.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodsi4.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodsi4.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodsi4.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_copy_data.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_copy_data.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_copy_data.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_copy_data.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_clear_bss.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_clear_bss.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_clear_bss.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_clear_bss.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(atoi.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(atoi.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(atoi.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy_P.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy_P.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy_P.o)
- .text.avr-libc
- 0x0000000000000000 0x12 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy_P.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcmp.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcmp.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcmp.o)
- .text.avr-libc
- 0x0000000000000000 0x1a /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcmp.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy.o)
- .text.avr-libc
- 0x0000000000000000 0x12 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memset.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memset.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memset.o)
- .text.avr-libc
- 0x0000000000000000 0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memset.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(strncpy.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(strncpy.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(strncpy.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(mul10.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(mul10.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(mul10.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eerd_byte_atmega32u2.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eerd_byte_atmega32u2.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eerd_byte_atmega32u2.o)
- .text.avr-libc
- 0x0000000000000000 0x10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eerd_byte_atmega32u2.o)
- .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eeupd_byte_atmega32u2.o)
- .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eeupd_byte_atmega32u2.o)
- .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eeupd_byte_atmega32u2.o)
- .text.avr-libc
- 0x0000000000000000 0x24 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eeupd_byte_atmega32u2.o)
-
-Memory Configuration
-
-Name Origin Length Attributes
-text 0x0000000000000000 0x0000000000010000 xr
-data 0x0000000000800060 0x000000000000ffa0 rw !x
-eeprom 0x0000000000810000 0x0000000000010000 rw !x
-fuse 0x0000000000820000 0x0000000000000400 rw !x
-lock 0x0000000000830000 0x0000000000000400 rw !x
-signature 0x0000000000840000 0x0000000000000400 rw !x
-*default* 0x0000000000000000 0xffffffffffffffff
-
-Linker script and memory map
-
-Address of section .data set to 0x800100
-LOAD /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-LOAD USBtoSerial.o
-LOAD Descriptors.o
-LOAD ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
-LOAD ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
-LOAD ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-LOAD ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
-LOAD ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
-LOAD ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
-LOAD ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
-LOAD ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
-LOAD ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
-LOAD ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
-LOAD ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
-LOAD ../../LUFA/Drivers/USB/Core/Events.o
-LOAD ../../LUFA/Drivers/USB/Core/HostStandardReq.o
-LOAD ../../LUFA/Drivers/USB/Core/USBTask.o
-LOAD ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
-LOAD ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-LOAD ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
-LOAD ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
-LOAD ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
-LOAD ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
-LOAD ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
-LOAD ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
-LOAD ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
-LOAD ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
-LOAD ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
-LOAD ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
-LOAD ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
-LOAD ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
-LOAD ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
-LOAD /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a
-LOAD /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a
-LOAD /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a
-LOAD /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a
-
-.hash
- *(.hash)
-
-.dynsym
- *(.dynsym)
-
-.dynstr
- *(.dynstr)
-
-.gnu.version
- *(.gnu.version)
-
-.gnu.version_d
- *(.gnu.version_d)
-
-.gnu.version_r
- *(.gnu.version_r)
-
-.rel.init
- *(.rel.init)
-
-.rela.init
- *(.rela.init)
-
-.rel.text
- *(.rel.text)
- *(.rel.text.*)
- *(.rel.gnu.linkonce.t*)
-
-.rela.text
- *(.rela.text)
- *(.rela.text.*)
- *(.rela.gnu.linkonce.t*)
-
-.rel.fini
- *(.rel.fini)
-
-.rela.fini
- *(.rela.fini)
-
-.rel.rodata
- *(.rel.rodata)
- *(.rel.rodata.*)
- *(.rel.gnu.linkonce.r*)
-
-.rela.rodata
- *(.rela.rodata)
- *(.rela.rodata.*)
- *(.rela.gnu.linkonce.r*)
-
-.rel.data
- *(.rel.data)
- *(.rel.data.*)
- *(.rel.gnu.linkonce.d*)
-
-.rela.data
- *(.rela.data)
- *(.rela.data.*)
- *(.rela.gnu.linkonce.d*)
-
-.rel.ctors
- *(.rel.ctors)
-
-.rela.ctors
- *(.rela.ctors)
-
-.rel.dtors
- *(.rel.dtors)
-
-.rela.dtors
- *(.rela.dtors)
-
-.rel.got
- *(.rel.got)
-
-.rela.got
- *(.rela.got)
-
-.rel.bss
- *(.rel.bss)
-
-.rela.bss
- *(.rela.bss)
-
-.rel.plt
- *(.rel.plt)
-
-.rela.plt
- *(.rela.plt)
-
-.text 0x0000000000000000 0x1f94
- *(.vectors)
- .vectors 0x0000000000000000 0x98 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
- 0x0000000000000000 __vectors
- 0x0000000000000000 __vector_default
- *(.vectors)
- *(.progmem.gcc*)
- *(.progmem*)
- .progmem.data 0x0000000000000098 0x9e Descriptors.o
- 0x0000000000000098 DeviceDescriptor
- 0x00000000000000aa ConfigurationDescriptor
- 0x00000000000000e8 LanguageString
- 0x00000000000000ec ManufacturerString
- 0x0000000000000106 ProductString
- 0x0000000000000136 . = ALIGN (0x2)
- 0x0000000000000136 __trampolines_start = .
- *(.trampolines)
- .trampolines 0x0000000000000136 0x0 linker stubs
- *(.trampolines*)
- 0x0000000000000136 __trampolines_end = .
- *(.jumptables)
- *(.jumptables*)
- *(.lowtext)
- *(.lowtext*)
- 0x0000000000000136 __ctors_start = .
- *(.ctors)
- 0x0000000000000136 __ctors_end = .
- 0x0000000000000136 __dtors_start = .
- *(.dtors)
- 0x0000000000000136 __dtors_end = .
- SORT(*)(.ctors)
- SORT(*)(.dtors)
- *(.init0)
- .init0 0x0000000000000136 0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
- 0x0000000000000136 __init
- *(.init0)
- *(.init1)
- *(.init1)
- *(.init2)
- .init2 0x0000000000000136 0xc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
- *(.init2)
- *(.init3)
- *(.init3)
- *(.init4)
- .init4 0x0000000000000142 0x16 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_copy_data.o)
- 0x0000000000000142 __do_copy_data
- .init4 0x0000000000000158 0x10 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_clear_bss.o)
- 0x0000000000000158 __do_clear_bss
- *(.init4)
- *(.init5)
- *(.init5)
- *(.init6)
- *(.init6)
- *(.init7)
- *(.init7)
- *(.init8)
- *(.init8)
- *(.init9)
- .init9 0x0000000000000168 0x6 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
- *(.init9)
- *(.text)
- .text 0x000000000000016e 0x2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
- 0x000000000000016e __vector_22
- 0x000000000000016e __vector_28
- 0x000000000000016e __vector_1
- 0x000000000000016e __vector_32
- 0x000000000000016e __vector_34
- 0x000000000000016e __vector_24
- 0x000000000000016e __bad_interrupt
- 0x000000000000016e __vector_6
- 0x000000000000016e __vector_31
- 0x000000000000016e __vector_35
- 0x000000000000016e __vector_3
- 0x000000000000016e __vector_30
- 0x000000000000016e __vector_25
- 0x000000000000016e __vector_13
- 0x000000000000016e __vector_17
- 0x000000000000016e __vector_19
- 0x000000000000016e __vector_7
- 0x000000000000016e __vector_27
- 0x000000000000016e __vector_5
- 0x000000000000016e __vector_33
- 0x000000000000016e __vector_37
- 0x000000000000016e __vector_4
- 0x000000000000016e __vector_9
- 0x000000000000016e __vector_2
- 0x000000000000016e __vector_15
- 0x000000000000016e __vector_36
- 0x000000000000016e __vector_29
- 0x000000000000016e __vector_8
- 0x000000000000016e __vector_26
- 0x000000000000016e __vector_14
- 0x000000000000016e __vector_10
- 0x000000000000016e __vector_16
- 0x000000000000016e __vector_18
- 0x000000000000016e __vector_20
- 0x0000000000000170 . = ALIGN (0x2)
- *(.text.*)
- .text.RingBuffer_Insert
- 0x0000000000000170 0x36 USBtoSerial.o
- .text.RingBuffer_Remove
- 0x00000000000001a6 0x32 USBtoSerial.o
- .text.set_x 0x00000000000001d8 0x76 USBtoSerial.o
- 0x00000000000001d8 set_x
- .text.set_y 0x000000000000024e 0x74 USBtoSerial.o
- 0x000000000000024e set_y
- .text.RingBuffer_InitBuffer.clone.0
- 0x00000000000002c2 0x2a USBtoSerial.o
- .text.__vector_21
- 0x00000000000002ec 0x22 USBtoSerial.o
- 0x00000000000002ec __vector_21
- .text.t0ext 0x000000000000030e 0x10 USBtoSerial.o
- 0x000000000000030e t0ext
- .text.t0rst 0x000000000000031e 0x8 USBtoSerial.o
- 0x000000000000031e t0rst
- .text.adb 0x0000000000000326 0x220 USBtoSerial.o
- 0x0000000000000326 adb
- .text.touchpad_init
- 0x0000000000000546 0x10 USBtoSerial.o
- 0x0000000000000546 touchpad_init
- .text.touchpad_read
- 0x0000000000000556 0x12 USBtoSerial.o
- 0x0000000000000556 touchpad_read
- .text.touchpad_set_rel_mode_100dpi
- 0x0000000000000568 0x28 USBtoSerial.o
- 0x0000000000000568 touchpad_set_rel_mode_100dpi
- .text.delta_y 0x0000000000000590 0x20 USBtoSerial.o
- 0x0000000000000590 delta_y
- .text.delta_x 0x00000000000005b0 0x20 USBtoSerial.o
- 0x00000000000005b0 delta_x
- .text.init_leds
- 0x00000000000005d0 0x8 USBtoSerial.o
- 0x00000000000005d0 init_leds
- .text.set_led0
- 0x00000000000005d8 0x14 USBtoSerial.o
- 0x00000000000005d8 set_led0
- .text.set_led1
- 0x00000000000005ec 0xc USBtoSerial.o
- 0x00000000000005ec set_led1
- .text.set_led2
- 0x00000000000005f8 0x1a USBtoSerial.o
- 0x00000000000005f8 set_led2
- .text.init_sw 0x0000000000000612 0xe USBtoSerial.o
- 0x0000000000000612 init_sw
- .text.sw0_state
- 0x0000000000000620 0x14 USBtoSerial.o
- 0x0000000000000620 sw0_state
- .text.sw1_state
- 0x0000000000000634 0x14 USBtoSerial.o
- 0x0000000000000634 sw1_state
- .text.sw2_state
- 0x0000000000000648 0x14 USBtoSerial.o
- 0x0000000000000648 sw2_state
- .text.Usb2SerialTask
- 0x000000000000065c 0x96 USBtoSerial.o
- 0x000000000000065c Usb2SerialTask
- .text.SetupHardware
- 0x00000000000006f2 0x2a USBtoSerial.o
- 0x00000000000006f2 SetupHardware
- .text.EVENT_USB_Device_Connect
- 0x000000000000071c 0x2 USBtoSerial.o
- 0x000000000000071c EVENT_USB_Device_Connect
- .text.EVENT_USB_Device_Disconnect
- 0x000000000000071e 0x2 USBtoSerial.o
- 0x000000000000071e EVENT_USB_Device_Disconnect
- .text.EVENT_USB_Device_ConfigurationChanged
- 0x0000000000000720 0x8 USBtoSerial.o
- 0x0000000000000720 EVENT_USB_Device_ConfigurationChanged
- .text.EVENT_USB_Device_ControlRequest
- 0x0000000000000728 0x8 USBtoSerial.o
- 0x0000000000000728 EVENT_USB_Device_ControlRequest
- .text.__vector_23
- 0x0000000000000730 0x54 USBtoSerial.o
- 0x0000000000000730 __vector_23
- .text.EVENT_CDC_Device_LineEncodingChanged
- 0x0000000000000784 0xcc USBtoSerial.o
- 0x0000000000000784 EVENT_CDC_Device_LineEncodingChanged
- .text.uart_putc
- 0x0000000000000850 0x10 USBtoSerial.o
- 0x0000000000000850 uart_putc
- .text.uart_puts
- 0x0000000000000860 0x26 USBtoSerial.o
- 0x0000000000000860 uart_puts
- .text.my_uitoa
- 0x0000000000000886 0xcc USBtoSerial.o
- 0x0000000000000886 my_uitoa
- .text.sign 0x0000000000000952 0x18 USBtoSerial.o
- 0x0000000000000952 sign
- .text.uart_print_number_wlzeros
- 0x000000000000096a 0x28 USBtoSerial.o
- 0x000000000000096a uart_print_number_wlzeros
- .text.uart_print_signed_number
- 0x0000000000000992 0x46 USBtoSerial.o
- 0x0000000000000992 uart_print_signed_number
- .text.init_motors
- 0x00000000000009d8 0x1a USBtoSerial.o
- 0x00000000000009d8 init_motors
- .text.motor_step
- 0x00000000000009f2 0x64 USBtoSerial.o
- 0x00000000000009f2 motor_step
- .text.move_plate
- 0x0000000000000a56 0xa2 USBtoSerial.o
- 0x0000000000000a56 move_plate
- .text.print_steps_in_mm
- 0x0000000000000af8 0x54 USBtoSerial.o
- 0x0000000000000af8 print_steps_in_mm
- .text.pos_report
- 0x0000000000000b4c 0x26 USBtoSerial.o
- 0x0000000000000b4c pos_report
- .text.parse_command
- 0x0000000000000b72 0x35e USBtoSerial.o
- 0x0000000000000b72 parse_command
- .text.main 0x0000000000000ed0 0xb2 USBtoSerial.o
- 0x0000000000000ed0 main
- .text.CALLBACK_USB_GetDescriptor
- 0x0000000000000f82 0x5a Descriptors.o
- 0x0000000000000f82 CALLBACK_USB_GetDescriptor
- .text.Endpoint_Write_Control_Stream_LE
- 0x0000000000000fdc 0xb4 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- 0x0000000000000fdc Endpoint_Write_Control_Stream_LE
- .text.Endpoint_Write_Control_PStream_LE
- 0x0000000000001090 0xb6 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- 0x0000000000001090 Endpoint_Write_Control_PStream_LE
- .text.Endpoint_ConfigureEndpoint_Prv
- 0x0000000000001146 0x6e ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- 0x0000000000001146 Endpoint_ConfigureEndpoint_Prv
- .text.Endpoint_ConfigureEndpointTable
- 0x00000000000011b4 0x88 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- 0x00000000000011b4 Endpoint_ConfigureEndpointTable
- .text.Endpoint_ClearStatusStage
- 0x000000000000123c 0x3e ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- 0x000000000000123c Endpoint_ClearStatusStage
- .text.Endpoint_WaitUntilReady
- 0x000000000000127a 0x66 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- 0x000000000000127a Endpoint_WaitUntilReady
- .text.USB_ResetInterface
- 0x00000000000012e0 0x70 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- 0x00000000000012e0 USB_ResetInterface
- .text.USB_Init
- 0x0000000000001350 0x12 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- 0x0000000000001350 USB_Init
- .text.USB_INT_DisableAllInterrupts
- 0x0000000000001362 0x6 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- 0x0000000000001362 USB_INT_DisableAllInterrupts
- .text.USB_INT_ClearAllInterrupts
- 0x0000000000001368 0x6 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- 0x0000000000001368 USB_INT_ClearAllInterrupts
- .text.__vector_11
- 0x000000000000136e 0x148 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- 0x000000000000136e __vector_11
- .text.__vector_12
- 0x00000000000014b6 0x76 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- 0x00000000000014b6 __vector_12
- .text.USB_Device_ProcessControlRequest
- 0x000000000000152c 0x2c4 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- 0x000000000000152c USB_Device_ProcessControlRequest
- .text.USB_Event_Stub
- 0x00000000000017f0 0x2 ../../LUFA/Drivers/USB/Core/Events.o
- 0x00000000000017f0 EVENT_USB_Device_WakeUp
- 0x00000000000017f0 USB_Event_Stub
- 0x00000000000017f0 EVENT_USB_Device_Suspend
- 0x00000000000017f0 EVENT_USB_Device_StartOfFrame
- 0x00000000000017f0 EVENT_USB_Device_Reset
- .text.USB_USBTask
- 0x00000000000017f2 0x36 ../../LUFA/Drivers/USB/Core/USBTask.o
- 0x00000000000017f2 USB_USBTask
- .text.CDC_Device_ProcessControlRequest
- 0x0000000000001828 0x15a ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- 0x0000000000001828 CDC_Device_ProcessControlRequest
- .text.CDC_Device_ConfigureEndpoints
- 0x0000000000001982 0x48 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- 0x0000000000001982 CDC_Device_ConfigureEndpoints
- .text.CDC_Device_SendByte
- 0x00000000000019ca 0x5a ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- 0x00000000000019ca CDC_Device_SendByte
- .text.CDC_Device_Flush
- 0x0000000000001a24 0x5a ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- 0x0000000000001a24 CDC_Device_Flush
- .text.CDC_Device_USBTask
- 0x0000000000001a7e 0x2e ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- 0x0000000000001a7e CDC_Device_USBTask
- .text.CDC_Device_ReceiveByte
- 0x0000000000001aac 0x5a ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- 0x0000000000001aac CDC_Device_ReceiveByte
- .text.CDC_Device_Event_Stub
- 0x0000000000001b06 0x2 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- 0x0000000000001b06 EVENT_CDC_Device_ControLineStateChanged
- 0x0000000000001b06 EVENT_CDC_Device_BreakSent
- 0x0000000000001b06 CDC_Device_Event_Stub
- .text.avr-libc.fplib
- 0x0000000000001b08 0xa /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o)
- 0x0000000000001b08 __subsf3
- 0x0000000000001b0a __addsf3
- .text.avr-libc.fplib
- 0x0000000000001b12 0xc0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
- 0x0000000000001b2c __addsf3x
- .text.avr-libc.fplib
- 0x0000000000001bd2 0x8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
- 0x0000000000001bd2 __lesf2
- 0x0000000000001bd2 __nesf2
- 0x0000000000001bd2 __eqsf2
- 0x0000000000001bd2 __cmpsf2
- 0x0000000000001bd2 __ltsf2
- .text.avr-libc.fplib
- 0x0000000000001bda 0x4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3.o)
- 0x0000000000001bda __divsf3
- .text.avr-libc.fplib
- 0x0000000000001bde 0xcc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
- 0x0000000000001bf4 __divsf3x
- 0x0000000000001bf8 __divsf3_pse
- .text.avr-libc.fplib
- 0x0000000000001caa 0x58 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fixunssfsi.o)
- 0x0000000000001caa __fixunssfsi
- .text.avr-libc.fplib
- 0x0000000000001d02 0x7a /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(floatsisf.o)
- 0x0000000000001d02 __floatunsisf
- 0x0000000000001d06 __floatsisf
- .text.avr-libc.fplib
- 0x0000000000001d7c 0x48 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_cmp.o)
- 0x0000000000001d7c __fp_cmp
- .text.avr-libc.fplib
- 0x0000000000001dc4 0xc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_inf.o)
- 0x0000000000001dc4 __fp_inf
- .text.avr-libc.fplib
- 0x0000000000001dd0 0x6 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_nan.o)
- 0x0000000000001dd0 __fp_nan
- .text.avr-libc.fplib
- 0x0000000000001dd6 0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscA.o)
- 0x0000000000001dd6 __fp_pscA
- .text.avr-libc.fplib
- 0x0000000000001de4 0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscB.o)
- 0x0000000000001de4 __fp_pscB
- .text.avr-libc.fplib
- 0x0000000000001df2 0x22 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_round.o)
- 0x0000000000001df2 __fp_round
- .text.avr-libc.fplib
- 0x0000000000001e14 0x44 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_split3.o)
- 0x0000000000001e14 __fp_split3
- 0x0000000000001e24 __fp_splitA
- .text.avr-libc.fplib
- 0x0000000000001e58 0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_zero.o)
- 0x0000000000001e58 __fp_zero
- 0x0000000000001e5a __fp_szero
- .text.avr-libc.fplib
- 0x0000000000001e66 0x8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(gesf2.o)
- 0x0000000000001e66 __gtsf2
- 0x0000000000001e66 __gesf2
- .text.libgcc 0x0000000000001e6e 0x24 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_mulhi3.o)
- 0x0000000000001e6e __mulhi3
- .text.libgcc 0x0000000000001e92 0x28 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodhi4.o)
- 0x0000000000001e92 __udivmodhi4
- .text.libgcc 0x0000000000001eba 0x26 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_divmodhi4.o)
- 0x0000000000001eba __divmodhi4
- 0x0000000000001eba _div
- .text.libgcc 0x0000000000001ee0 0x44 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodsi4.o)
- 0x0000000000001ee0 __udivmodsi4
- .text.avr-libc
- 0x0000000000001f24 0x3a /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(atoi.o)
- 0x0000000000001f24 atoi
- .text.avr-libc
- 0x0000000000001f5e 0x1e /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(strncpy.o)
- 0x0000000000001f5e strncpy
- .text.avr-libc
- 0x0000000000001f7c 0x14 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(mul10.o)
- 0x0000000000001f7c __mulhi_const_10
- 0x0000000000001f90 . = ALIGN (0x2)
- *(.fini9)
- .fini9 0x0000000000001f90 0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
- 0x0000000000001f90 exit
- 0x0000000000001f90 _exit
- *(.fini9)
- *(.fini8)
- *(.fini8)
- *(.fini7)
- *(.fini7)
- *(.fini6)
- *(.fini6)
- *(.fini5)
- *(.fini5)
- *(.fini4)
- *(.fini4)
- *(.fini3)
- *(.fini3)
- *(.fini2)
- *(.fini2)
- *(.fini1)
- *(.fini1)
- *(.fini0)
- .fini0 0x0000000000001f90 0x4 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
- *(.fini0)
- 0x0000000000001f94 _etext = .
-
-.data 0x0000000000800100 0x4e load address 0x0000000000001f94
- 0x0000000000800100 PROVIDE (__data_start, .)
- *(.data)
- .data 0x0000000000800100 0x4d USBtoSerial.o
- 0x0000000000800128 VirtualSerial_CDC_Interface
- 0x0000000000800143 phase_pattern
- *(.data*)
- *(.rodata)
- *(.rodata*)
- *(.gnu.linkonce.d*)
- 0x000000000080014e . = ALIGN (0x2)
- *fill* 0x000000000080014d 0x1 00
- 0x000000000080014e _edata = .
- 0x000000000080014e PROVIDE (__data_end, .)
-
-.bss 0x000000000080014e 0x186
- 0x000000000080014e PROVIDE (__bss_start, .)
- *(.bss)
- .bss 0x000000000080014e 0x15f USBtoSerial.o
- 0x000000000080014e plate_pos_x
- 0x0000000000800150 plate_pos_y
- *(.bss*)
- *(COMMON)
- COMMON 0x00000000008002ad 0x1b USBtoSerial.o
- 0x00000000008002ad adb_werte
- 0x00000000008002b6 stringbuffer
- 0x00000000008002c6 t0ovfcount
- 0x00000000008002c7 adb_data_length
- COMMON 0x00000000008002c8 0x3 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- 0x00000000008002c8 USB_Device_ConfigurationNumber
- 0x00000000008002c9 USB_Device_CurrentlySelfPowered
- 0x00000000008002ca USB_Device_RemoteWakeupEnabled
- COMMON 0x00000000008002cb 0x9 ../../LUFA/Drivers/USB/Core/USBTask.o
- 0x00000000008002cb USB_IsInitialized
- 0x00000000008002cc USB_ControlRequest
- 0x00000000008002d4 PROVIDE (__bss_end, .)
- 0x0000000000001f94 __data_load_start = LOADADDR (.data)
- 0x0000000000001fe2 __data_load_end = (__data_load_start + SIZEOF (.data))
-
-.noinit 0x00000000008002d4 0x0
- 0x00000000008002d4 PROVIDE (__noinit_start, .)
- *(.noinit*)
- 0x00000000008002d4 PROVIDE (__noinit_end, .)
- 0x00000000008002d4 _end = .
- 0x00000000008002d4 PROVIDE (__heap_start, .)
-
-.eeprom 0x0000000000810000 0x0
- *(.eeprom*)
- 0x0000000000810000 __eeprom_end = .
-
-.fuse
- *(.fuse)
- *(.lfuse)
- *(.hfuse)
- *(.efuse)
-
-.lock
- *(.lock*)
-
-.signature
- *(.signature*)
-
-.stab 0x0000000000000000 0x255c
- *(.stab)
- .stab 0x0000000000000000 0x6cc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
- .stab 0x00000000000006cc 0x78 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o)
- 0x84 (size before relaxing)
- .stab 0x0000000000000744 0x4bc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
- 0x4c8 (size before relaxing)
- .stab 0x0000000000000c00 0x90 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
- 0x9c (size before relaxing)
- .stab 0x0000000000000c90 0x48 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3.o)
- 0x54 (size before relaxing)
- .stab 0x0000000000000cd8 0x510 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
- 0x51c (size before relaxing)
- .stab 0x00000000000011e8 0x240 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fixunssfsi.o)
- 0x24c (size before relaxing)
- .stab 0x0000000000001428 0x318 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(floatsisf.o)
- 0x324 (size before relaxing)
- .stab 0x0000000000001740 0x1e0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_cmp.o)
- 0x1ec (size before relaxing)
- .stab 0x0000000000001920 0x78 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_inf.o)
- 0x84 (size before relaxing)
- .stab 0x0000000000001998 0x54 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_nan.o)
- 0x60 (size before relaxing)
- .stab 0x00000000000019ec 0x84 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscA.o)
- 0x90 (size before relaxing)
- .stab 0x0000000000001a70 0x84 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscB.o)
- 0x90 (size before relaxing)
- .stab 0x0000000000001af4 0xfc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_round.o)
- 0x108 (size before relaxing)
- .stab 0x0000000000001bf0 0x1d4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_split3.o)
- 0x1e0 (size before relaxing)
- .stab 0x0000000000001dc4 0x90 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_zero.o)
- 0x9c (size before relaxing)
- .stab 0x0000000000001e54 0x6c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(gesf2.o)
- 0x78 (size before relaxing)
- .stab 0x0000000000001ec0 0x174 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(atoi.o)
- 0x180 (size before relaxing)
- .stab 0x0000000000002034 0x84 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy_P.o)
- 0x90 (size before relaxing)
- .stab 0x00000000000020b8 0xb4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcmp.o)
- 0xc0 (size before relaxing)
- .stab 0x000000000000216c 0x84 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy.o)
- 0x90 (size before relaxing)
- .stab 0x00000000000021f0 0x6c /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memset.o)
- 0x78 (size before relaxing)
- .stab 0x000000000000225c 0xcc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(strncpy.o)
- 0xd8 (size before relaxing)
- .stab 0x0000000000002328 0x90 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(mul10.o)
- 0x9c (size before relaxing)
- .stab 0x00000000000023b8 0x90 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eerd_byte_atmega32u2.o)
- 0x9c (size before relaxing)
- .stab 0x0000000000002448 0x114 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eeupd_byte_atmega32u2.o)
- 0x120 (size before relaxing)
-
-.stabstr 0x0000000000000000 0x4d5
- *(.stabstr)
- .stabstr 0x0000000000000000 0x4d5 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-
-.stab.excl
- *(.stab.excl)
-
-.stab.exclstr
- *(.stab.exclstr)
-
-.stab.index
- *(.stab.index)
-
-.stab.indexstr
- *(.stab.indexstr)
-
-.comment
- *(.comment)
-
-.debug
- *(.debug)
-
-.line
- *(.line)
-
-.debug_srcinfo
- *(.debug_srcinfo)
-
-.debug_sfnames
- *(.debug_sfnames)
-
-.debug_aranges 0x0000000000000000 0x5e0
- *(.debug_aranges)
- .debug_aranges
- 0x0000000000000000 0x1b0 USBtoSerial.o
- .debug_aranges
- 0x00000000000001b0 0x20 Descriptors.o
- .debug_aranges
- 0x00000000000001d0 0x38 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .debug_aranges
- 0x0000000000000208 0x20 ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .debug_aranges
- 0x0000000000000228 0xc8 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .debug_aranges
- 0x00000000000002f0 0x40 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .debug_aranges
- 0x0000000000000330 0x30 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .debug_aranges
- 0x0000000000000360 0x38 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .debug_aranges
- 0x0000000000000398 0x38 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .debug_aranges
- 0x00000000000003d0 0x20 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .debug_aranges
- 0x00000000000003f0 0x20 ../../LUFA/Drivers/USB/Core/Events.o
- .debug_aranges
- 0x0000000000000410 0x20 ../../LUFA/Drivers/USB/Core/USBTask.o
- .debug_aranges
- 0x0000000000000430 0x30 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .debug_aranges
- 0x0000000000000460 0x98 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .debug_aranges
- 0x00000000000004f8 0x30 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .debug_aranges
- 0x0000000000000528 0x30 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .debug_aranges
- 0x0000000000000558 0x40 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .debug_aranges
- 0x0000000000000598 0x48 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
-
-.debug_pubnames
- 0x0000000000000000 0xfa4
- *(.debug_pubnames)
- .debug_pubnames
- 0x0000000000000000 0x409 USBtoSerial.o
- .debug_pubnames
- 0x0000000000000409 0x9e Descriptors.o
- .debug_pubnames
- 0x00000000000004a7 0x7e ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .debug_pubnames
- 0x0000000000000525 0x32 ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .debug_pubnames
- 0x0000000000000557 0x2df ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .debug_pubnames
- 0x0000000000000836 0xaf ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .debug_pubnames
- 0x00000000000008e5 0x46 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .debug_pubnames
- 0x000000000000092b 0x72 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .debug_pubnames
- 0x000000000000099d 0x9b ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .debug_pubnames
- 0x0000000000000a38 0xa1 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .debug_pubnames
- 0x0000000000000ad9 0x25 ../../LUFA/Drivers/USB/Core/Events.o
- .debug_pubnames
- 0x0000000000000afe 0x4f ../../LUFA/Drivers/USB/Core/USBTask.o
- .debug_pubnames
- 0x0000000000000b4d 0x79 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .debug_pubnames
- 0x0000000000000bc6 0x18b ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .debug_pubnames
- 0x0000000000000d51 0x70 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .debug_pubnames
- 0x0000000000000dc1 0x6d ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .debug_pubnames
- 0x0000000000000e2e 0xa6 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .debug_pubnames
- 0x0000000000000ed4 0xd0 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
-
-.debug_info 0x0000000000000000 0x9390
- *(.debug_info)
- .debug_info 0x0000000000000000 0x15d2 USBtoSerial.o
- .debug_info 0x00000000000015d2 0x77d Descriptors.o
- .debug_info 0x0000000000001d4f 0x6f9 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .debug_info 0x0000000000002448 0xd8 ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .debug_info 0x0000000000002520 0x154c ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .debug_info 0x0000000000003a6c 0x603 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .debug_info 0x000000000000406f 0x6c ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
- .debug_info 0x00000000000040db 0x6c ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
- .debug_info 0x0000000000004147 0x6c ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
- .debug_info 0x00000000000041b3 0x412 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .debug_info 0x00000000000045c5 0x662 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .debug_info 0x0000000000004c27 0x38c ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .debug_info 0x0000000000004fb3 0x973 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .debug_info 0x0000000000005926 0x85 ../../LUFA/Drivers/USB/Core/Events.o
- .debug_info 0x00000000000059ab 0x6c ../../LUFA/Drivers/USB/Core/HostStandardReq.o
- .debug_info 0x0000000000005a17 0x245 ../../LUFA/Drivers/USB/Core/USBTask.o
- .debug_info 0x0000000000005c5c 0x56c ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .debug_info 0x00000000000061c8 0xc3b ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .debug_info 0x0000000000006e03 0x67a ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .debug_info 0x000000000000747d 0x7ca ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .debug_info 0x0000000000007c47 0x4c1 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .debug_info 0x0000000000008108 0xebc ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .debug_info 0x0000000000008fc4 0x6c ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
- .debug_info 0x0000000000009030 0x6c ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
- .debug_info 0x000000000000909c 0x6c ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
- .debug_info 0x0000000000009108 0x6c ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
- .debug_info 0x0000000000009174 0x6c ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
- .debug_info 0x00000000000091e0 0x6c ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
- .debug_info 0x000000000000924c 0x6c ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
- .debug_info 0x00000000000092b8 0x6c ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
- .debug_info 0x0000000000009324 0x6c ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
- *(.gnu.linkonce.wi.*)
-
-.debug_abbrev 0x0000000000000000 0x21fc
- *(.debug_abbrev)
- .debug_abbrev 0x0000000000000000 0x473 USBtoSerial.o
- .debug_abbrev 0x0000000000000473 0x153 Descriptors.o
- .debug_abbrev 0x00000000000005c6 0x1ec ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .debug_abbrev 0x00000000000007b2 0x7d ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .debug_abbrev 0x000000000000082f 0x18b ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .debug_abbrev 0x00000000000009ba 0x1ee ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .debug_abbrev 0x0000000000000ba8 0x2a ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
- .debug_abbrev 0x0000000000000bd2 0x2a ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
- .debug_abbrev 0x0000000000000bfc 0x2a ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
- .debug_abbrev 0x0000000000000c26 0x14d ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .debug_abbrev 0x0000000000000d73 0x1e2 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .debug_abbrev 0x0000000000000f55 0x148 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .debug_abbrev 0x000000000000109d 0x20b ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .debug_abbrev 0x00000000000012a8 0x41 ../../LUFA/Drivers/USB/Core/Events.o
- .debug_abbrev 0x00000000000012e9 0x2a ../../LUFA/Drivers/USB/Core/HostStandardReq.o
- .debug_abbrev 0x0000000000001313 0x14b ../../LUFA/Drivers/USB/Core/USBTask.o
- .debug_abbrev 0x000000000000145e 0x160 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .debug_abbrev 0x00000000000015be 0x2ec ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .debug_abbrev 0x00000000000018aa 0x1b5 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .debug_abbrev 0x0000000000001a5f 0x205 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .debug_abbrev 0x0000000000001c64 0x16c ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .debug_abbrev 0x0000000000001dd0 0x2b2 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .debug_abbrev 0x0000000000002082 0x2a ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
- .debug_abbrev 0x00000000000020ac 0x2a ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
- .debug_abbrev 0x00000000000020d6 0x2a ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
- .debug_abbrev 0x0000000000002100 0x2a ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
- .debug_abbrev 0x000000000000212a 0x2a ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
- .debug_abbrev 0x0000000000002154 0x2a ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
- .debug_abbrev 0x000000000000217e 0x2a ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
- .debug_abbrev 0x00000000000021a8 0x2a ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
- .debug_abbrev 0x00000000000021d2 0x2a ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
-
-.debug_line 0x0000000000000000 0x7d90
- *(.debug_line)
- .debug_line 0x0000000000000000 0x17ad USBtoSerial.o
- .debug_line 0x00000000000017ad 0x1d9 Descriptors.o
- .debug_line 0x0000000000001986 0x762 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .debug_line 0x00000000000020e8 0x15f ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .debug_line 0x0000000000002247 0x1a80 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .debug_line 0x0000000000003cc7 0x5a1 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .debug_line 0x0000000000004268 0x3e ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
- .debug_line 0x00000000000042a6 0x3e ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
- .debug_line 0x00000000000042e4 0x3e ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
- .debug_line 0x0000000000004322 0x312 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .debug_line 0x0000000000004634 0x55a ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .debug_line 0x0000000000004b8e 0x269 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .debug_line 0x0000000000004df7 0x5a2 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .debug_line 0x0000000000005399 0x80 ../../LUFA/Drivers/USB/Core/Events.o
- .debug_line 0x0000000000005419 0x3e ../../LUFA/Drivers/USB/Core/HostStandardReq.o
- .debug_line 0x0000000000005457 0x1ae ../../LUFA/Drivers/USB/Core/USBTask.o
- .debug_line 0x0000000000005605 0x4be ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .debug_line 0x0000000000005ac3 0x9c2 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .debug_line 0x0000000000006485 0x5c3 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .debug_line 0x0000000000006a48 0x5c6 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .debug_line 0x000000000000700e 0x3bc ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .debug_line 0x00000000000073ca 0x798 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .debug_line 0x0000000000007b62 0x3e ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
- .debug_line 0x0000000000007ba0 0x3e ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
- .debug_line 0x0000000000007bde 0x3e ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
- .debug_line 0x0000000000007c1c 0x3e ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
- .debug_line 0x0000000000007c5a 0x3e ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
- .debug_line 0x0000000000007c98 0x3e ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
- .debug_line 0x0000000000007cd6 0x3e ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
- .debug_line 0x0000000000007d14 0x3e ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
- .debug_line 0x0000000000007d52 0x3e ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
-
-.debug_frame 0x0000000000000000 0x980
- *(.debug_frame)
- .debug_frame 0x0000000000000000 0x340 USBtoSerial.o
- .debug_frame 0x0000000000000340 0x20 Descriptors.o
- .debug_frame 0x0000000000000360 0x50 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .debug_frame 0x00000000000003b0 0x20 ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .debug_frame 0x00000000000003d0 0x170 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .debug_frame 0x0000000000000540 0x60 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .debug_frame 0x00000000000005a0 0x40 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .debug_frame 0x00000000000005e0 0x50 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .debug_frame 0x0000000000000630 0x50 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .debug_frame 0x0000000000000680 0x20 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .debug_frame 0x00000000000006a0 0x20 ../../LUFA/Drivers/USB/Core/Events.o
- .debug_frame 0x00000000000006c0 0x20 ../../LUFA/Drivers/USB/Core/USBTask.o
- .debug_frame 0x00000000000006e0 0x40 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .debug_frame 0x0000000000000720 0x110 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .debug_frame 0x0000000000000830 0x40 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .debug_frame 0x0000000000000870 0x40 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .debug_frame 0x00000000000008b0 0x60 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .debug_frame 0x0000000000000910 0x70 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
-
-.debug_str 0x0000000000000000 0x3dc5
- *(.debug_str)
- .debug_str 0x0000000000000000 0xb07 USBtoSerial.o
- 0xbbf (size before relaxing)
- .debug_str 0x0000000000000b07 0x8ba Descriptors.o
- 0x9e5 (size before relaxing)
- .debug_str 0x00000000000013c1 0x47c ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- 0x5c5 (size before relaxing)
- .debug_str 0x000000000000183d 0x77 ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- 0x128 (size before relaxing)
- .debug_str 0x00000000000018b4 0x592 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- 0x73e (size before relaxing)
- .debug_str 0x0000000000001e46 0x212 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- 0x53a (size before relaxing)
- .debug_str 0x0000000000002058 0x2d ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
- 0xd0 (size before relaxing)
- .debug_str 0x0000000000002085 0x33 ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
- 0xd6 (size before relaxing)
- .debug_str 0x00000000000020b8 0x2d ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
- 0xd0 (size before relaxing)
- .debug_str 0x00000000000020e5 0x209 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- 0x3f9 (size before relaxing)
- .debug_str 0x00000000000022ee 0x113 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- 0x3fb (size before relaxing)
- .debug_str 0x0000000000002401 0x227 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- 0x310 (size before relaxing)
- .debug_str 0x0000000000002628 0x3b2 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- 0x82e (size before relaxing)
- .debug_str 0x00000000000029da 0x34 ../../LUFA/Drivers/USB/Core/Events.o
- 0xd7 (size before relaxing)
- .debug_str 0x0000000000002a0e 0x2e ../../LUFA/Drivers/USB/Core/HostStandardReq.o
- 0xd1 (size before relaxing)
- .debug_str 0x0000000000002a3c 0x4e ../../LUFA/Drivers/USB/Core/USBTask.o
- 0x27e (size before relaxing)
- .debug_str 0x0000000000002a8a 0x239 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- 0x4fe (size before relaxing)
- .debug_str 0x0000000000002cc3 0x2fa ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- 0x8b2 (size before relaxing)
- .debug_str 0x0000000000002fbd 0x1ed ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- 0x52d (size before relaxing)
- .debug_str 0x00000000000031aa 0x23d ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- 0x68e (size before relaxing)
- .debug_str 0x00000000000033e7 0x118 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- 0x515 (size before relaxing)
- .debug_str 0x00000000000034ff 0x6e8 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- 0xbc6 (size before relaxing)
- .debug_str 0x0000000000003be7 0x3e ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
- 0xe1 (size before relaxing)
- .debug_str 0x0000000000003c25 0x33 ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
- 0xd6 (size before relaxing)
- .debug_str 0x0000000000003c58 0x31 ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
- 0xd4 (size before relaxing)
- .debug_str 0x0000000000003c89 0x31 ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
- 0xd4 (size before relaxing)
- .debug_str 0x0000000000003cba 0x39 ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
- 0xdc (size before relaxing)
- .debug_str 0x0000000000003cf3 0x32 ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
- 0xd5 (size before relaxing)
- .debug_str 0x0000000000003d25 0x35 ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
- 0xd8 (size before relaxing)
- .debug_str 0x0000000000003d5a 0x33 ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
- 0xd6 (size before relaxing)
- .debug_str 0x0000000000003d8d 0x38 ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
- 0xdb (size before relaxing)
-
-.debug_loc 0x0000000000000000 0x4b8d
- *(.debug_loc)
- .debug_loc 0x0000000000000000 0xaf1 USBtoSerial.o
- .debug_loc 0x0000000000000af1 0xd3 Descriptors.o
- .debug_loc 0x0000000000000bc4 0x88f ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .debug_loc 0x0000000000001453 0x1982 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .debug_loc 0x0000000000002dd5 0x390 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .debug_loc 0x0000000000003165 0x190 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .debug_loc 0x00000000000032f5 0x2bc ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .debug_loc 0x00000000000035b1 0x22a ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .debug_loc 0x00000000000037db 0x27 ../../LUFA/Drivers/USB/Core/USBTask.o
- .debug_loc 0x0000000000003802 0x16d ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .debug_loc 0x000000000000396f 0x52b ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .debug_loc 0x0000000000003e9a 0x249 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .debug_loc 0x00000000000040e3 0x152 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .debug_loc 0x0000000000004235 0x1f6 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .debug_loc 0x000000000000442b 0x762 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
-
-.debug_macinfo
- *(.debug_macinfo)
-OUTPUT(USBtoSerial.elf elf32-avr)
-LOAD linker stubs
-
-.debug_pubtypes
- 0x0000000000000000 0x1111
- .debug_pubtypes
- 0x0000000000000000 0x15a USBtoSerial.o
- .debug_pubtypes
- 0x000000000000015a 0x1f1 Descriptors.o
- .debug_pubtypes
- 0x000000000000034b 0x145 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .debug_pubtypes
- 0x0000000000000490 0x1e ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .debug_pubtypes
- 0x00000000000004ae 0xab ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .debug_pubtypes
- 0x0000000000000559 0x9e ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .debug_pubtypes
- 0x00000000000005f7 0x12 ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
- .debug_pubtypes
- 0x0000000000000609 0x12 ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
- .debug_pubtypes
- 0x000000000000061b 0x12 ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
- .debug_pubtypes
- 0x000000000000062d 0x68 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .debug_pubtypes
- 0x0000000000000695 0x58 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .debug_pubtypes
- 0x00000000000006ed 0xb4 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .debug_pubtypes
- 0x00000000000007a1 0xd7 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .debug_pubtypes
- 0x0000000000000878 0x12 ../../LUFA/Drivers/USB/Core/Events.o
- .debug_pubtypes
- 0x000000000000088a 0x12 ../../LUFA/Drivers/USB/Core/HostStandardReq.o
- .debug_pubtypes
- 0x000000000000089c 0x5c ../../LUFA/Drivers/USB/Core/USBTask.o
- .debug_pubtypes
- 0x00000000000008f8 0xb2 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .debug_pubtypes
- 0x00000000000009aa 0x151 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .debug_pubtypes
- 0x0000000000000afb 0xc6 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .debug_pubtypes
- 0x0000000000000bc1 0x132 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .debug_pubtypes
- 0x0000000000000cf3 0xe0 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .debug_pubtypes
- 0x0000000000000dd3 0x29c ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .debug_pubtypes
- 0x000000000000106f 0x12 ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
- .debug_pubtypes
- 0x0000000000001081 0x12 ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
- .debug_pubtypes
- 0x0000000000001093 0x12 ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
- .debug_pubtypes
- 0x00000000000010a5 0x12 ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
- .debug_pubtypes
- 0x00000000000010b7 0x12 ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
- .debug_pubtypes
- 0x00000000000010c9 0x12 ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
- .debug_pubtypes
- 0x00000000000010db 0x12 ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
- .debug_pubtypes
- 0x00000000000010ed 0x12 ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
- .debug_pubtypes
- 0x00000000000010ff 0x12 ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
-
-.debug_ranges 0x0000000000000000 0x868
- .debug_ranges 0x0000000000000000 0x1d0 USBtoSerial.o
- .debug_ranges 0x00000000000001d0 0x10 Descriptors.o
- .debug_ranges 0x00000000000001e0 0x100 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .debug_ranges 0x00000000000002e0 0x10 ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .debug_ranges 0x00000000000002f0 0x298 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .debug_ranges 0x0000000000000588 0xa8 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .debug_ranges 0x0000000000000630 0x20 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .debug_ranges 0x0000000000000650 0x28 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .debug_ranges 0x0000000000000678 0x28 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .debug_ranges 0x00000000000006a0 0x10 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .debug_ranges 0x00000000000006b0 0x10 ../../LUFA/Drivers/USB/Core/Events.o
- .debug_ranges 0x00000000000006c0 0x10 ../../LUFA/Drivers/USB/Core/USBTask.o
- .debug_ranges 0x00000000000006d0 0x20 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .debug_ranges 0x00000000000006f0 0x88 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .debug_ranges 0x0000000000000778 0x20 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .debug_ranges 0x0000000000000798 0x20 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .debug_ranges 0x00000000000007b8 0x30 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .debug_ranges 0x00000000000007e8 0x80 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
-
-Cross Reference Table
-
-Symbol File
-Audio_Device_ConfigureEndpoints ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
-Audio_Device_Event_Stub ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
-Audio_Device_ProcessControlRequest ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
-CALLBACK_Audio_Device_GetSetEndpointProperty ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
-CALLBACK_Audio_Device_GetSetInterfaceProperty ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
-CALLBACK_HIDParser_FilterHIDReportItem ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
-CALLBACK_HID_Device_CreateHIDReport ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
-CALLBACK_HID_Device_ProcessHIDReport ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
-CALLBACK_MS_Device_SCSICommandReceived ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
-CALLBACK_USB_GetDescriptor Descriptors.o
- ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
-CDC_Device_BytesReceived ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-CDC_Device_ConfigureEndpoints ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- USBtoSerial.o
-CDC_Device_CreateBlockingStream ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-CDC_Device_CreateStream ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-CDC_Device_Event_Stub ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-CDC_Device_Flush ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-CDC_Device_ProcessControlRequest ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- USBtoSerial.o
-CDC_Device_ReceiveByte ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- USBtoSerial.o
-CDC_Device_SendByte ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- USBtoSerial.o
-CDC_Device_SendControlLineStateChange ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-CDC_Device_SendData ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-CDC_Device_SendString ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-CDC_Device_USBTask ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- USBtoSerial.o
-ConfigurationDescriptor Descriptors.o
-DeviceDescriptor Descriptors.o
-EVENT_Audio_Device_StreamStartStop ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
-EVENT_CDC_Device_BreakSent ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-EVENT_CDC_Device_ControLineStateChanged ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-EVENT_CDC_Device_LineEncodingChanged USBtoSerial.o
-EVENT_USB_Device_ConfigurationChanged USBtoSerial.o
- ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
-EVENT_USB_Device_Connect USBtoSerial.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
-EVENT_USB_Device_ControlRequest USBtoSerial.o
- ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
-EVENT_USB_Device_Disconnect USBtoSerial.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
-EVENT_USB_Device_Reset ../../LUFA/Drivers/USB/Core/Events.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
-EVENT_USB_Device_StartOfFrame ../../LUFA/Drivers/USB/Core/Events.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
-EVENT_USB_Device_Suspend ../../LUFA/Drivers/USB/Core/Events.o
-EVENT_USB_Device_WakeUp ../../LUFA/Drivers/USB/Core/Events.o
-Endpoint_ClearEndpoints ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
-Endpoint_ClearStatusStage ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
-Endpoint_ConfigureEndpointTable ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
-Endpoint_ConfigureEndpoint_Prv ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
-Endpoint_Discard_Stream ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Null_Stream ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Read_Control_EStream_BE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Read_Control_EStream_LE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Read_Control_Stream_BE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Read_Control_Stream_LE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
-Endpoint_Read_EStream_BE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Read_EStream_LE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Read_Stream_BE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Read_Stream_LE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
-Endpoint_WaitUntilReady ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Write_Control_EStream_BE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Write_Control_EStream_LE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Write_Control_PStream_BE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Write_Control_PStream_LE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
-Endpoint_Write_Control_Stream_BE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Write_Control_Stream_LE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
-Endpoint_Write_EStream_BE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Write_EStream_LE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Write_PStream_BE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Write_PStream_LE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Write_Stream_BE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-Endpoint_Write_Stream_LE ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-HID_Device_ConfigureEndpoints ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
-HID_Device_ProcessControlRequest ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
-HID_Device_USBTask ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
-LanguageString Descriptors.o
-MIDI_Device_ConfigureEndpoints ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
-MIDI_Device_Flush ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
-MIDI_Device_ReceiveEventPacket ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
-MIDI_Device_SendEventPacket ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
-MIDI_Device_USBTask ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
-MS_Device_ConfigureEndpoints ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
-MS_Device_ProcessControlRequest ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
-MS_Device_USBTask ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
-ManufacturerString Descriptors.o
-ProductString Descriptors.o
-RNDIS_Device_ConfigureEndpoints ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
-RNDIS_Device_IsPacketReceived ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
-RNDIS_Device_ProcessControlRequest ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
-RNDIS_Device_ReadPacket ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
-RNDIS_Device_SendPacket ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
-RNDIS_Device_USBTask ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
-SetupHardware USBtoSerial.o
-USB_ControlRequest ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- ../../LUFA/Drivers/USB/Core/USBTask.o
- ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-USB_Device_ConfigurationNumber ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
-USB_Device_CurrentlySelfPowered ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
-USB_Device_ProcessControlRequest ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- ../../LUFA/Drivers/USB/Core/USBTask.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
-USB_Device_RemoteWakeupEnabled ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
-USB_Device_SendRemoteWakeup ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
-USB_Disable ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
-USB_Event_Stub ../../LUFA/Drivers/USB/Core/Events.o
-USB_GetHIDReportItemInfo ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
-USB_GetHIDReportSize ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
-USB_GetNextDescriptorComp ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
-USB_GetNextDescriptorOfType ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
-USB_GetNextDescriptorOfTypeAfter ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
-USB_GetNextDescriptorOfTypeBefore ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
-USB_INT_ClearAllInterrupts ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
-USB_INT_DisableAllInterrupts ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
-USB_Init ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- USBtoSerial.o
-USB_IsInitialized ../../LUFA/Drivers/USB/Core/USBTask.o
- ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
-USB_ProcessHIDReport ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
-USB_ResetInterface ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
-USB_SetHIDReportItemInfo ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
-USB_USBTask ../../LUFA/Drivers/USB/Core/USBTask.o
- ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- USBtoSerial.o
-Usb2SerialTask USBtoSerial.o
-VirtualSerial_CDC_Interface USBtoSerial.o
-__addsf3 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o)
- USBtoSerial.o
-__addsf3x /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o)
-__bad_interrupt /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__bss_end /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_clear_bss.o)
-__bss_start /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_clear_bss.o)
-__cmpsf2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
-__data_end /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_copy_data.o)
-__data_load_start /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_copy_data.o)
-__data_start /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_copy_data.o)
-__divmodhi4 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_divmodhi4.o)
- USBtoSerial.o
-__divsf3 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3.o)
- USBtoSerial.o
-__divsf3_pse /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
-__divsf3x /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3.o)
-__do_clear_bss /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_clear_bss.o)
- ../../LUFA/Drivers/USB/Core/USBTask.o
- ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- USBtoSerial.o
-__do_copy_data /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_copy_data.o)
- ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- USBtoSerial.o
-__eerd_byte_m32u2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eerd_byte_atmega32u2.o)
- ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-__eeupd_byte_m32u2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eeupd_byte_atmega32u2.o)
- ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-__eeupd_r18_m32u2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(eeupd_byte_atmega32u2.o)
-__eqsf2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
-__fixunssfsi /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fixunssfsi.o)
- USBtoSerial.o
-__floatsisf /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(floatsisf.o)
-__floatunsisf /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(floatsisf.o)
- USBtoSerial.o
-__fp_cmp /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_cmp.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(gesf2.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
-__fp_inf /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_inf.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
-__fp_nan /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_nan.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
-__fp_pscA /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscA.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
-__fp_pscB /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscB.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
-__fp_round /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_round.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o)
-__fp_split3 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_split3.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
-__fp_splitA /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_split3.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fixunssfsi.o)
-__fp_szero /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_zero.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
-__fp_zero /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_zero.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fixunssfsi.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
-__gesf2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(gesf2.o)
-__gtsf2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(gesf2.o)
- USBtoSerial.o
-__heap_end /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__init /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__lesf2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
-__ltsf2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
- USBtoSerial.o
-__mulhi3 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_mulhi3.o)
- ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- USBtoSerial.o
-__mulhi_const_10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(mul10.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(atoi.o)
-__mulsi3 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_mulsi3.o)
- USBtoSerial.o
-__nesf2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
-__stack /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__subsf3 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o)
- USBtoSerial.o
-__udivmodhi4 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodhi4.o)
- /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_divmodhi4.o)
- USBtoSerial.o
-__udivmodsi4 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodsi4.o)
- USBtoSerial.o
-__vector_1 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_10 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_11 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_12 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_13 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_14 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_15 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_16 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_17 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_18 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_19 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_2 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_20 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_21 USBtoSerial.o
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_22 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_23 USBtoSerial.o
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_24 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_25 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_26 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_27 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_28 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_29 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_3 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_30 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_31 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_32 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_33 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_34 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_35 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_36 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_37 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_5 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_6 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_7 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_9 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vector_default /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-__vectors /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-_div /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_divmodhi4.o)
-_exit /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
-adb USBtoSerial.o
-adb_data_length USBtoSerial.o
-adb_werte USBtoSerial.o
-atoi /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(atoi.o)
- USBtoSerial.o
-decode_field USBtoSerial.o
-delta_x USBtoSerial.o
-delta_y USBtoSerial.o
-exit /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-init_leds USBtoSerial.o
-init_motors USBtoSerial.o
-init_sw USBtoSerial.o
-main USBtoSerial.o
- /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
-memcmp /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcmp.o)
- ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
-memcpy /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy.o)
- ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
-memcpy_P /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memcpy_P.o)
- ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
-memset /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(memset.o)
- ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
-motor_step USBtoSerial.o
-move_plate USBtoSerial.o
-my_uitoa USBtoSerial.o
-parse_command USBtoSerial.o
-phase_pattern USBtoSerial.o
-plate_pos_x USBtoSerial.o
-plate_pos_y USBtoSerial.o
-pos_report USBtoSerial.o
-print_steps_in_mm USBtoSerial.o
-set_led0 USBtoSerial.o
-set_led1 USBtoSerial.o
-set_led2 USBtoSerial.o
-set_x USBtoSerial.o
-set_y USBtoSerial.o
-sign USBtoSerial.o
-stringbuffer USBtoSerial.o
-strncpy /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libc.a(strncpy.o)
- USBtoSerial.o
-sw0_state USBtoSerial.o
-sw1_state USBtoSerial.o
-sw2_state USBtoSerial.o
-t0ext USBtoSerial.o
-t0ovfcount USBtoSerial.o
-t0rst USBtoSerial.o
-times_ten_pow USBtoSerial.o
-touchpad_init USBtoSerial.o
-touchpad_read USBtoSerial.o
-touchpad_set_abs_mode USBtoSerial.o
-touchpad_set_rel_mode_100dpi USBtoSerial.o
-touchpad_set_rel_mode_200dpi USBtoSerial.o
-uart_print_number USBtoSerial.o
-uart_print_number_wlzeros USBtoSerial.o
-uart_print_signed_number USBtoSerial.o
-uart_putc USBtoSerial.o
-uart_puts USBtoSerial.o
-x_abs USBtoSerial.o
-y_abs USBtoSerial.o
-z_pressure USBtoSerial.o