Skip to content

Instantly share code, notes, and snippets.

@kblomqvist
Created July 29, 2012 13:02
Show Gist options
  • Save kblomqvist/3198588 to your computer and use it in GitHub Desktop.
Save kblomqvist/3198588 to your computer and use it in GitHub Desktop.
Aery32+LUFA, working build LSS and MAP
lufaery32.elf: file format elf32-avr32
Sections:
Idx Name Size VMA LMA File off Algn
0 .reset 00000008 80002000 80002000 00000400 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .rela.got 00000000 80002008 80002008 00000408 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .init 0000001c 80002008 80002008 00000408 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
3 .text 00002118 80002024 80002024 00000424 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
4 .exception_handlers 00000200 80004200 80004200 00002600 2**9
CONTENTS, ALLOC, LOAD, READONLY, CODE
5 .fini 00000018 80004400 80004400 00002800 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
6 .rodata 00000104 80004418 80004418 00002818 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
7 .dalign 00000004 8000451c 8000451c 0000291c 2**0
ALLOC
8 .ctors 00000008 00000004 80004520 00002c04 2**2
CONTENTS, ALLOC, LOAD, DATA
9 .dtors 00000008 0000000c 80004528 00002c0c 2**2
CONTENTS, ALLOC, LOAD, DATA
10 .jcr 00000004 00000014 80004530 00002c14 2**2
CONTENTS, ALLOC, LOAD, DATA
11 .got 0000000c 00000018 80004534 00002c18 2**2
CONTENTS, ALLOC, LOAD, DATA
12 .data 0000053c 00000024 80004540 00002c24 2**2
CONTENTS, ALLOC, LOAD, DATA
13 .bss 000000c8 00000560 80004a7c 00003160 2**2
ALLOC
14 .comment 00000030 00000000 00000000 00003160 2**0
CONTENTS, READONLY
15 .debug_aranges 00000508 00000000 00000000 00003190 2**0
CONTENTS, READONLY, DEBUGGING
16 .debug_pubnames 00000af4 00000000 00000000 00003698 2**0
CONTENTS, READONLY, DEBUGGING
17 .debug_info 0005b3e3 00000000 00000000 0000418c 2**0
CONTENTS, READONLY, DEBUGGING
18 .debug_abbrev 0000296b 00000000 00000000 0005f56f 2**0
CONTENTS, READONLY, DEBUGGING
19 .debug_line 000093c6 00000000 00000000 00061eda 2**0
CONTENTS, READONLY, DEBUGGING
20 .debug_frame 00000dd4 00000000 00000000 0006b2a0 2**2
CONTENTS, READONLY, DEBUGGING
21 .debug_str 00005510 00000000 00000000 0006c074 2**0
CONTENTS, READONLY, DEBUGGING
22 .debug_loc 0000240f 00000000 00000000 00071584 2**0
CONTENTS, READONLY, DEBUGGING
23 .debug_macinfo 0078e197 00000000 00000000 00073993 2**0
CONTENTS, READONLY, DEBUGGING
24 .stack 00001000 00007000 00007000 00000400 2**0
ALLOC
25 .debug_ranges 00000e70 00000000 00000000 00801b2a 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .reset:
80002000 <_start>:
80002000: 48 1f lddpc pc,80002004 <_start+0x4>
80002002: 00 00 add r0,r0
80002004: 80 00 ld.sh r0,r0[0x0]
80002006: 20 24 sub r4,2
Disassembly of section .init:
80002008 <_init>:
80002008: eb cd 40 40 pushm r6,lr
8000200c: 48 26 lddpc r6,80002014 <_init+0xc>
8000200e: 1e 26 rsub r6,pc
80002010: c0 48 rjmp 80002018 <_init+0x10>
80002012: 00 00 add r0,r0
80002014: 80 00 ld.sh r0,r0[0x0]
80002016: 1f f6 ld.ub r6,pc[0x7]
80002018: f0 16 00 01 mcall r6[4]
8000201c: f0 16 00 00 mcall r6[0]
80002020: e3 cd 80 40 ldm sp++,r6,pc
Disassembly of section .text:
80002024 <_stext>:
80002024: 30 07 mov r7,0
80002026: 49 5a lddpc r10,80002078 <_stext+0x54>
80002028: 5b fa cp.w r10,-1
8000202a: f4 0d 17 10 movne sp,r10
8000202e: 49 4b lddpc r11,8000207c <_stext+0x58>
80002030: 49 4c lddpc r12,80002080 <_stext+0x5c>
80002032: 18 3b cp.w r11,r12
80002034: c0 60 breq 80002040 <_stext+0x1c>
80002036: 49 4a lddpc r10,80002084 <_stext+0x60>
80002038: b7 09 ld.d r8,r11++
8000203a: b9 28 st.d r12++,r8
8000203c: 14 3c cp.w r12,r10
8000203e: cf d5 brlt 80002038 <_stext+0x14>
80002040: 49 2a lddpc r10,80002088 <_stext+0x64>
80002042: 49 1c lddpc r12,80002084 <_stext+0x60>
80002044: 30 08 mov r8,0
80002046: 30 09 mov r9,0
80002048: b9 28 st.d r12++,r8
8000204a: 14 3c cp.w r12,r10
8000204c: cf e5 brlt 80002048 <_stext+0x24>
8000204e: f0 1f 00 10 mcall 8000208c <_stext+0x68>
80002052: 49 0c lddpc r12,80002090 <_stext+0x6c>
80002054: f0 1f 00 10 mcall 80002094 <_stext+0x70>
80002058: f0 1f 00 10 mcall 80002098 <_stext+0x74>
8000205c: 1a 9c mov r12,sp
8000205e: 30 0b mov r11,0
80002060: f0 1f 00 0f mcall 8000209c <_stext+0x78>
80002064: 5b fc cp.w r12,-1
80002066: f9 bc 00 00 moveq r12,0
8000206a: f9 ba 00 00 moveq r10,0
8000206e: 14 1d sub sp,r10
80002070: f0 1f 00 0c mcall 800020a0 <_stext+0x7c>
80002074: f0 1f 00 0c mcall 800020a4 <_stext+0x80>
80002078: 00 00 add r0,r0
8000207a: 80 00 ld.sh r0,r0[0x0]
8000207c: 80 00 ld.sh r0,r0[0x0]
8000207e: 45 20 lddsp r0,sp[0x148]
80002080: 00 00 add r0,r0
80002082: 00 04 add r4,r0
80002084: 00 00 add r0,r0
80002086: 05 60 ld.uh r0,--r2
80002088: 00 00 add r0,r0
8000208a: 06 28 rsub r8,r3
8000208c: 80 00 ld.sh r0,r0[0x0]
8000208e: 38 3c mov r12,-125
80002090: 80 00 ld.sh r0,r0[0x0]
80002092: 44 00 lddsp r0,sp[0x100]
80002094: 80 00 ld.sh r0,r0[0x0]
80002096: 38 00 mov r0,-128
80002098: 80 00 ld.sh r0,r0[0x0]
8000209a: 20 08 sub r8,0
8000209c: 80 00 ld.sh r0,r0[0x0]
8000209e: 38 3e mov lr,-125
800020a0: 80 00 ld.sh r0,r0[0x0]
800020a2: 21 e4 sub r4,30
800020a4: 80 00 ld.sh r0,r0[0x0]
800020a6: 38 14 mov r4,-127
800020a8 <__do_global_dtors_aux>:
800020a8: d4 21 pushm r4-r7,lr
800020aa: 48 e4 lddpc r4,800020e0 <__do_global_dtors_aux+0x38>
800020ac: 30 08 mov r8,0
800020ae: 09 89 ld.ub r9,r4[0x0]
800020b0: f0 09 18 00 cp.b r9,r8
800020b4: c1 41 brne 800020dc <__do_global_dtors_aux+0x34>
800020b6: 48 c7 lddpc r7,800020e4 <__do_global_dtors_aux+0x3c>
800020b8: 48 c5 lddpc r5,800020e8 <__do_global_dtors_aux+0x40>
800020ba: 48 d6 lddpc r6,800020ec <__do_global_dtors_aux+0x44>
800020bc: 6e 08 ld.w r8,r7[0x0]
800020be: 0a 16 sub r6,r5
800020c0: a3 46 asr r6,0x2
800020c2: 20 16 sub r6,1
800020c4: 0c 38 cp.w r8,r6
800020c6: c0 92 brcc 800020d8 <__do_global_dtors_aux+0x30>
800020c8: 2f f8 sub r8,-1
800020ca: 8f 08 st.w r7[0x0],r8
800020cc: ea 08 03 28 ld.w r8,r5[r8<<0x2]
800020d0: 5d 18 icall r8
800020d2: 6e 08 ld.w r8,r7[0x0]
800020d4: 0c 38 cp.w r8,r6
800020d6: cf 93 brcs 800020c8 <__do_global_dtors_aux+0x20>
800020d8: 30 18 mov r8,1
800020da: a8 88 st.b r4[0x0],r8
800020dc: d8 22 popm r4-r7,pc
800020de: 00 00 add r0,r0
800020e0: 00 00 add r0,r0
800020e2: 05 60 ld.uh r0,--r2
800020e4: 00 00 add r0,r0
800020e6: 05 64 ld.uh r4,--r2
800020e8: 00 00 add r0,r0
800020ea: 00 0c add r12,r0
800020ec: 00 00 add r0,r0
800020ee: 00 10 sub r0,r0
800020f0 <frame_dummy>:
800020f0: d4 01 pushm lr
800020f2: 48 5c lddpc r12,80002104 <frame_dummy+0x14>
800020f4: 78 08 ld.w r8,r12[0x0]
800020f6: 58 08 cp.w r8,0
800020f8: c0 50 breq 80002102 <frame_dummy+0x12>
800020fa: 48 48 lddpc r8,80002108 <frame_dummy+0x18>
800020fc: 58 08 cp.w r8,0
800020fe: c0 20 breq 80002102 <frame_dummy+0x12>
80002100: 5d 18 icall r8
80002102: d8 02 popm pc
80002104: 00 00 add r0,r0
80002106: 00 14 sub r4,r0
80002108: 00 00 add r0,r0
...
8000210c <_Z10init_boardv>:
8000210c: eb cd 40 80 pushm r7,lr
80002110: 4a 78 lddpc r8,800021ac <_Z10init_boardv+0xa0>
80002112: 30 0a mov r10,0
80002114: 70 0c ld.w r12,r8[0x0]
80002116: 3f fb mov r11,-1
80002118: f0 1f 00 26 mcall 800021b0 <_Z10init_boardv+0xa4>
8000211c: 4a 68 lddpc r8,800021b4 <_Z10init_boardv+0xa8>
8000211e: 30 0a mov r10,0
80002120: 70 0c ld.w r12,r8[0x0]
80002122: 3f fb mov r11,-1
80002124: f0 1f 00 23 mcall 800021b0 <_Z10init_boardv+0xa4>
80002128: 4a 48 lddpc r8,800021b8 <_Z10init_boardv+0xac>
8000212a: 30 0a mov r10,0
8000212c: 70 0c ld.w r12,r8[0x0]
8000212e: 33 fb mov r11,63
80002130: f0 1f 00 20 mcall 800021b0 <_Z10init_boardv+0xa4>
80002134: 30 4a mov r10,4
80002136: 30 7b mov r11,7
80002138: 30 0c mov r12,0
8000213a: f0 1f 00 21 mcall 800021bc <_Z10init_boardv+0xb0>
8000213e: 30 0c mov r12,0
80002140: f0 1f 00 20 mcall 800021c0 <_Z10init_boardv+0xb4>
80002144: 30 08 mov r8,0
80002146: 4a 07 lddpc r7,800021c4 <_Z10init_boardv+0xb8>
80002148: 10 9b mov r11,r8
8000214a: 30 19 mov r9,1
8000214c: 30 ba mov r10,11
8000214e: 6e 0c ld.w r12,r7[0x0]
80002150: f0 1f 00 1e mcall 800021c8 <_Z10init_boardv+0xbc>
80002154: 30 1b mov r11,1
80002156: 6e 0c ld.w r12,r7[0x0]
80002158: f0 1f 00 1d mcall 800021cc <_Z10init_boardv+0xc0>
8000215c: 6e 0c ld.w r12,r7[0x0]
8000215e: f0 1f 00 1d mcall 800021d0 <_Z10init_boardv+0xc4>
80002162: 30 18 mov r8,1
80002164: 49 c7 lddpc r7,800021d4 <_Z10init_boardv+0xc8>
80002166: 10 99 mov r9,r8
80002168: 31 0a mov r10,16
8000216a: 30 0b mov r11,0
8000216c: 6e 0c ld.w r12,r7[0x0]
8000216e: f0 1f 00 17 mcall 800021c8 <_Z10init_boardv+0xbc>
80002172: 30 1b mov r11,1
80002174: 6e 0c ld.w r12,r7[0x0]
80002176: f0 1f 00 16 mcall 800021cc <_Z10init_boardv+0xc0>
8000217a: 6e 0c ld.w r12,r7[0x0]
8000217c: f0 1f 00 15 mcall 800021d0 <_Z10init_boardv+0xc4>
80002180: fe 68 14 00 mov r8,-125952
80002184: 30 1a mov r10,1
80002186: 70 09 ld.w r9,r8[0x0]
80002188: f3 da d0 c1 bfins r9,r10,0x6,0x1
8000218c: 30 2c mov r12,2
8000218e: 91 09 st.w r8[0x0],r9
80002190: f0 1f 00 12 mcall 800021d8 <_Z10init_boardv+0xcc>
80002194: 3f f8 mov r8,-1
80002196: 49 29 lddpc r9,800021dc <_Z10init_boardv+0xd0>
80002198: 72 09 ld.w r9,r9[0x0]
8000219a: 93 38 st.w r9[0xc],r8
8000219c: 93 48 st.w r9[0x10],r8
8000219e: 93 58 st.w r9[0x14],r8
800021a0: 73 38 ld.w r8,r9[0x4c]
800021a2: ed b8 00 06 bld r8,0x6
800021a6: cf d1 brne 800021a0 <_Z10init_boardv+0x94>
800021a8: e3 cd 80 80 ldm sp++,r7,pc
800021ac: 00 00 add r0,r0
800021ae: 00 48 or r8,r0
800021b0: 80 00 ld.sh r0,r0[0x0]
800021b2: 23 2c sub r12,50
800021b4: 00 00 add r0,r0
800021b6: 00 4c or r12,r0
800021b8: 00 00 add r0,r0
800021ba: 00 44 or r4,r0
800021bc: 80 00 ld.sh r0,r0[0x0]
800021be: 24 10 sub r0,65
800021c0: 80 00 ld.sh r0,r0[0x0]
800021c2: 25 cc sub r12,92
800021c4: 00 00 add r0,r0
800021c6: 00 54 eor r4,r0
800021c8: 80 00 ld.sh r0,r0[0x0]
800021ca: 24 86 sub r6,72
800021cc: 80 00 ld.sh r0,r0[0x0]
800021ce: 24 ea sub r10,78
800021d0: 80 00 ld.sh r0,r0[0x0]
800021d2: 26 08 sub r8,96
800021d4: 00 00 add r0,r0
800021d6: 00 58 eor r8,r0
800021d8: 80 00 ld.sh r0,r0[0x0]
800021da: 26 4c sub r12,100
800021dc: 00 00 add r0,r0
800021de: 00 50 eor r0,r0
800021e0 <EVENT_USB_Device_Connect>:
800021e0: 5e fc retal r12
800021e2 <EVENT_USB_Device_Disconnect>:
800021e2: 5e fc retal r12
800021e4 <main>:
800021e4: d4 01 pushm lr
800021e6: f0 1f 00 23 mcall 80002270 <main+0x8c>
800021ea: 30 3b mov r11,3
800021ec: 34 4c mov r12,68
800021ee: f0 1f 00 22 mcall 80002274 <main+0x90>
800021f2: 30 1a mov r10,1
800021f4: 30 3b mov r11,3
800021f6: 30 4c mov r12,4
800021f8: f0 1f 00 20 mcall 80002278 <main+0x94>
800021fc: 30 4c mov r12,4
800021fe: f0 1f 00 20 mcall 8000227c <main+0x98>
80002202: f0 1f 00 20 mcall 80002280 <main+0x9c>
80002206: 4a 08 lddpc r8,80002284 <main+0xa0>
80002208: 4a 09 lddpc r9,80002288 <main+0xa4>
8000220a: f1 49 00 44 st.w r8[68],r9
8000220e: 4a 08 lddpc r8,8000228c <main+0xa8>
80002210: 70 19 ld.w r9,r8[0x4]
80002212: fe 78 08 00 mov r8,-63488
80002216: f1 49 00 44 st.w r8[68],r9
8000221a: d5 03 csrf 0x10
8000221c: f0 1f 00 1d mcall 80002290 <main+0xac>
80002220: 31 09 mov r9,16
80002222: fe 78 10 00 mov r8,-61440
80002226: f1 49 02 54 st.w r8[596],r9
8000222a: 34 8b mov r11,72
8000222c: 49 ac lddpc r12,80002294 <main+0xb0>
8000222e: f0 1f 00 1b mcall 80002298 <main+0xb4>
80002232: 36 5b mov r11,101
80002234: 49 8c lddpc r12,80002294 <main+0xb0>
80002236: f0 1f 00 19 mcall 80002298 <main+0xb4>
8000223a: 36 cb mov r11,108
8000223c: 49 6c lddpc r12,80002294 <main+0xb0>
8000223e: f0 1f 00 17 mcall 80002298 <main+0xb4>
80002242: 36 cb mov r11,108
80002244: 49 4c lddpc r12,80002294 <main+0xb0>
80002246: f0 1f 00 15 mcall 80002298 <main+0xb4>
8000224a: 36 fb mov r11,111
8000224c: 49 2c lddpc r12,80002294 <main+0xb0>
8000224e: f0 1f 00 13 mcall 80002298 <main+0xb4>
80002252: 30 ab mov r11,10
80002254: 49 0c lddpc r12,80002294 <main+0xb0>
80002256: f0 1f 00 11 mcall 80002298 <main+0xb4>
8000225a: 30 db mov r11,13
8000225c: 48 ec lddpc r12,80002294 <main+0xb0>
8000225e: f0 1f 00 0f mcall 80002298 <main+0xb4>
80002262: 48 dc lddpc r12,80002294 <main+0xb0>
80002264: f0 1f 00 0e mcall 8000229c <main+0xb8>
80002268: f0 1f 00 0e mcall 800022a0 <main+0xbc>
8000226c: cd fb rjmp 8000222a <main+0x46>
8000226e: 00 00 add r0,r0
80002270: 80 00 ld.sh r0,r0[0x0]
80002272: 21 0c sub r12,16
80002274: 80 00 ld.sh r0,r0[0x0]
80002276: 23 f0 sub r0,63
80002278: 80 00 ld.sh r0,r0[0x0]
8000227a: 25 1e sub lr,81
8000227c: 80 00 ld.sh r0,r0[0x0]
8000227e: 26 36 sub r6,99
80002280: 80 00 ld.sh r0,r0[0x0]
80002282: 33 b8 mov r8,59
80002284: 00 00 add r0,r0
80002286: 05 b4 ld.ub r4,r2[0x3]
80002288: 80 00 ld.sh r0,r0[0x0]
8000228a: 27 c8 sub r8,124
8000228c: 80 00 ld.sh r0,r0[0x0]
8000228e: 43 24 lddsp r4,sp[0xc8]
80002290: 80 00 ld.sh r0,r0[0x0]
80002292: 27 50 sub r0,117
80002294: 00 00 add r0,r0
80002296: 00 24 rsub r4,r0
80002298: 80 00 ld.sh r0,r0[0x0]
8000229a: 2f 84 sub r4,-8
8000229c: 80 00 ld.sh r0,r0[0x0]
8000229e: 2f 58 sub r8,-11
800022a0: 80 00 ld.sh r0,r0[0x0]
800022a2: 2e 40 sub r0,-28
800022a4 <EVENT_USB_Device_ConfigurationChanged>:
800022a4: d4 01 pushm lr
800022a6: 48 3c lddpc r12,800022b0 <EVENT_USB_Device_ConfigurationChanged+0xc>
800022a8: f0 1f 00 03 mcall 800022b4 <EVENT_USB_Device_ConfigurationChanged+0x10>
800022ac: d8 02 popm pc
800022ae: 00 00 add r0,r0
800022b0: 00 00 add r0,r0
800022b2: 00 24 rsub r4,r0
800022b4: 80 00 ld.sh r0,r0[0x0]
800022b6: 30 2c mov r12,2
800022b8 <EVENT_USB_Device_ControlRequest>:
800022b8: d4 01 pushm lr
800022ba: 48 3c lddpc r12,800022c4 <EVENT_USB_Device_ControlRequest+0xc>
800022bc: f0 1f 00 03 mcall 800022c8 <EVENT_USB_Device_ControlRequest+0x10>
800022c0: d8 02 popm pc
800022c2: 00 00 add r0,r0
800022c4: 00 00 add r0,r0
800022c6: 00 24 rsub r4,r0
800022c8: 80 00 ld.sh r0,r0[0x0]
800022ca: 30 94 mov r4,9
800022cc <CALLBACK_USB_GetDescriptor>:
800022cc: f8 08 16 08 lsr r8,r12,0x8
800022d0: 30 29 mov r9,2
800022d2: f2 08 18 00 cp.b r8,r9
800022d6: c1 e0 breq 80002312 <CALLBACK_USB_GetDescriptor+0x46>
800022d8: 30 3b mov r11,3
800022da: f6 08 18 00 cp.b r8,r11
800022de: c0 d0 breq 800022f8 <CALLBACK_USB_GetDescriptor+0x2c>
800022e0: 30 19 mov r9,1
800022e2: f2 08 18 00 cp.b r8,r9
800022e6: c0 50 breq 800022f0 <CALLBACK_USB_GetDescriptor+0x24>
800022e8: 30 0c mov r12,0
800022ea: 18 98 mov r8,r12
800022ec: 95 08 st.w r10[0x0],r8
800022ee: 5e fc retal r12
800022f0: 48 b8 lddpc r8,8000231c <CALLBACK_USB_GetDescriptor+0x50>
800022f2: 31 2c mov r12,18
800022f4: 95 08 st.w r10[0x0],r8
800022f6: 5e fc retal r12
800022f8: 5c 5c castu.b r12
800022fa: f2 0c 18 00 cp.b r12,r9
800022fe: fe 9b ff f5 brhi 800022e8 <CALLBACK_USB_GetDescriptor+0x1c>
80002302: 48 89 lddpc r9,80002320 <CALLBACK_USB_GetDescriptor+0x54>
80002304: 48 88 lddpc r8,80002324 <CALLBACK_USB_GetDescriptor+0x58>
80002306: f0 0c 03 28 ld.w r8,r8[r12<<0x2]
8000230a: f2 0c 04 1c ld.sh r12,r9[r12<<0x1]
8000230e: 95 08 st.w r10[0x0],r8
80002310: 5e fc retal r12
80002312: 48 68 lddpc r8,80002328 <CALLBACK_USB_GetDescriptor+0x5c>
80002314: 33 ec mov r12,62
80002316: 95 08 st.w r10[0x0],r8
80002318: 5e fc retal r12
8000231a: 00 00 add r0,r0
8000231c: 80 00 ld.sh r0,r0[0x0]
8000231e: 44 a2 lddsp r2,sp[0x128]
80002320: 80 00 ld.sh r0,r0[0x0]
80002322: 44 9c lddsp r12,sp[0x124]
80002324: 80 00 ld.sh r0,r0[0x0]
80002326: 44 90 lddsp r0,sp[0x124]
80002328: 80 00 ld.sh r0,r0[0x0]
8000232a: 44 50 lddsp r0,sp[0x114]
8000232c <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi>:
8000232c: 99 1b st.w r12[0x4],r11
8000232e: f9 4b 00 48 st.w r12[72],r11
80002332: f1 da c0 03 bfextu r8,r10,0x0,0x3
80002336: 58 48 cp.w r8,4
80002338: c4 e0 breq 800023d4 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0xa8>
8000233a: e0 8a 00 2b brle 80002390 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x64>
8000233e: 58 68 cp.w r8,6
80002340: c4 10 breq 800023c2 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x96>
80002342: c3 a4 brge 800023b6 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x8a>
80002344: 99 ab st.w r12[0x28],r11
80002346: 99 5b st.w r12[0x14],r11
80002348: 99 2b st.w r12[0x8],r11
8000234a: ed ba 00 05 bld r10,0x5
8000234e: c2 c1 brne 800023a6 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x7a>
80002350: 14 98 mov r8,r10
80002352: e2 18 00 18 andl r8,0x18,COH
80002356: 58 88 cp.w r8,8
80002358: c4 70 breq 800023e6 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0xba>
8000235a: 59 08 cp.w r8,16
8000235c: c4 00 breq 800023dc <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0xb0>
8000235e: 58 08 cp.w r8,0
80002360: c2 60 breq 800023ac <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x80>
80002362: f9 4b 00 94 st.w r12[148],r11
80002366: ed ba 00 06 bld r10,0x6
8000236a: f9 fb 0a 1d st.weq r12[0x74],r11
8000236e: f9 fb 1a 1e st.wne r12[0x78],r11
80002372: ed ba 00 07 bld r10,0x7
80002376: f9 fb 0a 21 st.weq r12[0x84],r11
8000237a: f9 fb 1a 22 st.wne r12[0x88],r11
8000237e: 14 98 mov r8,r10
80002380: ed ba 00 08 bld r10,0x8
80002384: f9 fb 0a 31 st.weq r12[0xc4],r11
80002388: f9 fb 1a 32 st.wne r12[0xc8],r11
8000238c: 14 98 mov r8,r10
8000238e: 5e fc retal r12
80002390: 58 28 cp.w r8,2
80002392: c1 c0 breq 800023ca <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x9e>
80002394: 58 38 cp.w r8,3
80002396: cd a1 brne 8000234a <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x1e>
80002398: f9 4b 00 44 st.w r12[68],r11
8000239c: f9 4b 00 54 st.w r12[84],r11
800023a0: ed ba 00 05 bld r10,0x5
800023a4: cd 60 breq 80002350 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x24>
800023a6: f9 4b 00 98 st.w r12[152],r11
800023aa: cd eb rjmp 80002366 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x3a>
800023ac: f9 4b 00 a8 st.w r12[168],r11
800023b0: f9 4b 00 b8 st.w r12[184],r11
800023b4: cd 7b rjmp 80002362 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x36>
800023b6: 58 78 cp.w r8,7
800023b8: cc 91 brne 8000234a <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x1e>
800023ba: 99 9b st.w r12[0x24],r11
800023bc: 99 5b st.w r12[0x14],r11
800023be: 99 2b st.w r12[0x8],r11
800023c0: cc 5b rjmp 8000234a <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x1e>
800023c2: 99 9b st.w r12[0x24],r11
800023c4: 99 6b st.w r12[0x18],r11
800023c6: 99 2b st.w r12[0x8],r11
800023c8: cc 1b rjmp 8000234a <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x1e>
800023ca: f9 4b 00 44 st.w r12[68],r11
800023ce: f9 4b 00 58 st.w r12[88],r11
800023d2: cb cb rjmp 8000234a <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x1e>
800023d4: 99 ab st.w r12[0x28],r11
800023d6: 99 6b st.w r12[0x18],r11
800023d8: 99 2b st.w r12[0x8],r11
800023da: cb 8b rjmp 8000234a <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x1e>
800023dc: f9 4b 00 a8 st.w r12[168],r11
800023e0: f9 4b 00 b4 st.w r12[180],r11
800023e4: cb fb rjmp 80002362 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x36>
800023e6: f9 4b 00 a4 st.w r12[164],r11
800023ea: f9 4b 00 b8 st.w r12[184],r11
800023ee: cb ab rjmp 80002362 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x36>
800023f0 <_ZN4aery13gpio_init_pinEhi>:
800023f0: d4 01 pushm lr
800023f2: 18 98 mov r8,r12
800023f4: 16 9a mov r10,r11
800023f6: a5 5c asr r12,0x5
800023f8: 30 1b mov r11,1
800023fa: a9 6c lsl r12,0x8
800023fc: f6 08 09 4b lsl r11,r11,r8
80002400: e0 2c f0 00 sub r12,61440
80002404: f0 1f 00 02 mcall 8000240c <_ZN4aery13gpio_init_pinEhi+0x1c>
80002408: d8 02 popm pc
8000240a: 00 00 add r0,r0
8000240c: 80 00 ld.sh r0,r0[0x0]
8000240e: 23 2c sub r12,50
80002410 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE>:
80002410: 30 18 mov r8,1
80002412: f0 0c 18 00 cp.b r12,r8
80002416: c1 d0 breq 80002450 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x40>
80002418: c0 63 brcs 80002424 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x14>
8000241a: 32 08 mov r8,32
8000241c: f0 0c 18 00 cp.b r12,r8
80002420: c2 e0 breq 8000247c <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x6c>
80002422: 5e fe retal -1
80002424: fe 78 0c 00 mov r8,-62464
80002428: 70 0c ld.w r12,r8[0x0]
8000242a: e2 1c 00 04 andl r12,0x4,COH
8000242e: cf a1 brne 80002422 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x12>
80002430: 58 1b cp.w r11,1
80002432: cf 80 breq 80002422 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x12>
80002434: 70 a9 ld.w r9,r8[0x28]
80002436: f3 db d0 03 bfins r9,r11,0x0,0x3
8000243a: 91 a9 st.w r8[0x28],r9
8000243c: 70 a9 ld.w r9,r8[0x28]
8000243e: f3 da d1 03 bfins r9,r10,0x8,0x3
80002442: 91 a9 st.w r8[0x28],r9
80002444: 30 1a mov r10,1
80002446: 70 09 ld.w r9,r8[0x0]
80002448: f3 da d0 41 bfins r9,r10,0x2,0x1
8000244c: 91 09 st.w r8[0x0],r9
8000244e: 5e fc retal r12
80002450: fe 78 0c 00 mov r8,-62464
80002454: 70 0c ld.w r12,r8[0x0]
80002456: e2 1c 00 08 andl r12,0x8,COH
8000245a: ce 41 brne 80002422 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x12>
8000245c: 58 1b cp.w r11,1
8000245e: ce 20 breq 80002422 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x12>
80002460: 70 b9 ld.w r9,r8[0x2c]
80002462: f3 db d0 03 bfins r9,r11,0x0,0x3
80002466: 91 b9 st.w r8[0x2c],r9
80002468: 70 b9 ld.w r9,r8[0x2c]
8000246a: f3 da d1 03 bfins r9,r10,0x8,0x3
8000246e: 91 b9 st.w r8[0x2c],r9
80002470: 30 1a mov r10,1
80002472: 70 09 ld.w r9,r8[0x0]
80002474: f3 da d0 61 bfins r9,r10,0x3,0x1
80002478: 91 09 st.w r8[0x0],r9
8000247a: 5e fc retal r12
8000247c: fe 78 0c 00 mov r8,-62464
80002480: 3f fc mov r12,-1
80002482: 70 c8 ld.w r8,r8[0x30]
80002484: 5e fc retal r12
80002486 <_ZN4aery14pm_init_pllvcoEPV14avr32_pm_pll_tNS_13Pm_pll_sourceEhhb>:
80002486: eb cd 40 c0 pushm r6-r7,lr
8000248a: 18 9e mov lr,r12
8000248c: f4 c7 00 03 sub r7,r10,3
80002490: 30 dc mov r12,13
80002492: f8 07 18 00 cp.b r7,r12
80002496: e0 8b 00 28 brhi 800024e6 <_ZN4aery14pm_init_pllvcoEPV14avr32_pm_pll_tNS_13Pm_pll_sourceEhhb+0x60>
8000249a: 7c 07 ld.w r7,lr[0x0]
8000249c: 30 0c mov r12,0
8000249e: ef dc d3 e1 bfins r7,r12,0x1f,0x1
800024a2: 9d 07 st.w lr[0x0],r7
800024a4: 7c 07 ld.w r7,lr[0x0]
800024a6: ef dc d3 c1 bfins r7,r12,0x1e,0x1
800024aa: 9d 07 st.w lr[0x0],r7
800024ac: 33 f6 mov r6,63
800024ae: 7c 07 ld.w r7,lr[0x0]
800024b0: ef d6 d3 06 bfins r7,r6,0x18,0x6
800024b4: 9d 07 st.w lr[0x0],r7
800024b6: 20 1a sub r10,1
800024b8: 7c 07 ld.w r7,lr[0x0]
800024ba: ef da d2 04 bfins r7,r10,0x10,0x4
800024be: 9d 07 st.w lr[0x0],r7
800024c0: 7c 0a ld.w r10,lr[0x0]
800024c2: f5 d9 d1 04 bfins r10,r9,0x8,0x4
800024c6: 9d 0a st.w lr[0x0],r10
800024c8: 18 38 cp.w r8,r12
800024ca: f9 b8 01 01 movne r8,1
800024ce: f9 b8 00 05 moveq r8,5
800024d2: 7c 09 ld.w r9,lr[0x0]
800024d4: f3 d8 d0 43 bfins r9,r8,0x2,0x3
800024d8: 9d 09 st.w lr[0x0],r9
800024da: 7c 08 ld.w r8,lr[0x0]
800024dc: f1 db d0 21 bfins r8,r11,0x1,0x1
800024e0: 9d 08 st.w lr[0x0],r8
800024e2: e3 cd 80 c0 ldm sp++,r6-r7,pc
800024e6: e3 cf c0 c0 ldm sp++,r6-r7,pc,r12=-1
800024ea <_ZN4aery13pm_enable_pllEPV14avr32_pm_pll_tb>:
800024ea: 58 1b cp.w r11,1
800024ec: c1 00 breq 8000250c <_ZN4aery13pm_enable_pllEPV14avr32_pm_pll_tb+0x22>
800024ee: 78 08 ld.w r8,r12[0x0]
800024f0: 78 09 ld.w r9,r12[0x0]
800024f2: f1 d8 c0 43 bfextu r8,r8,0x2,0x3
800024f6: e2 18 00 05 andl r8,0x5,COH
800024fa: f3 d8 d0 43 bfins r9,r8,0x2,0x3
800024fe: 99 09 st.w r12[0x0],r9
80002500: 78 08 ld.w r8,r12[0x0]
80002502: 30 19 mov r9,1
80002504: f1 d9 d0 01 bfins r8,r9,0x0,0x1
80002508: 99 08 st.w r12[0x0],r8
8000250a: 5e fc retal r12
8000250c: 78 08 ld.w r8,r12[0x0]
8000250e: 78 09 ld.w r9,r12[0x0]
80002510: f1 d8 c0 43 bfextu r8,r8,0x2,0x3
80002514: a1 b8 sbr r8,0x1
80002516: f3 d8 d0 43 bfins r9,r8,0x2,0x3
8000251a: 99 09 st.w r12[0x0],r9
8000251c: cf 2b rjmp 80002500 <_ZN4aery13pm_enable_pllEPV14avr32_pm_pll_tb+0x16>
8000251e <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt>:
8000251e: eb cd 40 c0 pushm r6-r7,lr
80002522: fe 78 0c 00 mov r8,-62464
80002526: 2e 8c sub r12,-24
80002528: f0 0c 03 29 ld.w r9,r8[r12<<0x2]
8000252c: e0 6e 01 00 mov lr,256
80002530: fc 0a 19 00 cp.h r10,lr
80002534: e0 8b 00 4a brhi 800025c8 <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt+0xaa>
80002538: f0 0c 03 2e ld.w lr,r8[r12<<0x2]
8000253c: 30 06 mov r6,0
8000253e: 10 97 mov r7,r8
80002540: fd d6 d0 41 bfins lr,r6,0x2,0x1
80002544: f0 0c 09 2e st.w r8[r12<<0x2],lr
80002548: ee 0c 03 28 ld.w r8,r7[r12<<0x2]
8000254c: fe 7e 0c 00 mov lr,-62464
80002550: f1 d8 c0 41 bfextu r8,r8,0x2,0x1
80002554: cf a1 brne 80002548 <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt+0x2a>
80002556: fc 0c 03 28 ld.w r8,lr[r12<<0x2]
8000255a: f1 db d0 01 bfins r8,r11,0x0,0x1
8000255e: fc 0c 09 28 st.w lr[r12<<0x2],r8
80002562: f7 db c0 21 bfextu r11,r11,0x1,0x1
80002566: fc 0c 03 28 ld.w r8,lr[r12<<0x2]
8000256a: f1 db d0 21 bfins r8,r11,0x1,0x1
8000256e: fc 0c 09 28 st.w lr[r12<<0x2],r8
80002572: 58 0a cp.w r10,0
80002574: c1 51 brne 8000259e <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt+0x80>
80002576: fc 0c 03 28 ld.w r8,lr[r12<<0x2]
8000257a: f1 da d0 81 bfins r8,r10,0x4,0x1
8000257e: fc 0c 09 28 st.w lr[r12<<0x2],r8
80002582: e2 19 00 04 andl r9,0x4,COH
80002586: c1 e0 breq 800025c2 <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt+0xa4>
80002588: fe 78 0c 00 mov r8,-62464
8000258c: 30 1a mov r10,1
8000258e: f0 0c 03 29 ld.w r9,r8[r12<<0x2]
80002592: f3 da d0 41 bfins r9,r10,0x2,0x1
80002596: f0 0c 09 29 st.w r8[r12<<0x2],r9
8000259a: e3 cf 80 c0 ldm sp++,r6-r7,pc,r12=0
8000259e: fc 0c 03 28 ld.w r8,lr[r12<<0x2]
800025a2: 30 1b mov r11,1
800025a4: f1 db d0 81 bfins r8,r11,0x4,0x1
800025a8: fc 0c 09 28 st.w lr[r12<<0x2],r8
800025ac: 20 1a sub r10,1
800025ae: fc 0c 03 28 ld.w r8,lr[r12<<0x2]
800025b2: 5c 5a castu.b r10
800025b4: f1 da d1 08 bfins r8,r10,0x8,0x8
800025b8: fc 0c 09 28 st.w lr[r12<<0x2],r8
800025bc: e2 19 00 04 andl r9,0x4,COH
800025c0: ce 41 brne 80002588 <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt+0x6a>
800025c2: 12 9c mov r12,r9
800025c4: e3 cd 80 c0 ldm sp++,r6-r7,pc
800025c8: e3 cf c0 c0 ldm sp++,r6-r7,pc,r12=-1
800025cc <_ZN4aery24pm_wait_osc_to_stabilizeEh>:
800025cc: 30 18 mov r8,1
800025ce: f0 0c 18 00 cp.b r12,r8
800025d2: c1 40 breq 800025fa <_ZN4aery24pm_wait_osc_to_stabilizeEh+0x2e>
800025d4: c0 82 brcc 800025e4 <_ZN4aery24pm_wait_osc_to_stabilizeEh+0x18>
800025d6: fe 79 0c 00 mov r9,-62464
800025da: 73 38 ld.w r8,r9[0x4c]
800025dc: ed b8 00 07 bld r8,0x7
800025e0: cf d1 brne 800025da <_ZN4aery24pm_wait_osc_to_stabilizeEh+0xe>
800025e2: 5e fc retal r12
800025e4: 32 08 mov r8,32
800025e6: f0 0c 18 00 cp.b r12,r8
800025ea: 5e 1c retne r12
800025ec: fe 79 0c 00 mov r9,-62464
800025f0: 73 38 ld.w r8,r9[0x4c]
800025f2: ed b8 00 09 bld r8,0x9
800025f6: cf d1 brne 800025f0 <_ZN4aery24pm_wait_osc_to_stabilizeEh+0x24>
800025f8: 5e fc retal r12
800025fa: fe 79 0c 00 mov r9,-62464
800025fe: 73 38 ld.w r8,r9[0x4c]
80002600: ed b8 00 08 bld r8,0x8
80002604: cf d1 brne 800025fe <_ZN4aery24pm_wait_osc_to_stabilizeEh+0x32>
80002606: 5e fc retal r12
80002608 <_ZN4aery19pm_wait_pll_to_lockEPV14avr32_pm_pll_t>:
80002608: fe 5c 0c 20 cp.w r12,-62432
8000260c: c0 b0 breq 80002622 <_ZN4aery19pm_wait_pll_to_lockEPV14avr32_pm_pll_t+0x1a>
8000260e: fe 5c 0c 24 cp.w r12,-62428
80002612: 5e 1c retne r12
80002614: fe 79 0c 00 mov r9,-62464
80002618: 73 38 ld.w r8,r9[0x4c]
8000261a: ed b8 00 01 bld r8,0x1
8000261e: cf d1 brne 80002618 <_ZN4aery19pm_wait_pll_to_lockEPV14avr32_pm_pll_t+0x10>
80002620: 5e fc retal r12
80002622: fe 7a 0c 00 mov r10,-62464
80002626: 30 09 mov r9,0
80002628: 75 38 ld.w r8,r10[0x4c]
8000262a: f1 d8 c0 01 bfextu r8,r8,0x0,0x1
8000262e: f2 08 18 00 cp.b r8,r9
80002632: cf b0 breq 80002628 <_ZN4aery19pm_wait_pll_to_lockEPV14avr32_pm_pll_t+0x20>
80002634: 5e fc retal r12
80002636 <_ZN4aery14pm_enable_gclkENS_7Pm_gclkE>:
80002636: 2e 8c sub r12,-24
80002638: fe 78 0c 00 mov r8,-62464
8000263c: 30 1a mov r10,1
8000263e: f0 0c 03 29 ld.w r9,r8[r12<<0x2]
80002642: f3 da d0 41 bfins r9,r10,0x2,0x1
80002646: f0 0c 09 29 st.w r8[r12<<0x2],r9
8000264a: 5e fc retal r12
8000264c <_ZN4aery13pm_select_mckENS_13Pm_mck_sourceE>:
8000264c: fe 78 0c 00 mov r8,-62464
80002650: 70 09 ld.w r9,r8[0x0]
80002652: f3 dc d0 02 bfins r9,r12,0x0,0x2
80002656: 91 09 st.w r8[0x0],r9
80002658: 5e fc retal r12
8000265a: d7 03 nop
8000265c <USB_ResetInterface>:
USB_IsInitialized = false;
}
void USB_ResetInterface(void)
{
8000265c: eb cd 40 e0 pushm r5-r7,lr
#if defined(USB_CAN_BE_BOTH)
bool UIDModeSelectEnabled = AVR32_USBB.USBCON.uide;
#endif
AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].pllsel = !(USB_Options & USB_OPT_GCLK_SRC_OSC);
80002660: fe 78 0c 00 mov r8,-62464
80002664: 30 16 mov r6,1
80002666: 71 c9 ld.w r9,r8[0x70]
80002668: f3 d6 d0 21 bfins r9,r6,0x1,0x1
8000266c: f1 49 00 70 st.w r8[112],r9
AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].oscsel = !(USB_Options & USB_OPT_GCLK_CHANNEL_0);
80002670: 71 c9 ld.w r9,r8[0x70]
80002672: f3 d6 d0 01 bfins r9,r6,0x0,0x1
80002676: f1 49 00 70 st.w r8[112],r9
AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].diven = (F_USB != USB_CLOCK_REQUIRED_FREQ);
8000267a: 71 c9 ld.w r9,r8[0x70]
8000267c: f3 d6 d0 81 bfins r9,r6,0x4,0x1
AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].div = (F_USB == USB_CLOCK_REQUIRED_FREQ) ? 0 : (uint32_t)((F_USB / USB_CLOCK_REQUIRED_FREQ / 2) - 1);
80002680: 30 05 mov r5,0
bool UIDModeSelectEnabled = AVR32_USBB.USBCON.uide;
#endif
AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].pllsel = !(USB_Options & USB_OPT_GCLK_SRC_OSC);
AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].oscsel = !(USB_Options & USB_OPT_GCLK_CHANNEL_0);
AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].diven = (F_USB != USB_CLOCK_REQUIRED_FREQ);
80002682: f1 49 00 70 st.w r8[112],r9
AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].div = (F_USB == USB_CLOCK_REQUIRED_FREQ) ? 0 : (uint32_t)((F_USB / USB_CLOCK_REQUIRED_FREQ / 2) - 1);
80002686: 71 c9 ld.w r9,r8[0x70]
80002688: f3 d5 d1 08 bfins r9,r5,0x8,0x8
8000268c: f1 49 00 70 st.w r8[112],r9
AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].cen = true;
80002690: 71 c9 ld.w r9,r8[0x70]
80002692: f3 d6 d0 41 bfins r9,r6,0x2,0x1
}
static inline void USB_Controller_Reset(void) ATTR_ALWAYS_INLINE;
static inline void USB_Controller_Reset(void)
{
AVR32_USBB.USBCON.usbe = false;
80002696: fe 67 00 00 mov r7,-131072
8000269a: f1 49 00 70 st.w r8[112],r9
USB_INT_DisableAllInterrupts();
8000269e: f0 1f 00 26 mcall 80002734 <USB_ResetInterface+0xd8>
USB_INT_ClearAllInterrupts();
800026a2: f0 1f 00 26 mcall 80002738 <USB_ResetInterface+0xdc>
800026a6: ee f8 08 00 ld.w r8,r7[2048]
800026aa: f1 d5 d1 e1 bfins r8,r5,0xf,0x1
800026ae: ef 48 08 00 st.w r7[2048],r8
AVR32_USBB.USBCON.usbe = true;
800026b2: ee f8 08 00 ld.w r8,r7[2048]
800026b6: f1 d6 d1 e1 bfins r8,r6,0xf,0x1
800026ba: ef 48 08 00 st.w r7[2048],r8
}
static inline void USB_CLK_Unfreeze(void) ATTR_ALWAYS_INLINE;
static inline void USB_CLK_Unfreeze(void)
{
AVR32_USBB.USBCON.frzclk = false;
800026be: ee f8 08 00 ld.w r8,r7[2048]
800026c2: f1 d5 d1 c1 bfins r8,r5,0xe,0x1
800026c6: ef 48 08 00 st.w r7[2048],r8
USB_CLK_Unfreeze();
if (USB_CurrentMode == USB_MODE_Device)
{
#if defined(USB_CAN_BE_DEVICE)
AVR32_USBB.USBCON.uimod = true;
800026ca: ee f8 08 00 ld.w r8,r7[2048]
800026ce: f1 d6 d3 21 bfins r8,r6,0x19,0x1
800026d2: ef 48 08 00 st.w r7[2048],r8
}
#if defined(USB_CAN_BE_DEVICE)
static void USB_Init_Device(void)
{
USB_DeviceState = DEVICE_STATE_Unattached;
800026d6: 49 a8 lddpc r8,8000273c <USB_ResetInterface+0xe0>
800026d8: b0 85 st.b r8[0x0],r5
}
static inline void USB_Device_SetFullSpeed(void) ATTR_ALWAYS_INLINE;
static inline void USB_Device_SetFullSpeed(void)
{
AVR32_USBB.UDCON.ls = false;
800026da: 6e 08 ld.w r8,r7[0x0]
800026dc: f1 d5 d1 81 bfins r8,r5,0xc,0x1
800026e0: 8f 08 st.w r7[0x0],r8
USB_Device_ConfigurationNumber = 0;
800026e2: 49 88 lddpc r8,80002740 <USB_ResetInterface+0xe4>
800026e4: b0 85 st.b r8[0x0],r5
static inline void USB_INT_Enable(const uint8_t Interrupt)
{
switch (Interrupt)
{
case USB_INT_VBUSTI:
AVR32_USBB.USBCON.vbuste = true;
800026e6: ee f8 08 00 ld.w r8,r7[2048]
800026ea: f1 d6 d0 21 bfins r8,r6,0x1,0x1
800026ee: ef 48 08 00 st.w r7[2048],r8
#if !defined(NO_DEVICE_REMOTE_WAKEUP)
USB_Device_RemoteWakeupEnabled = false;
800026f2: 49 58 lddpc r8,80002744 <USB_ResetInterface+0xe8>
800026f4: b0 85 st.b r8[0x0],r5
#endif
#if !defined(NO_DEVICE_SELF_POWER)
USB_Device_CurrentlySelfPowered = false;
800026f6: 49 58 lddpc r8,80002748 <USB_ResetInterface+0xec>
uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
return false;
return Endpoint_ConfigureEndpoint_Prv(Number,
800026f8: 30 3b mov r11,3
800026fa: b0 85 st.b r8[0x0],r5
800026fc: 0a 9c mov r12,r5
800026fe: f0 1f 00 14 mcall 8000274c <USB_ResetInterface+0xf0>
case USB_INT_WAKEUPI:
AVR32_USBB.UDINTCLR.wakeupc = true;
(void)AVR32_USBB.UDINTCLR;
break;
case USB_INT_SUSPI:
AVR32_USBB.UDINTCLR.suspc = true;
80002702: 6e 28 ld.w r8,r7[0x8]
80002704: f1 d6 d0 01 bfins r8,r6,0x0,0x1
80002708: 8f 28 st.w r7[0x8],r8
(void)AVR32_USBB.UDINTCLR;
8000270a: 6e 28 ld.w r8,r7[0x8]
#if defined(USB_CAN_BE_DEVICE)
case USB_INT_WAKEUPI:
AVR32_USBB.UDINTESET.wakeupes = true;
break;
case USB_INT_SUSPI:
AVR32_USBB.UDINTESET.suspes = true;
8000270c: 6e 68 ld.w r8,r7[0x18]
8000270e: f1 d6 d0 01 bfins r8,r6,0x0,0x1
80002712: 8f 68 st.w r7[0x18],r8
break;
case USB_INT_EORSTI:
AVR32_USBB.UDINTESET.eorstes = true;
80002714: 6e 68 ld.w r8,r7[0x18]
80002716: f1 d6 d0 61 bfins r8,r6,0x3,0x1
8000271a: 8f 68 st.w r7[0x18],r8
* 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)
{
AVR32_USBB.UDCON.detach = false;
8000271c: 6e 08 ld.w r8,r7[0x0]
8000271e: f1 d5 d1 01 bfins r8,r5,0x8,0x1
80002722: 8f 08 st.w r7[0x0],r8
/* Inline Functions: */
static inline void USB_OTGPAD_On(void) ATTR_ALWAYS_INLINE;
static inline void USB_OTGPAD_On(void)
{
AVR32_USBB.USBCON.otgpade = true;
80002724: ee f8 08 00 ld.w r8,r7[2048]
80002728: f1 d6 d1 81 bfins r8,r6,0xc,0x1
8000272c: ef 48 08 00 st.w r7[2048],r8
USB_Init_Host();
#endif
}
USB_OTGPAD_On();
}
80002730: e3 cd 80 e0 ldm sp++,r5-r7,pc
80002734: 80 00 ld.sh r0,r0[0x0]
80002736: 27 78 sub r8,119
80002738: 80 00 ld.sh r0,r0[0x0]
8000273a: 27 a0 sub r0,122
8000273c: 00 00 add r0,r0
8000273e: 05 a8 ld.ub r8,r2[0x2]
80002740: 00 00 add r0,r0
80002742: 05 a4 ld.ub r4,r2[0x2]
80002744: 00 00 add r0,r0
80002746: 05 a6 ld.ub r6,r2[0x2]
80002748: 00 00 add r0,r0
8000274a: 05 a5 ld.ub r5,r2[0x2]
8000274c: 80 00 ld.sh r0,r0[0x0]
8000274e: 33 ec mov r12,62
80002750 <USB_Init>:
#if !defined(USE_STATIC_OPTIONS)
const uint8_t Options
#endif
)
{
80002750: d4 01 pushm lr
{
AVR32_USBB.USBCON.uide = false;
USB_CurrentMode = Mode;
}
#else
AVR32_USBB.USBCON.uide = false;
80002752: fe 68 00 00 mov r8,-131072
80002756: 30 0a mov r10,0
80002758: f0 f9 08 00 ld.w r9,r8[2048]
8000275c: f3 da d3 01 bfins r9,r10,0x18,0x1
80002760: f1 49 08 00 st.w r8[2048],r9
#endif
USB_IsInitialized = true;
80002764: 30 19 mov r9,1
80002766: 48 38 lddpc r8,80002770 <USB_Init+0x20>
80002768: b0 89 st.b r8[0x0],r9
USB_ResetInterface();
8000276a: f0 1f 00 03 mcall 80002774 <USB_Init+0x24>
}
8000276e: d8 02 popm pc
80002770: 00 00 add r0,r0
80002772: 05 a7 ld.ub r7,r2[0x2]
80002774: 80 00 ld.sh r0,r0[0x0]
80002776: 26 5c sub r12,101
80002778 <USB_INT_DisableAllInterrupts>:
#define __INCLUDE_FROM_USB_DRIVER
#include "../USBInterrupt.h"
void USB_INT_DisableAllInterrupts(void)
{
AVR32_USBB.USBCON.vbuste = false;
80002778: fe 68 00 00 mov r8,-131072
8000277c: 30 0a mov r10,0
8000277e: f0 f9 08 00 ld.w r9,r8[2048]
80002782: f3 da d0 21 bfins r9,r10,0x1,0x1
80002786: f1 49 08 00 st.w r8[2048],r9
AVR32_USBB.USBCON.idte = false;
8000278a: f0 f9 08 00 ld.w r9,r8[2048]
8000278e: f3 da d0 01 bfins r9,r10,0x0,0x1
80002792: f1 49 08 00 st.w r8[2048],r9
AVR32_USBB.uhinteclr = -1;
80002796: 3f f9 mov r9,-1
80002798: f1 49 04 14 st.w r8[1044],r9
AVR32_USBB.udinteclr = -1;
8000279c: 91 59 st.w r8[0x14],r9
}
8000279e: 5e fc retal r12
800027a0 <USB_INT_ClearAllInterrupts>:
void USB_INT_ClearAllInterrupts(void)
{
AVR32_USBB.USBSTACLR.vbustic = true;
800027a0: fe 68 00 00 mov r8,-131072
800027a4: 30 1a mov r10,1
800027a6: f0 f9 08 08 ld.w r9,r8[2056]
800027aa: f3 da d0 21 bfins r9,r10,0x1,0x1
800027ae: f1 49 08 08 st.w r8[2056],r9
AVR32_USBB.USBSTACLR.idtic = true;
800027b2: f0 f9 08 08 ld.w r9,r8[2056]
800027b6: f3 da d0 01 bfins r9,r10,0x0,0x1
800027ba: f1 49 08 08 st.w r8[2056],r9
AVR32_USBB.uhintclr = -1;
800027be: 3f f9 mov r9,-1
800027c0: f1 49 04 08 st.w r8[1032],r9
AVR32_USBB.udintclr = -1;
800027c4: 91 29 st.w r8[0x8],r9
}
800027c6: 5e fc retal r12
800027c8 <USB_GEN_vect>:
ISR(USB_GEN_vect)
{
800027c8: d4 01 pushm lr
case USB_INT_SUSPI:
return AVR32_USBB.UDINT.susp;
case USB_INT_EORSTI:
return AVR32_USBB.UDINT.eorst;
case USB_INT_SOFI:
return AVR32_USBB.UDINT.sof;
800027ca: fe 69 00 00 mov r9,-131072
800027ce: 72 18 ld.w r8,r9[0x4]
#if defined(USB_CAN_BE_DEVICE)
#if !defined(NO_SOF_EVENTS)
if (USB_INT_HasOccurred(USB_INT_SOFI) && USB_INT_IsEnabled(USB_INT_SOFI))
800027d0: ed b8 00 02 bld r8,0x2
800027d4: c0 61 brne 800027e0 <USB_GEN_vect+0x18>
case USB_INT_SUSPI:
return AVR32_USBB.UDINTE.suspe;
case USB_INT_EORSTI:
return AVR32_USBB.UDINTE.eorste;
case USB_INT_SOFI:
return AVR32_USBB.UDINTE.sofe;
800027d6: 72 48 ld.w r8,r9[0x10]
800027d8: ed b8 00 02 bld r8,0x2
800027dc: e0 80 00 9f breq 8000291a <USB_GEN_vect+0x152>
static inline bool USB_INT_HasOccurred(const uint8_t Interrupt)
{
switch (Interrupt)
{
case USB_INT_VBUSTI:
return AVR32_USBB.USBSTA.vbusti;
800027e0: fe 69 00 00 mov r9,-131072
800027e4: f2 f8 08 04 ld.w r8,r9[2052]
EVENT_USB_Device_StartOfFrame();
}
#endif
if (USB_INT_HasOccurred(USB_INT_VBUSTI) && USB_INT_IsEnabled(USB_INT_VBUSTI))
800027e8: ed b8 00 01 bld r8,0x1
800027ec: c0 61 brne 800027f8 <USB_GEN_vect+0x30>
static inline bool USB_INT_IsEnabled(const uint8_t Interrupt)
{
switch (Interrupt)
{
case USB_INT_VBUSTI:
return AVR32_USBB.USBCON.vbuste;
800027ee: f2 f8 08 00 ld.w r8,r9[2048]
800027f2: ed b8 00 01 bld r8,0x1
800027f6: c4 10 breq 80002878 <USB_GEN_vect+0xb0>
#endif
#if defined(USB_CAN_BE_DEVICE)
case USB_INT_WAKEUPI:
return AVR32_USBB.UDINT.wakeup;
case USB_INT_SUSPI:
return AVR32_USBB.UDINT.susp;
800027f8: fe 68 00 00 mov r8,-131072
800027fc: 70 19 ld.w r9,r8[0x4]
USB_DeviceState = DEVICE_STATE_Unattached;
EVENT_USB_Device_Disconnect();
}
}
if (USB_INT_HasOccurred(USB_INT_SUSPI) && USB_INT_IsEnabled(USB_INT_SUSPI))
800027fe: ed b9 00 00 bld r9,0x0
80002802: c0 51 brne 8000280c <USB_GEN_vect+0x44>
#endif
#if defined(USB_CAN_BE_DEVICE)
case USB_INT_WAKEUPI:
return AVR32_USBB.UDINTE.wakeupe;
case USB_INT_SUSPI:
return AVR32_USBB.UDINTE.suspe;
80002804: 70 49 ld.w r9,r8[0x10]
80002806: ed b9 00 00 bld r9,0x0
8000280a: c7 30 breq 800028f0 <USB_GEN_vect+0x128>
case USB_INT_IDTI:
return AVR32_USBB.USBSTA.idti;
#endif
#if defined(USB_CAN_BE_DEVICE)
case USB_INT_WAKEUPI:
return AVR32_USBB.UDINT.wakeup;
8000280c: fe 68 00 00 mov r8,-131072
80002810: 70 19 ld.w r9,r8[0x4]
USB_DeviceState = DEVICE_STATE_Suspended;
EVENT_USB_Device_Suspend();
}
if (USB_INT_HasOccurred(USB_INT_WAKEUPI) && USB_INT_IsEnabled(USB_INT_WAKEUPI))
80002812: ed b9 00 04 bld r9,0x4
80002816: c0 51 brne 80002820 <USB_GEN_vect+0x58>
case USB_INT_IDTI:
return AVR32_USBB.USBCON.idte;
#endif
#if defined(USB_CAN_BE_DEVICE)
case USB_INT_WAKEUPI:
return AVR32_USBB.UDINTE.wakeupe;
80002818: 70 49 ld.w r9,r8[0x10]
8000281a: ed b9 00 04 bld r9,0x4
8000281e: c0 d0 breq 80002838 <USB_GEN_vect+0x70>
case USB_INT_WAKEUPI:
return AVR32_USBB.UDINT.wakeup;
case USB_INT_SUSPI:
return AVR32_USBB.UDINT.susp;
case USB_INT_EORSTI:
return AVR32_USBB.UDINT.eorst;
80002820: fe 68 00 00 mov r8,-131072
80002824: 70 19 ld.w r9,r8[0x4]
USB_DeviceState = (USB_Device_IsAddressSet()) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered;
EVENT_USB_Device_WakeUp();
}
if (USB_INT_HasOccurred(USB_INT_EORSTI) && USB_INT_IsEnabled(USB_INT_EORSTI))
80002826: ed b9 00 03 bld r9,0x3
8000282a: c0 51 brne 80002834 <USB_GEN_vect+0x6c>
case USB_INT_WAKEUPI:
return AVR32_USBB.UDINTE.wakeupe;
case USB_INT_SUSPI:
return AVR32_USBB.UDINTE.suspe;
case USB_INT_EORSTI:
return AVR32_USBB.UDINTE.eorste;
8000282c: 70 49 ld.w r9,r8[0x10]
8000282e: ed b9 00 03 bld r9,0x3
80002832: c3 60 breq 8000289e <USB_GEN_vect+0xd6>
USB_ResetInterface();
EVENT_USB_UIDChange();
}
#endif
}
80002834: d4 02 popm lr
80002836: d6 03 rete
}
static inline void USB_CLK_Unfreeze(void) ATTR_ALWAYS_INLINE;
static inline void USB_CLK_Unfreeze(void)
{
AVR32_USBB.USBCON.frzclk = false;
80002838: f0 f9 08 00 ld.w r9,r8[2048]
8000283c: 30 0a mov r10,0
8000283e: f3 da d1 c1 bfins r9,r10,0xe,0x1
80002842: f1 49 08 00 st.w r8[2048],r9
(void)AVR32_USBB.USBSTACLR;
break;
#endif
#if defined(USB_CAN_BE_DEVICE)
case USB_INT_WAKEUPI:
AVR32_USBB.UDINTCLR.wakeupc = true;
80002846: 30 19 mov r9,1
80002848: 70 2b ld.w r11,r8[0x8]
8000284a: f7 d9 d0 81 bfins r11,r9,0x4,0x1
8000284e: 91 2b st.w r8[0x8],r11
(void)AVR32_USBB.UDINTCLR;
80002850: 70 2b ld.w r11,r8[0x8]
AVR32_USBB.USBCON.idte = false;
break;
#endif
#if defined(USB_CAN_BE_DEVICE)
case USB_INT_WAKEUPI:
AVR32_USBB.UDINTECLR.wakeupec = true;
80002852: 70 5b ld.w r11,r8[0x14]
80002854: f7 d9 d0 81 bfins r11,r9,0x4,0x1
80002858: 91 5b st.w r8[0x14],r11
#if defined(USB_CAN_BE_DEVICE)
case USB_INT_WAKEUPI:
AVR32_USBB.UDINTESET.wakeupes = true;
break;
case USB_INT_SUSPI:
AVR32_USBB.UDINTESET.suspes = true;
8000285a: 70 6b ld.w r11,r8[0x18]
8000285c: f7 d9 d0 01 bfins r11,r9,0x0,0x1
80002860: 91 6b st.w r8[0x18],r11
USB_INT_Clear(USB_INT_WAKEUPI);
USB_INT_Disable(USB_INT_WAKEUPI);
USB_INT_Enable(USB_INT_SUSPI);
if (USB_Device_ConfigurationNumber)
80002862: 4b b9 lddpc r9,8000294c <USB_GEN_vect+0x184>
80002864: 13 89 ld.ub r9,r9[0x0]
80002866: f4 09 18 00 cp.b r9,r10
8000286a: c6 60 breq 80002936 <USB_GEN_vect+0x16e>
USB_DeviceState = DEVICE_STATE_Configured;
8000286c: 30 49 mov r9,4
8000286e: 4b 98 lddpc r8,80002950 <USB_GEN_vect+0x188>
80002870: b0 89 st.b r8[0x0],r9
else
USB_DeviceState = (USB_Device_IsAddressSet()) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered;
EVENT_USB_Device_WakeUp();
80002872: f0 1f 00 39 mcall 80002954 <USB_GEN_vect+0x18c>
80002876: cd 5b rjmp 80002820 <USB_GEN_vect+0x58>
static inline void USB_INT_Clear(const uint8_t Interrupt)
{
switch (Interrupt)
{
case USB_INT_VBUSTI:
AVR32_USBB.USBSTACLR.vbustic = true;
80002878: f2 f8 08 08 ld.w r8,r9[2056]
8000287c: 30 1a mov r10,1
8000287e: f1 da d0 21 bfins r8,r10,0x1,0x1
80002882: f3 48 08 08 st.w r9[2056],r8
(void)AVR32_USBB.USBSTACLR;
80002886: f2 f8 08 08 ld.w r8,r9[2056]
* \return Boolean \c true if the VBUS line is currently detecting power from a host, \c false otherwise.
*/
static inline bool USB_VBUS_GetStatus(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline bool USB_VBUS_GetStatus(void)
{
return AVR32_USBB.USBSTA.vbus;
8000288a: f2 f8 08 04 ld.w r8,r9[2052]
if (USB_INT_HasOccurred(USB_INT_VBUSTI) && USB_INT_IsEnabled(USB_INT_VBUSTI))
{
USB_INT_Clear(USB_INT_VBUSTI);
if (USB_VBUS_GetStatus())
8000288e: e2 18 08 00 andl r8,0x800,COH
80002892: c4 d0 breq 8000292c <USB_GEN_vect+0x164>
{
USB_DeviceState = DEVICE_STATE_Powered;
80002894: 4a f8 lddpc r8,80002950 <USB_GEN_vect+0x188>
80002896: b0 8a st.b r8[0x0],r10
EVENT_USB_Device_Connect();
80002898: f0 1f 00 30 mcall 80002958 <USB_GEN_vect+0x190>
8000289c: ca eb rjmp 800027f8 <USB_GEN_vect+0x30>
case USB_INT_SUSPI:
AVR32_USBB.UDINTCLR.suspc = true;
(void)AVR32_USBB.UDINTCLR;
break;
case USB_INT_EORSTI:
AVR32_USBB.UDINTCLR.eorstc = true;
8000289e: 70 2a ld.w r10,r8[0x8]
800028a0: 30 19 mov r9,1
800028a2: f5 d9 d0 61 bfins r10,r9,0x3,0x1
800028a6: 91 2a st.w r8[0x8],r10
(void)AVR32_USBB.UDINTCLR;
800028a8: 70 2a ld.w r10,r8[0x8]
if (USB_INT_HasOccurred(USB_INT_EORSTI) && USB_INT_IsEnabled(USB_INT_EORSTI))
{
USB_INT_Clear(USB_INT_EORSTI);
USB_DeviceState = DEVICE_STATE_Default;
800028aa: 4a aa lddpc r10,80002950 <USB_GEN_vect+0x188>
800028ac: 30 2b mov r11,2
800028ae: b4 8b st.b r10[0x0],r11
case USB_INT_WAKEUPI:
AVR32_USBB.UDINTCLR.wakeupc = true;
(void)AVR32_USBB.UDINTCLR;
break;
case USB_INT_SUSPI:
AVR32_USBB.UDINTCLR.suspc = true;
800028b0: 70 2a ld.w r10,r8[0x8]
800028b2: f5 d9 d0 01 bfins r10,r9,0x0,0x1
800028b6: 91 2a st.w r8[0x8],r10
(void)AVR32_USBB.UDINTCLR;
800028b8: 70 2a ld.w r10,r8[0x8]
#if defined(USB_CAN_BE_DEVICE)
case USB_INT_WAKEUPI:
AVR32_USBB.UDINTECLR.wakeupec = true;
break;
case USB_INT_SUSPI:
AVR32_USBB.UDINTECLR.suspec = true;
800028ba: 70 5a ld.w r10,r8[0x14]
800028bc: f5 d9 d0 01 bfins r10,r9,0x0,0x1
800028c0: 91 5a st.w r8[0x14],r10
AVR32_USBB.USBCON.idte = true;
break;
#endif
#if defined(USB_CAN_BE_DEVICE)
case USB_INT_WAKEUPI:
AVR32_USBB.UDINTESET.wakeupes = true;
800028c2: 70 6a ld.w r10,r8[0x18]
800028c4: f5 d9 d0 81 bfins r10,r9,0x4,0x1
800028c8: 91 6a st.w r8[0x18],r10
#endif
static inline void USB_Device_SetDeviceAddress(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void USB_Device_SetDeviceAddress(const uint8_t Address)
{
AVR32_USBB.UDCON.uadd = Address;
800028ca: 30 09 mov r9,0
800028cc: 70 0a ld.w r10,r8[0x0]
800028ce: f5 d9 d0 07 bfins r10,r9,0x0,0x7
800028d2: 91 0a st.w r8[0x0],r10
AVR32_USBB.UDCON.adden = (Address ? true : false);
800028d4: 70 0a ld.w r10,r8[0x0]
800028d6: f5 d9 d0 e1 bfins r10,r9,0x7,0x1
800028da: 91 0a st.w r8[0x0],r10
USB_Device_ConfigurationNumber = 0;
800028dc: 49 c8 lddpc r8,8000294c <USB_GEN_vect+0x184>
uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
return false;
return Endpoint_ConfigureEndpoint_Prv(Number,
800028de: 12 9c mov r12,r9
800028e0: b0 89 st.b r8[0x0],r9
800028e2: 30 3b mov r11,3
800028e4: f0 1f 00 1e mcall 8000295c <USB_GEN_vect+0x194>
#if defined(INTERRUPT_CONTROL_ENDPOINT)
USB_INT_Enable(USB_INT_RXSTPI);
#endif
EVENT_USB_Device_Reset();
800028e8: f0 1f 00 1e mcall 80002960 <USB_GEN_vect+0x198>
USB_ResetInterface();
EVENT_USB_UIDChange();
}
#endif
}
800028ec: d4 02 popm lr
800028ee: d6 03 rete
#if defined(USB_CAN_BE_DEVICE)
case USB_INT_WAKEUPI:
AVR32_USBB.UDINTECLR.wakeupec = true;
break;
case USB_INT_SUSPI:
AVR32_USBB.UDINTECLR.suspec = true;
800028f0: 70 5a ld.w r10,r8[0x14]
800028f2: 30 19 mov r9,1
800028f4: f5 d9 d0 01 bfins r10,r9,0x0,0x1
800028f8: 91 5a st.w r8[0x14],r10
AVR32_USBB.USBCON.idte = true;
break;
#endif
#if defined(USB_CAN_BE_DEVICE)
case USB_INT_WAKEUPI:
AVR32_USBB.UDINTESET.wakeupes = true;
800028fa: 70 6a ld.w r10,r8[0x18]
800028fc: f5 d9 d0 81 bfins r10,r9,0x4,0x1
80002900: 91 6a st.w r8[0x18],r10
}
static inline void USB_CLK_Freeze(void) ATTR_ALWAYS_INLINE;
static inline void USB_CLK_Freeze(void)
{
AVR32_USBB.USBCON.frzclk = true;
80002902: f0 fa 08 00 ld.w r10,r8[2048]
80002906: f5 d9 d1 c1 bfins r10,r9,0xe,0x1
USB_INT_Disable(USB_INT_SUSPI);
USB_INT_Enable(USB_INT_WAKEUPI);
USB_CLK_Freeze();
USB_DeviceState = DEVICE_STATE_Suspended;
8000290a: 30 59 mov r9,5
8000290c: f1 4a 08 00 st.w r8[2048],r10
80002910: 49 08 lddpc r8,80002950 <USB_GEN_vect+0x188>
80002912: b0 89 st.b r8[0x0],r9
EVENT_USB_Device_Suspend();
80002914: f0 1f 00 14 mcall 80002964 <USB_GEN_vect+0x19c>
80002918: c7 ab rjmp 8000280c <USB_GEN_vect+0x44>
case USB_INT_EORSTI:
AVR32_USBB.UDINTCLR.eorstc = true;
(void)AVR32_USBB.UDINTCLR;
break;
case USB_INT_SOFI:
AVR32_USBB.UDINTCLR.sofc = true;
8000291a: 72 28 ld.w r8,r9[0x8]
8000291c: 30 1a mov r10,1
8000291e: f1 da d0 41 bfins r8,r10,0x2,0x1
80002922: 93 28 st.w r9[0x8],r8
(void)AVR32_USBB.UDINTCLR;
80002924: 72 28 ld.w r8,r9[0x8]
#if !defined(NO_SOF_EVENTS)
if (USB_INT_HasOccurred(USB_INT_SOFI) && USB_INT_IsEnabled(USB_INT_SOFI))
{
USB_INT_Clear(USB_INT_SOFI);
EVENT_USB_Device_StartOfFrame();
80002926: f0 1f 00 11 mcall 80002968 <USB_GEN_vect+0x1a0>
8000292a: c5 bb rjmp 800027e0 <USB_GEN_vect+0x18>
USB_DeviceState = DEVICE_STATE_Powered;
EVENT_USB_Device_Connect();
}
else
{
USB_DeviceState = DEVICE_STATE_Unattached;
8000292c: 48 99 lddpc r9,80002950 <USB_GEN_vect+0x188>
8000292e: b2 88 st.b r9[0x0],r8
EVENT_USB_Device_Disconnect();
80002930: f0 1f 00 0f mcall 8000296c <USB_GEN_vect+0x1a4>
80002934: c6 2b rjmp 800027f8 <USB_GEN_vect+0x30>
}
static inline bool USB_Device_IsAddressSet(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
static inline bool USB_Device_IsAddressSet(void)
{
return AVR32_USBB.UDCON.adden;
80002936: 70 08 ld.w r8,r8[0x0]
USB_INT_Enable(USB_INT_SUSPI);
if (USB_Device_ConfigurationNumber)
USB_DeviceState = DEVICE_STATE_Configured;
else
USB_DeviceState = (USB_Device_IsAddressSet()) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered;
80002938: 48 69 lddpc r9,80002950 <USB_GEN_vect+0x188>
8000293a: e2 18 00 80 andl r8,0x80,COH
8000293e: f9 b8 01 04 movne r8,4
80002942: f9 b8 00 01 moveq r8,1
80002946: b2 88 st.b r9[0x0],r8
80002948: c9 5b rjmp 80002872 <USB_GEN_vect+0xaa>
8000294a: 00 00 add r0,r0
8000294c: 00 00 add r0,r0
8000294e: 05 a4 ld.ub r4,r2[0x2]
80002950: 00 00 add r0,r0
80002952: 05 a8 ld.ub r8,r2[0x2]
80002954: 80 00 ld.sh r0,r0[0x0]
80002956: 2e 3c sub r12,-29
80002958: 80 00 ld.sh r0,r0[0x0]
8000295a: 21 e0 sub r0,30
8000295c: 80 00 ld.sh r0,r0[0x0]
8000295e: 33 ec mov r12,62
80002960: 80 00 ld.sh r0,r0[0x0]
80002962: 2e 3c sub r12,-29
80002964: 80 00 ld.sh r0,r0[0x0]
80002966: 2e 3c sub r12,-29
80002968: 80 00 ld.sh r0,r0[0x0]
8000296a: 2e 3c sub r12,-29
8000296c: 80 00 ld.sh r0,r0[0x0]
8000296e: 21 e2 sub r2,30
80002970: 80 00 ld.sh r0,r0[0x0]
80002972: 2c 84 sub r4,-56
80002974: 80 00 ld.sh r0,r0[0x0]
80002976: 2c 1a sub r10,-63
80002978: 80 00 ld.sh r0,r0[0x0]
8000297a: 2a 36 sub r6,-93
8000297c: 80 00 ld.sh r0,r0[0x0]
8000297e: 2c 1a sub r10,-63
80002980: 80 00 ld.sh r0,r0[0x0]
80002982: 2a 36 sub r6,-93
80002984: 80 00 ld.sh r0,r0[0x0]
80002986: 2b 9c sub r12,-71
80002988: 80 00 ld.sh r0,r0[0x0]
8000298a: 2b 1c sub r12,-79
8000298c: 80 00 ld.sh r0,r0[0x0]
8000298e: 2a 36 sub r6,-93
80002990: 80 00 ld.sh r0,r0[0x0]
80002992: 2a e4 sub r4,-82
80002994: 80 00 ld.sh r0,r0[0x0]
80002996: 2a 88 sub r8,-88
80002998 <USB_Device_ProcessControlRequest>:
#if !defined(NO_DEVICE_REMOTE_WAKEUP)
bool USB_Device_RemoteWakeupEnabled;
#endif
void USB_Device_ProcessControlRequest(void)
{
80002998: d4 21 pushm r4-r7,lr
8000299a: 20 1d sub sp,4
* \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 *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++);
8000299c: fe f7 04 6c ld.w r7,pc[1132]
800029a0: fe f6 04 6c ld.w r6,pc[1132]
800029a4: 6c 09 ld.w r9,r6[0x0]
800029a6: ee 09 03 28 ld.w r8,r7[r9<<0x2]
800029aa: 11 3a ld.ub r10,r8++
800029ac: ee 09 09 28 st.w r7[r9<<0x2],r8
#if defined(ARCH_BIG_ENDIAN)
USB_ControlRequest.bmRequestType = Endpoint_Read_8();
800029b0: fe f5 04 60 ld.w r5,pc[1120]
800029b4: 6c 09 ld.w r9,r6[0x0]
800029b6: aa 8a st.b r5[0x0],r10
800029b8: ee 09 03 28 ld.w r8,r7[r9<<0x2]
800029bc: 11 3a ld.ub r10,r8++
800029be: ee 09 09 28 st.w r7[r9<<0x2],r8
USB_ControlRequest.bRequest = Endpoint_Read_8();
800029c2: aa 9a st.b r5[0x1],r10
* \return Next two bytes in the currently selected endpoint's FIFO buffer.
*/
static inline uint16_t Endpoint_Read_16_LE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline uint16_t Endpoint_Read_16_LE(void)
{
uint16_t Byte0 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++);
800029c4: 6c 09 ld.w r9,r6[0x0]
800029c6: ee 09 03 28 ld.w r8,r7[r9<<0x2]
800029ca: 11 3a ld.ub r10,r8++
800029cc: ee 09 09 28 st.w r7[r9<<0x2],r8
uint16_t Byte1 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++);
800029d0: 6c 09 ld.w r9,r6[0x0]
800029d2: ee 09 03 28 ld.w r8,r7[r9<<0x2]
800029d6: 11 3b ld.ub r11,r8++
800029d8: ee 09 09 28 st.w r7[r9<<0x2],r8
USB_ControlRequest.wValue = Endpoint_Read_16_LE();
800029dc: aa ab st.b r5[0x2],r11
800029de: aa ba st.b r5[0x3],r10
* \return Next two bytes in the currently selected endpoint's FIFO buffer.
*/
static inline uint16_t Endpoint_Read_16_LE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline uint16_t Endpoint_Read_16_LE(void)
{
uint16_t Byte0 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++);
800029e0: 6c 09 ld.w r9,r6[0x0]
800029e2: ee 09 03 28 ld.w r8,r7[r9<<0x2]
800029e6: 11 3a ld.ub r10,r8++
800029e8: ee 09 09 28 st.w r7[r9<<0x2],r8
uint16_t Byte1 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++);
800029ec: 6c 09 ld.w r9,r6[0x0]
800029ee: ee 09 03 28 ld.w r8,r7[r9<<0x2]
800029f2: 11 3b ld.ub r11,r8++
800029f4: ee 09 09 28 st.w r7[r9<<0x2],r8
USB_ControlRequest.wIndex = Endpoint_Read_16_LE();
800029f8: aa cb st.b r5[0x4],r11
800029fa: aa da st.b r5[0x5],r10
* \return Next two bytes in the currently selected endpoint's FIFO buffer.
*/
static inline uint16_t Endpoint_Read_16_LE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline uint16_t Endpoint_Read_16_LE(void)
{
uint16_t Byte0 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++);
800029fc: 6c 09 ld.w r9,r6[0x0]
800029fe: ee 09 03 28 ld.w r8,r7[r9<<0x2]
80002a02: 11 3a ld.ub r10,r8++
80002a04: ee 09 09 28 st.w r7[r9<<0x2],r8
uint16_t Byte1 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++);
80002a08: 6c 09 ld.w r9,r6[0x0]
80002a0a: ee 09 03 28 ld.w r8,r7[r9<<0x2]
80002a0e: 11 3b ld.ub r11,r8++
80002a10: ee 09 09 28 st.w r7[r9<<0x2],r8
USB_ControlRequest.wLength = Endpoint_Read_16_LE();
80002a14: aa eb st.b r5[0x6],r11
80002a16: aa fa st.b r5[0x7],r10
for (uint8_t RequestHeaderByte = 0; RequestHeaderByte < sizeof(USB_Request_Header_t); RequestHeaderByte++)
*(RequestHeader++) = Endpoint_Read_8();
#endif
EVENT_USB_Device_ControlRequest();
80002a18: f0 1f 00 ff mcall 80002e14 <USB_Device_ProcessControlRequest+0x47c>
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].rxstpi;
80002a1c: 6c 08 ld.w r8,r6[0x0]
80002a1e: a3 68 lsl r8,0x2
80002a20: e0 38 fe d0 sub r8,130768
80002a24: 70 08 ld.w r8,r8[0x0]
if (Endpoint_IsSETUPReceived())
80002a26: ed b8 00 02 bld r8,0x2
80002a2a: c0 61 brne 80002a36 <USB_Device_ProcessControlRequest+0x9e>
{
uint8_t bmRequestType = USB_ControlRequest.bmRequestType;
80002a2c: 0b 84 ld.ub r4,r5[0x0]
switch (USB_ControlRequest.bRequest)
80002a2e: 0b 98 ld.ub r8,r5[0x1]
80002a30: 58 98 cp.w r8,9
80002a32: e0 88 00 27 brls 80002a80 <USB_Device_ProcessControlRequest+0xe8>
80002a36: 6c 08 ld.w r8,r6[0x0]
80002a38: a3 68 lsl r8,0x2
80002a3a: e0 38 fe d0 sub r8,130768
80002a3e: 70 08 ld.w r8,r8[0x0]
80002a40: fe f9 03 cc ld.w r9,pc[972]
break;
}
}
if (Endpoint_IsSETUPReceived())
80002a44: e2 18 00 04 andl r8,0x4,COH
80002a48: c1 a0 breq 80002a7c <USB_Device_ProcessControlRequest+0xe4>
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_StallTransaction(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_StallTransaction(void)
{
(&AVR32_USBB.UECON0SET)[USB_Endpoint_SelectedEndpoint].stallrqs = true;
80002a4a: 72 08 ld.w r8,r9[0x0]
80002a4c: 30 1b mov r11,1
80002a4e: a3 68 lsl r8,0x2
80002a50: e0 38 fe 10 sub r8,130576
80002a54: 70 0a ld.w r10,r8[0x0]
80002a56: f5 db d2 61 bfins r10,r11,0x13,0x1
80002a5a: 91 0a st.w r8[0x0],r10
* \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)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxstpic = true;
80002a5c: 72 08 ld.w r8,r9[0x0]
80002a5e: a3 68 lsl r8,0x2
80002a60: e0 38 fe a0 sub r8,130720
80002a64: 70 0a ld.w r10,r8[0x0]
80002a66: f5 db d0 41 bfins r10,r11,0x2,0x1
80002a6a: 91 0a st.w r8[0x0],r10
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002a6c: fc 1a e0 00 movh r10,0xe000
80002a70: 72 08 ld.w r8,r9[0x0]
80002a72: 72 09 ld.w r9,r9[0x0]
80002a74: b1 69 lsl r9,0x10
80002a76: 14 09 add r9,r10
80002a78: ee 08 09 29 st.w r7[r8<<0x2],r9
{
Endpoint_StallTransaction();
Endpoint_ClearSETUP();
}
}
80002a7c: 2f fd sub sp,-4
80002a7e: d8 22 popm r4-r7,pc
if (Endpoint_IsSETUPReceived())
{
uint8_t bmRequestType = USB_ControlRequest.bmRequestType;
switch (USB_ControlRequest.bRequest)
80002a80: fe f9 03 98 ld.w r9,pc[920]
80002a84: f2 08 03 2f ld.w pc,r9[r8<<0x2]
if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE))
USB_Device_GetConfiguration();
break;
case REQ_SetConfiguration:
if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE))
80002a88: 58 04 cp.w r4,0
80002a8a: cd 61 brne 80002a36 <USB_Device_ProcessControlRequest+0x9e>
}
static void USB_Device_SetConfiguration(void)
{
#if defined(FIXED_NUM_CONFIGURATIONS)
if ((uint8_t)USB_ControlRequest.wValue > FIXED_NUM_CONFIGURATIONS)
80002a8c: 0b b9 ld.ub r9,r5[0x3]
80002a8e: 30 18 mov r8,1
80002a90: f0 09 18 00 cp.b r9,r8
80002a94: fe 9b ff d1 brhi 80002a36 <USB_Device_ProcessControlRequest+0x9e>
* \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)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxstpic = true;
80002a98: 6c 08 ld.w r8,r6[0x0]
80002a9a: 30 1a mov r10,1
80002a9c: a3 68 lsl r8,0x2
80002a9e: e0 38 fe a0 sub r8,130720
80002aa2: 70 09 ld.w r9,r8[0x0]
80002aa4: f3 da d0 41 bfins r9,r10,0x2,0x1
80002aa8: 91 09 st.w r8[0x0],r9
#endif
#endif
Endpoint_ClearSETUP();
USB_Device_ConfigurationNumber = (uint8_t)USB_ControlRequest.wValue;
80002aaa: fe f8 03 66 ld.w r8,pc[870]
80002aae: 11 b9 ld.ub r9,r8[0x3]
80002ab0: fe f5 03 6c ld.w r5,pc[876]
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002ab4: 6c 08 ld.w r8,r6[0x0]
80002ab6: aa 89 st.b r5[0x0],r9
80002ab8: 6c 0a ld.w r10,r6[0x0]
80002aba: fc 19 e0 00 movh r9,0xe000
80002abe: b1 6a lsl r10,0x10
80002ac0: f4 09 00 09 add r9,r10,r9
80002ac4: ee 08 09 29 st.w r7[r8<<0x2],r9
Endpoint_ClearStatusStage();
80002ac8: f0 1f 00 d6 mcall 80002e20 <USB_Device_ProcessControlRequest+0x488>
if (USB_Device_ConfigurationNumber)
80002acc: 0b 88 ld.ub r8,r5[0x0]
80002ace: e8 08 18 00 cp.b r8,r4
80002ad2: e0 80 01 85 breq 80002ddc <USB_Device_ProcessControlRequest+0x444>
USB_DeviceState = DEVICE_STATE_Configured;
80002ad6: 30 49 mov r9,4
80002ad8: fe f8 03 4c ld.w r8,pc[844]
80002adc: b0 89 st.b r8[0x0],r9
else
USB_DeviceState = (USB_Device_IsAddressSet()) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered;
EVENT_USB_Device_ConfigurationChanged();
80002ade: f0 1f 00 d3 mcall 80002e28 <USB_Device_ProcessControlRequest+0x490>
80002ae2: ca ab rjmp 80002a36 <USB_Device_ProcessControlRequest+0x9e>
USB_Device_GetDescriptor();
}
break;
case REQ_GetConfiguration:
if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE))
80002ae4: 38 08 mov r8,-128
80002ae6: f0 04 18 00 cp.b r4,r8
80002aea: ca 61 brne 80002a36 <USB_Device_ProcessControlRequest+0x9e>
* \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)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxstpic = true;
80002aec: 6c 08 ld.w r8,r6[0x0]
80002aee: a3 68 lsl r8,0x2
80002af0: e0 38 fe a0 sub r8,130720
80002af4: 30 19 mov r9,1
80002af6: 70 0a ld.w r10,r8[0x0]
80002af8: f5 d9 d0 41 bfins r10,r9,0x2,0x1
80002afc: 91 0a st.w r8[0x0],r10
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002afe: 6c 08 ld.w r8,r6[0x0]
80002b00: fc 1a e0 00 movh r10,0xe000
80002b04: 6c 0b ld.w r11,r6[0x0]
80002b06: b1 6b lsl r11,0x10
80002b08: 14 0b add r11,r10
80002b0a: ee 08 09 2b st.w r7[r8<<0x2],r11
static void USB_Device_GetConfiguration(void)
{
Endpoint_ClearSETUP();
Endpoint_Write_8(USB_Device_ConfigurationNumber);
80002b0e: fe f8 03 0e ld.w r8,pc[782]
* \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)
{
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = Data;
80002b12: 6c 0b ld.w r11,r6[0x0]
80002b14: 11 8c ld.ub r12,r8[0x0]
80002b16: ee 0b 03 28 ld.w r8,r7[r11<<0x2]
80002b1a: cf 38 rjmp 80002d00 <USB_Device_ProcessControlRequest+0x368>
if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE))
USB_Device_SetAddress();
break;
case REQ_GetDescriptor:
if ((bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE)) ||
80002b1c: e8 c4 00 80 sub r4,r4,128
80002b20: 30 18 mov r8,1
80002b22: f0 04 18 00 cp.b r4,r8
80002b26: fe 9b ff 88 brhi 80002a36 <USB_Device_ProcessControlRequest+0x9e>
USB_Device_GetInternalSerialDescriptor();
return;
}
#endif
if ((DescriptorSize = CALLBACK_USB_GetDescriptor(USB_ControlRequest.wValue, USB_ControlRequest.wIndex,
80002b2a: 0b db ld.ub r11,r5[0x5]
80002b2c: 0b b8 ld.ub r8,r5[0x3]
80002b2e: 0b ac ld.ub r12,r5[0x2]
80002b30: 1a 9a mov r10,sp
80002b32: f1 ec 10 8c or r12,r8,r12<<0x8
80002b36: f0 1f 00 be mcall 80002e2c <USB_Device_ProcessControlRequest+0x494>
80002b3a: f7 dc b0 10 bfexts r11,r12,0x0,0x10
80002b3e: fe 90 ff 7c breq 80002a36 <USB_Device_ProcessControlRequest+0x9e>
* \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)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxstpic = true;
80002b42: 6c 08 ld.w r8,r6[0x0]
80002b44: 30 15 mov r5,1
80002b46: a3 68 lsl r8,0x2
80002b48: e0 38 fe a0 sub r8,130720
80002b4c: 70 09 ld.w r9,r8[0x0]
80002b4e: f3 d5 d0 41 bfins r9,r5,0x2,0x1
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002b52: fc 14 e0 00 movh r4,0xe000
* \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)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxstpic = true;
80002b56: 91 09 st.w r8[0x0],r9
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002b58: 6c 08 ld.w r8,r6[0x0]
80002b5a: 6c 09 ld.w r9,r6[0x0]
80002b5c: b1 69 lsl r9,0x10
80002b5e: 08 09 add r9,r4
}
Endpoint_ClearSETUP();
#if defined(USE_RAM_DESCRIPTORS) || !defined(ARCH_HAS_MULTI_ADDRESS_SPACE)
Endpoint_Write_Control_Stream_LE(DescriptorPointer, DescriptorSize);
80002b60: 5c 7b castu.h r11
80002b62: ee 08 09 29 st.w r7[r8<<0x2],r9
80002b66: 40 0c lddsp r12,sp[0x0]
80002b68: f0 1f 00 b2 mcall 80002e30 <USB_Device_ProcessControlRequest+0x498>
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearOUT(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearOUT(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxoutic = true;
80002b6c: 6c 08 ld.w r8,r6[0x0]
80002b6e: a3 68 lsl r8,0x2
80002b70: e0 38 fe a0 sub r8,130720
80002b74: 70 09 ld.w r9,r8[0x0]
80002b76: f3 d5 d0 21 bfins r9,r5,0x1,0x1
80002b7a: 91 09 st.w r8[0x0],r9
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true;
80002b7c: 6c 08 ld.w r8,r6[0x0]
80002b7e: a3 68 lsl r8,0x2
80002b80: e0 38 fd e0 sub r8,130528
80002b84: 70 09 ld.w r9,r8[0x0]
80002b86: f3 d5 d1 c1 bfins r9,r5,0xe,0x1
80002b8a: 91 09 st.w r8[0x0],r9
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002b8c: 6c 08 ld.w r8,r6[0x0]
80002b8e: 6c 09 ld.w r9,r6[0x0]
80002b90: b1 69 lsl r9,0x10
80002b92: f2 04 00 04 add r4,r9,r4
80002b96: ee 08 09 24 st.w r7[r8<<0x2],r4
80002b9a: c4 eb rjmp 80002a36 <USB_Device_ProcessControlRequest+0x9e>
USB_Device_ClearSetFeature();
}
break;
case REQ_SetAddress:
if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE))
80002b9c: 58 04 cp.w r4,0
80002b9e: fe 91 ff 4c brne 80002a36 <USB_Device_ProcessControlRequest+0x9e>
}
}
static void USB_Device_SetAddress(void)
{
uint8_t DeviceAddress = (USB_ControlRequest.wValue & 0x7F);
80002ba2: 0b b5 ld.ub r5,r5[0x3]
80002ba4: eb d5 c0 07 bfextu r5,r5,0x0,0x7
GCC_MEMORY_BARRIER();
#if (ARCH == ARCH_AVR8)
return SREG;
#elif (ARCH == ARCH_UC3)
return __builtin_mfsr(AVR32_SR);
80002ba8: e1 b4 00 00 mfsr r4,0x0
GCC_MEMORY_BARRIER();
#if (ARCH == ARCH_AVR8)
cli();
#elif (ARCH == ARCH_UC3)
__builtin_ssrf(AVR32_SR_GM_OFFSET);
80002bac: d3 03 ssrf 0x10
* \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)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxstpic = true;
80002bae: 30 1a mov r10,1
80002bb0: 6c 08 ld.w r8,r6[0x0]
80002bb2: a3 68 lsl r8,0x2
80002bb4: e0 38 fe a0 sub r8,130720
80002bb8: 70 09 ld.w r9,r8[0x0]
80002bba: f3 da d0 41 bfins r9,r10,0x2,0x1
80002bbe: 91 09 st.w r8[0x0],r9
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002bc0: fc 19 e0 00 movh r9,0xe000
80002bc4: 6c 08 ld.w r8,r6[0x0]
80002bc6: 6c 0a ld.w r10,r6[0x0]
80002bc8: b1 6a lsl r10,0x10
80002bca: f4 09 00 09 add r9,r10,r9
80002bce: ee 08 09 29 st.w r7[r8<<0x2],r9
uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
GlobalInterruptDisable();
Endpoint_ClearSETUP();
Endpoint_ClearStatusStage();
80002bd2: f0 1f 00 94 mcall 80002e20 <USB_Device_ProcessControlRequest+0x488>
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].txini;
80002bd6: 6c 08 ld.w r8,r6[0x0]
80002bd8: a3 68 lsl r8,0x2
80002bda: e0 38 fe d0 sub r8,130768
80002bde: 70 08 ld.w r8,r8[0x0]
while (!(Endpoint_IsINReady()));
80002be0: ed b8 00 00 bld r8,0x0
80002be4: cf 91 brne 80002bd6 <USB_Device_ProcessControlRequest+0x23e>
#endif
static inline void USB_Device_SetDeviceAddress(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void USB_Device_SetDeviceAddress(const uint8_t Address)
{
AVR32_USBB.UDCON.uadd = Address;
80002be6: fe 68 00 00 mov r8,-131072
80002bea: 70 09 ld.w r9,r8[0x0]
80002bec: f3 d5 d0 07 bfins r9,r5,0x0,0x7
80002bf0: 91 09 st.w r8[0x0],r9
AVR32_USBB.UDCON.adden = (Address ? true : false);
80002bf2: 58 05 cp.w r5,0
80002bf4: 5f 19 srne r9
80002bf6: 70 0a ld.w r10,r8[0x0]
80002bf8: f5 d9 d0 e1 bfins r10,r9,0x7,0x1
80002bfc: 91 0a st.w r8[0x0],r10
USB_Device_SetDeviceAddress(DeviceAddress);
USB_DeviceState = (DeviceAddress) ? DEVICE_STATE_Addressed : DEVICE_STATE_Default;
80002bfe: 58 09 cp.w r9,0
80002c00: f9 b9 01 03 movne r9,3
80002c04: f9 b9 00 02 moveq r9,2
80002c08: fe f8 02 1c ld.w r8,pc[540]
80002c0c: b0 89 st.b r8[0x0],r9
GCC_MEMORY_BARRIER();
#if (ARCH == ARCH_AVR8)
SREG = GlobalIntState;
#elif (ARCH == ARCH_UC3)
if (GlobalIntState & AVR32_SR_GM)
80002c0e: e2 14 00 10 andl r4,0x10,COH
80002c12: e0 80 00 e2 breq 80002dd6 <USB_Device_ProcessControlRequest+0x43e>
__builtin_ssrf(AVR32_SR_GM_OFFSET);
80002c16: d3 03 ssrf 0x10
__builtin_csrf(AVR32_SR_GM_OFFSET);
#elif (ARCH == ARCH_XMEGA)
SREG = GlobalIntState;
#endif
GCC_MEMORY_BARRIER();
80002c18: c0 fb rjmp 80002a36 <USB_Device_ProcessControlRequest+0x9e>
}
break;
case REQ_ClearFeature:
case REQ_SetFeature:
if ((bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE)) ||
80002c1a: 30 29 mov r9,2
80002c1c: f2 04 18 00 cp.b r4,r9
80002c20: 5f 0b sreq r11
80002c22: 30 09 mov r9,0
80002c24: f2 04 18 00 cp.b r4,r9
80002c28: 5f 0a sreq r10
80002c2a: f7 ea 10 0a or r10,r11,r10
80002c2e: f2 0a 18 00 cp.b r10,r9
80002c32: fe 90 ff 02 breq 80002a36 <USB_Device_ProcessControlRequest+0x9e>
Endpoint_ClearStatusStage();
}
static void USB_Device_ClearSetFeature(void)
{
switch (USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_RECIPIENT)
80002c36: e9 d4 c0 05 bfextu r4,r4,0x0,0x5
80002c3a: e0 81 00 81 brne 80002d3c <USB_Device_ProcessControlRequest+0x3a4>
{
#if !defined(NO_DEVICE_REMOTE_WAKEUP)
case REQREC_DEVICE:
if ((uint8_t)USB_ControlRequest.wValue == FEATURE_SEL_DeviceRemoteWakeup)
80002c3e: 0b ba ld.ub r10,r5[0x3]
80002c40: 30 19 mov r9,1
80002c42: f2 0a 18 00 cp.b r10,r9
80002c46: fe 91 fe f8 brne 80002a36 <USB_Device_ProcessControlRequest+0x9e>
USB_Device_RemoteWakeupEnabled = (USB_ControlRequest.bRequest == REQ_SetFeature);
80002c4a: 30 39 mov r9,3
80002c4c: f2 08 18 00 cp.b r8,r9
80002c50: 5f 09 sreq r9
80002c52: 4f 98 lddpc r8,80002e34 <USB_Device_ProcessControlRequest+0x49c>
80002c54: b0 89 st.b r8[0x0],r9
* \param[in] Address Endpoint address to select.
*/
static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_SelectEndpoint(const uint8_t Address)
{
USB_Endpoint_SelectedEndpoint = (Address & ENDPOINT_EPNUM_MASK);
80002c56: 30 08 mov r8,0
* \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)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxstpic = true;
80002c58: 30 1a mov r10,1
* \param[in] Address Endpoint address to select.
*/
static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_SelectEndpoint(const uint8_t Address)
{
USB_Endpoint_SelectedEndpoint = (Address & ENDPOINT_EPNUM_MASK);
80002c5a: 8d 08 st.w r6[0x0],r8
* \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)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxstpic = true;
80002c5c: 6c 08 ld.w r8,r6[0x0]
80002c5e: a3 68 lsl r8,0x2
80002c60: e0 38 fe a0 sub r8,130720
80002c64: 70 09 ld.w r9,r8[0x0]
80002c66: f3 da d0 41 bfins r9,r10,0x2,0x1
80002c6a: 91 09 st.w r8[0x0],r9
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002c6c: fc 19 e0 00 movh r9,0xe000
80002c70: 6c 08 ld.w r8,r6[0x0]
80002c72: 6c 0a ld.w r10,r6[0x0]
80002c74: b1 6a lsl r10,0x10
80002c76: f4 09 00 09 add r9,r10,r9
80002c7a: ee 08 09 29 st.w r7[r8<<0x2],r9
Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
Endpoint_ClearSETUP();
Endpoint_ClearStatusStage();
80002c7e: f0 1f 00 69 mcall 80002e20 <USB_Device_ProcessControlRequest+0x488>
80002c82: cd aa rjmp 80002a36 <USB_Device_ProcessControlRequest+0x9e>
uint8_t bmRequestType = USB_ControlRequest.bmRequestType;
switch (USB_ControlRequest.bRequest)
{
case REQ_GetStatus:
if ((bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE)) ||
80002c84: 38 08 mov r8,-128
80002c86: f0 04 18 00 cp.b r4,r8
80002c8a: 5f 0a sreq r10
80002c8c: 38 29 mov r9,-126
80002c8e: f2 04 18 00 cp.b r4,r9
80002c92: 5f 0b sreq r11
80002c94: 14 4b or r11,r10
80002c96: 30 0a mov r10,0
80002c98: f4 0b 18 00 cp.b r11,r10
80002c9c: fe 90 fe cd breq 80002a36 <USB_Device_ProcessControlRequest+0x9e>
static void USB_Device_GetStatus(void)
{
uint8_t CurrentStatus = 0;
switch (USB_ControlRequest.bmRequestType)
80002ca0: f0 04 18 00 cp.b r4,r8
80002ca4: e0 80 00 8f breq 80002dc2 <USB_Device_ProcessControlRequest+0x42a>
80002ca8: f2 04 18 00 cp.b r4,r9
80002cac: fe 91 fe c5 brne 80002a36 <USB_Device_ProcessControlRequest+0x9e>
* \param[in] Address Endpoint address to select.
*/
static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_SelectEndpoint(const uint8_t Address)
{
USB_Endpoint_SelectedEndpoint = (Address & ENDPOINT_EPNUM_MASK);
80002cb0: 0b d8 ld.ub r8,r5[0x5]
80002cb2: f1 d8 c0 04 bfextu r8,r8,0x0,0x4
80002cb6: 8d 08 st.w r6[0x0],r8
* \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 (&AVR32_USBB.UECON0)[USB_Endpoint_SelectedEndpoint].stallrq;
80002cb8: 6c 08 ld.w r8,r6[0x0]
80002cba: a3 68 lsl r8,0x2
80002cbc: e0 38 fe 40 sub r8,130624
80002cc0: 70 0c ld.w r12,r8[0x0]
* \param[in] Address Endpoint address to select.
*/
static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_SelectEndpoint(const uint8_t Address)
{
USB_Endpoint_SelectedEndpoint = (Address & ENDPOINT_EPNUM_MASK);
80002cc2: 30 08 mov r8,0
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();
80002cc4: f9 dc c2 61 bfextu r12,r12,0x13,0x1
80002cc8: 8d 08 st.w r6[0x0],r8
* \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)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxstpic = true;
80002cca: 6c 08 ld.w r8,r6[0x0]
80002ccc: 30 19 mov r9,1
80002cce: a3 68 lsl r8,0x2
80002cd0: e0 38 fe a0 sub r8,130720
80002cd4: 70 0a ld.w r10,r8[0x0]
80002cd6: f5 d9 d0 41 bfins r10,r9,0x2,0x1
80002cda: 91 0a st.w r8[0x0],r10
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002cdc: fc 1a e0 00 movh r10,0xe000
80002ce0: 6c 08 ld.w r8,r6[0x0]
80002ce2: 6c 0b ld.w r11,r6[0x0]
80002ce4: b1 6b lsl r11,0x10
80002ce6: 14 0b add r11,r10
80002ce8: ee 08 09 2b st.w r7[r8<<0x2],r11
* \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)
{
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data & 0xFF);
80002cec: 6c 0b ld.w r11,r6[0x0]
80002cee: ee 0b 03 28 ld.w r8,r7[r11<<0x2]
80002cf2: 10 cc st.b r8++,r12
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8);
80002cf4: 30 0c mov r12,0
* \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)
{
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data & 0xFF);
80002cf6: ee 0b 09 28 st.w r7[r11<<0x2],r8
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8);
80002cfa: 6c 0b ld.w r11,r6[0x0]
80002cfc: ee 0b 03 28 ld.w r8,r7[r11<<0x2]
* \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)
{
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = Data;
80002d00: 10 cc st.b r8++,r12
80002d02: ee 0b 09 28 st.w r7[r11<<0x2],r8
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearIN(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].txinic = true;
80002d06: 6c 08 ld.w r8,r6[0x0]
80002d08: a3 68 lsl r8,0x2
80002d0a: e0 38 fe a0 sub r8,130720
80002d0e: 70 0b ld.w r11,r8[0x0]
80002d10: f7 d9 d0 01 bfins r11,r9,0x0,0x1
80002d14: 91 0b st.w r8[0x0],r11
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true;
80002d16: 6c 08 ld.w r8,r6[0x0]
80002d18: a3 68 lsl r8,0x2
80002d1a: e0 38 fd e0 sub r8,130528
80002d1e: 70 0b ld.w r11,r8[0x0]
80002d20: f7 d9 d1 c1 bfins r11,r9,0xe,0x1
80002d24: 91 0b st.w r8[0x0],r11
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002d26: 6c 08 ld.w r8,r6[0x0]
80002d28: 6c 09 ld.w r9,r6[0x0]
80002d2a: b1 69 lsl r9,0x10
80002d2c: f2 0a 00 0a add r10,r9,r10
80002d30: ee 08 09 2a st.w r7[r8<<0x2],r10
Endpoint_ClearSETUP();
Endpoint_Write_8(USB_Device_ConfigurationNumber);
Endpoint_ClearIN();
Endpoint_ClearStatusStage();
80002d34: f0 1f 00 3b mcall 80002e20 <USB_Device_ProcessControlRequest+0x488>
80002d38: fe 9f fe 7f bral 80002a36 <USB_Device_ProcessControlRequest+0x9e>
Endpoint_ClearStatusStage();
}
static void USB_Device_ClearSetFeature(void)
{
switch (USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_RECIPIENT)
80002d3c: 58 24 cp.w r4,2
80002d3e: fe 91 fe 7c brne 80002a36 <USB_Device_ProcessControlRequest+0x9e>
break;
#endif
#if !defined(CONTROL_ONLY_DEVICE)
case REQREC_ENDPOINT:
if ((uint8_t)USB_ControlRequest.wValue == FEATURE_SEL_EndpointHalt)
80002d42: 0b ba ld.ub r10,r5[0x3]
80002d44: f2 0a 18 00 cp.b r10,r9
80002d48: c8 71 brne 80002c56 <USB_Device_ProcessControlRequest+0x2be>
{
uint8_t EndpointIndex = ((uint8_t)USB_ControlRequest.wIndex & ENDPOINT_EPNUM_MASK);
80002d4a: 4b 29 lddpc r9,80002e10 <USB_Device_ProcessControlRequest+0x478>
80002d4c: 13 d9 ld.ub r9,r9[0x5]
80002d4e: f3 d9 c0 04 bfextu r9,r9,0x0,0x4
if (EndpointIndex == ENDPOINT_CONTROLEP)
80002d52: fe 90 fe 72 breq 80002a36 <USB_Device_ProcessControlRequest+0x9e>
* \param[in] Address Endpoint address to select.
*/
static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_SelectEndpoint(const uint8_t Address)
{
USB_Endpoint_SelectedEndpoint = (Address & ENDPOINT_EPNUM_MASK);
80002d56: 8d 09 st.w r6[0x0],r9
* \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 ((AVR32_USBB.uerst & (AVR32_USBB_EPEN0_MASK << USB_Endpoint_SelectedEndpoint)) ? true : false);
80002d58: fe 6a 00 00 mov r10,-131072
80002d5c: 74 7c ld.w r12,r10[0x1c]
80002d5e: 6c 05 ld.w r5,r6[0x0]
return;
Endpoint_SelectEndpoint(EndpointIndex);
if (Endpoint_IsEnabled())
80002d60: 30 1b mov r11,1
80002d62: f6 05 09 45 lsl r5,r11,r5
80002d66: 18 65 and r5,r12
* \param[in] Address Endpoint address to select.
*/
static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_SelectEndpoint(const uint8_t Address)
{
USB_Endpoint_SelectedEndpoint = (Address & ENDPOINT_EPNUM_MASK);
80002d68: 4a 9c lddpc r12,80002e0c <USB_Device_ProcessControlRequest+0x474>
80002d6a: 58 05 cp.w r5,0
80002d6c: fe 90 ff 75 breq 80002c56 <USB_Device_ProcessControlRequest+0x2be>
{
if (USB_ControlRequest.bRequest == REQ_SetFeature)
80002d70: 30 35 mov r5,3
80002d72: ea 08 18 00 cp.b r8,r5
80002d76: c4 00 breq 80002df6 <USB_Device_ProcessControlRequest+0x45e>
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearStall(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearStall(void)
{
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].stallrqc = true;
80002d78: 78 08 ld.w r8,r12[0x0]
80002d7a: a3 68 lsl r8,0x2
80002d7c: e0 38 fd e0 sub r8,130528
80002d80: 70 05 ld.w r5,r8[0x0]
80002d82: eb db d2 61 bfins r5,r11,0x13,0x1
80002d86: 91 05 st.w r8[0x0],r5
static inline void Endpoint_ResetEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ResetEndpoint(const uint8_t Address)
{
uint32_t EndpointNumber = (Address & ENDPOINT_EPNUM_MASK);
AVR32_USBB.uerst |= (AVR32_USBB_EPRST0_MASK << EndpointNumber);
80002d88: e0 78 00 00 mov r8,65536
80002d8c: 74 75 ld.w r5,r10[0x1c]
80002d8e: f0 09 09 48 lsl r8,r8,r9
80002d92: f1 e5 10 05 or r5,r8,r5
80002d96: 95 75 st.w r10[0x1c],r5
AVR32_USBB.uerst &= ~(AVR32_USBB_EPRST0_MASK << EndpointNumber);
80002d98: 5c d8 com r8
80002d9a: 74 75 ld.w r5,r10[0x1c]
80002d9c: 0a 68 and r8,r5
80002d9e: 95 78 st.w r10[0x1c],r8
USB_Endpoint_FIFOPos[EndpointNumber] = &AVR32_USBB_SLAVE[EndpointNumber * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002da0: f2 0a 15 10 lsl r10,r9,0x10
80002da4: fc 18 e0 00 movh r8,0xe000
80002da8: f4 08 00 08 add r8,r10,r8
80002dac: ee 09 09 28 st.w r7[r9<<0x2],r8
/** Resets the data toggle of the currently selected endpoint. */
static inline void Endpoint_ResetDataToggle(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ResetDataToggle(void)
{
(&AVR32_USBB.UECON0SET)[USB_Endpoint_SelectedEndpoint].rstdts = true;
80002db0: 78 08 ld.w r8,r12[0x0]
80002db2: a3 68 lsl r8,0x2
80002db4: e0 38 fe 10 sub r8,130576
80002db8: 70 09 ld.w r9,r8[0x0]
80002dba: f3 db d2 41 bfins r9,r11,0x12,0x1
80002dbe: 91 09 st.w r8[0x0],r9
80002dc0: c4 bb rjmp 80002c56 <USB_Device_ProcessControlRequest+0x2be>
static void USB_Device_GetStatus(void)
{
uint8_t CurrentStatus = 0;
switch (USB_ControlRequest.bmRequestType)
80002dc2: 49 e8 lddpc r8,80002e38 <USB_Device_ProcessControlRequest+0x4a0>
80002dc4: 11 8c ld.ub r12,r8[0x0]
if (USB_Device_CurrentlySelfPowered)
CurrentStatus |= FEATURE_SELFPOWERED_ENABLED;
#endif
#if !defined(NO_DEVICE_REMOTE_WAKEUP)
if (USB_Device_RemoteWakeupEnabled)
80002dc6: 49 c8 lddpc r8,80002e34 <USB_Device_ProcessControlRequest+0x49c>
80002dc8: 11 88 ld.ub r8,r8[0x0]
80002dca: f4 08 18 00 cp.b r8,r10
80002dce: fe 90 ff 7e breq 80002cca <USB_Device_ProcessControlRequest+0x332>
CurrentStatus |= FEATURE_REMOTE_WAKEUP_ENABLED;
80002dd2: a1 bc sbr r12,0x1
80002dd4: c7 bb rjmp 80002cca <USB_Device_ProcessControlRequest+0x332>
SREG = GlobalIntState;
#elif (ARCH == ARCH_UC3)
if (GlobalIntState & AVR32_SR_GM)
__builtin_ssrf(AVR32_SR_GM_OFFSET);
else
__builtin_csrf(AVR32_SR_GM_OFFSET);
80002dd6: d5 03 csrf 0x10
#elif (ARCH == ARCH_XMEGA)
SREG = GlobalIntState;
#endif
GCC_MEMORY_BARRIER();
80002dd8: fe 9f fe 2f bral 80002a36 <USB_Device_ProcessControlRequest+0x9e>
}
static inline bool USB_Device_IsAddressSet(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
static inline bool USB_Device_IsAddressSet(void)
{
return AVR32_USBB.UDCON.adden;
80002ddc: fe 68 00 00 mov r8,-131072
Endpoint_ClearStatusStage();
if (USB_Device_ConfigurationNumber)
USB_DeviceState = DEVICE_STATE_Configured;
else
USB_DeviceState = (USB_Device_IsAddressSet()) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered;
80002de0: 49 19 lddpc r9,80002e24 <USB_Device_ProcessControlRequest+0x48c>
80002de2: 70 08 ld.w r8,r8[0x0]
80002de4: e2 18 00 80 andl r8,0x80,COH
80002de8: f9 b8 01 04 movne r8,4
80002dec: f9 b8 00 01 moveq r8,1
80002df0: b2 88 st.b r9[0x0],r8
80002df2: fe 9f fe 76 bral 80002ade <USB_Device_ProcessControlRequest+0x146>
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_StallTransaction(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_StallTransaction(void)
{
(&AVR32_USBB.UECON0SET)[USB_Endpoint_SelectedEndpoint].stallrqs = true;
80002df6: 78 08 ld.w r8,r12[0x0]
80002df8: a3 68 lsl r8,0x2
80002dfa: e0 38 fe 10 sub r8,130576
80002dfe: 70 09 ld.w r9,r8[0x0]
80002e00: f3 db d2 61 bfins r9,r11,0x13,0x1
80002e04: 91 09 st.w r8[0x0],r9
80002e06: c2 8b rjmp 80002c56 <USB_Device_ProcessControlRequest+0x2be>
80002e08: 00 00 add r0,r0
80002e0a: 06 04 add r4,r3
80002e0c: 00 00 add r0,r0
80002e0e: 05 68 ld.uh r8,--r2
80002e10: 00 00 add r0,r0
80002e12: 05 a9 ld.ub r9,r2[0x2]
80002e14: 80 00 ld.sh r0,r0[0x0]
80002e16: 22 b8 sub r8,43
80002e18: 80 00 ld.sh r0,r0[0x0]
80002e1a: 29 70 sub r0,-105
80002e1c: 00 00 add r0,r0
80002e1e: 05 a4 ld.ub r4,r2[0x2]
80002e20: 80 00 ld.sh r0,r0[0x0]
80002e22: 35 34 mov r4,83
80002e24: 00 00 add r0,r0
80002e26: 05 a8 ld.ub r8,r2[0x2]
80002e28: 80 00 ld.sh r0,r0[0x0]
80002e2a: 22 a4 sub r4,42
80002e2c: 80 00 ld.sh r0,r0[0x0]
80002e2e: 22 cc sub r12,44
80002e30: 80 00 ld.sh r0,r0[0x0]
80002e32: 36 78 mov r8,103
80002e34: 00 00 add r0,r0
80002e36: 05 a6 ld.ub r6,r2[0x2]
80002e38: 00 00 add r0,r0
80002e3a: 05 a5 ld.ub r5,r2[0x2]
80002e3c <USB_Event_Stub>:
// cppcheck-suppress unusedFunction
void USB_Event_Stub(void)
{
}
80002e3c: 5e fc retal r12
80002e3e: d7 03 nop
80002e40 <USB_USBTask>:
#if defined(USB_CAN_BE_DEVICE) && !defined(DEVICE_STATE_AS_GPIOR)
volatile uint8_t USB_DeviceState;
#endif
void USB_USBTask(void)
{
80002e40: eb cd 40 c0 pushm r6-r7,lr
}
#if defined(USB_CAN_BE_DEVICE)
static void USB_DeviceTask(void)
{
if (USB_DeviceState != DEVICE_STATE_Unattached)
80002e44: 48 f8 lddpc r8,80002e80 <USB_USBTask+0x40>
80002e46: 11 88 ld.ub r8,r8[0x0]
80002e48: 58 08 cp.w r8,0
80002e4a: c1 50 breq 80002e74 <USB_USBTask+0x34>
* \return The currently selected endpoint's direction, as a \c ENDPOINT_DIR_* mask.
*/
static inline uint32_t Endpoint_GetEndpointDirection(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline uint32_t Endpoint_GetEndpointDirection(void)
{
return ((&AVR32_USBB.UECFG0)[USB_Endpoint_SelectedEndpoint].epdir ? ENDPOINT_DIR_IN : ENDPOINT_DIR_OUT);
80002e4c: 48 e7 lddpc r7,80002e84 <USB_USBTask+0x44>
80002e4e: 6e 08 ld.w r8,r7[0x0]
80002e50: a3 68 lsl r8,0x2
80002e52: e0 38 ff 00 sub r8,130816
80002e56: 70 08 ld.w r8,r8[0x0]
* \param[in] Address Endpoint address to select.
*/
static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_SelectEndpoint(const uint8_t Address)
{
USB_Endpoint_SelectedEndpoint = (Address & ENDPOINT_EPNUM_MASK);
80002e58: 30 08 mov r8,0
* \return Index of the currently selected endpoint.
*/
static inline uint8_t Endpoint_GetCurrentEndpoint(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline uint8_t Endpoint_GetCurrentEndpoint(void)
{
return (USB_Endpoint_SelectedEndpoint | Endpoint_GetEndpointDirection());
80002e5a: 6e 06 ld.w r6,r7[0x0]
* \param[in] Address Endpoint address to select.
*/
static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_SelectEndpoint(const uint8_t Address)
{
USB_Endpoint_SelectedEndpoint = (Address & ENDPOINT_EPNUM_MASK);
80002e5c: 8f 08 st.w r7[0x0],r8
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].rxstpi;
80002e5e: 6e 08 ld.w r8,r7[0x0]
80002e60: a3 68 lsl r8,0x2
80002e62: e0 38 fe d0 sub r8,130768
80002e66: 70 08 ld.w r8,r8[0x0]
{
uint8_t PrevEndpoint = Endpoint_GetCurrentEndpoint();
Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
if (Endpoint_IsSETUPReceived())
80002e68: ed b8 00 02 bld r8,0x2
80002e6c: c0 60 breq 80002e78 <USB_USBTask+0x38>
* \param[in] Address Endpoint address to select.
*/
static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_SelectEndpoint(const uint8_t Address)
{
USB_Endpoint_SelectedEndpoint = (Address & ENDPOINT_EPNUM_MASK);
80002e6e: ed d6 c0 04 bfextu r6,r6,0x0,0x4
80002e72: 8f 06 st.w r7[0x0],r6
80002e74: e3 cd 80 c0 ldm sp++,r6-r7,pc
USB_Device_ProcessControlRequest();
80002e78: f0 1f 00 04 mcall 80002e88 <USB_USBTask+0x48>
80002e7c: cf 9b rjmp 80002e6e <USB_USBTask+0x2e>
80002e7e: 00 00 add r0,r0
80002e80: 00 00 add r0,r0
80002e82: 05 a8 ld.ub r8,r2[0x2]
80002e84: 00 00 add r0,r0
80002e86: 05 68 ld.uh r8,--r2
80002e88: 80 00 ld.sh r0,r0[0x0]
80002e8a: 29 98 sub r8,-103
80002e8c <CDC_Device_Event_Stub>:
// cppcheck-suppress unusedFunction
void CDC_Device_Event_Stub(void)
{
}
80002e8c: 5e fc retal r12
80002e8e: d7 03 nop
80002e90 <CDC_Device_Flush>:
Endpoint_Write_8(Data);
return ENDPOINT_READYWAIT_NoError;
}
uint8_t CDC_Device_Flush(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
{
80002e90: d4 21 pushm r4-r7,lr
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
80002e92: 4a e8 lddpc r8,80002f48 <CDC_Device_Flush+0xb8>
80002e94: 30 49 mov r9,4
80002e96: 11 88 ld.ub r8,r8[0x0]
80002e98: f2 08 18 00 cp.b r8,r9
80002e9c: c0 30 breq 80002ea2 <CDC_Device_Flush+0x12>
static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearIN(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].txinic = true;
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true;
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002e9e: 30 2c mov r12,2
80002ea0: d8 22 popm r4-r7,pc
80002ea2: f9 19 00 18 ld.uh r9,r12[24]
80002ea6: f9 18 00 1a ld.uh r8,r12[26]
80002eaa: f1 e9 11 08 or r8,r8,r9<<0x10
80002eae: cf 80 breq 80002e9e <CDC_Device_Flush+0xe>
* \param[in] Address Endpoint address to select.
*/
static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_SelectEndpoint(const uint8_t Address)
{
USB_Endpoint_SelectedEndpoint = (Address & ENDPOINT_EPNUM_MASK);
80002eb0: 19 a8 ld.ub r8,r12[0x2]
80002eb2: f1 d8 c0 04 bfextu r8,r8,0x0,0x4
80002eb6: 4a 67 lddpc r7,80002f4c <CDC_Device_Flush+0xbc>
80002eb8: 8f 08 st.w r7[0x0],r8
* \return Total number of bytes in the currently selected Endpoint's FIFO buffer.
*/
static inline uint16_t Endpoint_BytesInEndpoint(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline uint16_t Endpoint_BytesInEndpoint(void)
{
return (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].byct;
80002eba: 6e 08 ld.w r8,r7[0x0]
80002ebc: a3 68 lsl r8,0x2
80002ebe: e0 38 fe d0 sub r8,130768
80002ec2: 70 08 ld.w r8,r8[0x0]
80002ec4: f1 d8 c2 8b bfextu r8,r8,0x14,0xb
uint8_t ErrorCode;
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
if (!(Endpoint_BytesInEndpoint()))
80002ec8: c3 e0 breq 80002f44 <CDC_Device_Flush+0xb4>
* on its direction.
*/
static inline bool Endpoint_IsReadWriteAllowed(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline bool Endpoint_IsReadWriteAllowed(void)
{
return (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].rwall;
80002eca: 6e 08 ld.w r8,r7[0x0]
80002ecc: a3 68 lsl r8,0x2
80002ece: e0 38 fe d0 sub r8,130768
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearIN(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].txinic = true;
80002ed2: 30 16 mov r6,1
* on its direction.
*/
static inline bool Endpoint_IsReadWriteAllowed(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline bool Endpoint_IsReadWriteAllowed(void)
{
return (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].rwall;
80002ed4: 70 09 ld.w r9,r8[0x0]
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearIN(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].txinic = true;
80002ed6: 6e 08 ld.w r8,r7[0x0]
80002ed8: a3 68 lsl r8,0x2
80002eda: e0 38 fe a0 sub r8,130720
80002ede: 70 0a ld.w r10,r8[0x0]
80002ee0: f5 d6 d0 01 bfins r10,r6,0x0,0x1
80002ee4: 91 0a st.w r8[0x0],r10
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true;
80002ee6: 6e 08 ld.w r8,r7[0x0]
80002ee8: a3 68 lsl r8,0x2
80002eea: e0 38 fd e0 sub r8,130528
80002eee: 70 0a ld.w r10,r8[0x0]
80002ef0: f5 d6 d1 c1 bfins r10,r6,0xe,0x1
80002ef4: 91 0a st.w r8[0x0],r10
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002ef6: 49 75 lddpc r5,80002f50 <CDC_Device_Flush+0xc0>
80002ef8: 6e 08 ld.w r8,r7[0x0]
80002efa: fc 14 e0 00 movh r4,0xe000
80002efe: 6e 0a ld.w r10,r7[0x0]
80002f00: b1 6a lsl r10,0x10
80002f02: 08 0a add r10,r4
80002f04: ea 08 09 2a st.w r5[r8<<0x2],r10
bool BankFull = !(Endpoint_IsReadWriteAllowed());
Endpoint_ClearIN();
if (BankFull)
80002f08: ed b9 00 10 bld r9,0x10
80002f0c: c1 c0 breq 80002f44 <CDC_Device_Flush+0xb4>
{
if ((ErrorCode = Endpoint_WaitUntilReady()) != ENDPOINT_READYWAIT_NoError)
80002f0e: f0 1f 00 12 mcall 80002f54 <CDC_Device_Flush+0xc4>
80002f12: c1 a1 brne 80002f46 <CDC_Device_Flush+0xb6>
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearIN(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].txinic = true;
80002f14: 6e 08 ld.w r8,r7[0x0]
80002f16: a3 68 lsl r8,0x2
80002f18: e0 38 fe a0 sub r8,130720
80002f1c: 70 09 ld.w r9,r8[0x0]
80002f1e: f3 d6 d0 01 bfins r9,r6,0x0,0x1
80002f22: 91 09 st.w r8[0x0],r9
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true;
80002f24: 6e 08 ld.w r8,r7[0x0]
80002f26: a3 68 lsl r8,0x2
80002f28: e0 38 fd e0 sub r8,130528
80002f2c: 70 09 ld.w r9,r8[0x0]
80002f2e: f3 d6 d1 c1 bfins r9,r6,0xe,0x1
80002f32: 91 09 st.w r8[0x0],r9
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002f34: 6e 08 ld.w r8,r7[0x0]
80002f36: 6e 09 ld.w r9,r7[0x0]
80002f38: b1 69 lsl r9,0x10
80002f3a: f2 04 00 04 add r4,r9,r4
80002f3e: ea 08 09 24 st.w r5[r8<<0x2],r4
80002f42: d8 22 popm r4-r7,pc
80002f44: 30 0c mov r12,0
Endpoint_ClearIN();
}
return ENDPOINT_READYWAIT_NoError;
}
80002f46: d8 22 popm r4-r7,pc
80002f48: 00 00 add r0,r0
80002f4a: 05 a8 ld.ub r8,r2[0x2]
80002f4c: 00 00 add r0,r0
80002f4e: 05 68 ld.uh r8,--r2
80002f50: 00 00 add r0,r0
80002f52: 06 04 add r4,r3
80002f54: 80 00 ld.sh r0,r0[0x0]
80002f56: 35 d4 mov r4,93
80002f58 <CDC_Device_USBTask>:
return true;
}
void CDC_Device_USBTask(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
{
80002f58: d4 01 pushm lr
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
80002f5a: 48 98 lddpc r8,80002f7c <CDC_Device_USBTask+0x24>
80002f5c: 11 89 ld.ub r9,r8[0x0]
80002f5e: 30 48 mov r8,4
80002f60: f0 09 18 00 cp.b r9,r8
80002f64: c0 20 breq 80002f68 <CDC_Device_USBTask+0x10>
80002f66: d8 02 popm pc
80002f68: f9 18 00 1a ld.uh r8,r12[26]
80002f6c: f9 19 00 18 ld.uh r9,r12[24]
80002f70: f1 e9 11 08 or r8,r8,r9<<0x10
80002f74: cf 90 breq 80002f66 <CDC_Device_USBTask+0xe>
return;
#if !defined(NO_CLASS_DRIVER_AUTOFLUSH)
CDC_Device_Flush(CDCInterfaceInfo);
80002f76: f0 1f 00 03 mcall 80002f80 <CDC_Device_USBTask+0x28>
80002f7a: d8 02 popm pc
80002f7c: 00 00 add r0,r0
80002f7e: 05 a8 ld.ub r8,r2[0x2]
80002f80: 80 00 ld.sh r0,r0[0x0]
80002f82: 2e 90 sub r0,-23
80002f84 <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)
{
80002f84: eb cd 40 c0 pushm r6-r7,lr
80002f88: 20 1d sub sp,4
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
80002f8a: 4a 58 lddpc r8,8000301c <CDC_Device_SendByte+0x98>
80002f8c: 30 49 mov r9,4
80002f8e: 11 88 ld.ub r8,r8[0x0]
80002f90: f2 08 18 00 cp.b r8,r9
80002f94: c0 50 breq 80002f9e <CDC_Device_SendByte+0x1a>
if ((ErrorCode = Endpoint_WaitUntilReady()) != ENDPOINT_READYWAIT_NoError)
return ErrorCode;
}
Endpoint_Write_8(Data);
return ENDPOINT_READYWAIT_NoError;
80002f96: 30 2c mov r12,2
}
80002f98: 2f fd sub sp,-4
80002f9a: e3 cd 80 c0 ldm sp++,r6-r7,pc
}
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))
80002f9e: f9 19 00 18 ld.uh r9,r12[24]
80002fa2: f9 18 00 1a ld.uh r8,r12[26]
80002fa6: f1 e9 11 08 or r8,r8,r9<<0x10
80002faa: cf 60 breq 80002f96 <CDC_Device_SendByte+0x12>
* \param[in] Address Endpoint address to select.
*/
static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_SelectEndpoint(const uint8_t Address)
{
USB_Endpoint_SelectedEndpoint = (Address & ENDPOINT_EPNUM_MASK);
80002fac: 19 a8 ld.ub r8,r12[0x2]
80002fae: f1 d8 c0 04 bfextu r8,r8,0x0,0x4
80002fb2: 49 c7 lddpc r7,80003020 <CDC_Device_SendByte+0x9c>
80002fb4: 8f 08 st.w r7[0x0],r8
* on its direction.
*/
static inline bool Endpoint_IsReadWriteAllowed(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline bool Endpoint_IsReadWriteAllowed(void)
{
return (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].rwall;
80002fb6: 6e 08 ld.w r8,r7[0x0]
80002fb8: a3 68 lsl r8,0x2
80002fba: e0 38 fe d0 sub r8,130768
80002fbe: 70 08 ld.w r8,r8[0x0]
return ENDPOINT_RWSTREAM_DeviceDisconnected;
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
if (!(Endpoint_IsReadWriteAllowed()))
80002fc0: ed b8 00 10 bld r8,0x10
80002fc4: c0 c1 brne 80002fdc <CDC_Device_SendByte+0x58>
80002fc6: 49 86 lddpc r6,80003024 <CDC_Device_SendByte+0xa0>
* \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)
{
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = Data;
80002fc8: 6e 09 ld.w r9,r7[0x0]
80002fca: 30 0c mov r12,0
80002fcc: ec 09 03 28 ld.w r8,r6[r9<<0x2]
80002fd0: 10 cb st.b r8++,r11
80002fd2: ec 09 09 28 st.w r6[r9<<0x2],r8
return ErrorCode;
}
Endpoint_Write_8(Data);
return ENDPOINT_READYWAIT_NoError;
}
80002fd6: 2f fd sub sp,-4
80002fd8: e3 cd 80 c0 ldm sp++,r6-r7,pc
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearIN(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].txinic = true;
80002fdc: 6e 08 ld.w r8,r7[0x0]
80002fde: 30 1a mov r10,1
80002fe0: a3 68 lsl r8,0x2
80002fe2: e0 38 fe a0 sub r8,130720
80002fe6: 70 09 ld.w r9,r8[0x0]
80002fe8: f3 da d0 01 bfins r9,r10,0x0,0x1
80002fec: 91 09 st.w r8[0x0],r9
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true;
80002fee: 6e 08 ld.w r8,r7[0x0]
80002ff0: a3 68 lsl r8,0x2
80002ff2: e0 38 fd e0 sub r8,130528
80002ff6: 70 09 ld.w r9,r8[0x0]
80002ff8: f3 da d1 c1 bfins r9,r10,0xe,0x1
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80002ffc: fc 1a e0 00 movh r10,0xe000
*/
static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearIN(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].txinic = true;
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true;
80003000: 91 09 st.w r8[0x0],r9
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80003002: 6e 08 ld.w r8,r7[0x0]
80003004: 6e 09 ld.w r9,r7[0x0]
80003006: b1 69 lsl r9,0x10
80003008: 14 09 add r9,r10
{
Endpoint_ClearIN();
uint8_t ErrorCode;
if ((ErrorCode = Endpoint_WaitUntilReady()) != ENDPOINT_READYWAIT_NoError)
8000300a: 50 0b stdsp sp[0x0],r11
8000300c: 48 66 lddpc r6,80003024 <CDC_Device_SendByte+0xa0>
8000300e: ec 08 09 29 st.w r6[r8<<0x2],r9
80003012: f0 1f 00 06 mcall 80003028 <CDC_Device_SendByte+0xa4>
80003016: 40 0b lddsp r11,sp[0x0]
80003018: cd 80 breq 80002fc8 <CDC_Device_SendByte+0x44>
8000301a: cb fb rjmp 80002f98 <CDC_Device_SendByte+0x14>
8000301c: 00 00 add r0,r0
8000301e: 05 a8 ld.ub r8,r2[0x2]
80003020: 00 00 add r0,r0
80003022: 05 68 ld.uh r8,--r2
80003024: 00 00 add r0,r0
80003026: 06 04 add r4,r3
80003028: 80 00 ld.sh r0,r0[0x0]
8000302a: 35 d4 mov r4,93
8000302c <CDC_Device_ConfigureEndpoints>:
break;
}
}
bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
{
8000302c: eb cd 40 80 pushm r7,lr
memset(&CDCInterfaceInfo->State, 0x00, sizeof(CDCInterfaceInfo->State));
80003030: f8 c8 ff ec sub r8,r12,-20
80003034: 30 09 mov r9,0
80003036: b0 09 st.h r8[0x0],r9
80003038: f8 c8 ff ea sub r8,r12,-22
8000303c: b0 09 st.h r8[0x0],r9
8000303e: f8 c8 ff e8 sub r8,r12,-24
80003042: b0 09 st.h r8[0x0],r9
80003044: f8 c8 ff e6 sub r8,r12,-26
80003048: b0 09 st.h r8[0x0],r9
8000304a: f8 c8 ff e4 sub r8,r12,-28
8000304e: b0 09 st.h r8[0x0],r9
80003050: f8 c8 ff e2 sub r8,r12,-30
80003054: b0 09 st.h r8[0x0],r9
CDCInterfaceInfo->Config.DataINEndpoint.Type = EP_TYPE_BULK;
80003056: 30 28 mov r8,2
CDCInterfaceInfo->Config.DataOUTEndpoint.Type = EP_TYPE_BULK;
80003058: f9 68 00 0c st.b r12[12],r8
bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
{
memset(&CDCInterfaceInfo->State, 0x00, sizeof(CDCInterfaceInfo->State));
CDCInterfaceInfo->Config.DataINEndpoint.Type = EP_TYPE_BULK;
8000305c: b8 e8 st.b r12[0x6],r8
CDCInterfaceInfo->Config.DataOUTEndpoint.Type = EP_TYPE_BULK;
CDCInterfaceInfo->Config.NotificationEndpoint.Type = EP_TYPE_INTERRUPT;
8000305e: 30 38 mov r8,3
break;
}
}
bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
{
80003060: 18 97 mov r7,r12
memset(&CDCInterfaceInfo->State, 0x00, sizeof(CDCInterfaceInfo->State));
CDCInterfaceInfo->Config.DataINEndpoint.Type = EP_TYPE_BULK;
CDCInterfaceInfo->Config.DataOUTEndpoint.Type = EP_TYPE_BULK;
CDCInterfaceInfo->Config.NotificationEndpoint.Type = EP_TYPE_INTERRUPT;
80003062: f9 68 00 12 st.b r12[18],r8
if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataINEndpoint, 1)))
80003066: 30 1b mov r11,1
80003068: 2f ec sub r12,-2
8000306a: f0 1f 00 0a mcall 80003090 <CDC_Device_ConfigureEndpoints+0x64>
8000306e: c0 31 brne 80003074 <CDC_Device_ConfigureEndpoints+0x48>
return false;
if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataOUTEndpoint, 1)))
return false;
if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.NotificationEndpoint, 1)))
80003070: e3 cf 80 80 ldm sp++,r7,pc,r12=0
CDCInterfaceInfo->Config.NotificationEndpoint.Type = EP_TYPE_INTERRUPT;
if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataINEndpoint, 1)))
return false;
if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataOUTEndpoint, 1)))
80003074: 30 1b mov r11,1
80003076: ee cc ff f8 sub r12,r7,-8
8000307a: f0 1f 00 06 mcall 80003090 <CDC_Device_ConfigureEndpoints+0x64>
8000307e: cf 90 breq 80003070 <CDC_Device_ConfigureEndpoints+0x44>
return false;
if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.NotificationEndpoint, 1)))
80003080: ee cc ff f2 sub r12,r7,-14
80003084: 30 1b mov r11,1
80003086: f0 1f 00 03 mcall 80003090 <CDC_Device_ConfigureEndpoints+0x64>
8000308a: e3 cd 80 80 ldm sp++,r7,pc
8000308e: 00 00 add r0,r0
80003090: 80 00 ld.sh r0,r0[0x0]
80003092: 34 a4 mov r4,74
80003094 <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)
{
80003094: eb cd 40 e0 pushm r5-r7,lr
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].rxstpi;
80003098: fe f9 02 e0 ld.w r9,pc[736]
8000309c: 72 08 ld.w r8,r9[0x0]
8000309e: 18 97 mov r7,r12
800030a0: a3 68 lsl r8,0x2
800030a2: e0 38 fe d0 sub r8,130768
800030a6: 70 08 ld.w r8,r8[0x0]
if (!(Endpoint_IsSETUPReceived()))
800030a8: ed b8 00 02 bld r8,0x2
800030ac: c0 b1 brne 800030c2 <CDC_Device_ProcessControlRequest+0x2e>
return;
if (USB_ControlRequest.wIndex != CDCInterfaceInfo->Config.ControlInterfaceNumber)
800030ae: fe f6 02 ce ld.w r6,pc[718]
800030b2: 19 8a ld.ub r10,r12[0x0]
800030b4: 0d cb ld.ub r11,r6[0x4]
800030b6: 0d d8 ld.ub r8,r6[0x5]
800030b8: f1 eb 10 88 or r8,r8,r11<<0x8
800030bc: f0 0a 19 00 cp.h r10,r8
800030c0: c0 30 breq 800030c6 <CDC_Device_ProcessControlRequest+0x32>
800030c2: e3 cd 80 e0 ldm sp++,r5-r7,pc
return;
switch (USB_ControlRequest.bRequest)
800030c6: 0d 98 ld.ub r8,r6[0x1]
800030c8: 32 1a mov r10,33
800030ca: f4 08 18 00 cp.b r8,r10
800030ce: c5 70 breq 8000317c <CDC_Device_ProcessControlRequest+0xe8>
800030d0: e0 8b 00 2f brhi 8000312e <CDC_Device_ProcessControlRequest+0x9a>
800030d4: 32 0b mov r11,32
800030d6: f6 08 18 00 cp.b r8,r11
800030da: cf 41 brne 800030c2 <CDC_Device_ProcessControlRequest+0x2e>
Endpoint_ClearStatusStage();
}
break;
case CDC_REQ_SetLineEncoding:
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
800030dc: 0d 88 ld.ub r8,r6[0x0]
800030de: f4 08 18 00 cp.b r8,r10
800030e2: cf 01 brne 800030c2 <CDC_Device_ProcessControlRequest+0x2e>
* \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)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxstpic = true;
800030e4: 72 08 ld.w r8,r9[0x0]
800030e6: a3 68 lsl r8,0x2
800030e8: e0 38 fe a0 sub r8,130720
800030ec: 30 1b mov r11,1
800030ee: 70 0a ld.w r10,r8[0x0]
800030f0: f5 db d0 41 bfins r10,r11,0x2,0x1
800030f4: 91 0a st.w r8[0x0],r10
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
800030f6: 72 08 ld.w r8,r9[0x0]
800030f8: 72 0c ld.w r12,r9[0x0]
800030fa: b1 6c lsl r12,0x10
800030fc: fe fa 02 84 ld.w r10,pc[644]
80003100: fc 1b e0 00 movh r11,0xe000
80003104: f8 0b 00 0b add r11,r12,r11
{
Endpoint_ClearSETUP();
while (!(Endpoint_IsOUTReceived()))
{
if (USB_DeviceState == DEVICE_STATE_Unattached)
80003108: fe fc 02 7c ld.w r12,pc[636]
8000310c: f4 08 09 2b st.w r10[r8<<0x2],r11
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].rxouti;
80003110: 72 08 ld.w r8,r9[0x0]
80003112: a3 68 lsl r8,0x2
80003114: e0 38 fe d0 sub r8,130768
80003118: 70 08 ld.w r8,r8[0x0]
8000311a: fe fb 02 5e ld.w r11,pc[606]
case CDC_REQ_SetLineEncoding:
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
{
Endpoint_ClearSETUP();
while (!(Endpoint_IsOUTReceived()))
8000311e: e2 18 00 02 andl r8,0x2,COH
80003122: e0 81 00 cd brne 800032bc <CDC_Device_ProcessControlRequest+0x228>
{
if (USB_DeviceState == DEVICE_STATE_Unattached)
80003126: 19 88 ld.ub r8,r12[0x0]
80003128: 58 08 cp.w r8,0
8000312a: cf 31 brne 80003110 <CDC_Device_ProcessControlRequest+0x7c>
8000312c: cc bb rjmp 800030c2 <CDC_Device_ProcessControlRequest+0x2e>
return;
if (USB_ControlRequest.wIndex != CDCInterfaceInfo->Config.ControlInterfaceNumber)
return;
switch (USB_ControlRequest.bRequest)
8000312e: 32 2b mov r11,34
80003130: f6 08 18 00 cp.b r8,r11
80003134: e0 80 00 a0 breq 80003274 <CDC_Device_ProcessControlRequest+0x1e0>
80003138: 32 3b mov r11,35
8000313a: f6 08 18 00 cp.b r8,r11
8000313e: cc 21 brne 800030c2 <CDC_Device_ProcessControlRequest+0x2e>
EVENT_CDC_Device_ControLineStateChanged(CDCInterfaceInfo);
}
break;
case CDC_REQ_SendBreak:
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
80003140: 0d 88 ld.ub r8,r6[0x0]
80003142: f4 08 18 00 cp.b r8,r10
80003146: cb e1 brne 800030c2 <CDC_Device_ProcessControlRequest+0x2e>
* \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)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxstpic = true;
80003148: 72 08 ld.w r8,r9[0x0]
8000314a: a3 68 lsl r8,0x2
8000314c: e0 38 fe a0 sub r8,130720
80003150: 30 1b mov r11,1
80003152: 70 0a ld.w r10,r8[0x0]
80003154: f5 db d0 41 bfins r10,r11,0x2,0x1
80003158: 91 0a st.w r8[0x0],r10
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
8000315a: fc 18 e0 00 movh r8,0xe000
8000315e: 72 0a ld.w r10,r9[0x0]
80003160: 72 09 ld.w r9,r9[0x0]
80003162: b1 69 lsl r9,0x10
80003164: 10 09 add r9,r8
80003166: fe f8 02 1a ld.w r8,pc[538]
8000316a: f0 0a 09 29 st.w r8[r10<<0x2],r9
{
Endpoint_ClearSETUP();
Endpoint_ClearStatusStage();
8000316e: f0 1f 00 87 mcall 80003388 <CDC_Device_ProcessControlRequest+0x2f4>
EVENT_CDC_Device_BreakSent(CDCInterfaceInfo, (uint8_t)USB_ControlRequest.wValue);
80003172: 0d bb ld.ub r11,r6[0x3]
80003174: 0e 9c mov r12,r7
80003176: f0 1f 00 86 mcall 8000338c <CDC_Device_ProcessControlRequest+0x2f8>
8000317a: ca 4b rjmp 800030c2 <CDC_Device_ProcessControlRequest+0x2e>
return;
switch (USB_ControlRequest.bRequest)
{
case CDC_REQ_GetLineEncoding:
if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
8000317c: 0d 8a ld.ub r10,r6[0x0]
8000317e: 3a 18 mov r8,-95
80003180: f0 0a 18 00 cp.b r10,r8
80003184: c9 f1 brne 800030c2 <CDC_Device_ProcessControlRequest+0x2e>
* \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)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxstpic = true;
80003186: 72 08 ld.w r8,r9[0x0]
80003188: 30 1b mov r11,1
8000318a: a3 68 lsl r8,0x2
8000318c: e0 38 fe a0 sub r8,130720
80003190: 70 0a ld.w r10,r8[0x0]
80003192: f5 db d0 41 bfins r10,r11,0x2,0x1
80003196: 91 0a st.w r8[0x0],r10
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80003198: fc 1b e0 00 movh r11,0xe000
8000319c: 72 08 ld.w r8,r9[0x0]
8000319e: 4f 9a lddpc r10,80003380 <CDC_Device_ProcessControlRequest+0x2ec>
800031a0: 72 0c ld.w r12,r9[0x0]
800031a2: b1 6c lsl r12,0x10
800031a4: f8 0b 00 0b add r11,r12,r11
800031a8: f4 08 09 2b st.w r10[r8<<0x2],r11
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].txini;
800031ac: 72 08 ld.w r8,r9[0x0]
800031ae: a3 68 lsl r8,0x2
800031b0: e0 38 fe d0 sub r8,130768
800031b4: 70 0b ld.w r11,r8[0x0]
800031b6: 4f 18 lddpc r8,80003378 <CDC_Device_ProcessControlRequest+0x2e4>
{
Endpoint_ClearSETUP();
while (!(Endpoint_IsINReady()));
800031b8: f7 db c0 01 bfextu r11,r11,0x0,0x1
800031bc: cf 80 breq 800031ac <CDC_Device_ProcessControlRequest+0x118>
Endpoint_Write_32_LE(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS);
800031be: ef 1b 00 18 ld.uh r11,r7[24]
* \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)
{
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data & 0xFF);
800031c2: 70 0c ld.w r12,r8[0x0]
800031c4: ef 19 00 1a ld.uh r9,r7[26]
800031c8: f3 eb 11 09 or r9,r9,r11<<0x10
800031cc: f4 0c 03 2b ld.w r11,r10[r12<<0x2]
800031d0: ed d9 c0 08 bfextu r6,r9,0x0,0x8
800031d4: 16 c6 st.b r11++,r6
800031d6: f4 0c 09 2b st.w r10[r12<<0x2],r11
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8);
800031da: 70 0c ld.w r12,r8[0x0]
800031dc: f4 0c 03 2b ld.w r11,r10[r12<<0x2]
800031e0: ed d9 c1 08 bfextu r6,r9,0x8,0x8
800031e4: 16 c6 st.b r11++,r6
800031e6: f4 0c 09 2b st.w r10[r12<<0x2],r11
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 16);
800031ea: 70 0c ld.w r12,r8[0x0]
800031ec: f4 0c 03 2b ld.w r11,r10[r12<<0x2]
800031f0: ed d9 c2 08 bfextu r6,r9,0x10,0x8
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 24);
800031f4: b9 89 lsr r9,0x18
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)
{
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data & 0xFF);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 16);
800031f6: 16 c6 st.b r11++,r6
800031f8: f4 0c 09 2b st.w r10[r12<<0x2],r11
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 24);
800031fc: 70 0c ld.w r12,r8[0x0]
800031fe: f4 0c 03 2b ld.w r11,r10[r12<<0x2]
80003202: 16 c9 st.b r11++,r9
80003204: f4 0c 09 2b st.w r10[r12<<0x2],r11
* \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)
{
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = Data;
80003208: 70 0b ld.w r11,r8[0x0]
Endpoint_Write_8(CDCInterfaceInfo->State.LineEncoding.CharFormat);
8000320a: ef 3c 00 1c ld.ub r12,r7[28]
8000320e: f4 0b 03 29 ld.w r9,r10[r11<<0x2]
80003212: 12 cc st.b r9++,r12
80003214: f4 0b 09 29 st.w r10[r11<<0x2],r9
80003218: 70 0b ld.w r11,r8[0x0]
Endpoint_Write_8(CDCInterfaceInfo->State.LineEncoding.ParityType);
8000321a: ef 3c 00 1d ld.ub r12,r7[29]
8000321e: f4 0b 03 29 ld.w r9,r10[r11<<0x2]
80003222: 12 cc st.b r9++,r12
80003224: f4 0b 09 29 st.w r10[r11<<0x2],r9
80003228: 70 0b ld.w r11,r8[0x0]
Endpoint_Write_8(CDCInterfaceInfo->State.LineEncoding.DataBits);
8000322a: ef 3c 00 1e ld.ub r12,r7[30]
8000322e: f4 0b 03 29 ld.w r9,r10[r11<<0x2]
80003232: 12 cc st.b r9++,r12
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearIN(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].txinic = true;
80003234: 30 1c mov r12,1
* \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)
{
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = Data;
80003236: f4 0b 09 29 st.w r10[r11<<0x2],r9
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearIN(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].txinic = true;
8000323a: 70 09 ld.w r9,r8[0x0]
8000323c: a3 69 lsl r9,0x2
8000323e: e0 39 fe a0 sub r9,130720
80003242: 72 0b ld.w r11,r9[0x0]
80003244: f7 dc d0 01 bfins r11,r12,0x0,0x1
80003248: 93 0b st.w r9[0x0],r11
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true;
8000324a: 70 09 ld.w r9,r8[0x0]
8000324c: a3 69 lsl r9,0x2
8000324e: e0 39 fd e0 sub r9,130528
80003252: 72 0b ld.w r11,r9[0x0]
80003254: f7 dc d1 c1 bfins r11,r12,0xe,0x1
80003258: 93 0b st.w r9[0x0],r11
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
8000325a: 70 09 ld.w r9,r8[0x0]
8000325c: 70 0b ld.w r11,r8[0x0]
8000325e: fc 18 e0 00 movh r8,0xe000
80003262: b1 6b lsl r11,0x10
80003264: f6 08 00 08 add r8,r11,r8
80003268: f4 09 09 28 st.w r10[r9<<0x2],r8
Endpoint_ClearIN();
Endpoint_ClearStatusStage();
8000326c: f0 1f 00 47 mcall 80003388 <CDC_Device_ProcessControlRequest+0x2f4>
80003270: e3 cd 80 e0 ldm sp++,r5-r7,pc
EVENT_CDC_Device_LineEncodingChanged(CDCInterfaceInfo);
}
break;
case CDC_REQ_SetControlLineState:
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
80003274: 0d 88 ld.ub r8,r6[0x0]
80003276: f4 08 18 00 cp.b r8,r10
8000327a: fe 91 ff 24 brne 800030c2 <CDC_Device_ProcessControlRequest+0x2e>
* \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)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxstpic = true;
8000327e: 72 08 ld.w r8,r9[0x0]
80003280: a3 68 lsl r8,0x2
80003282: e0 38 fe a0 sub r8,130720
80003286: 30 1b mov r11,1
80003288: 70 0a ld.w r10,r8[0x0]
8000328a: f5 db d0 41 bfins r10,r11,0x2,0x1
8000328e: 91 0a st.w r8[0x0],r10
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80003290: fc 18 e0 00 movh r8,0xe000
80003294: 72 0a ld.w r10,r9[0x0]
80003296: 72 09 ld.w r9,r9[0x0]
80003298: b1 69 lsl r9,0x10
8000329a: 10 09 add r9,r8
8000329c: 4b 98 lddpc r8,80003380 <CDC_Device_ProcessControlRequest+0x2ec>
8000329e: f0 0a 09 29 st.w r8[r10<<0x2],r9
{
Endpoint_ClearSETUP();
Endpoint_ClearStatusStage();
800032a2: f0 1f 00 3a mcall 80003388 <CDC_Device_ProcessControlRequest+0x2f4>
CDCInterfaceInfo->State.ControlLineStates.HostToDevice = USB_ControlRequest.wValue;
800032a6: 0d b8 ld.ub r8,r6[0x3]
800032a8: 0d a9 ld.ub r9,r6[0x2]
800032aa: f1 e9 10 88 or r8,r8,r9<<0x8
EVENT_CDC_Device_ControLineStateChanged(CDCInterfaceInfo);
800032ae: 0e 9c mov r12,r7
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
{
Endpoint_ClearSETUP();
Endpoint_ClearStatusStage();
CDCInterfaceInfo->State.ControlLineStates.HostToDevice = USB_ControlRequest.wValue;
800032b0: ef 58 00 14 st.h r7[20],r8
EVENT_CDC_Device_ControLineStateChanged(CDCInterfaceInfo);
800032b4: f0 1f 00 37 mcall 80003390 <CDC_Device_ProcessControlRequest+0x2fc>
800032b8: e3 cd 80 e0 ldm sp++,r5-r7,pc
* \return Next four bytes in the currently selected endpoint's FIFO buffer.
*/
static inline uint32_t Endpoint_Read_32_LE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline uint32_t Endpoint_Read_32_LE(void)
{
uint32_t Byte0 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++);
800032bc: 76 09 ld.w r9,r11[0x0]
800032be: f4 09 03 28 ld.w r8,r10[r9<<0x2]
800032c2: 11 36 ld.ub r6,r8++
800032c4: f4 09 09 28 st.w r10[r9<<0x2],r8
uint32_t Byte1 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++);
800032c8: 76 09 ld.w r9,r11[0x0]
800032ca: f4 09 03 28 ld.w r8,r10[r9<<0x2]
800032ce: 11 3c ld.ub r12,r8++
800032d0: f4 09 09 28 st.w r10[r9<<0x2],r8
uint32_t Byte2 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++);
800032d4: 76 09 ld.w r9,r11[0x0]
800032d6: f4 09 03 28 ld.w r8,r10[r9<<0x2]
800032da: 11 35 ld.ub r5,r8++
800032dc: f4 09 09 28 st.w r10[r9<<0x2],r8
uint32_t Byte3 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++);
800032e0: 76 09 ld.w r9,r11[0x0]
800032e2: f4 09 03 28 ld.w r8,r10[r9<<0x2]
800032e6: 11 3e ld.ub lr,r8++
800032e8: f4 09 09 28 st.w r10[r9<<0x2],r8
{
if (USB_DeviceState == DEVICE_STATE_Unattached)
return;
}
CDCInterfaceInfo->State.LineEncoding.BaudRateBPS = Endpoint_Read_32_LE();
800032ec: ea 08 15 10 lsl r8,r5,0x10
800032f0: f1 ee 11 88 or r8,r8,lr<<0x18
800032f4: 0c 48 or r8,r6
800032f6: f1 ec 10 88 or r8,r8,r12<<0x8
800032fa: ef 58 00 1a st.h r7[26],r8
800032fe: b1 88 lsr r8,0x10
80003300: ef 58 00 18 st.h r7[24],r8
* \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 *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++);
80003304: 76 09 ld.w r9,r11[0x0]
80003306: f4 09 03 28 ld.w r8,r10[r9<<0x2]
8000330a: 11 3c ld.ub r12,r8++
8000330c: f4 09 09 28 st.w r10[r9<<0x2],r8
CDCInterfaceInfo->State.LineEncoding.CharFormat = Endpoint_Read_8();
80003310: ef 6c 00 1c st.b r7[28],r12
80003314: 76 09 ld.w r9,r11[0x0]
80003316: f4 09 03 28 ld.w r8,r10[r9<<0x2]
8000331a: 11 3c ld.ub r12,r8++
8000331c: f4 09 09 28 st.w r10[r9<<0x2],r8
CDCInterfaceInfo->State.LineEncoding.ParityType = Endpoint_Read_8();
80003320: ef 6c 00 1d st.b r7[29],r12
80003324: 76 09 ld.w r9,r11[0x0]
80003326: f4 09 03 28 ld.w r8,r10[r9<<0x2]
8000332a: 11 3c ld.ub r12,r8++
8000332c: f4 09 09 28 st.w r10[r9<<0x2],r8
CDCInterfaceInfo->State.LineEncoding.DataBits = Endpoint_Read_8();
80003330: ef 6c 00 1e st.b r7[30],r12
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearOUT(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearOUT(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxoutic = true;
80003334: 30 1c mov r12,1
80003336: 76 08 ld.w r8,r11[0x0]
80003338: a3 68 lsl r8,0x2
8000333a: e0 38 fe a0 sub r8,130720
8000333e: 70 09 ld.w r9,r8[0x0]
80003340: f3 dc d0 21 bfins r9,r12,0x1,0x1
80003344: 91 09 st.w r8[0x0],r9
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true;
80003346: 76 08 ld.w r8,r11[0x0]
80003348: a3 68 lsl r8,0x2
8000334a: e0 38 fd e0 sub r8,130528
8000334e: 70 09 ld.w r9,r8[0x0]
80003350: f3 dc d1 c1 bfins r9,r12,0xe,0x1
80003354: 91 09 st.w r8[0x0],r9
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80003356: fc 19 e0 00 movh r9,0xe000
8000335a: 76 08 ld.w r8,r11[0x0]
8000335c: 76 0b ld.w r11,r11[0x0]
8000335e: b1 6b lsl r11,0x10
80003360: f6 09 00 09 add r9,r11,r9
80003364: f4 08 09 29 st.w r10[r8<<0x2],r9
Endpoint_ClearOUT();
Endpoint_ClearStatusStage();
80003368: f0 1f 00 08 mcall 80003388 <CDC_Device_ProcessControlRequest+0x2f4>
EVENT_CDC_Device_LineEncodingChanged(CDCInterfaceInfo);
8000336c: 0e 9c mov r12,r7
8000336e: f0 1f 00 0a mcall 80003394 <CDC_Device_ProcessControlRequest+0x300>
80003372: e3 cd 80 e0 ldm sp++,r5-r7,pc
80003376: 00 00 add r0,r0
80003378: 00 00 add r0,r0
8000337a: 05 68 ld.uh r8,--r2
8000337c: 00 00 add r0,r0
8000337e: 05 a9 ld.ub r9,r2[0x2]
80003380: 00 00 add r0,r0
80003382: 06 04 add r4,r3
80003384: 00 00 add r0,r0
80003386: 05 a8 ld.ub r8,r2[0x2]
80003388: 80 00 ld.sh r0,r0[0x0]
8000338a: 35 34 mov r4,83
8000338c: 80 00 ld.sh r0,r0[0x0]
8000338e: 2e 8c sub r12,-24
80003390: 80 00 ld.sh r0,r0[0x0]
80003392: 2e 8c sub r12,-24
80003394: 80 00 ld.sh r0,r0[0x0]
80003396: 2e 8c sub r12,-24
80003398 <Unhandled_Interrupt>:
/** Interrupt vector table, containing the ISR to call for each interrupt group */
InterruptHandlerPtr_t InterruptHandlers[AVR32_INTC_NUM_INT_GRPS];
/** ISR for unhandled interrupt groups */
ISR(Unhandled_Interrupt)
{
80003398: c0 08 rjmp 80003398 <Unhandled_Interrupt>
8000339a: d7 03 nop
8000339c <INTC_GetInterruptHandler>:
/** Retrieves the associated interrupt handler for the interrupt group currently being fired. This
* is called directly from the exception handler routine before dispatching to the ISR.
*/
InterruptHandlerPtr_t INTC_GetInterruptHandler(const uint_reg_t InterruptLevel)
{
return InterruptHandlers[AVR32_INTC.icr[AVR32_INTC_INT3 - InterruptLevel]];
8000339c: e0 68 00 83 mov r8,131
800033a0: f0 0c 01 0c sub r12,r8,r12
800033a4: fe 78 08 00 mov r8,-63488
800033a8: f0 0c 03 29 ld.w r9,r8[r12<<0x2]
800033ac: 48 28 lddpc r8,800033b4 <INTC_GetInterruptHandler+0x18>
}
800033ae: f0 09 03 2c ld.w r12,r8[r9<<0x2]
800033b2: 5e fc retal r12
800033b4: 00 00 add r0,r0
800033b6: 05 b4 ld.ub r4,r2[0x3]
800033b8 <INTC_Init>:
/** Initializes the interrupt controller ready to handle interrupts. This must be called at the
* start of the user program before any interrupts are registered or enabled.
*/
void INTC_Init(void)
{
800033b8: 48 98 lddpc r8,800033dc <INTC_Init+0x24>
800033ba: 48 a9 lddpc r9,800033e0 <INTC_Init+0x28>
800033bc: 70 0c ld.w r12,r8[0x0]
800033be: 48 ab lddpc r11,800033e4 <INTC_Init+0x2c>
800033c0: 30 08 mov r8,0
for (uint8_t InterruptGroup = 0; InterruptGroup < AVR32_INTC_NUM_INT_GRPS; InterruptGroup++)
{
InterruptHandlers[InterruptGroup] = Unhandled_Interrupt;
AVR32_INTC.ipr[InterruptGroup] = Autovector_Table[AVR32_INTC_INT0];
800033c2: fe 7a 08 00 mov r10,-63488
*/
void INTC_Init(void)
{
for (uint8_t InterruptGroup = 0; InterruptGroup < AVR32_INTC_NUM_INT_GRPS; InterruptGroup++)
{
InterruptHandlers[InterruptGroup] = Unhandled_Interrupt;
800033c6: 12 ab st.w r9++,r11
AVR32_INTC.ipr[InterruptGroup] = Autovector_Table[AVR32_INTC_INT0];
800033c8: f4 08 09 2c st.w r10[r8<<0x2],r12
800033cc: 2f f8 sub r8,-1
/** Initializes the interrupt controller ready to handle interrupts. This must be called at the
* start of the user program before any interrupts are registered or enabled.
*/
void INTC_Init(void)
{
for (uint8_t InterruptGroup = 0; InterruptGroup < AVR32_INTC_NUM_INT_GRPS; InterruptGroup++)
800033ce: 59 48 cp.w r8,20
800033d0: cf b1 brne 800033c6 <INTC_Init+0xe>
{
InterruptHandlers[InterruptGroup] = Unhandled_Interrupt;
AVR32_INTC.ipr[InterruptGroup] = Autovector_Table[AVR32_INTC_INT0];
}
__builtin_mtsr(AVR32_EVBA, (uintptr_t)&EVBA_Table);
800033d2: 48 68 lddpc r8,800033e8 <INTC_Init+0x30>
800033d4: e3 b8 00 01 mtsr 0x4,r8
}
800033d8: 5e fc retal r12
800033da: 00 00 add r0,r0
800033dc: 80 00 ld.sh r0,r0[0x0]
800033de: 43 24 lddsp r4,sp[0xc8]
800033e0: 00 00 add r0,r0
800033e2: 05 b4 ld.ub r4,r2[0x3]
800033e4: 80 00 ld.sh r0,r0[0x0]
800033e6: 33 98 mov r8,57
800033e8: 80 00 ld.sh r0,r0[0x0]
800033ea: 42 00 lddsp r0,sp[0x80]
800033ec <Endpoint_ConfigureEndpoint_Prv>:
return true;
}
bool Endpoint_ConfigureEndpoint_Prv(const uint8_t Number,
const uint32_t UECFG0Data)
{
800033ec: eb cd 40 fe pushm r1-r7,lr
USB_Endpoint_FIFOPos[Number] = &AVR32_USBB_SLAVE[Number * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
800033f0: fc 18 e0 00 movh r8,0xe000
800033f4: f8 09 15 10 lsl r9,r12,0x10
800033f8: 10 09 add r9,r8
800033fa: 4a 98 lddpc r8,8000349c <Endpoint_ConfigureEndpoint_Prv+0xb0>
800033fc: f0 0c 09 29 st.w r8[r12<<0x2],r9
(&AVR32_USBB.uecfg0)[Number] = 0;
(&AVR32_USBB.uecfg0)[Number] = UECFG0Data;
return Endpoint_IsConfigured();
#else
for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++)
80003400: 30 68 mov r8,6
80003402: f0 0c 18 00 cp.b r12,r8
80003406: e0 8b 00 47 brhi 80003494 <Endpoint_ConfigureEndpoint_Prv+0xa8>
8000340a: e7 dc c0 04 bfextu r3,r12,0x0,0x4
8000340e: 4a 5a lddpc r10,800034a0 <Endpoint_ConfigureEndpoint_Prv+0xb4>
80003410: 18 98 mov r8,r12
80003412: 95 03 st.w r10[0x0],r3
80003414: 18 99 mov r9,r12
80003416: 16 9e mov lr,r11
* to and from a host.
*/
static inline void Endpoint_DisableEndpoint(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_DisableEndpoint(void)
{
AVR32_USBB.uerst &= ~(AVR32_USBB_EPEN0_MASK << USB_Endpoint_SelectedEndpoint);
80003418: fe 67 00 00 mov r7,-131072
8000341c: 30 15 mov r5,1
8000341e: 30 74 mov r4,7
80003420: c0 d8 rjmp 8000343a <Endpoint_ConfigureEndpoint_Prv+0x4e>
{
UECFG0Temp = UECFG0Data;
}
else
{
UECFG0Temp = (&AVR32_USBB.uecfg0)[EPNum];
80003422: f0 09 15 02 lsl r9,r8,0x2
* \param[in] Address Endpoint address to select.
*/
static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_SelectEndpoint(const uint8_t Address)
{
USB_Endpoint_SelectedEndpoint = (Address & ENDPOINT_EPNUM_MASK);
80003426: 95 02 st.w r10[0x0],r2
80003428: fe 66 01 00 mov r6,-130816
8000342c: f2 06 00 0e add lr,r9,r6
80003430: 10 99 mov r9,r8
{
uint32_t UECFG0Temp;
Endpoint_SelectEndpoint(EPNum);
if (EPNum == Number)
80003432: f6 0e 17 00 moveq lr,r11
{
UECFG0Temp = UECFG0Data;
}
else
{
UECFG0Temp = (&AVR32_USBB.uecfg0)[EPNum];
80003436: fd fe 10 00 ld.wne lr,lr[0x0]
if (!(UECFG0Temp & AVR32_USBB_ALLOC_MASK))
continue;
Endpoint_DisableEndpoint();
(&AVR32_USBB.uecfg0)[EPNum] &= ~AVR32_USBB_ALLOC_MASK;
8000343a: a3 69 lsl r9,0x2
(&AVR32_USBB.uecfg0)[Number] = 0;
(&AVR32_USBB.uecfg0)[Number] = UECFG0Data;
return Endpoint_IsConfigured();
#else
for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++)
8000343c: 2f f8 sub r8,-1
else
{
UECFG0Temp = (&AVR32_USBB.uecfg0)[EPNum];
}
if (!(UECFG0Temp & AVR32_USBB_ALLOC_MASK))
8000343e: 1c 96 mov r6,lr
(&AVR32_USBB.uecfg0)[Number] = 0;
(&AVR32_USBB.uecfg0)[Number] = UECFG0Data;
return Endpoint_IsConfigured();
#else
for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++)
80003440: 5c 58 castu.b r8
if (!(UECFG0Temp & AVR32_USBB_ALLOC_MASK))
continue;
Endpoint_DisableEndpoint();
(&AVR32_USBB.uecfg0)[EPNum] &= ~AVR32_USBB_ALLOC_MASK;
80003442: e0 39 ff 00 sub r9,130816
80003446: e5 d8 c0 04 bfextu r2,r8,0x0,0x4
else
{
UECFG0Temp = (&AVR32_USBB.uecfg0)[EPNum];
}
if (!(UECFG0Temp & AVR32_USBB_ALLOC_MASK))
8000344a: e2 16 00 02 andl r6,0x2,COH
8000344e: c1 a0 breq 80003482 <Endpoint_ConfigureEndpoint_Prv+0x96>
* to and from a host.
*/
static inline void Endpoint_DisableEndpoint(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_DisableEndpoint(void)
{
AVR32_USBB.uerst &= ~(AVR32_USBB_EPEN0_MASK << USB_Endpoint_SelectedEndpoint);
80003450: 6e 71 ld.w r1,r7[0x1c]
80003452: 74 06 ld.w r6,r10[0x0]
80003454: ea 06 09 46 lsl r6,r5,r6
80003458: 5c d6 com r6
8000345a: 02 66 and r6,r1
8000345c: 8f 76 st.w r7[0x1c],r6
continue;
Endpoint_DisableEndpoint();
(&AVR32_USBB.uecfg0)[EPNum] &= ~AVR32_USBB_ALLOC_MASK;
8000345e: 72 06 ld.w r6,r9[0x0]
80003460: a1 d6 cbr r6,0x1
80003462: 93 06 st.w r9[0x0],r6
* \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)
{
AVR32_USBB.uerst |= (AVR32_USBB_EPEN0_MASK << USB_Endpoint_SelectedEndpoint);
80003464: 6e 71 ld.w r1,r7[0x1c]
80003466: 74 06 ld.w r6,r10[0x0]
80003468: ea 06 09 46 lsl r6,r5,r6
8000346c: 02 46 or r6,r1
8000346e: 8f 76 st.w r7[0x1c],r6
Endpoint_EnableEndpoint();
(&AVR32_USBB.uecfg0)[EPNum] = UECFG0Temp;
80003470: 93 0e st.w r9[0x0],lr
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].cfgok;
80003472: 74 09 ld.w r9,r10[0x0]
80003474: a3 69 lsl r9,0x2
80003476: e0 39 fe d0 sub r9,130768
8000347a: 72 09 ld.w r9,r9[0x0]
if (!(Endpoint_IsConfigured()))
8000347c: e6 19 00 04 andh r9,0x4,COH
80003480: c0 70 breq 8000348e <Endpoint_ConfigureEndpoint_Prv+0xa2>
(&AVR32_USBB.uecfg0)[Number] = 0;
(&AVR32_USBB.uecfg0)[Number] = UECFG0Data;
return Endpoint_IsConfigured();
#else
for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++)
80003482: e8 08 18 00 cp.b r8,r4
80003486: cc e1 brne 80003422 <Endpoint_ConfigureEndpoint_Prv+0x36>
* \param[in] Address Endpoint address to select.
*/
static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
static inline void Endpoint_SelectEndpoint(const uint8_t Address)
{
USB_Endpoint_SelectedEndpoint = (Address & ENDPOINT_EPNUM_MASK);
80003488: 95 03 st.w r10[0x0],r3
8000348a: e3 cf 90 fe ldm sp++,r1-r7,pc,r12=1
(&AVR32_USBB.uecfg0)[EPNum] &= ~AVR32_USBB_ALLOC_MASK;
Endpoint_EnableEndpoint();
(&AVR32_USBB.uecfg0)[EPNum] = UECFG0Temp;
if (!(Endpoint_IsConfigured()))
8000348e: 12 9c mov r12,r9
80003490: e3 cd 80 fe ldm sp++,r1-r7,pc
80003494: e7 dc c0 04 bfextu r3,r12,0x0,0x4
80003498: 48 2a lddpc r10,800034a0 <Endpoint_ConfigureEndpoint_Prv+0xb4>
8000349a: cf 7b rjmp 80003488 <Endpoint_ConfigureEndpoint_Prv+0x9c>
8000349c: 00 00 add r0,r0
8000349e: 06 04 add r4,r3
800034a0: 00 00 add r0,r0
800034a2: 05 68 ld.uh r8,--r2
800034a4 <Endpoint_ConfigureEndpointTable>:
volatile uint32_t USB_Endpoint_SelectedEndpoint = ENDPOINT_CONTROLEP;
volatile uint8_t* USB_Endpoint_FIFOPos[ENDPOINT_TOTAL_ENDPOINTS];
bool Endpoint_ConfigureEndpointTable(const USB_Endpoint_Table_t* const Table,
const uint8_t Entries)
{
800034a4: d4 31 pushm r0-r7,lr
800034a6: 16 95 mov r5,r11
for (uint8_t i = 0; i < Entries; i++)
800034a8: 58 0b cp.w r11,0
800034aa: c3 f0 breq 80003528 <Endpoint_ConfigureEndpointTable+0x84>
800034ac: 30 06 mov r6,0
800034ae: 18 97 mov r7,r12
const uint16_t Size,
const uint8_t Banks)
{
uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
800034b0: 30 64 mov r4,6
return false;
return Endpoint_ConfigureEndpoint_Prv(Number,
800034b2: 0c 92 mov r2,r6
static inline uint32_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes)
{
uint8_t MaskVal = 0;
uint16_t CheckBytes = 8;
while (CheckBytes < Bytes)
800034b4: 30 83 mov r3,8
uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
return false;
return Endpoint_ConfigureEndpoint_Prv(Number,
800034b6: 30 10 mov r0,1
{
if (!(Table[i].Address))
800034b8: 0f 81 ld.ub r1,r7[0x0]
800034ba: 58 01 cp.w r1,0
800034bc: c2 f0 breq 8000351a <Endpoint_ConfigureEndpointTable+0x76>
continue;
if (!(Endpoint_ConfigureEndpoint(Table[i].Address, Table[i].Type, Table[i].Size, Table[i].Banks)))
800034be: 0f de ld.ub lr,r7[0x5]
800034c0: 8e 1b ld.sh r11,r7[0x2]
800034c2: 0f c8 ld.ub r8,r7[0x4]
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);
800034c4: f9 d1 c0 04 bfextu r12,r1,0x0,0x4
if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
800034c8: e8 0c 18 00 cp.b r12,r4
800034cc: e0 88 00 03 brls 800034d2 <Endpoint_ConfigureEndpointTable+0x2e>
volatile uint8_t* USB_Endpoint_FIFOPos[ENDPOINT_TOTAL_ENDPOINTS];
bool Endpoint_ConfigureEndpointTable(const USB_Endpoint_Table_t* const Table,
const uint8_t Entries)
{
for (uint8_t i = 0; i < Entries; i++)
800034d0: d8 3a popm r0-r7,pc,r12=0
return false;
return Endpoint_ConfigureEndpoint_Prv(Number,
800034d2: e0 69 01 00 mov r9,256
800034d6: e2 02 18 00 cp.b r2,r1
800034da: f2 01 17 90 movgt r1,r9
800034de: f9 b1 0a 00 movle r1,0
static inline uint32_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes)
{
uint8_t MaskVal = 0;
uint16_t CheckBytes = 8;
while (CheckBytes < Bytes)
800034e2: e6 0b 19 00 cp.h r11,r3
800034e6: e0 88 00 22 brls 8000352a <Endpoint_ConfigureEndpointTable+0x86>
800034ea: 30 89 mov r9,8
800034ec: 30 0a mov r10,0
{
MaskVal++;
800034ee: 2f fa sub r10,-1
CheckBytes <<= 1;
800034f0: a1 79 lsl r9,0x1
uint8_t MaskVal = 0;
uint16_t CheckBytes = 8;
while (CheckBytes < Bytes)
{
MaskVal++;
800034f2: 5c 5a castu.b r10
CheckBytes <<= 1;
800034f4: 5c 89 casts.h r9
static inline uint32_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes)
{
uint8_t MaskVal = 0;
uint16_t CheckBytes = 8;
while (CheckBytes < Bytes)
800034f6: f2 0b 19 00 cp.h r11,r9
800034fa: fe 9b ff fa brhi 800034ee <Endpoint_ConfigureEndpointTable+0x4a>
800034fe: a5 6a lsl r10,0x4
uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
return false;
return Endpoint_ConfigureEndpoint_Prv(Number,
80003500: e0 0e 18 00 cp.b lr,r0
80003504: 5f 89 srls r9
80003506: a1 b9 sbr r9,0x1
80003508: f3 e8 10 b8 or r8,r9,r8<<0xb
8000350c: f1 e1 10 01 or r1,r8,r1
80003510: e3 ea 10 0b or r11,r1,r10
80003514: f0 1f 00 07 mcall 80003530 <Endpoint_ConfigureEndpointTable+0x8c>
{
if (!(Table[i].Address))
continue;
if (!(Endpoint_ConfigureEndpoint(Table[i].Address, Table[i].Type, Table[i].Size, Table[i].Banks)))
80003518: cd c0 breq 800034d0 <Endpoint_ConfigureEndpointTable+0x2c>
volatile uint8_t* USB_Endpoint_FIFOPos[ENDPOINT_TOTAL_ENDPOINTS];
bool Endpoint_ConfigureEndpointTable(const USB_Endpoint_Table_t* const Table,
const uint8_t Entries)
{
for (uint8_t i = 0; i < Entries; i++)
8000351a: 2f f6 sub r6,-1
8000351c: 2f a7 sub r7,-6
8000351e: 5c 56 castu.b r6
80003520: ec 05 18 00 cp.b r5,r6
80003524: fe 9b ff ca brhi 800034b8 <Endpoint_ConfigureEndpointTable+0x14>
80003528: da 3a popm r0-r7,pc,r12=1
static inline uint32_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes)
{
uint8_t MaskVal = 0;
uint16_t CheckBytes = 8;
while (CheckBytes < Bytes)
8000352a: 30 0a mov r10,0
8000352c: ce ab rjmp 80003500 <Endpoint_ConfigureEndpointTable+0x5c>
8000352e: 00 00 add r0,r0
80003530: 80 00 ld.sh r0,r0[0x0]
80003532: 33 ec mov r12,62
80003534 <Endpoint_ClearStatusStage>:
}
}
void Endpoint_ClearStatusStage(void)
{
if (USB_ControlRequest.bmRequestType & REQDIR_DEVICETOHOST)
80003534: 4a 48 lddpc r8,800035c4 <Endpoint_ClearStatusStage+0x90>
80003536: 11 89 ld.ub r9,r8[0x0]
80003538: 30 08 mov r8,0
8000353a: f0 09 18 00 cp.b r9,r8
8000353e: c2 b5 brlt 80003594 <Endpoint_ClearStatusStage+0x60>
80003540: 4a 29 lddpc r9,800035c8 <Endpoint_ClearStatusStage+0x94>
}
else
{
while (!(Endpoint_IsINReady()))
{
if (USB_DeviceState == DEVICE_STATE_Unattached)
80003542: 4a 3b lddpc r11,800035cc <Endpoint_ClearStatusStage+0x98>
80003544: c0 48 rjmp 8000354c <Endpoint_ClearStatusStage+0x18>
80003546: 17 88 ld.ub r8,r11[0x0]
80003548: 58 08 cp.w r8,0
8000354a: 5e 0c reteq r12
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].txini;
8000354c: 72 08 ld.w r8,r9[0x0]
8000354e: a3 68 lsl r8,0x2
80003550: e0 38 fe d0 sub r8,130768
80003554: 70 08 ld.w r8,r8[0x0]
80003556: 49 da lddpc r10,800035c8 <Endpoint_ClearStatusStage+0x94>
Endpoint_ClearOUT();
}
else
{
while (!(Endpoint_IsINReady()))
80003558: f1 d8 c0 01 bfextu r8,r8,0x0,0x1
8000355c: cf 50 breq 80003546 <Endpoint_ClearStatusStage+0x12>
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearIN(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].txinic = true;
8000355e: 74 08 ld.w r8,r10[0x0]
80003560: 30 1b mov r11,1
80003562: a3 68 lsl r8,0x2
80003564: e0 38 fe a0 sub r8,130720
80003568: 70 09 ld.w r9,r8[0x0]
8000356a: f3 db d0 01 bfins r9,r11,0x0,0x1
8000356e: 91 09 st.w r8[0x0],r9
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true;
80003570: 74 08 ld.w r8,r10[0x0]
80003572: a3 68 lsl r8,0x2
80003574: e0 38 fd e0 sub r8,130528
80003578: 70 09 ld.w r9,r8[0x0]
8000357a: f3 db d1 c1 bfins r9,r11,0xe,0x1
8000357e: 91 09 st.w r8[0x0],r9
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
80003580: fc 18 e0 00 movh r8,0xe000
80003584: 74 09 ld.w r9,r10[0x0]
80003586: 74 0a ld.w r10,r10[0x0]
80003588: b1 6a lsl r10,0x10
8000358a: 10 0a add r10,r8
8000358c: 49 18 lddpc r8,800035d0 <Endpoint_ClearStatusStage+0x9c>
8000358e: f0 09 09 2a st.w r8[r9<<0x2],r10
80003592: 5e fc retal r12
80003594: 48 d9 lddpc r9,800035c8 <Endpoint_ClearStatusStage+0x94>
{
if (USB_ControlRequest.bmRequestType & REQDIR_DEVICETOHOST)
{
while (!(Endpoint_IsOUTReceived()))
{
if (USB_DeviceState == DEVICE_STATE_Unattached)
80003596: 48 eb lddpc r11,800035cc <Endpoint_ClearStatusStage+0x98>
80003598: c0 48 rjmp 800035a0 <Endpoint_ClearStatusStage+0x6c>
8000359a: 17 88 ld.ub r8,r11[0x0]
8000359c: 58 08 cp.w r8,0
8000359e: 5e 0c reteq r12
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].rxouti;
800035a0: 72 08 ld.w r8,r9[0x0]
800035a2: a3 68 lsl r8,0x2
800035a4: e0 38 fe d0 sub r8,130768
800035a8: 70 08 ld.w r8,r8[0x0]
800035aa: 48 8a lddpc r10,800035c8 <Endpoint_ClearStatusStage+0x94>
void Endpoint_ClearStatusStage(void)
{
if (USB_ControlRequest.bmRequestType & REQDIR_DEVICETOHOST)
{
while (!(Endpoint_IsOUTReceived()))
800035ac: e2 18 00 02 andl r8,0x2,COH
800035b0: cf 50 breq 8000359a <Endpoint_ClearStatusStage+0x66>
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearOUT(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearOUT(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].rxoutic = true;
800035b2: 74 08 ld.w r8,r10[0x0]
800035b4: 30 1b mov r11,1
800035b6: a3 68 lsl r8,0x2
800035b8: e0 38 fe a0 sub r8,130720
800035bc: 70 09 ld.w r9,r8[0x0]
800035be: f3 db d0 21 bfins r9,r11,0x1,0x1
800035c2: cd 6b rjmp 8000356e <Endpoint_ClearStatusStage+0x3a>
800035c4: 00 00 add r0,r0
800035c6: 05 a9 ld.ub r9,r2[0x2]
800035c8: 00 00 add r0,r0
800035ca: 05 68 ld.uh r8,--r2
800035cc: 00 00 add r0,r0
800035ce: 05 a8 ld.ub r8,r2[0x2]
800035d0: 00 00 add r0,r0
800035d2: 06 04 add r4,r3
800035d4 <Endpoint_WaitUntilReady>:
}
}
#if !defined(CONTROL_ONLY_DEVICE)
uint8_t Endpoint_WaitUntilReady(void)
{
800035d4: eb cd 40 c0 pushm r6-r7,lr
* \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 AVR32_USBB.UDFNUM.fnum;
800035d8: fe 68 00 00 mov r8,-131072
800035dc: 4a 59 lddpc r9,80003670 <Endpoint_WaitUntilReady+0x9c>
800035de: 70 8a ld.w r10,r8[0x20]
800035e0: 10 97 mov r7,r8
800035e2: f5 da c0 6b bfextu r10,r10,0x3,0xb
800035e6: 36 46 mov r6,100
* \return The currently selected endpoint's direction, as a \c ENDPOINT_DIR_* mask.
*/
static inline uint32_t Endpoint_GetEndpointDirection(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline uint32_t Endpoint_GetEndpointDirection(void)
{
return ((&AVR32_USBB.UECFG0)[USB_Endpoint_SelectedEndpoint].epdir ? ENDPOINT_DIR_IN : ENDPOINT_DIR_OUT);
800035e8: 12 9b mov r11,r9
{
if (Endpoint_IsOUTReceived())
return ENDPOINT_READYWAIT_NoError;
}
uint8_t USB_DeviceState_LCL = USB_DeviceState;
800035ea: 4a 3c lddpc r12,80003674 <Endpoint_WaitUntilReady+0xa0>
if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
return ENDPOINT_READYWAIT_DeviceDisconnected;
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
800035ec: 30 5e mov lr,5
800035ee: 72 08 ld.w r8,r9[0x0]
800035f0: a3 68 lsl r8,0x2
800035f2: e0 38 ff 00 sub r8,130816
800035f6: 70 08 ld.w r8,r8[0x0]
800035f8: ed b8 00 08 bld r8,0x8
800035fc: c2 41 brne 80003644 <Endpoint_WaitUntilReady+0x70>
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].txini;
800035fe: 76 08 ld.w r8,r11[0x0]
80003600: a3 68 lsl r8,0x2
80003602: e0 38 fe d0 sub r8,130768
80003606: 70 08 ld.w r8,r8[0x0]
for (;;)
{
if (Endpoint_GetEndpointDirection() == ENDPOINT_DIR_IN)
{
if (Endpoint_IsINReady())
80003608: ed b8 00 00 bld r8,0x0
8000360c: c2 40 breq 80003654 <Endpoint_WaitUntilReady+0x80>
{
if (Endpoint_IsOUTReceived())
return ENDPOINT_READYWAIT_NoError;
}
uint8_t USB_DeviceState_LCL = USB_DeviceState;
8000360e: 19 88 ld.ub r8,r12[0x0]
if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
80003610: 58 08 cp.w r8,0
80003612: c2 30 breq 80003658 <Endpoint_WaitUntilReady+0x84>
return ENDPOINT_READYWAIT_DeviceDisconnected;
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
80003614: fc 08 18 00 cp.b r8,lr
80003618: c2 30 breq 8000365e <Endpoint_WaitUntilReady+0x8a>
* \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 (&AVR32_USBB.UECON0)[USB_Endpoint_SelectedEndpoint].stallrq;
8000361a: 72 08 ld.w r8,r9[0x0]
8000361c: a3 68 lsl r8,0x2
8000361e: e0 38 fe 40 sub r8,130624
80003622: 70 08 ld.w r8,r8[0x0]
return ENDPOINT_READYWAIT_BusSuspended;
else if (Endpoint_IsStalled())
80003624: ed b8 00 13 bld r8,0x13
80003628: c1 e0 breq 80003664 <Endpoint_WaitUntilReady+0x90>
8000362a: 6e 88 ld.w r8,r7[0x20]
8000362c: f1 d8 c0 6b bfextu r8,r8,0x3,0xb
return ENDPOINT_READYWAIT_EndpointStalled;
uint16_t CurrentFrameNumber = USB_Device_GetFrameNumber();
if (CurrentFrameNumber != PreviousFrameNumber)
80003630: f0 0a 19 00 cp.h r10,r8
80003634: cd d0 breq 800035ee <Endpoint_WaitUntilReady+0x1a>
{
PreviousFrameNumber = CurrentFrameNumber;
if (!(TimeoutMSRem--))
80003636: 58 06 cp.w r6,0
80003638: c1 80 breq 80003668 <Endpoint_WaitUntilReady+0x94>
8000363a: 20 16 sub r6,1
8000363c: f5 d8 b0 10 bfexts r10,r8,0x0,0x10
80003640: 5c 56 castu.b r6
80003642: cd 6b rjmp 800035ee <Endpoint_WaitUntilReady+0x1a>
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].rxouti;
80003644: 76 08 ld.w r8,r11[0x0]
80003646: a3 68 lsl r8,0x2
80003648: e0 38 fe d0 sub r8,130768
8000364c: 70 08 ld.w r8,r8[0x0]
if (Endpoint_IsINReady())
return ENDPOINT_READYWAIT_NoError;
}
else
{
if (Endpoint_IsOUTReceived())
8000364e: ed b8 00 01 bld r8,0x1
80003652: cd e1 brne 8000360e <Endpoint_WaitUntilReady+0x3a>
if (CurrentFrameNumber != PreviousFrameNumber)
{
PreviousFrameNumber = CurrentFrameNumber;
if (!(TimeoutMSRem--))
80003654: e3 cf 80 c0 ldm sp++,r6-r7,pc,r12=0
return ENDPOINT_READYWAIT_NoError;
}
uint8_t USB_DeviceState_LCL = USB_DeviceState;
if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
80003658: 30 2c mov r12,2
8000365a: e3 cd 80 c0 ldm sp++,r6-r7,pc
return ENDPOINT_READYWAIT_DeviceDisconnected;
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
8000365e: 30 3c mov r12,3
80003660: e3 cd 80 c0 ldm sp++,r6-r7,pc
return ENDPOINT_READYWAIT_BusSuspended;
else if (Endpoint_IsStalled())
80003664: e3 cf 90 c0 ldm sp++,r6-r7,pc,r12=1
if (CurrentFrameNumber != PreviousFrameNumber)
{
PreviousFrameNumber = CurrentFrameNumber;
if (!(TimeoutMSRem--))
80003668: 30 4c mov r12,4
8000366a: e3 cd 80 c0 ldm sp++,r6-r7,pc
8000366e: 00 00 add r0,r0
80003670: 00 00 add r0,r0
80003672: 05 68 ld.uh r8,--r2
80003674: 00 00 add r0,r0
80003676: 05 a8 ld.ub r8,r2[0x2]
80003678 <Endpoint_Write_Control_Stream_LE>:
#if defined(TEMPLATE_FUNC_NAME)
// cppcheck-suppress unusedFunction
uint8_t TEMPLATE_FUNC_NAME (const void* const Buffer,
uint16_t Length)
{
80003678: d4 31 pushm r0-r7,lr
uint8_t* DataStream = ((uint8_t*)Buffer + TEMPLATE_BUFFER_OFFSET(Length));
bool LastPacketFull = false;
if (Length > USB_ControlRequest.wLength)
8000367a: 4d e8 lddpc r8,800037f0 <Endpoint_Write_Control_Stream_LE+0x178>
8000367c: 11 f9 ld.ub r9,r8[0x7]
8000367e: 11 e8 ld.ub r8,r8[0x6]
80003680: f3 e8 10 88 or r8,r9,r8<<0x8
80003684: 5c 88 casts.h r8
80003686: f6 08 19 00 cp.h r8,r11
8000368a: e0 82 00 8c brhs 800037a2 <Endpoint_Write_Control_Stream_LE+0x12a>
8000368e: f7 d8 b0 10 bfexts r11,r8,0x0,0x10
// cppcheck-suppress unusedFunction
uint8_t TEMPLATE_FUNC_NAME (const void* const Buffer,
uint16_t Length)
{
uint8_t* DataStream = ((uint8_t*)Buffer + TEMPLATE_BUFFER_OFFSET(Length));
80003692: 30 0a mov r10,0
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].rxstpi;
80003694: 4d 8e lddpc lr,800037f4 <Endpoint_Write_Control_Stream_LE+0x17c>
if (Endpoint_IsINReady())
{
uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint();
while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize))
80003696: 14 96 mov r6,r10
else if (!(Length))
Endpoint_ClearIN();
while (Length || LastPacketFull)
{
uint8_t USB_DeviceState_LCL = USB_DeviceState;
80003698: 4d 83 lddpc r3,800037f8 <Endpoint_Write_Control_Stream_LE+0x180>
if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
return ENDPOINT_RWCSTREAM_DeviceDisconnected;
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
8000369a: 30 52 mov r2,5
8000369c: 1c 97 mov r7,lr
if (Endpoint_IsINReady())
{
uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint();
while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize))
8000369e: 30 74 mov r4,7
800036a0: 14 95 mov r5,r10
if (Length > USB_ControlRequest.wLength)
Length = USB_ControlRequest.wLength;
else if (!(Length))
Endpoint_ClearIN();
while (Length || LastPacketFull)
800036a2: 58 0b cp.w r11,0
800036a4: c6 a0 breq 80003778 <Endpoint_Write_Control_Stream_LE+0x100>
{
uint8_t USB_DeviceState_LCL = USB_DeviceState;
800036a6: 07 88 ld.ub r8,r3[0x0]
if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
800036a8: 58 08 cp.w r8,0
800036aa: e0 80 00 9c breq 800037e2 <Endpoint_Write_Control_Stream_LE+0x16a>
return ENDPOINT_RWCSTREAM_DeviceDisconnected;
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
800036ae: e4 08 18 00 cp.b r8,r2
800036b2: c7 60 breq 8000379e <Endpoint_Write_Control_Stream_LE+0x126>
800036b4: 7c 08 ld.w r8,lr[0x0]
800036b6: a3 68 lsl r8,0x2
800036b8: e0 38 fe d0 sub r8,130768
800036bc: 70 08 ld.w r8,r8[0x0]
800036be: 4c e9 lddpc r9,800037f4 <Endpoint_Write_Control_Stream_LE+0x17c>
return ENDPOINT_RWCSTREAM_BusSuspended;
else if (Endpoint_IsSETUPReceived())
800036c0: e2 18 00 04 andl r8,0x4,COH
800036c4: e0 81 00 91 brne 800037e6 <Endpoint_Write_Control_Stream_LE+0x16e>
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].rxouti;
800036c8: 6e 08 ld.w r8,r7[0x0]
800036ca: a3 68 lsl r8,0x2
800036cc: e0 38 fe d0 sub r8,130768
800036d0: 70 08 ld.w r8,r8[0x0]
return ENDPOINT_RWCSTREAM_HostAborted;
else if (Endpoint_IsOUTReceived())
800036d2: ed b8 00 01 bld r8,0x1
800036d6: c5 40 breq 8000377e <Endpoint_Write_Control_Stream_LE+0x106>
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].txini;
800036d8: 6e 08 ld.w r8,r7[0x0]
800036da: a3 68 lsl r8,0x2
800036dc: e0 38 fe d0 sub r8,130768
800036e0: 70 08 ld.w r8,r8[0x0]
break;
if (Endpoint_IsINReady())
800036e2: ed b8 00 00 bld r8,0x0
800036e6: cd e1 brne 800036a2 <Endpoint_Write_Control_Stream_LE+0x2a>
* \return Total number of bytes in the currently selected Endpoint's FIFO buffer.
*/
static inline uint16_t Endpoint_BytesInEndpoint(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline uint16_t Endpoint_BytesInEndpoint(void)
{
return (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].byct;
800036e8: 6e 08 ld.w r8,r7[0x0]
800036ea: a3 68 lsl r8,0x2
800036ec: e0 38 fe d0 sub r8,130768
800036f0: 70 09 ld.w r9,r8[0x0]
{
uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint();
while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize))
800036f2: ec 0b 19 00 cp.h r11,r6
800036f6: 5f 1a srne r10
800036f8: f3 d9 c2 8b bfextu r9,r9,0x14,0xb
800036fc: e8 09 19 00 cp.h r9,r4
80003700: 5f 88 srls r8
80003702: f5 e8 00 08 and r8,r10,r8
80003706: ea 08 18 00 cp.b r8,r5
8000370a: c6 f0 breq 800037e8 <Endpoint_Write_Control_Stream_LE+0x170>
8000370c: 4b c1 lddpc r1,800037fc <Endpoint_Write_Control_Stream_LE+0x184>
* \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)
{
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = Data;
8000370e: 7c 0a ld.w r10,lr[0x0]
{
TEMPLATE_TRANSFER_BYTE(DataStream);
80003710: 19 30 ld.ub r0,r12++
80003712: e2 0a 03 28 ld.w r8,r1[r10<<0x2]
80003716: 10 c0 st.b r8++,r0
80003718: e2 0a 09 28 st.w r1[r10<<0x2],r8
TEMPLATE_BUFFER_MOVE(DataStream, 1);
Length--;
8000371c: 20 1b sub r11,1
BytesInEndpoint++;
8000371e: 2f f9 sub r9,-1
while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize))
{
TEMPLATE_TRANSFER_BYTE(DataStream);
TEMPLATE_BUFFER_MOVE(DataStream, 1);
Length--;
80003720: 5c 8b casts.h r11
BytesInEndpoint++;
80003722: 5c 89 casts.h r9
if (Endpoint_IsINReady())
{
uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint();
while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize))
80003724: ec 0b 19 00 cp.h r11,r6
80003728: 5f 18 srne r8
8000372a: e8 09 19 00 cp.h r9,r4
8000372e: 5f 8a srls r10
80003730: f5 e8 00 08 and r8,r10,r8
80003734: ea 08 18 00 cp.b r8,r5
80003738: ce b1 brne 8000370e <Endpoint_Write_Control_Stream_LE+0x96>
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearIN(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].txinic = true;
8000373a: 7c 08 ld.w r8,lr[0x0]
8000373c: a3 68 lsl r8,0x2
8000373e: e0 38 fe a0 sub r8,130720
80003742: 30 1a mov r10,1
80003744: 70 00 ld.w r0,r8[0x0]
80003746: e1 da d0 01 bfins r0,r10,0x0,0x1
8000374a: 91 00 st.w r8[0x0],r0
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true;
8000374c: 7c 08 ld.w r8,lr[0x0]
8000374e: a3 68 lsl r8,0x2
80003750: e0 38 fd e0 sub r8,130528
80003754: 70 00 ld.w r0,r8[0x0]
80003756: e1 da d1 c1 bfins r0,r10,0xe,0x1
8000375a: 91 00 st.w r8[0x0],r0
TEMPLATE_BUFFER_MOVE(DataStream, 1);
Length--;
BytesInEndpoint++;
}
LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize);
8000375c: 30 88 mov r8,8
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
8000375e: fc 10 e0 00 movh r0,0xe000
80003762: f0 09 19 00 cp.h r9,r8
80003766: 5f 0a sreq r10
80003768: 7c 08 ld.w r8,lr[0x0]
8000376a: 7c 09 ld.w r9,lr[0x0]
8000376c: b1 69 lsl r9,0x10
8000376e: 00 09 add r9,r0
80003770: e2 08 09 29 st.w r1[r8<<0x2],r9
if (Length > USB_ControlRequest.wLength)
Length = USB_ControlRequest.wLength;
else if (!(Length))
Endpoint_ClearIN();
while (Length || LastPacketFull)
80003774: 58 0b cp.w r11,0
80003776: c9 81 brne 800036a6 <Endpoint_Write_Control_Stream_LE+0x2e>
80003778: 58 0a cp.w r10,0
8000377a: c9 61 brne 800036a6 <Endpoint_Write_Control_Stream_LE+0x2e>
8000377c: 49 e9 lddpc r9,800037f4 <Endpoint_Write_Control_Stream_LE+0x17c>
}
}
while (!(Endpoint_IsOUTReceived()))
{
uint8_t USB_DeviceState_LCL = USB_DeviceState;
8000377e: 49 fa lddpc r10,800037f8 <Endpoint_Write_Control_Stream_LE+0x180>
if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
return ENDPOINT_RWCSTREAM_DeviceDisconnected;
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
80003780: 30 5b mov r11,5
* \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 (&AVR32_USBB.UESTA0)[USB_Endpoint_SelectedEndpoint].rxouti;
80003782: 72 08 ld.w r8,r9[0x0]
80003784: a3 68 lsl r8,0x2
80003786: e0 38 fe d0 sub r8,130768
8000378a: 70 08 ld.w r8,r8[0x0]
LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize);
Endpoint_ClearIN();
}
}
while (!(Endpoint_IsOUTReceived()))
8000378c: ed b8 00 01 bld r8,0x1
80003790: c2 e0 breq 800037ec <Endpoint_Write_Control_Stream_LE+0x174>
{
uint8_t USB_DeviceState_LCL = USB_DeviceState;
80003792: 15 88 ld.ub r8,r10[0x0]
if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
80003794: 58 08 cp.w r8,0
80003796: c2 60 breq 800037e2 <Endpoint_Write_Control_Stream_LE+0x16a>
return ENDPOINT_RWCSTREAM_DeviceDisconnected;
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
80003798: f6 08 18 00 cp.b r8,r11
8000379c: cf 31 brne 80003782 <Endpoint_Write_Control_Stream_LE+0x10a>
LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize);
Endpoint_ClearIN();
}
}
while (!(Endpoint_IsOUTReceived()))
8000379e: 30 3c mov r12,3
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
return ENDPOINT_RWCSTREAM_BusSuspended;
}
return ENDPOINT_RWCSTREAM_NoError;
}
800037a0: d8 32 popm r0-r7,pc
uint8_t* DataStream = ((uint8_t*)Buffer + TEMPLATE_BUFFER_OFFSET(Length));
bool LastPacketFull = false;
if (Length > USB_ControlRequest.wLength)
Length = USB_ControlRequest.wLength;
else if (!(Length))
800037a2: 58 0b cp.w r11,0
800037a4: fe 91 ff 77 brne 80003692 <Endpoint_Write_Control_Stream_LE+0x1a>
* \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearIN(void)
{
(&AVR32_USBB.UESTA0CLR)[USB_Endpoint_SelectedEndpoint].txinic = true;
800037a8: 49 39 lddpc r9,800037f4 <Endpoint_Write_Control_Stream_LE+0x17c>
800037aa: 30 1e mov lr,1
800037ac: 72 08 ld.w r8,r9[0x0]
800037ae: a3 68 lsl r8,0x2
800037b0: e0 38 fe a0 sub r8,130720
800037b4: 70 0a ld.w r10,r8[0x0]
800037b6: f5 de d0 01 bfins r10,lr,0x0,0x1
800037ba: 91 0a st.w r8[0x0],r10
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true;
800037bc: 72 08 ld.w r8,r9[0x0]
800037be: a3 68 lsl r8,0x2
800037c0: e0 38 fd e0 sub r8,130528
800037c4: 70 0a ld.w r10,r8[0x0]
800037c6: f5 de d1 c1 bfins r10,lr,0xe,0x1
800037ca: 91 0a st.w r8[0x0],r10
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
800037cc: 48 c1 lddpc r1,800037fc <Endpoint_Write_Control_Stream_LE+0x184>
800037ce: 72 08 ld.w r8,r9[0x0]
800037d0: 72 0a ld.w r10,r9[0x0]
800037d2: fc 19 e0 00 movh r9,0xe000
800037d6: b1 6a lsl r10,0x10
800037d8: f4 09 00 09 add r9,r10,r9
800037dc: e2 08 09 29 st.w r1[r8<<0x2],r9
800037e0: c5 9b rjmp 80003692 <Endpoint_Write_Control_Stream_LE+0x1a>
LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize);
Endpoint_ClearIN();
}
}
while (!(Endpoint_IsOUTReceived()))
800037e2: 30 2c mov r12,2
800037e4: d8 32 popm r0-r7,pc
if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
return ENDPOINT_RWCSTREAM_DeviceDisconnected;
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
return ENDPOINT_RWCSTREAM_BusSuspended;
else if (Endpoint_IsSETUPReceived())
800037e6: da 3a popm r0-r7,pc,r12=1
800037e8: 48 51 lddpc r1,800037fc <Endpoint_Write_Control_Stream_LE+0x184>
800037ea: ca 8b rjmp 8000373a <Endpoint_Write_Control_Stream_LE+0xc2>
LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize);
Endpoint_ClearIN();
}
}
while (!(Endpoint_IsOUTReceived()))
800037ec: d8 3a popm r0-r7,pc,r12=0
800037ee: 00 00 add r0,r0
800037f0: 00 00 add r0,r0
800037f2: 05 a9 ld.ub r9,r2[0x2]
800037f4: 00 00 add r0,r0
800037f6: 05 68 ld.uh r8,--r2
800037f8: 00 00 add r0,r0
800037fa: 05 a8 ld.ub r8,r2[0x2]
800037fc: 00 00 add r0,r0
800037fe: 06 04 add r4,r3
80003800 <atexit>:
80003800: d4 01 pushm lr
80003802: 30 09 mov r9,0
80003804: 18 9b mov r11,r12
80003806: 12 9a mov r10,r9
80003808: 12 9c mov r12,r9
8000380a: f0 1f 00 02 mcall 80003810 <atexit+0x10>
8000380e: d8 02 popm pc
80003810: 80 00 ld.sh r0,r0[0x0]
80003812: 38 94 mov r4,-119
80003814 <exit>:
80003814: d4 21 pushm r4-r7,lr
80003816: 30 0b mov r11,0
80003818: 18 97 mov r7,r12
8000381a: f0 1f 00 06 mcall 80003830 <exit+0x1c>
8000381e: 48 68 lddpc r8,80003834 <exit+0x20>
80003820: 70 0c ld.w r12,r8[0x0]
80003822: 78 a8 ld.w r8,r12[0x28]
80003824: 58 08 cp.w r8,0
80003826: c0 20 breq 8000382a <exit+0x16>
80003828: 5d 18 icall r8
8000382a: 0e 9c mov r12,r7
8000382c: f0 1f 00 03 mcall 80003838 <exit+0x24>
80003830: 80 00 ld.sh r0,r0[0x0]
80003832: 39 40 mov r0,-108
80003834: 80 00 ld.sh r0,r0[0x0]
80003836: 44 b8 lddsp r8,sp[0x12c]
80003838: 80 00 ld.sh r0,r0[0x0]
8000383a: 38 48 mov r8,-124
8000383c <_init_startup>:
8000383c: 5e fd retal 0
8000383e <_init_argv>:
8000383e: 30 e8 mov r8,14
80003840: d6 73 breakpoint
80003842: 3f fc mov r12,-1
80003844: 35 8b mov r11,88
80003846: 5e fc retal r12
80003848 <_exit>:
80003848: 30 d8 mov r8,13
8000384a: d6 73 breakpoint
8000384c: 3f fc mov r12,-1
8000384e: 35 8b mov r11,88
80003850: c0 08 rjmp 80003850 <_exit+0x8>
80003852: d7 03 nop
80003854 <_sbrk>:
80003854: d4 01 pushm lr
80003856: 48 c8 lddpc r8,80003884 <_sbrk+0x30>
80003858: 70 09 ld.w r9,r8[0x0]
8000385a: 58 09 cp.w r9,0
8000385c: c0 31 brne 80003862 <_sbrk+0xe>
8000385e: 48 b9 lddpc r9,80003888 <_sbrk+0x34>
80003860: 91 09 st.w r8[0x0],r9
80003862: 48 99 lddpc r9,80003884 <_sbrk+0x30>
80003864: 48 aa lddpc r10,8000388c <_sbrk+0x38>
80003866: 72 08 ld.w r8,r9[0x0]
80003868: f0 0c 00 0c add r12,r8,r12
8000386c: 14 3c cp.w r12,r10
8000386e: e0 8b 00 04 brhi 80003876 <_sbrk+0x22>
80003872: 93 0c st.w r9[0x0],r12
80003874: c0 68 rjmp 80003880 <_sbrk+0x2c>
80003876: f0 1f 00 07 mcall 80003890 <_sbrk+0x3c>
8000387a: 30 c8 mov r8,12
8000387c: 99 08 st.w r12[0x0],r8
8000387e: 3f f8 mov r8,-1
80003880: 10 9c mov r12,r8
80003882: d8 02 popm pc
80003884: 00 00 add r0,r0
80003886: 05 6c ld.uh r12,--r2
80003888: 00 00 add r0,r0
8000388a: 06 28 rsub r8,r3
8000388c: 00 00 add r0,r0
8000388e: 70 00 ld.w r0,r8[0x0]
80003890: 80 00 ld.sh r0,r0[0x0]
80003892: 3a 14 mov r4,-95
80003894 <__register_exitproc>:
80003894: d4 31 pushm r0-r7,lr
80003896: 4a 98 lddpc r8,80003938 <__register_exitproc+0xa4>
80003898: 70 03 ld.w r3,r8[0x0]
8000389a: 67 24 ld.w r4,r3[0x48]
8000389c: 58 04 cp.w r4,0
8000389e: f9 b8 00 4c moveq r8,76
800038a2: e7 d8 e0 04 addeq r4,r3,r8
800038a6: e7 f4 0a 12 st.weq r3[0x48],r4
800038aa: 18 97 mov r7,r12
800038ac: 16 96 mov r6,r11
800038ae: 14 95 mov r5,r10
800038b0: 12 92 mov r2,r9
800038b2: 68 18 ld.w r8,r4[0x4]
800038b4: 59 f8 cp.w r8,31
800038b6: e0 8a 00 0e brle 800038d2 <__register_exitproc+0x3e>
800038ba: e0 6c 00 8c mov r12,140
800038be: f0 1f 00 20 mcall 8000393c <__register_exitproc+0xa8>
800038c2: 18 94 mov r4,r12
800038c4: c3 80 breq 80003934 <__register_exitproc+0xa0>
800038c6: 67 28 ld.w r8,r3[0x48]
800038c8: 99 08 st.w r12[0x0],r8
800038ca: e7 4c 00 48 st.w r3[72],r12
800038ce: 30 08 mov r8,0
800038d0: 99 18 st.w r12[0x4],r8
800038d2: 58 07 cp.w r7,0
800038d4: c2 70 breq 80003922 <__register_exitproc+0x8e>
800038d6: e8 fc 00 88 ld.w r12,r4[136]
800038da: 58 0c cp.w r12,0
800038dc: c0 d1 brne 800038f6 <__register_exitproc+0x62>
800038de: e0 6c 01 08 mov r12,264
800038e2: f0 1f 00 17 mcall 8000393c <__register_exitproc+0xa8>
800038e6: c2 70 breq 80003934 <__register_exitproc+0xa0>
800038e8: 30 08 mov r8,0
800038ea: e9 4c 00 88 st.w r4[136],r12
800038ee: f9 48 01 04 st.w r12[260],r8
800038f2: f9 48 01 00 st.w r12[256],r8
800038f6: 68 18 ld.w r8,r4[0x4]
800038f8: f0 c9 ff e0 sub r9,r8,-32
800038fc: f8 08 09 25 st.w r12[r8<<0x2],r5
80003900: f8 09 09 22 st.w r12[r9<<0x2],r2
80003904: 30 1a mov r10,1
80003906: f8 f9 01 00 ld.w r9,r12[256]
8000390a: f4 08 09 48 lsl r8,r10,r8
8000390e: 10 49 or r9,r8
80003910: f9 49 01 00 st.w r12[256],r9
80003914: 58 27 cp.w r7,2
80003916: f9 f9 00 41 ld.weq r9,r12[0x104]
8000391a: f3 d8 e0 38 oreq r8,r9,r8
8000391e: f9 f8 0a 41 st.weq r12[0x104],r8
80003922: 68 18 ld.w r8,r4[0x4]
80003924: 30 0c mov r12,0
80003926: f0 c9 ff ff sub r9,r8,-1
8000392a: 2f e8 sub r8,-2
8000392c: 89 19 st.w r4[0x4],r9
8000392e: e8 08 09 26 st.w r4[r8<<0x2],r6
80003932: d8 32 popm r0-r7,pc
80003934: dc 3a popm r0-r7,pc,r12=-1
80003936: 00 00 add r0,r0
80003938: 80 00 ld.sh r0,r0[0x0]
8000393a: 44 b8 lddsp r8,sp[0x12c]
8000393c: 80 00 ld.sh r0,r0[0x0]
8000393e: 3a 38 mov r8,-93
80003940 <__call_exitprocs>:
80003940: d4 31 pushm r0-r7,lr
80003942: 20 3d sub sp,12
80003944: 4b 28 lddpc r8,80003a0c <__call_exitprocs+0xcc>
80003946: 50 2c stdsp sp[0x8],r12
80003948: 70 08 ld.w r8,r8[0x0]
8000394a: 16 91 mov r1,r11
8000394c: 50 08 stdsp sp[0x0],r8
8000394e: 2b 88 sub r8,-72
80003950: 50 18 stdsp sp[0x4],r8
80003952: 40 0a lddsp r10,sp[0x0]
80003954: 40 14 lddsp r4,sp[0x4]
80003956: 75 27 ld.w r7,r10[0x48]
80003958: c5 58 rjmp 80003a02 <__call_exitprocs+0xc2>
8000395a: 6e 15 ld.w r5,r7[0x4]
8000395c: ee f6 00 88 ld.w r6,r7[136]
80003960: ea c2 ff ff sub r2,r5,-1
80003964: 20 15 sub r5,1
80003966: ee 02 00 22 add r2,r7,r2<<0x2
8000396a: ec 05 00 23 add r3,r6,r5<<0x2
8000396e: c3 58 rjmp 800039d8 <__call_exitprocs+0x98>
80003970: 58 01 cp.w r1,0
80003972: c0 70 breq 80003980 <__call_exitprocs+0x40>
80003974: 58 06 cp.w r6,0
80003976: c2 e0 breq 800039d2 <__call_exitprocs+0x92>
80003978: e6 f8 00 80 ld.w r8,r3[128]
8000397c: 02 38 cp.w r8,r1
8000397e: c2 a1 brne 800039d2 <__call_exitprocs+0x92>
80003980: 6e 19 ld.w r9,r7[0x4]
80003982: 64 08 ld.w r8,r2[0x0]
80003984: 20 19 sub r9,1
80003986: 12 35 cp.w r5,r9
80003988: ef f5 0a 01 st.weq r7[0x4],r5
8000398c: f9 b9 01 00 movne r9,0
80003990: e5 f9 1a 00 st.wne r2[0x0],r9
80003994: 58 08 cp.w r8,0
80003996: c1 e0 breq 800039d2 <__call_exitprocs+0x92>
80003998: 6e 10 ld.w r0,r7[0x4]
8000399a: 58 06 cp.w r6,0
8000399c: c0 90 breq 800039ae <__call_exitprocs+0x6e>
8000399e: 30 1a mov r10,1
800039a0: f4 05 09 49 lsl r9,r10,r5
800039a4: ec fa 01 00 ld.w r10,r6[256]
800039a8: f3 ea 00 0a and r10,r9,r10
800039ac: c0 31 brne 800039b2 <__call_exitprocs+0x72>
800039ae: 5d 18 icall r8
800039b0: c0 b8 rjmp 800039c6 <__call_exitprocs+0x86>
800039b2: ec fa 01 04 ld.w r10,r6[260]
800039b6: 66 0b ld.w r11,r3[0x0]
800039b8: 14 69 and r9,r10
800039ba: c0 41 brne 800039c2 <__call_exitprocs+0x82>
800039bc: 40 2c lddsp r12,sp[0x8]
800039be: 5d 18 icall r8
800039c0: c0 38 rjmp 800039c6 <__call_exitprocs+0x86>
800039c2: 16 9c mov r12,r11
800039c4: 5d 18 icall r8
800039c6: 6e 18 ld.w r8,r7[0x4]
800039c8: 10 30 cp.w r0,r8
800039ca: cc 41 brne 80003952 <__call_exitprocs+0x12>
800039cc: 68 08 ld.w r8,r4[0x0]
800039ce: 0e 38 cp.w r8,r7
800039d0: cc 11 brne 80003952 <__call_exitprocs+0x12>
800039d2: 20 15 sub r5,1
800039d4: 20 43 sub r3,4
800039d6: 20 42 sub r2,4
800039d8: 58 05 cp.w r5,0
800039da: cc b4 brge 80003970 <__call_exitprocs+0x30>
800039dc: 6e 18 ld.w r8,r7[0x4]
800039de: 58 08 cp.w r8,0
800039e0: c0 f1 brne 800039fe <__call_exitprocs+0xbe>
800039e2: 6e 08 ld.w r8,r7[0x0]
800039e4: 58 08 cp.w r8,0
800039e6: c0 c0 breq 800039fe <__call_exitprocs+0xbe>
800039e8: 89 08 st.w r4[0x0],r8
800039ea: 58 06 cp.w r6,0
800039ec: c0 40 breq 800039f4 <__call_exitprocs+0xb4>
800039ee: 0c 9c mov r12,r6
800039f0: f0 1f 00 08 mcall 80003a10 <__call_exitprocs+0xd0>
800039f4: 0e 9c mov r12,r7
800039f6: f0 1f 00 07 mcall 80003a10 <__call_exitprocs+0xd0>
800039fa: 68 07 ld.w r7,r4[0x0]
800039fc: c0 38 rjmp 80003a02 <__call_exitprocs+0xc2>
800039fe: 0e 94 mov r4,r7
80003a00: 6e 07 ld.w r7,r7[0x0]
80003a02: 58 07 cp.w r7,0
80003a04: ca b1 brne 8000395a <__call_exitprocs+0x1a>
80003a06: 2f dd sub sp,-12
80003a08: d8 32 popm r0-r7,pc
80003a0a: 00 00 add r0,r0
80003a0c: 80 00 ld.sh r0,r0[0x0]
80003a0e: 44 b8 lddsp r8,sp[0x12c]
80003a10: 80 00 ld.sh r0,r0[0x0]
80003a12: 3a 20 mov r0,-94
80003a14 <__errno>:
80003a14: 48 28 lddpc r8,80003a1c <__errno+0x8>
80003a16: 70 0c ld.w r12,r8[0x0]
80003a18: 2f 4c sub r12,-12
80003a1a: 5e fc retal r12
80003a1c: 00 00 add r0,r0
80003a1e: 01 4c ld.w r12,--r0
80003a20 <free>:
80003a20: d4 01 pushm lr
80003a22: 48 48 lddpc r8,80003a30 <free+0x10>
80003a24: 18 9b mov r11,r12
80003a26: 70 0c ld.w r12,r8[0x0]
80003a28: f0 1f 00 03 mcall 80003a34 <free+0x14>
80003a2c: d8 02 popm pc
80003a2e: 00 00 add r0,r0
80003a30: 00 00 add r0,r0
80003a32: 01 4c ld.w r12,--r0
80003a34: 80 00 ld.sh r0,r0[0x0]
80003a36: 3f 78 mov r8,-9
80003a38 <malloc>:
80003a38: d4 01 pushm lr
80003a3a: 48 48 lddpc r8,80003a48 <malloc+0x10>
80003a3c: 18 9b mov r11,r12
80003a3e: 70 0c ld.w r12,r8[0x0]
80003a40: f0 1f 00 03 mcall 80003a4c <malloc+0x14>
80003a44: d8 02 popm pc
80003a46: 00 00 add r0,r0
80003a48: 00 00 add r0,r0
80003a4a: 01 4c ld.w r12,--r0
80003a4c: 80 00 ld.sh r0,r0[0x0]
80003a4e: 3a 50 mov r0,-91
80003a50 <_malloc_r>:
80003a50: d4 31 pushm r0-r7,lr
80003a52: f6 c7 ff f5 sub r7,r11,-11
80003a56: 18 95 mov r5,r12
80003a58: 59 67 cp.w r7,22
80003a5a: f9 b7 08 10 movls r7,16
80003a5e: f9 b8 0b f8 movhi r8,-8
80003a62: ef d8 eb 27 andhi r7,r7,r8
80003a66: 16 37 cp.w r7,r11
80003a68: 5f 38 srlo r8
80003a6a: f1 e7 13 f8 or r8,r8,r7>>0x1f
80003a6e: c0 50 breq 80003a78 <_malloc_r+0x28>
80003a70: 30 c8 mov r8,12
80003a72: 99 38 st.w r12[0xc],r8
80003a74: e0 8f 01 f4 bral 80003e5c <_malloc_r+0x40c>
80003a78: f0 1f 00 50 mcall 80003bb8 <_malloc_r+0x168>
80003a7c: e0 47 01 f7 cp.w r7,503
80003a80: e0 8b 00 1c brhi 80003ab8 <_malloc_r+0x68>
80003a84: ee 03 16 03 lsr r3,r7,0x3
80003a88: 4c d8 lddpc r8,80003bbc <_malloc_r+0x16c>
80003a8a: f0 03 00 38 add r8,r8,r3<<0x3
80003a8e: 70 36 ld.w r6,r8[0xc]
80003a90: 10 36 cp.w r6,r8
80003a92: c0 61 brne 80003a9e <_malloc_r+0x4e>
80003a94: ec c8 ff f8 sub r8,r6,-8
80003a98: 70 36 ld.w r6,r8[0xc]
80003a9a: 10 36 cp.w r6,r8
80003a9c: c0 c0 breq 80003ab4 <_malloc_r+0x64>
80003a9e: 6c 18 ld.w r8,r6[0x4]
80003aa0: e0 18 ff fc andl r8,0xfffc
80003aa4: 6c 3a ld.w r10,r6[0xc]
80003aa6: ec 08 00 09 add r9,r6,r8
80003aaa: 0a 9c mov r12,r5
80003aac: 6c 28 ld.w r8,r6[0x8]
80003aae: 95 28 st.w r10[0x8],r8
80003ab0: 91 3a st.w r8[0xc],r10
80003ab2: c4 78 rjmp 80003b40 <_malloc_r+0xf0>
80003ab4: 2f e3 sub r3,-2
80003ab6: c4 d8 rjmp 80003b50 <_malloc_r+0x100>
80003ab8: ee 08 16 09 lsr r8,r7,0x9
80003abc: c0 41 brne 80003ac4 <_malloc_r+0x74>
80003abe: ee 03 16 03 lsr r3,r7,0x3
80003ac2: c2 78 rjmp 80003b10 <_malloc_r+0xc0>
80003ac4: 58 48 cp.w r8,4
80003ac6: e0 8b 00 06 brhi 80003ad2 <_malloc_r+0x82>
80003aca: ee 03 16 06 lsr r3,r7,0x6
80003ace: 2c 83 sub r3,-56
80003ad0: c2 08 rjmp 80003b10 <_malloc_r+0xc0>
80003ad2: 59 48 cp.w r8,20
80003ad4: e0 8b 00 05 brhi 80003ade <_malloc_r+0x8e>
80003ad8: f0 c3 ff a5 sub r3,r8,-91
80003adc: c1 a8 rjmp 80003b10 <_malloc_r+0xc0>
80003ade: e0 48 00 54 cp.w r8,84
80003ae2: e0 8b 00 06 brhi 80003aee <_malloc_r+0x9e>
80003ae6: ee 03 16 0c lsr r3,r7,0xc
80003aea: 29 23 sub r3,-110
80003aec: c1 28 rjmp 80003b10 <_malloc_r+0xc0>
80003aee: e0 48 01 54 cp.w r8,340
80003af2: e0 8b 00 06 brhi 80003afe <_malloc_r+0xae>
80003af6: ee 03 16 0f lsr r3,r7,0xf
80003afa: 28 93 sub r3,-119
80003afc: c0 a8 rjmp 80003b10 <_malloc_r+0xc0>
80003afe: ee 03 16 12 lsr r3,r7,0x12
80003b02: e0 48 05 54 cp.w r8,1364
80003b06: e0 88 00 04 brls 80003b0e <_malloc_r+0xbe>
80003b0a: 37 e3 mov r3,126
80003b0c: c0 28 rjmp 80003b10 <_malloc_r+0xc0>
80003b0e: 28 43 sub r3,-124
80003b10: 4a ba lddpc r10,80003bbc <_malloc_r+0x16c>
80003b12: f4 03 00 3a add r10,r10,r3<<0x3
80003b16: 74 36 ld.w r6,r10[0xc]
80003b18: c1 98 rjmp 80003b4a <_malloc_r+0xfa>
80003b1a: 6c 19 ld.w r9,r6[0x4]
80003b1c: e0 19 ff fc andl r9,0xfffc
80003b20: f2 07 01 0b sub r11,r9,r7
80003b24: 58 fb cp.w r11,15
80003b26: e0 8a 00 04 brle 80003b2e <_malloc_r+0xde>
80003b2a: 20 13 sub r3,1
80003b2c: c1 18 rjmp 80003b4e <_malloc_r+0xfe>
80003b2e: 6c 38 ld.w r8,r6[0xc]
80003b30: 58 0b cp.w r11,0
80003b32: c0 b5 brlt 80003b48 <_malloc_r+0xf8>
80003b34: 6c 2a ld.w r10,r6[0x8]
80003b36: ec 09 00 09 add r9,r6,r9
80003b3a: 0a 9c mov r12,r5
80003b3c: 91 2a st.w r8[0x8],r10
80003b3e: 95 38 st.w r10[0xc],r8
80003b40: 72 18 ld.w r8,r9[0x4]
80003b42: a1 a8 sbr r8,0x0
80003b44: 93 18 st.w r9[0x4],r8
80003b46: cb d8 rjmp 80003cc0 <_malloc_r+0x270>
80003b48: 10 96 mov r6,r8
80003b4a: 14 36 cp.w r6,r10
80003b4c: ce 71 brne 80003b1a <_malloc_r+0xca>
80003b4e: 2f f3 sub r3,-1
80003b50: 49 ba lddpc r10,80003bbc <_malloc_r+0x16c>
80003b52: f4 cc ff f8 sub r12,r10,-8
80003b56: 78 26 ld.w r6,r12[0x8]
80003b58: 18 36 cp.w r6,r12
80003b5a: c6 f0 breq 80003c38 <_malloc_r+0x1e8>
80003b5c: 6c 19 ld.w r9,r6[0x4]
80003b5e: e0 19 ff fc andl r9,0xfffc
80003b62: f2 07 01 08 sub r8,r9,r7
80003b66: 58 f8 cp.w r8,15
80003b68: e0 89 00 91 brgt 80003c8a <_malloc_r+0x23a>
80003b6c: 99 3c st.w r12[0xc],r12
80003b6e: 99 2c st.w r12[0x8],r12
80003b70: 58 08 cp.w r8,0
80003b72: c0 55 brlt 80003b7c <_malloc_r+0x12c>
80003b74: ec 09 00 09 add r9,r6,r9
80003b78: 0a 9c mov r12,r5
80003b7a: ce 3b rjmp 80003b40 <_malloc_r+0xf0>
80003b7c: e0 49 01 ff cp.w r9,511
80003b80: e0 8b 00 13 brhi 80003ba6 <_malloc_r+0x156>
80003b84: a3 99 lsr r9,0x3
80003b86: f4 09 00 38 add r8,r10,r9<<0x3
80003b8a: 70 2b ld.w r11,r8[0x8]
80003b8c: 8d 38 st.w r6[0xc],r8
80003b8e: 8d 2b st.w r6[0x8],r11
80003b90: 97 36 st.w r11[0xc],r6
80003b92: 91 26 st.w r8[0x8],r6
80003b94: a3 49 asr r9,0x2
80003b96: 74 18 ld.w r8,r10[0x4]
80003b98: 30 1b mov r11,1
80003b9a: f6 09 09 49 lsl r9,r11,r9
80003b9e: f1 e9 10 09 or r9,r8,r9
80003ba2: 95 19 st.w r10[0x4],r9
80003ba4: c4 a8 rjmp 80003c38 <_malloc_r+0x1e8>
80003ba6: f2 08 16 09 lsr r8,r9,0x9
80003baa: 58 48 cp.w r8,4
80003bac: e0 8b 00 0a brhi 80003bc0 <_malloc_r+0x170>
80003bb0: f2 0a 16 06 lsr r10,r9,0x6
80003bb4: 2c 8a sub r10,-56
80003bb6: c2 48 rjmp 80003bfe <_malloc_r+0x1ae>
80003bb8: 80 00 ld.sh r0,r0[0x0]
80003bba: 3e a4 mov r4,-22
80003bbc: 00 00 add r0,r0
80003bbe: 01 50 ld.sh r0,--r0
80003bc0: 59 48 cp.w r8,20
80003bc2: e0 8b 00 05 brhi 80003bcc <_malloc_r+0x17c>
80003bc6: f0 ca ff a5 sub r10,r8,-91
80003bca: c1 a8 rjmp 80003bfe <_malloc_r+0x1ae>
80003bcc: e0 48 00 54 cp.w r8,84
80003bd0: e0 8b 00 06 brhi 80003bdc <_malloc_r+0x18c>
80003bd4: f2 0a 16 0c lsr r10,r9,0xc
80003bd8: 29 2a sub r10,-110
80003bda: c1 28 rjmp 80003bfe <_malloc_r+0x1ae>
80003bdc: e0 48 01 54 cp.w r8,340
80003be0: e0 8b 00 06 brhi 80003bec <_malloc_r+0x19c>
80003be4: f2 0a 16 0f lsr r10,r9,0xf
80003be8: 28 9a sub r10,-119
80003bea: c0 a8 rjmp 80003bfe <_malloc_r+0x1ae>
80003bec: f2 0a 16 12 lsr r10,r9,0x12
80003bf0: e0 48 05 54 cp.w r8,1364
80003bf4: e0 88 00 04 brls 80003bfc <_malloc_r+0x1ac>
80003bf8: 37 ea mov r10,126
80003bfa: c0 28 rjmp 80003bfe <_malloc_r+0x1ae>
80003bfc: 28 4a sub r10,-124
80003bfe: 4c 8b lddpc r11,80003d1c <_malloc_r+0x2cc>
80003c00: f6 0a 00 34 add r4,r11,r10<<0x3
80003c04: 68 28 ld.w r8,r4[0x8]
80003c06: 08 38 cp.w r8,r4
80003c08: c0 e1 brne 80003c24 <_malloc_r+0x1d4>
80003c0a: 76 19 ld.w r9,r11[0x4]
80003c0c: a3 4a asr r10,0x2
80003c0e: 30 1e mov lr,1
80003c10: fc 0a 09 4a lsl r10,lr,r10
80003c14: f3 ea 10 0a or r10,r9,r10
80003c18: 10 99 mov r9,r8
80003c1a: 97 1a st.w r11[0x4],r10
80003c1c: c0 a8 rjmp 80003c30 <_malloc_r+0x1e0>
80003c1e: 70 28 ld.w r8,r8[0x8]
80003c20: 08 38 cp.w r8,r4
80003c22: c0 60 breq 80003c2e <_malloc_r+0x1de>
80003c24: 70 1a ld.w r10,r8[0x4]
80003c26: e0 1a ff fc andl r10,0xfffc
80003c2a: 14 39 cp.w r9,r10
80003c2c: cf 93 brcs 80003c1e <_malloc_r+0x1ce>
80003c2e: 70 39 ld.w r9,r8[0xc]
80003c30: 8d 39 st.w r6[0xc],r9
80003c32: 8d 28 st.w r6[0x8],r8
80003c34: 91 36 st.w r8[0xc],r6
80003c36: 93 26 st.w r9[0x8],r6
80003c38: e6 08 14 02 asr r8,r3,0x2
80003c3c: 30 1b mov r11,1
80003c3e: 4b 84 lddpc r4,80003d1c <_malloc_r+0x2cc>
80003c40: f6 08 09 4b lsl r11,r11,r8
80003c44: 68 18 ld.w r8,r4[0x4]
80003c46: 10 3b cp.w r11,r8
80003c48: e0 8b 00 6e brhi 80003d24 <_malloc_r+0x2d4>
80003c4c: f7 e8 00 09 and r9,r11,r8
80003c50: c0 b1 brne 80003c66 <_malloc_r+0x216>
80003c52: e0 13 ff fc andl r3,0xfffc
80003c56: a1 7b lsl r11,0x1
80003c58: 2f c3 sub r3,-4
80003c5a: c0 38 rjmp 80003c60 <_malloc_r+0x210>
80003c5c: 2f c3 sub r3,-4
80003c5e: a1 7b lsl r11,0x1
80003c60: f7 e8 00 09 and r9,r11,r8
80003c64: cf c0 breq 80003c5c <_malloc_r+0x20c>
80003c66: e8 03 00 3e add lr,r4,r3<<0x3
80003c6a: 06 92 mov r2,r3
80003c6c: 1c 91 mov r1,lr
80003c6e: 62 36 ld.w r6,r1[0xc]
80003c70: c2 e8 rjmp 80003ccc <_malloc_r+0x27c>
80003c72: 6c 1a ld.w r10,r6[0x4]
80003c74: e0 1a ff fc andl r10,0xfffc
80003c78: f4 07 01 08 sub r8,r10,r7
80003c7c: 58 f8 cp.w r8,15
80003c7e: e0 8a 00 15 brle 80003ca8 <_malloc_r+0x258>
80003c82: 6c 3a ld.w r10,r6[0xc]
80003c84: 6c 29 ld.w r9,r6[0x8]
80003c86: 95 29 st.w r10[0x8],r9
80003c88: 93 3a st.w r9[0xc],r10
80003c8a: 0e 99 mov r9,r7
80003c8c: ec 07 00 07 add r7,r6,r7
80003c90: a1 a9 sbr r9,0x0
80003c92: 99 37 st.w r12[0xc],r7
80003c94: 99 27 st.w r12[0x8],r7
80003c96: 8d 19 st.w r6[0x4],r9
80003c98: ee 08 09 08 st.w r7[r8],r8
80003c9c: 8f 2c st.w r7[0x8],r12
80003c9e: 8f 3c st.w r7[0xc],r12
80003ca0: a1 a8 sbr r8,0x0
80003ca2: 0a 9c mov r12,r5
80003ca4: 8f 18 st.w r7[0x4],r8
80003ca6: c0 d8 rjmp 80003cc0 <_malloc_r+0x270>
80003ca8: 6c 39 ld.w r9,r6[0xc]
80003caa: 58 08 cp.w r8,0
80003cac: c0 f5 brlt 80003cca <_malloc_r+0x27a>
80003cae: ec 0a 00 0a add r10,r6,r10
80003cb2: 74 18 ld.w r8,r10[0x4]
80003cb4: a1 a8 sbr r8,0x0
80003cb6: 0a 9c mov r12,r5
80003cb8: 95 18 st.w r10[0x4],r8
80003cba: 6c 28 ld.w r8,r6[0x8]
80003cbc: 93 28 st.w r9[0x8],r8
80003cbe: 91 39 st.w r8[0xc],r9
80003cc0: f0 1f 00 18 mcall 80003d20 <_malloc_r+0x2d0>
80003cc4: ec cc ff f8 sub r12,r6,-8
80003cc8: d8 32 popm r0-r7,pc
80003cca: 12 96 mov r6,r9
80003ccc: 02 36 cp.w r6,r1
80003cce: cd 21 brne 80003c72 <_malloc_r+0x222>
80003cd0: 2f f2 sub r2,-1
80003cd2: f1 d2 c0 02 bfextu r8,r2,0x0,0x2
80003cd6: c0 30 breq 80003cdc <_malloc_r+0x28c>
80003cd8: 2f 81 sub r1,-8
80003cda: cc ab rjmp 80003c6e <_malloc_r+0x21e>
80003cdc: 1c 98 mov r8,lr
80003cde: f3 d3 c0 02 bfextu r9,r3,0x0,0x2
80003ce2: c0 81 brne 80003cf2 <_malloc_r+0x2a2>
80003ce4: 68 19 ld.w r9,r4[0x4]
80003ce6: f6 08 11 ff rsub r8,r11,-1
80003cea: f3 e8 00 08 and r8,r9,r8
80003cee: 89 18 st.w r4[0x4],r8
80003cf0: c0 78 rjmp 80003cfe <_malloc_r+0x2ae>
80003cf2: f0 c9 00 08 sub r9,r8,8
80003cf6: 20 13 sub r3,1
80003cf8: 70 08 ld.w r8,r8[0x0]
80003cfa: 12 38 cp.w r8,r9
80003cfc: cf 10 breq 80003cde <_malloc_r+0x28e>
80003cfe: a1 7b lsl r11,0x1
80003d00: 68 18 ld.w r8,r4[0x4]
80003d02: 10 3b cp.w r11,r8
80003d04: e0 8b 00 10 brhi 80003d24 <_malloc_r+0x2d4>
80003d08: 58 0b cp.w r11,0
80003d0a: c0 d0 breq 80003d24 <_malloc_r+0x2d4>
80003d0c: 04 93 mov r3,r2
80003d0e: c0 38 rjmp 80003d14 <_malloc_r+0x2c4>
80003d10: 2f c3 sub r3,-4
80003d12: a1 7b lsl r11,0x1
80003d14: f7 e8 00 09 and r9,r11,r8
80003d18: ca 71 brne 80003c66 <_malloc_r+0x216>
80003d1a: cf bb rjmp 80003d10 <_malloc_r+0x2c0>
80003d1c: 00 00 add r0,r0
80003d1e: 01 50 ld.sh r0,--r0
80003d20: 80 00 ld.sh r0,r0[0x0]
80003d22: 3e a6 mov r6,-22
80003d24: 68 23 ld.w r3,r4[0x8]
80003d26: 66 12 ld.w r2,r3[0x4]
80003d28: e0 12 ff fc andl r2,0xfffc
80003d2c: 0e 32 cp.w r2,r7
80003d2e: 5f 39 srlo r9
80003d30: e4 07 01 08 sub r8,r2,r7
80003d34: 58 f8 cp.w r8,15
80003d36: 5f aa srle r10
80003d38: f5 e9 10 09 or r9,r10,r9
80003d3c: e0 80 00 a2 breq 80003e80 <_malloc_r+0x430>
80003d40: 4c 88 lddpc r8,80003e60 <_malloc_r+0x410>
80003d42: 70 01 ld.w r1,r8[0x0]
80003d44: 4c 88 lddpc r8,80003e64 <_malloc_r+0x414>
80003d46: 2f 01 sub r1,-16
80003d48: 70 08 ld.w r8,r8[0x0]
80003d4a: 0e 01 add r1,r7
80003d4c: 5b f8 cp.w r8,-1
80003d4e: c0 40 breq 80003d56 <_malloc_r+0x306>
80003d50: 28 11 sub r1,-127
80003d52: e0 11 ff 80 andl r1,0xff80
80003d56: 02 9b mov r11,r1
80003d58: 0a 9c mov r12,r5
80003d5a: f0 1f 00 44 mcall 80003e68 <_malloc_r+0x418>
80003d5e: 18 96 mov r6,r12
80003d60: 5b fc cp.w r12,-1
80003d62: c6 e0 breq 80003e3e <_malloc_r+0x3ee>
80003d64: e6 02 00 08 add r8,r3,r2
80003d68: 10 3c cp.w r12,r8
80003d6a: c0 32 brcc 80003d70 <_malloc_r+0x320>
80003d6c: 08 33 cp.w r3,r4
80003d6e: c6 81 brne 80003e3e <_malloc_r+0x3ee>
80003d70: 4b fa lddpc r10,80003e6c <_malloc_r+0x41c>
80003d72: 74 09 ld.w r9,r10[0x0]
80003d74: e2 09 00 09 add r9,r1,r9
80003d78: 95 09 st.w r10[0x0],r9
80003d7a: 10 36 cp.w r6,r8
80003d7c: c0 a1 brne 80003d90 <_malloc_r+0x340>
80003d7e: f5 d6 c0 07 bfextu r10,r6,0x0,0x7
80003d82: c0 71 brne 80003d90 <_malloc_r+0x340>
80003d84: e2 02 00 02 add r2,r1,r2
80003d88: 68 28 ld.w r8,r4[0x8]
80003d8a: a1 a2 sbr r2,0x0
80003d8c: 91 12 st.w r8[0x4],r2
80003d8e: c4 c8 rjmp 80003e26 <_malloc_r+0x3d6>
80003d90: 4b 5a lddpc r10,80003e64 <_malloc_r+0x414>
80003d92: 74 0b ld.w r11,r10[0x0]
80003d94: 5b fb cp.w r11,-1
80003d96: c0 31 brne 80003d9c <_malloc_r+0x34c>
80003d98: 95 06 st.w r10[0x0],r6
80003d9a: c0 68 rjmp 80003da6 <_malloc_r+0x356>
80003d9c: ec 09 00 09 add r9,r6,r9
80003da0: 4b 3a lddpc r10,80003e6c <_malloc_r+0x41c>
80003da2: 10 19 sub r9,r8
80003da4: 95 09 st.w r10[0x0],r9
80003da6: f1 d6 c0 03 bfextu r8,r6,0x0,0x3
80003daa: f0 09 11 08 rsub r9,r8,8
80003dae: 58 08 cp.w r8,0
80003db0: f2 08 17 10 movne r8,r9
80003db4: ed d8 e1 06 addne r6,r6,r8
80003db8: 28 08 sub r8,-128
80003dba: ec 01 00 01 add r1,r6,r1
80003dbe: 0a 9c mov r12,r5
80003dc0: e3 d1 c0 07 bfextu r1,r1,0x0,0x7
80003dc4: f0 01 01 01 sub r1,r8,r1
80003dc8: 02 9b mov r11,r1
80003dca: f0 1f 00 28 mcall 80003e68 <_malloc_r+0x418>
80003dce: 4a 88 lddpc r8,80003e6c <_malloc_r+0x41c>
80003dd0: 5b fc cp.w r12,-1
80003dd2: ec 0c 17 00 moveq r12,r6
80003dd6: f9 b1 00 00 moveq r1,0
80003dda: 70 09 ld.w r9,r8[0x0]
80003ddc: 0c 1c sub r12,r6
80003dde: 89 26 st.w r4[0x8],r6
80003de0: 02 0c add r12,r1
80003de2: 12 01 add r1,r9
80003de4: a1 ac sbr r12,0x0
80003de6: 91 01 st.w r8[0x0],r1
80003de8: 8d 1c st.w r6[0x4],r12
80003dea: 08 33 cp.w r3,r4
80003dec: c1 d0 breq 80003e26 <_malloc_r+0x3d6>
80003dee: 58 f2 cp.w r2,15
80003df0: e0 8b 00 05 brhi 80003dfa <_malloc_r+0x3aa>
80003df4: 30 18 mov r8,1
80003df6: 8d 18 st.w r6[0x4],r8
80003df8: c2 38 rjmp 80003e3e <_malloc_r+0x3ee>
80003dfa: 30 59 mov r9,5
80003dfc: 20 c2 sub r2,12
80003dfe: e0 12 ff f8 andl r2,0xfff8
80003e02: e6 02 00 08 add r8,r3,r2
80003e06: 91 29 st.w r8[0x8],r9
80003e08: 91 19 st.w r8[0x4],r9
80003e0a: 66 18 ld.w r8,r3[0x4]
80003e0c: f1 d8 c0 01 bfextu r8,r8,0x0,0x1
80003e10: e5 e8 10 08 or r8,r2,r8
80003e14: 87 18 st.w r3[0x4],r8
80003e16: 58 f2 cp.w r2,15
80003e18: e0 88 00 07 brls 80003e26 <_malloc_r+0x3d6>
80003e1c: e6 cb ff f8 sub r11,r3,-8
80003e20: 0a 9c mov r12,r5
80003e22: f0 1f 00 14 mcall 80003e70 <_malloc_r+0x420>
80003e26: 49 49 lddpc r9,80003e74 <_malloc_r+0x424>
80003e28: 72 0a ld.w r10,r9[0x0]
80003e2a: 49 18 lddpc r8,80003e6c <_malloc_r+0x41c>
80003e2c: 70 08 ld.w r8,r8[0x0]
80003e2e: 14 38 cp.w r8,r10
80003e30: f3 f8 ba 00 st.whi r9[0x0],r8
80003e34: 49 19 lddpc r9,80003e78 <_malloc_r+0x428>
80003e36: 72 0a ld.w r10,r9[0x0]
80003e38: 14 38 cp.w r8,r10
80003e3a: f3 f8 ba 00 st.whi r9[0x0],r8
80003e3e: 68 28 ld.w r8,r4[0x8]
80003e40: 70 18 ld.w r8,r8[0x4]
80003e42: e0 18 ff fc andl r8,0xfffc
80003e46: 0e 38 cp.w r8,r7
80003e48: 5f 39 srlo r9
80003e4a: 0e 18 sub r8,r7
80003e4c: 58 f8 cp.w r8,15
80003e4e: 5f aa srle r10
80003e50: f5 e9 10 09 or r9,r10,r9
80003e54: c1 60 breq 80003e80 <_malloc_r+0x430>
80003e56: 0a 9c mov r12,r5
80003e58: f0 1f 00 09 mcall 80003e7c <_malloc_r+0x42c>
80003e5c: d8 3a popm r0-r7,pc,r12=0
80003e5e: 00 00 add r0,r0
80003e60: 00 00 add r0,r0
80003e62: 05 78 ld.ub r8,--r2
80003e64: 00 00 add r0,r0
80003e66: 05 5c ld.sh r12,--r2
80003e68: 80 00 ld.sh r0,r0[0x0]
80003e6a: 3e a8 mov r8,-22
80003e6c: 00 00 add r0,r0
80003e6e: 05 7c ld.ub r12,--r2
80003e70: 80 00 ld.sh r0,r0[0x0]
80003e72: 3f 78 mov r8,-9
80003e74: 00 00 add r0,r0
80003e76: 05 74 ld.ub r4,--r2
80003e78: 00 00 add r0,r0
80003e7a: 05 70 ld.ub r0,--r2
80003e7c: 80 00 ld.sh r0,r0[0x0]
80003e7e: 3e a6 mov r6,-22
80003e80: 68 26 ld.w r6,r4[0x8]
80003e82: a1 a8 sbr r8,0x0
80003e84: 0e 99 mov r9,r7
80003e86: a1 a9 sbr r9,0x0
80003e88: 8d 19 st.w r6[0x4],r9
80003e8a: ec 07 00 07 add r7,r6,r7
80003e8e: 0a 9c mov r12,r5
80003e90: 89 27 st.w r4[0x8],r7
80003e92: 8f 18 st.w r7[0x4],r8
80003e94: f0 1f 00 03 mcall 80003ea0 <_malloc_r+0x450>
80003e98: ec cc ff f8 sub r12,r6,-8
80003e9c: d8 32 popm r0-r7,pc
80003e9e: 00 00 add r0,r0
80003ea0: 80 00 ld.sh r0,r0[0x0]
80003ea2: 3e a6 mov r6,-22
80003ea4 <__malloc_lock>:
80003ea4: 5e fc retal r12
80003ea6 <__malloc_unlock>:
80003ea6: 5e fc retal r12
80003ea8 <_sbrk_r>:
80003ea8: d4 21 pushm r4-r7,lr
80003eaa: 30 08 mov r8,0
80003eac: 18 97 mov r7,r12
80003eae: 48 76 lddpc r6,80003ec8 <_sbrk_r+0x20>
80003eb0: 16 9c mov r12,r11
80003eb2: 8d 08 st.w r6[0x0],r8
80003eb4: f0 1f 00 06 mcall 80003ecc <_sbrk_r+0x24>
80003eb8: 5b fc cp.w r12,-1
80003eba: c0 51 brne 80003ec4 <_sbrk_r+0x1c>
80003ebc: 6c 08 ld.w r8,r6[0x0]
80003ebe: 58 08 cp.w r8,0
80003ec0: ef f8 1a 03 st.wne r7[0xc],r8
80003ec4: d8 22 popm r4-r7,pc
80003ec6: 00 00 add r0,r0
80003ec8: 00 00 add r0,r0
80003eca: 06 20 rsub r0,r3
80003ecc: 80 00 ld.sh r0,r0[0x0]
80003ece: 38 54 mov r4,-123
80003ed0 <_malloc_trim_r>:
80003ed0: d4 21 pushm r4-r7,lr
80003ed2: 16 95 mov r5,r11
80003ed4: 18 97 mov r7,r12
80003ed6: f0 1f 00 23 mcall 80003f60 <_malloc_trim_r+0x90>
80003eda: 4a 34 lddpc r4,80003f64 <_malloc_trim_r+0x94>
80003edc: 68 28 ld.w r8,r4[0x8]
80003ede: 70 16 ld.w r6,r8[0x4]
80003ee0: e0 16 ff fc andl r6,0xfffc
80003ee4: ec c8 ff 91 sub r8,r6,-111
80003ee8: f0 05 01 05 sub r5,r8,r5
80003eec: e0 15 ff 80 andl r5,0xff80
80003ef0: ea c5 00 80 sub r5,r5,128
80003ef4: e0 45 00 7f cp.w r5,127
80003ef8: e0 8a 00 23 brle 80003f3e <_malloc_trim_r+0x6e>
80003efc: 30 0b mov r11,0
80003efe: 0e 9c mov r12,r7
80003f00: f0 1f 00 1a mcall 80003f68 <_malloc_trim_r+0x98>
80003f04: 68 28 ld.w r8,r4[0x8]
80003f06: 0c 08 add r8,r6
80003f08: 10 3c cp.w r12,r8
80003f0a: c1 a1 brne 80003f3e <_malloc_trim_r+0x6e>
80003f0c: ea 0b 11 00 rsub r11,r5,0
80003f10: 0e 9c mov r12,r7
80003f12: f0 1f 00 16 mcall 80003f68 <_malloc_trim_r+0x98>
80003f16: 5b fc cp.w r12,-1
80003f18: c1 71 brne 80003f46 <_malloc_trim_r+0x76>
80003f1a: 30 0b mov r11,0
80003f1c: 0e 9c mov r12,r7
80003f1e: f0 1f 00 13 mcall 80003f68 <_malloc_trim_r+0x98>
80003f22: 68 28 ld.w r8,r4[0x8]
80003f24: f8 08 01 09 sub r9,r12,r8
80003f28: 58 f9 cp.w r9,15
80003f2a: e0 8a 00 0a brle 80003f3e <_malloc_trim_r+0x6e>
80003f2e: a1 a9 sbr r9,0x0
80003f30: 91 19 st.w r8[0x4],r9
80003f32: 48 f8 lddpc r8,80003f6c <_malloc_trim_r+0x9c>
80003f34: 70 09 ld.w r9,r8[0x0]
80003f36: 48 f8 lddpc r8,80003f70 <_malloc_trim_r+0xa0>
80003f38: f8 09 01 09 sub r9,r12,r9
80003f3c: 91 09 st.w r8[0x0],r9
80003f3e: 0e 9c mov r12,r7
80003f40: f0 1f 00 0d mcall 80003f74 <_malloc_trim_r+0xa4>
80003f44: d8 2a popm r4-r7,pc,r12=0
80003f46: 68 28 ld.w r8,r4[0x8]
80003f48: 0a 16 sub r6,r5
80003f4a: a1 a6 sbr r6,0x0
80003f4c: 91 16 st.w r8[0x4],r6
80003f4e: 48 98 lddpc r8,80003f70 <_malloc_trim_r+0xa0>
80003f50: 70 09 ld.w r9,r8[0x0]
80003f52: 0a 19 sub r9,r5
80003f54: 0e 9c mov r12,r7
80003f56: 91 09 st.w r8[0x0],r9
80003f58: f0 1f 00 07 mcall 80003f74 <_malloc_trim_r+0xa4>
80003f5c: da 2a popm r4-r7,pc,r12=1
80003f5e: 00 00 add r0,r0
80003f60: 80 00 ld.sh r0,r0[0x0]
80003f62: 3e a4 mov r4,-22
80003f64: 00 00 add r0,r0
80003f66: 01 50 ld.sh r0,--r0
80003f68: 80 00 ld.sh r0,r0[0x0]
80003f6a: 3e a8 mov r8,-22
80003f6c: 00 00 add r0,r0
80003f6e: 05 5c ld.sh r12,--r2
80003f70: 00 00 add r0,r0
80003f72: 05 7c ld.ub r12,--r2
80003f74: 80 00 ld.sh r0,r0[0x0]
80003f76: 3e a6 mov r6,-22
80003f78 <_free_r>:
80003f78: d4 21 pushm r4-r7,lr
80003f7a: 16 96 mov r6,r11
80003f7c: 18 97 mov r7,r12
80003f7e: 58 0b cp.w r11,0
80003f80: e0 80 00 ca breq 80004114 <_free_r+0x19c>
80003f84: f0 1f 00 4e mcall 800040bc <_free_r+0x144>
80003f88: 20 86 sub r6,8
80003f8a: 4c ea lddpc r10,800040c0 <_free_r+0x148>
80003f8c: 6c 18 ld.w r8,r6[0x4]
80003f8e: 74 2e ld.w lr,r10[0x8]
80003f90: f9 d8 c0 01 bfextu r12,r8,0x0,0x1
80003f94: a1 c8 cbr r8,0x0
80003f96: ec 08 00 09 add r9,r6,r8
80003f9a: 72 1b ld.w r11,r9[0x4]
80003f9c: e0 1b ff fc andl r11,0xfffc
80003fa0: 1c 39 cp.w r9,lr
80003fa2: c1 d1 brne 80003fdc <_free_r+0x64>
80003fa4: f6 08 00 08 add r8,r11,r8
80003fa8: 58 0c cp.w r12,0
80003faa: c0 81 brne 80003fba <_free_r+0x42>
80003fac: 6c 09 ld.w r9,r6[0x0]
80003fae: 12 16 sub r6,r9
80003fb0: 12 08 add r8,r9
80003fb2: 6c 3b ld.w r11,r6[0xc]
80003fb4: 6c 29 ld.w r9,r6[0x8]
80003fb6: 97 29 st.w r11[0x8],r9
80003fb8: 93 3b st.w r9[0xc],r11
80003fba: 10 99 mov r9,r8
80003fbc: 95 26 st.w r10[0x8],r6
80003fbe: a1 a9 sbr r9,0x0
80003fc0: 8d 19 st.w r6[0x4],r9
80003fc2: 4c 19 lddpc r9,800040c4 <_free_r+0x14c>
80003fc4: 72 09 ld.w r9,r9[0x0]
80003fc6: 12 38 cp.w r8,r9
80003fc8: c0 63 brcs 80003fd4 <_free_r+0x5c>
80003fca: 4c 08 lddpc r8,800040c8 <_free_r+0x150>
80003fcc: 0e 9c mov r12,r7
80003fce: 70 0b ld.w r11,r8[0x0]
80003fd0: f0 1f 00 3f mcall 800040cc <_free_r+0x154>
80003fd4: 0e 9c mov r12,r7
80003fd6: f0 1f 00 3f mcall 800040d0 <_free_r+0x158>
80003fda: d8 22 popm r4-r7,pc
80003fdc: 93 1b st.w r9[0x4],r11
80003fde: 58 0c cp.w r12,0
80003fe0: c0 30 breq 80003fe6 <_free_r+0x6e>
80003fe2: 30 0c mov r12,0
80003fe4: c1 08 rjmp 80004004 <_free_r+0x8c>
80003fe6: 6c 0e ld.w lr,r6[0x0]
80003fe8: f4 c5 ff f8 sub r5,r10,-8
80003fec: 1c 16 sub r6,lr
80003fee: 1c 08 add r8,lr
80003ff0: 6c 2e ld.w lr,r6[0x8]
80003ff2: 0a 3e cp.w lr,r5
80003ff4: f9 bc 00 01 moveq r12,1
80003ff8: ed f5 10 03 ld.wne r5,r6[0xc]
80003ffc: eb fe 1a 02 st.wne r5[0x8],lr
80004000: fd f5 1a 03 st.wne lr[0xc],r5
80004004: f2 0b 00 0e add lr,r9,r11
80004008: 7c 1e ld.w lr,lr[0x4]
8000400a: ed be 00 00 bld lr,0x0
8000400e: c1 30 breq 80004034 <_free_r+0xbc>
80004010: 16 08 add r8,r11
80004012: 58 0c cp.w r12,0
80004014: c0 c1 brne 8000402c <_free_r+0xb4>
80004016: 4a be lddpc lr,800040c0 <_free_r+0x148>
80004018: 72 2b ld.w r11,r9[0x8]
8000401a: 2f 8e sub lr,-8
8000401c: 1c 3b cp.w r11,lr
8000401e: c0 71 brne 8000402c <_free_r+0xb4>
80004020: 97 36 st.w r11[0xc],r6
80004022: 97 26 st.w r11[0x8],r6
80004024: 8d 2b st.w r6[0x8],r11
80004026: 8d 3b st.w r6[0xc],r11
80004028: 30 1c mov r12,1
8000402a: c0 58 rjmp 80004034 <_free_r+0xbc>
8000402c: 72 2b ld.w r11,r9[0x8]
8000402e: 72 39 ld.w r9,r9[0xc]
80004030: 93 2b st.w r9[0x8],r11
80004032: 97 39 st.w r11[0xc],r9
80004034: 10 99 mov r9,r8
80004036: ec 08 09 08 st.w r6[r8],r8
8000403a: a1 a9 sbr r9,0x0
8000403c: 8d 19 st.w r6[0x4],r9
8000403e: 58 0c cp.w r12,0
80004040: c6 71 brne 8000410e <_free_r+0x196>
80004042: e0 48 01 ff cp.w r8,511
80004046: e0 8b 00 13 brhi 8000406c <_free_r+0xf4>
8000404a: a3 98 lsr r8,0x3
8000404c: f4 08 00 39 add r9,r10,r8<<0x3
80004050: 72 2b ld.w r11,r9[0x8]
80004052: 8d 39 st.w r6[0xc],r9
80004054: 8d 2b st.w r6[0x8],r11
80004056: 97 36 st.w r11[0xc],r6
80004058: 93 26 st.w r9[0x8],r6
8000405a: a3 48 asr r8,0x2
8000405c: 74 19 ld.w r9,r10[0x4]
8000405e: 30 1b mov r11,1
80004060: f6 08 09 48 lsl r8,r11,r8
80004064: f3 e8 10 08 or r8,r9,r8
80004068: 95 18 st.w r10[0x4],r8
8000406a: c5 28 rjmp 8000410e <_free_r+0x196>
8000406c: f0 09 16 09 lsr r9,r8,0x9
80004070: 58 49 cp.w r9,4
80004072: e0 8b 00 06 brhi 8000407e <_free_r+0x106>
80004076: f0 0b 16 06 lsr r11,r8,0x6
8000407a: 2c 8b sub r11,-56
8000407c: c2 d8 rjmp 800040d6 <_free_r+0x15e>
8000407e: 59 49 cp.w r9,20
80004080: e0 8b 00 05 brhi 8000408a <_free_r+0x112>
80004084: f2 cb ff a5 sub r11,r9,-91
80004088: c2 78 rjmp 800040d6 <_free_r+0x15e>
8000408a: e0 49 00 54 cp.w r9,84
8000408e: e0 8b 00 06 brhi 8000409a <_free_r+0x122>
80004092: f0 0b 16 0c lsr r11,r8,0xc
80004096: 29 2b sub r11,-110
80004098: c1 f8 rjmp 800040d6 <_free_r+0x15e>
8000409a: e0 49 01 54 cp.w r9,340
8000409e: e0 8b 00 06 brhi 800040aa <_free_r+0x132>
800040a2: f0 0b 16 0f lsr r11,r8,0xf
800040a6: 28 9b sub r11,-119
800040a8: c1 78 rjmp 800040d6 <_free_r+0x15e>
800040aa: f0 0b 16 12 lsr r11,r8,0x12
800040ae: e0 49 05 54 cp.w r9,1364
800040b2: e0 88 00 11 brls 800040d4 <_free_r+0x15c>
800040b6: 37 eb mov r11,126
800040b8: c0 f8 rjmp 800040d6 <_free_r+0x15e>
800040ba: 00 00 add r0,r0
800040bc: 80 00 ld.sh r0,r0[0x0]
800040be: 3e a4 mov r4,-22
800040c0: 00 00 add r0,r0
800040c2: 01 50 ld.sh r0,--r0
800040c4: 00 00 add r0,r0
800040c6: 05 58 ld.sh r8,--r2
800040c8: 00 00 add r0,r0
800040ca: 05 78 ld.ub r8,--r2
800040cc: 80 00 ld.sh r0,r0[0x0]
800040ce: 3e d0 mov r0,-19
800040d0: 80 00 ld.sh r0,r0[0x0]
800040d2: 3e a6 mov r6,-22
800040d4: 28 4b sub r11,-124
800040d6: f4 0b 00 3c add r12,r10,r11<<0x3
800040da: 78 29 ld.w r9,r12[0x8]
800040dc: 18 39 cp.w r9,r12
800040de: c0 e1 brne 800040fa <_free_r+0x182>
800040e0: 74 18 ld.w r8,r10[0x4]
800040e2: a3 4b asr r11,0x2
800040e4: 30 1c mov r12,1
800040e6: f8 0b 09 4b lsl r11,r12,r11
800040ea: f1 eb 10 0b or r11,r8,r11
800040ee: 12 98 mov r8,r9
800040f0: 95 1b st.w r10[0x4],r11
800040f2: c0 a8 rjmp 80004106 <_free_r+0x18e>
800040f4: 72 29 ld.w r9,r9[0x8]
800040f6: 18 39 cp.w r9,r12
800040f8: c0 60 breq 80004104 <_free_r+0x18c>
800040fa: 72 1a ld.w r10,r9[0x4]
800040fc: e0 1a ff fc andl r10,0xfffc
80004100: 14 38 cp.w r8,r10
80004102: cf 93 brcs 800040f4 <_free_r+0x17c>
80004104: 72 38 ld.w r8,r9[0xc]
80004106: 8d 38 st.w r6[0xc],r8
80004108: 8d 29 st.w r6[0x8],r9
8000410a: 93 36 st.w r9[0xc],r6
8000410c: 91 26 st.w r8[0x8],r6
8000410e: 0e 9c mov r12,r7
80004110: f0 1f 00 02 mcall 80004118 <_free_r+0x1a0>
80004114: d8 22 popm r4-r7,pc
80004116: 00 00 add r0,r0
80004118: 80 00 ld.sh r0,r0[0x0]
8000411a: 3e a6 mov r6,-22
8000411c <__do_global_ctors_aux>:
8000411c: eb cd 40 80 pushm r7,lr
80004120: 48 67 lddpc r7,80004138 <__do_global_ctors_aux+0x1c>
80004122: ee f8 ff fc ld.w r8,r7[-4]
80004126: 5b f8 cp.w r8,-1
80004128: c0 60 breq 80004134 <__do_global_ctors_aux+0x18>
8000412a: 20 47 sub r7,4
8000412c: 5d 18 icall r8
8000412e: 0f 48 ld.w r8,--r7
80004130: 5b f8 cp.w r8,-1
80004132: cf d1 brne 8000412c <__do_global_ctors_aux+0x10>
80004134: e3 cd 80 80 ldm sp++,r7,pc
80004138: 00 00 add r0,r0
8000413a: 00 08 add r8,r0
Disassembly of section .exception_handlers:
80004200 <EVBA_Table>:
80004200: c0 08 rjmp 80004200 <EVBA_Table>
...
80004204 <Exception_TLB_Multiple_Hit>:
80004204: c0 08 rjmp 80004204 <Exception_TLB_Multiple_Hit>
...
80004208 <Exception_Bus_Error_Data_Fetch>:
80004208: c0 08 rjmp 80004208 <Exception_Bus_Error_Data_Fetch>
...
8000420c <Exception_Bus_Error_Instruction_Fetch>:
8000420c: c0 08 rjmp 8000420c <Exception_Bus_Error_Instruction_Fetch>
...
80004210 <Exception_NMI>:
80004210: c0 08 rjmp 80004210 <Exception_NMI>
...
80004214 <Exception_Instruction_Address>:
80004214: c0 08 rjmp 80004214 <Exception_Instruction_Address>
...
80004218 <Exception_ITLB_Protection>:
80004218: c0 08 rjmp 80004218 <Exception_ITLB_Protection>
...
8000421c <Exception_OCD_Breakpoint>:
8000421c: c0 08 rjmp 8000421c <Exception_OCD_Breakpoint>
...
80004220 <Exception_Illegal_Opcode>:
80004220: c0 08 rjmp 80004220 <Exception_Illegal_Opcode>
...
80004224 <Exception_Unimplemented_Instruction>:
80004224: c0 08 rjmp 80004224 <Exception_Unimplemented_Instruction>
...
80004228 <Exception_Privilege_Violation>:
80004228: c0 08 rjmp 80004228 <Exception_Privilege_Violation>
...
8000422c <Exception_Floating_Point>:
8000422c: c0 08 rjmp 8000422c <Exception_Floating_Point>
...
80004230 <Exception_Coprocessor_Absent>:
80004230: c0 08 rjmp 80004230 <Exception_Coprocessor_Absent>
...
80004234 <Exception_Data_Address_Read>:
80004234: c0 08 rjmp 80004234 <Exception_Data_Address_Read>
...
80004238 <Exception_Data_Address_Write>:
80004238: c0 08 rjmp 80004238 <Exception_Data_Address_Write>
...
8000423c <Exception_DTLB_Protection_Read>:
8000423c: c0 08 rjmp 8000423c <Exception_DTLB_Protection_Read>
...
80004240 <Exception_DTLB_Protection_Write>:
80004240: c0 08 rjmp 80004240 <Exception_DTLB_Protection_Write>
...
80004244 <Exception_DTLB_Modified>:
80004244: c0 08 rjmp 80004244 <Exception_DTLB_Modified>
...
80004250 <Exception_ITLB_Miss>:
80004250: c0 08 rjmp 80004250 <Exception_ITLB_Miss>
...
80004260 <Exception_DTLB_Miss_Read>:
80004260: c0 08 rjmp 80004260 <Exception_DTLB_Miss_Read>
...
80004270 <Exception_DTLB_Miss_Write>:
80004270: c0 08 rjmp 80004270 <Exception_DTLB_Miss_Write>
...
80004300 <Exception_Supervisor_Call>:
80004300: c0 08 rjmp 80004300 <Exception_Supervisor_Call>
...
80004304 <Exception_INT0>:
80004304: 30 0c mov r12,0
80004306: f0 1f 00 0c mcall 80004334 <Autovector_Table+0x10>
8000430a: 18 9f mov pc,r12
8000430c <Exception_INT1>:
8000430c: 30 1c mov r12,1
8000430e: f0 1f 00 0a mcall 80004334 <Autovector_Table+0x10>
80004312: 18 9f mov pc,r12
80004314 <Exception_INT2>:
80004314: 30 2c mov r12,2
80004316: f0 1f 00 08 mcall 80004334 <Autovector_Table+0x10>
8000431a: 18 9f mov pc,r12
8000431c <Exception_INT3>:
8000431c: 30 3c mov r12,3
8000431e: f0 1f 00 06 mcall 80004334 <Autovector_Table+0x10>
80004322: 18 9f mov pc,r12
80004324 <Autovector_Table>:
80004324: 00 00 add r0,r0
80004326: 01 04 ld.w r4,r0++
80004328: 40 00 lddsp r0,sp[0x0]
8000432a: 01 0c ld.w r12,r0++
8000432c: 80 00 ld.sh r0,r0[0x0]
8000432e: 01 14 ld.sh r4,r0++
80004330: c0 00 breq 80004330 <Autovector_Table+0xc>
80004332: 01 1c ld.sh r12,r0++
80004334: 80 00 ld.sh r0,r0[0x0]
80004336: 33 9c mov r12,57
...
Disassembly of section .fini:
80004400 <_fini>:
80004400: eb cd 40 40 pushm r6,lr
80004404: 48 26 lddpc r6,8000440c <_fini+0xc>
80004406: 1e 26 rsub r6,pc
80004408: c0 48 rjmp 80004410 <_fini+0x10>
8000440a: 00 00 add r0,r0
8000440c: 80 00 ld.sh r0,r0[0x0]
8000440e: 43 ee lddsp lr,sp[0xf8]
80004410: f0 16 00 02 mcall r6[8]
80004414: e3 cd 80 40 ldm sp++,r6,pc
Archive member included because of file (symbol)
aery32/libaery32_uc3a1128.a(gpio.o)
obj/board.o (aery::gpio_init_pins(avr32_gpio_port_t volatile*, unsigned long, int))
aery32/libaery32_uc3a1128.a(pm.o)
obj/board.o (aery::pm_start_osc(unsigned char, aery::Pm_osc_mode, aery::Pm_osc_startup))
liblufa.a(USBController_UC3.o)
obj/main.o (USB_Init)
liblufa.a(USBInterrupt_UC3.o)
liblufa.a(USBController_UC3.o) (USB_INT_DisableAllInterrupts)
liblufa.a(DeviceStandardReq.o)
liblufa.a(USBController_UC3.o) (USB_Device_ConfigurationNumber)
liblufa.a(Events.o) liblufa.a(USBInterrupt_UC3.o) (EVENT_USB_Device_Suspend)
liblufa.a(USBTask.o) obj/main.o (USB_USBTask)
liblufa.a(CDCClassDevice.o) obj/main.o (CDC_Device_USBTask)
liblufa.a(Exception.o) obj/main.o (Autovector_Table)
liblufa.a(InterruptManagement.o)
liblufa.a(Exception.o) (INTC_GetInterruptHandler)
liblufa.a(Endpoint_UC3.o) liblufa.a(USBController_UC3.o) (Endpoint_ConfigureEndpoint_Prv)
liblufa.a(EndpointStream_UC3.o)
liblufa.a(DeviceStandardReq.o) (Endpoint_Write_Control_Stream_LE)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o (atexit)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o (exit)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o) (_global_impure_ptr)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memcpy.o)
liblufa.a(CDCClassDevice.o) (memcpy)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
liblufa.a(CDCClassDevice.o) (strlen)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o (_init_startup)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o) (__register_exitproc)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o) (__call_exitprocs)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o) (__errno)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o) (__sf_fake_stdin)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o) (_fwalk)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o) (free)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o) (_malloc_r)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o) (memset)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o) (__malloc_lock)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o) (errno)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o) (_sbrk_r)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o) (__sclose)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o) (_write_r)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o) (_close_r)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o) (fclose)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o) (_fflush_r)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o) (_free_r)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o) (_lseek_r)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o) (_read_r)
Allocating common symbols
Common symbol size file
USB_IsInitialized 0x1 liblufa.a(USBTask.o)
errno 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
USB_DeviceState 0x1 liblufa.a(USBTask.o)
USB_Device_ConfigurationNumber
0x1 liblufa.a(DeviceStandardReq.o)
InterruptHandlers 0x50 liblufa.a(InterruptManagement.o)
USB_Device_CurrentlySelfPowered
0x1 liblufa.a(DeviceStandardReq.o)
USB_ControlRequest 0x8 liblufa.a(USBTask.o)
USB_Device_RemoteWakeupEnabled
0x1 liblufa.a(DeviceStandardReq.o)
USB_Endpoint_FIFOPos
0x1c liblufa.a(Endpoint_UC3.o)
Discarded input sections
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crti.o
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crti.o
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crti.o
.data 0x00000000 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
.text 0x00000000 0x0 obj/board.o
.data 0x00000000 0x0 obj/board.o
.bss 0x00000000 0x0 obj/board.o
.text 0x00000000 0x0 obj/main.o
.data 0x00000000 0x0 obj/main.o
.bss 0x00000000 0x0 obj/main.o
.text 0x00000000 0x0 obj/Descriptors.o
.data 0x00000000 0x0 obj/Descriptors.o
.bss 0x00000000 0x0 obj/Descriptors.o
.text 0x00000000 0x0 aery32/libaery32_uc3a1128.a(gpio.o)
.data 0x00000000 0x0 aery32/libaery32_uc3a1128.a(gpio.o)
.bss 0x00000000 0x0 aery32/libaery32_uc3a1128.a(gpio.o)
.data._ZN4aery6lportbE
0x00000000 0x4 aery32/libaery32_uc3a1128.a(gpio.o)
.data._ZN4aery6lportcE
0x00000000 0x4 aery32/libaery32_uc3a1128.a(gpio.o)
.data._ZN4aery6lportaE
0x00000000 0x4 aery32/libaery32_uc3a1128.a(gpio.o)
.text 0x00000000 0x0 aery32/libaery32_uc3a1128.a(pm.o)
.data 0x00000000 0x0 aery32/libaery32_uc3a1128.a(pm.o)
.bss 0x00000000 0x0 aery32/libaery32_uc3a1128.a(pm.o)
.text._ZN4aery15pm_disable_gclkENS_7Pm_gclkE
0x00000000 0x22 aery32/libaery32_uc3a1128.a(pm.o)
.text._ZN4aery11pm_get_fmckEv
0x00000000 0x80 aery32/libaery32_uc3a1128.a(pm.o)
.text._ZN4aery18pm_setup_clkdomainEhh
0x00000000 0xa6 aery32/libaery32_uc3a1128.a(pm.o)
.text._ZN4aery17pm_get_fclkdomainEh
0x00000000 0x7c aery32/libaery32_uc3a1128.a(pm.o)
.text 0x00000000 0x0 liblufa.a(USBController_UC3.o)
.data 0x00000000 0x0 liblufa.a(USBController_UC3.o)
.bss 0x00000000 0x0 liblufa.a(USBController_UC3.o)
.text.USB_Disable
0x00000000 0x54 liblufa.a(USBController_UC3.o)
.text 0x00000000 0x0 liblufa.a(USBInterrupt_UC3.o)
.data 0x00000000 0x0 liblufa.a(USBInterrupt_UC3.o)
.bss 0x00000000 0x0 liblufa.a(USBInterrupt_UC3.o)
.data 0x00000000 0x0 liblufa.a(DeviceStandardReq.o)
.bss 0x00000000 0x0 liblufa.a(DeviceStandardReq.o)
.text 0x00000000 0x0 liblufa.a(Events.o)
.data 0x00000000 0x0 liblufa.a(Events.o)
.bss 0x00000000 0x0 liblufa.a(Events.o)
.text 0x00000000 0x0 liblufa.a(USBTask.o)
.data 0x00000000 0x0 liblufa.a(USBTask.o)
.bss 0x00000000 0x0 liblufa.a(USBTask.o)
.text 0x00000000 0x8 liblufa.a(CDCClassDevice.o)
.data 0x00000000 0x0 liblufa.a(CDCClassDevice.o)
.bss 0x00000000 0x0 liblufa.a(CDCClassDevice.o)
.text.CDC_Device_BytesReceived
0x00000000 0x9c liblufa.a(CDCClassDevice.o)
.text.CDC_Device_ReceiveByte
0x00000000 0xb0 liblufa.a(CDCClassDevice.o)
.text.CDC_Device_SendControlLineStateChange
0x00000000 0xa8 liblufa.a(CDCClassDevice.o)
.text.CDC_Device_SendData
0x00000000 0x48 liblufa.a(CDCClassDevice.o)
.text.CDC_Device_SendString
0x00000000 0x58 liblufa.a(CDCClassDevice.o)
.text 0x00000000 0x0 liblufa.a(Exception.o)
.data 0x00000000 0x0 liblufa.a(Exception.o)
.bss 0x00000000 0x0 liblufa.a(Exception.o)
.text 0x00000000 0x0 liblufa.a(InterruptManagement.o)
.data 0x00000000 0x0 liblufa.a(InterruptManagement.o)
.bss 0x00000000 0x0 liblufa.a(InterruptManagement.o)
.text 0x00000000 0x0 liblufa.a(Endpoint_UC3.o)
.data 0x00000000 0x0 liblufa.a(Endpoint_UC3.o)
.text.Endpoint_ClearEndpoints
0x00000000 0x58 liblufa.a(Endpoint_UC3.o)
.text 0x00000000 0x0 liblufa.a(EndpointStream_UC3.o)
.data 0x00000000 0x0 liblufa.a(EndpointStream_UC3.o)
.bss 0x00000000 0x0 liblufa.a(EndpointStream_UC3.o)
.text.Endpoint_Write_Control_Stream_BE
0x00000000 0x190 liblufa.a(EndpointStream_UC3.o)
.text.Endpoint_Read_Control_Stream_LE
0x00000000 0x140 liblufa.a(EndpointStream_UC3.o)
.text.Endpoint_Read_Control_Stream_BE
0x00000000 0x158 liblufa.a(EndpointStream_UC3.o)
.text.Endpoint_Null_Stream
0x00000000 0xb4 liblufa.a(EndpointStream_UC3.o)
.text.Endpoint_Discard_Stream
0x00000000 0xb0 liblufa.a(EndpointStream_UC3.o)
.text.Endpoint_Read_Stream_BE
0x00000000 0xcc liblufa.a(EndpointStream_UC3.o)
.text.Endpoint_Read_Stream_LE
0x00000000 0xc0 liblufa.a(EndpointStream_UC3.o)
.text.Endpoint_Write_Stream_BE
0x00000000 0xcc liblufa.a(EndpointStream_UC3.o)
.text.Endpoint_Write_Stream_LE
0x00000000 0xc0 liblufa.a(EndpointStream_UC3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
.text 0x00000000 0x148 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memcpy.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memcpy.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memcpy.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.debug_abbrev 0x00000000 0x83 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.debug_info 0x00000000 0xbe c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.debug_line 0x00000000 0x182 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.text.strlen 0x00000000 0x16 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.debug_frame 0x00000000 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.debug_loc 0x00000000 0x1e c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.debug_pubnames
0x00000000 0x1d c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.debug_aranges
0x00000000 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.debug_ranges 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.debug_str 0x00000000 0x101 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._open 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._close 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._lseek 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._read 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._write 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text.isatty 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._fstat_host
0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._stat_host
0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._fstat 0x00000000 0x50 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._stat 0x00000000 0x50 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._gettimeofday_host
0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._gettimeofday
0x00000000 0x24 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._unlink 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._system 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._execve 0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._fork 0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._wait 0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text.sigfillset
0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text.sigprocmask
0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._fcntl 0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._link 0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._kill 0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._getpid 0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text._times 0x00000000 0x12 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text.__sfp_lock_acquire
0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text.__sfp_lock_release
0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text.__sinit_lock_acquire
0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text.__sinit_lock_release
0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text.__fp_lock
0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text.__fp_unlock
0x00000000 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text.__fp_unlock_all
0x00000000 0x1c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text.__fp_lock_all
0x00000000 0x1c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text._cleanup_r
0x00000000 0x14 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text._cleanup
0x00000000 0x14 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text.__sfmoreglue
0x00000000 0x30 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text.__sfp 0x00000000 0x7c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text.__sinit 0x00000000 0xb0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.debug_abbrev 0x00000000 0x1df c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.debug_info 0x00000000 0xa61 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.debug_line 0x00000000 0x2a2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.text._fwalk_reent
0x00000000 0x58 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.text._fwalk 0x00000000 0x54 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.debug_frame 0x00000000 0x70 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.debug_loc 0x00000000 0xe7 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.debug_pubnames
0x00000000 0x2e c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.debug_aranges
0x00000000 0x28 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.debug_ranges 0x00000000 0xa0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.debug_str 0x00000000 0x4c8 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
.debug_abbrev 0x00000000 0x85 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
.debug_info 0x00000000 0xcd c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
.debug_line 0x00000000 0x17c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
.text.memset 0x00000000 0xe c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
.debug_frame 0x00000000 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
.debug_pubnames
0x00000000 0x1d c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
.debug_aranges
0x00000000 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
.debug_ranges 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
.debug_str 0x00000000 0xfb c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.text._wrapup_reent
0x00000000 0x3c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.text.cleanup_glue
0x00000000 0x24 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.text._reclaim_reent
0x00000000 0xd4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.debug_abbrev 0x00000000 0x192 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.debug_info 0x00000000 0xa28 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.debug_line 0x00000000 0x299 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.text.__sclose
0x00000000 0x10 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.text.__sseek 0x00000000 0x2c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.text.__swrite
0x00000000 0x38 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.text.__sread 0x00000000 0x24 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.debug_frame 0x00000000 0x94 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.debug_loc 0x00000000 0x1ee c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.debug_pubnames
0x00000000 0x44 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.debug_aranges
0x00000000 0x38 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.debug_ranges 0x00000000 0x30 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.debug_str 0x00000000 0x4c4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.debug_abbrev 0x00000000 0x175 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.debug_info 0x00000000 0x90d c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.debug_line 0x00000000 0x20d c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.text._write_r
0x00000000 0x2c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.debug_frame 0x00000000 0x34 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.debug_loc 0x00000000 0x94 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.debug_pubnames
0x00000000 0x1f c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.debug_aranges
0x00000000 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.debug_ranges 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.debug_str 0x00000000 0x4a1 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.debug_abbrev 0x00000000 0x170 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.debug_info 0x00000000 0x8d2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.debug_line 0x00000000 0x201 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.text._close_r
0x00000000 0x28 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.debug_frame 0x00000000 0x34 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.debug_loc 0x00000000 0x63 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.debug_pubnames
0x00000000 0x1f c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.debug_aranges
0x00000000 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.debug_ranges 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.debug_str 0x00000000 0x491 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.debug_abbrev 0x00000000 0x1a1 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.debug_info 0x00000000 0x9bc c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.debug_line 0x00000000 0x267 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.text._fclose_r
0x00000000 0xd0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.text.fclose 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.debug_frame 0x00000000 0x4c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.debug_loc 0x00000000 0xb6 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.debug_pubnames
0x00000000 0x2b c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.debug_aranges
0x00000000 0x28 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.debug_ranges 0x00000000 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.debug_str 0x00000000 0x4e8 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.debug_abbrev 0x00000000 0x1c6 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.debug_info 0x00000000 0xa22 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.debug_line 0x00000000 0x2fd c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.text._fflush_r
0x00000000 0x118 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.text.fflush 0x00000000 0x30 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.debug_frame 0x00000000 0x4c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.debug_loc 0x00000000 0x13f c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.debug_pubnames
0x00000000 0x2b c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.debug_aranges
0x00000000 0x28 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.debug_ranges 0x00000000 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.debug_str 0x00000000 0x504 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.debug_abbrev 0x00000000 0x17f c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.debug_info 0x00000000 0x8fb c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.debug_line 0x00000000 0x20d c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.text._lseek_r
0x00000000 0x2c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.debug_frame 0x00000000 0x34 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.debug_loc 0x00000000 0x94 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.debug_pubnames
0x00000000 0x1f c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.debug_aranges
0x00000000 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.debug_ranges 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.debug_str 0x00000000 0x49f c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.debug_abbrev 0x00000000 0x170 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.debug_info 0x00000000 0x906 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.debug_line 0x00000000 0x20c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.text._read_r 0x00000000 0x2c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.debug_frame 0x00000000 0x34 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.debug_loc 0x00000000 0x94 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.debug_pubnames
0x00000000 0x1e c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.debug_aranges
0x00000000 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.debug_ranges 0x00000000 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.debug_str 0x00000000 0x49f c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtend.o
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtend.o
.text 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtn.o
.data 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtn.o
.bss 0x00000000 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtn.o
Memory Configuration
Name Origin Length Attributes
FLASH 0x80002000 0x00020000 axrl !w
CPUSRAM 0x00000004 0x00007ffc axw !rl
USERPAGE 0x80800000 0x00000200
FACTORYPAGE 0x80800200 0x00000200
*default* 0x00000000 0xffffffff
Linker script and memory map
0x00001000 _stack_size = 0x1000
LOAD c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
LOAD c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crti.o
LOAD c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
LOAD obj/board.o
LOAD obj/main.o
LOAD obj/Descriptors.o
LOAD aery32/libaery32_uc3a1128.a
LOAD liblufa.a
LOAD c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2\libstdc++.a
LOAD c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libm.a
LOAD c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2\libgcc.a
LOAD c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a
LOAD c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2\libgcc.a
LOAD c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtend.o
LOAD c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtn.o
0x80000000 PROVIDE (__executable_start, 0x80000000)
0x80000000 . = 0x80000000
.interp
*(.interp)
.reset 0x80002000 0x8
*(.reset)
.reset 0x80002000 0x8 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
0x80002000 _start
.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.ro
*(.rel.data.rel.ro*)
.rela.data.rel.ro
*(.rel.data.rel.ro*)
.rel.data
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
.rela.data
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
.rel.tdata
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
.rela.tdata
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
.rel.tbss
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
.rela.tbss
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got 0x80002008 0x0
*(.rela.got)
.rela.got 0x80002008 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
.rel.bss
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
.rela.bss
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.init 0x80002008 0x1c
*(.init)
.init 0x80002008 0x10 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crti.o
0x80002008 _init
.init 0x80002018 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
.init 0x8000201c 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtend.o
.init 0x80002020 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtn.o
.plt
*(.plt)
.text 0x80002024 0x2118
*(.text .stub .text.* .gnu.linkonce.t.*)
.text 0x80002024 0x84 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
0x80002024 _stext
.text 0x800020a8 0x64 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
.text._Z10init_boardv
0x8000210c 0xd4 obj/board.o
0x8000210c init_board()
.text.EVENT_USB_Device_Connect
0x800021e0 0x2 obj/main.o
0x800021e0 EVENT_USB_Device_Connect
.text.EVENT_USB_Device_Disconnect
0x800021e2 0x2 obj/main.o
0x800021e2 EVENT_USB_Device_Disconnect
.text.main 0x800021e4 0xc0 obj/main.o
0x800021e4 main
.text.EVENT_USB_Device_ConfigurationChanged
0x800022a4 0x14 obj/main.o
0x800022a4 EVENT_USB_Device_ConfigurationChanged
.text.EVENT_USB_Device_ControlRequest
0x800022b8 0x14 obj/main.o
0x800022b8 EVENT_USB_Device_ControlRequest
.text.CALLBACK_USB_GetDescriptor
0x800022cc 0x60 obj/Descriptors.o
0x800022cc CALLBACK_USB_GetDescriptor
.text._ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi
0x8000232c 0xc4 aery32/libaery32_uc3a1128.a(gpio.o)
0x8000232c aery::gpio_init_pins(avr32_gpio_port_t volatile*, unsigned long, int)
.text._ZN4aery13gpio_init_pinEhi
0x800023f0 0x20 aery32/libaery32_uc3a1128.a(gpio.o)
0x800023f0 aery::gpio_init_pin(unsigned char, int)
.text._ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE
0x80002410 0x76 aery32/libaery32_uc3a1128.a(pm.o)
0x80002410 aery::pm_start_osc(unsigned char, aery::Pm_osc_mode, aery::Pm_osc_startup)
.text._ZN4aery14pm_init_pllvcoEPV14avr32_pm_pll_tNS_13Pm_pll_sourceEhhb
0x80002486 0x64 aery32/libaery32_uc3a1128.a(pm.o)
0x80002486 aery::pm_init_pllvco(avr32_pm_pll_t volatile*, aery::Pm_pll_source, unsigned char, unsigned char, bool)
.text._ZN4aery13pm_enable_pllEPV14avr32_pm_pll_tb
0x800024ea 0x34 aery32/libaery32_uc3a1128.a(pm.o)
0x800024ea aery::pm_enable_pll(avr32_pm_pll_t volatile*, bool)
.text._ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt
0x8000251e 0xae aery32/libaery32_uc3a1128.a(pm.o)
0x8000251e aery::pm_init_gclk(aery::Pm_gclk, aery::Pm_gclk_source, unsigned short)
.text._ZN4aery24pm_wait_osc_to_stabilizeEh
0x800025cc 0x3c aery32/libaery32_uc3a1128.a(pm.o)
0x800025cc aery::pm_wait_osc_to_stabilize(unsigned char)
.text._ZN4aery19pm_wait_pll_to_lockEPV14avr32_pm_pll_t
0x80002608 0x2e aery32/libaery32_uc3a1128.a(pm.o)
0x80002608 aery::pm_wait_pll_to_lock(avr32_pm_pll_t volatile*)
.text._ZN4aery14pm_enable_gclkENS_7Pm_gclkE
0x80002636 0x16 aery32/libaery32_uc3a1128.a(pm.o)
0x80002636 aery::pm_enable_gclk(aery::Pm_gclk)
.text._ZN4aery13pm_select_mckENS_13Pm_mck_sourceE
0x8000264c 0xe aery32/libaery32_uc3a1128.a(pm.o)
0x8000264c aery::pm_select_mck(aery::Pm_mck_source)
*fill* 0x8000265a 0x2 d703d703
.text.USB_ResetInterface
0x8000265c 0xf4 liblufa.a(USBController_UC3.o)
0x8000265c USB_ResetInterface
.text.USB_Init
0x80002750 0x28 liblufa.a(USBController_UC3.o)
0x80002750 USB_Init
.text.USB_INT_DisableAllInterrupts
0x80002778 0x28 liblufa.a(USBInterrupt_UC3.o)
0x80002778 USB_INT_DisableAllInterrupts
.text.USB_INT_ClearAllInterrupts
0x800027a0 0x28 liblufa.a(USBInterrupt_UC3.o)
0x800027a0 USB_INT_ClearAllInterrupts
.text.USB_GEN_vect
0x800027c8 0x1a8 liblufa.a(USBInterrupt_UC3.o)
0x800027c8 USB_GEN_vect
.text 0x80002970 0x28 liblufa.a(DeviceStandardReq.o)
.text.USB_Device_ProcessControlRequest
0x80002998 0x4a4 liblufa.a(DeviceStandardReq.o)
0x80002998 USB_Device_ProcessControlRequest
.text.USB_Event_Stub
0x80002e3c 0x2 liblufa.a(Events.o)
0x80002e3c USB_Event_Stub
0x80002e3c EVENT_USB_Device_Suspend
0x80002e3c EVENT_USB_Device_StartOfFrame
0x80002e3c EVENT_USB_Device_Reset
0x80002e3c EVENT_USB_Device_WakeUp
*fill* 0x80002e3e 0x2 d703d703
.text.USB_USBTask
0x80002e40 0x4c liblufa.a(USBTask.o)
0x80002e40 USB_USBTask
.text.CDC_Device_Event_Stub
0x80002e8c 0x2 liblufa.a(CDCClassDevice.o)
0x80002e8c EVENT_CDC_Device_ControLineStateChanged
0x80002e8c EVENT_CDC_Device_BreakSent
0x80002e8c CDC_Device_Event_Stub
0x80002e8c EVENT_CDC_Device_LineEncodingChanged
*fill* 0x80002e8e 0x2 d703d703
.text.CDC_Device_Flush
0x80002e90 0xc8 liblufa.a(CDCClassDevice.o)
0x80002e90 CDC_Device_Flush
.text.CDC_Device_USBTask
0x80002f58 0x2c liblufa.a(CDCClassDevice.o)
0x80002f58 CDC_Device_USBTask
.text.CDC_Device_SendByte
0x80002f84 0xa8 liblufa.a(CDCClassDevice.o)
0x80002f84 CDC_Device_SendByte
.text.CDC_Device_ConfigureEndpoints
0x8000302c 0x68 liblufa.a(CDCClassDevice.o)
0x8000302c CDC_Device_ConfigureEndpoints
.text.CDC_Device_ProcessControlRequest
0x80003094 0x304 liblufa.a(CDCClassDevice.o)
0x80003094 CDC_Device_ProcessControlRequest
.text.Unhandled_Interrupt
0x80003398 0x2 liblufa.a(InterruptManagement.o)
0x80003398 Unhandled_Interrupt
*fill* 0x8000339a 0x2 d703d703
.text.INTC_GetInterruptHandler
0x8000339c 0x1c liblufa.a(InterruptManagement.o)
0x8000339c INTC_GetInterruptHandler
.text.INTC_Init
0x800033b8 0x34 liblufa.a(InterruptManagement.o)
0x800033b8 INTC_Init
.text.Endpoint_ConfigureEndpoint_Prv
0x800033ec 0xb8 liblufa.a(Endpoint_UC3.o)
0x800033ec Endpoint_ConfigureEndpoint_Prv
.text.Endpoint_ConfigureEndpointTable
0x800034a4 0x90 liblufa.a(Endpoint_UC3.o)
0x800034a4 Endpoint_ConfigureEndpointTable
.text.Endpoint_ClearStatusStage
0x80003534 0xa0 liblufa.a(Endpoint_UC3.o)
0x80003534 Endpoint_ClearStatusStage
.text.Endpoint_WaitUntilReady
0x800035d4 0xa4 liblufa.a(Endpoint_UC3.o)
0x800035d4 Endpoint_WaitUntilReady
.text.Endpoint_Write_Control_Stream_LE
0x80003678 0x188 liblufa.a(EndpointStream_UC3.o)
0x80003678 Endpoint_Write_Control_Stream_LE
.text.atexit 0x80003800 0x14 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
0x80003800 atexit
.text.exit 0x80003814 0x28 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
0x80003814 exit
.text._init_startup
0x8000383c 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
0x8000383c _init_startup
.text._init_argv
0x8000383e 0xa c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
0x8000383e _init_argv
.text._exit 0x80003848 0xa c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
0x80003848 _exit
*fill* 0x80003852 0x2 d703d703
.text._sbrk 0x80003854 0x40 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
0x80003854 _sbrk
.text.__register_exitproc
0x80003894 0xac c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
0x80003894 __register_exitproc
.text.__call_exitprocs
0x80003940 0xd4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
0x80003940 __call_exitprocs
.text.__errno 0x80003a14 0xc c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
0x80003a14 __errno
.text.free 0x80003a20 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
0x80003a20 free
.text.malloc 0x80003a38 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
0x80003a38 malloc
.text._malloc_r
0x80003a50 0x454 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
0x80003a50 _malloc_r
.text.__malloc_lock
0x80003ea4 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
0x80003ea4 __malloc_lock
.text.__malloc_unlock
0x80003ea6 0x2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
0x80003ea6 __malloc_unlock
.text._sbrk_r 0x80003ea8 0x28 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
0x80003ea8 _sbrk_r
.text._malloc_trim_r
0x80003ed0 0xa8 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
0x80003ed0 _malloc_trim_r
.text._free_r 0x80003f78 0x1a4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
0x80003f78 _free_r
.text 0x8000411c 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtend.o
*(.text.*personality*)
*(.gnu.warning)
.exception_handlers
0x80004200 0x200
.exception_handlers
0x80004200 0x200 liblufa.a(Exception.o)
0x80004200 EVBA_Table
0x80004324 Autovector_Table
.fini 0x80004400 0x18
*(.fini)
.fini 0x80004400 0x10 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crti.o
0x80004400 _fini
.fini 0x80004410 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
.fini 0x80004414 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtn.o
0x80004418 PROVIDE (__etext, .)
0x80004418 PROVIDE (_etext, .)
0x80004418 PROVIDE (etext, .)
.rodata 0x80004418 0x104
*(.rodata .rodata.* .gnu.linkonce.r.*)
.rodata.ManufacturerString
0x80004418 0x18 obj/Descriptors.o
0x80004418 ManufacturerString
.rodata.ProductString
0x80004430 0x1c obj/Descriptors.o
0x80004430 ProductString
.rodata.LanguageString
0x8000444c 0x4 obj/Descriptors.o
0x8000444c LanguageString
.rodata.ConfigurationDescriptor
0x80004450 0x3e obj/Descriptors.o
0x80004450 ConfigurationDescriptor
*fill* 0x8000448e 0x2 00
.rodata.CSWTCH.90
0x80004490 0xc obj/Descriptors.o
.rodata.CSWTCH.91
0x8000449c 0x6 obj/Descriptors.o
.rodata.DeviceDescriptor
0x800044a2 0x12 obj/Descriptors.o
0x800044a2 DeviceDescriptor
.rodata.str1.4
0x800044b4 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
.rodata._global_impure_ptr
0x800044b8 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
0x800044b8 _global_impure_ptr
.rodata.__sf_fake_stdin
0x800044bc 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
0x800044bc __sf_fake_stdin
.rodata.__sf_fake_stdout
0x800044dc 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
0x800044dc __sf_fake_stdout
.rodata.__sf_fake_stderr
0x800044fc 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
0x800044fc __sf_fake_stderr
.rodata1
*(.rodata1)
.eh_frame_hdr
*(.eh_frame_hdr)
.eh_frame
*(.eh_frame)
.gcc_except_table
*(.gcc_except_table)
*(.gcc_except_table.*)
.dalign 0x8000451c 0x4
0x80004520 . = ALIGN (0x8)
*fill* 0x8000451c 0x4 00
0x80004520 PROVIDE (_data_lma, .)
0x00000004 PROVIDE (_data, ORIGIN (CPUSRAM))
0x00000004 . = ORIGIN (CPUSRAM)
.eh_frame
*(.eh_frame)
.gcc_except_table
*(.gcc_except_table)
*(.gcc_except_table.*)
.tdata
*(.tdata .tdata.* .gnu.linkonce.td.*)
.tbss
*(.tbss .tbss.* .gnu.linkonce.tb.*)
*(.tcommon)
0x00000004 PROVIDE (__preinit_array_start, ALIGN (0x4))
.preinit_array
*(.preinit_array)
0x00000004 PROVIDE (__preinit_array_end, .)
0x00000004 PROVIDE (__init_array_start, .)
.init_array
*(.init_array)
0x00000004 PROVIDE (__init_array_end, .)
0x00000004 PROVIDE (__fini_array_start, .)
.fini_array
*(.fini_array)
0x00000004 PROVIDE (__fini_array_end, .)
.ctors 0x00000004 0x8 load address 0x80004520
*crtbegin*.o(.ctors)
.ctors 0x00000004 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
*(EXCLUDE_FILE(*crtend*.o) .ctors)
*(SORT(.ctors.*))
*(.ctors)
.ctors 0x00000008 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtend.o
.dtors 0x0000000c 0x8 load address 0x80004528
*crtbegin*.o(.dtors)
.dtors 0x0000000c 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
*(EXCLUDE_FILE(*crtend*.o) .dtors)
*(SORT(.dtors.*))
*(.dtors)
.dtors 0x00000010 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtend.o
0x00000010 __DTOR_END__
.jcr 0x00000014 0x4 load address 0x80004530
*(.jcr)
.jcr 0x00000014 0x0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
.jcr 0x00000014 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtend.o
.data.rel.ro
*(.data.rel.ro.local)
*(.data.rel.ro*)
.dynamic
*(.dynamic)
.got 0x00000018 0xc load address 0x80004534
*(.got.plt)
*(.got)
.got 0x00000018 0xc c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
0x00000018 _GLOBAL_OFFSET_TABLE_
.data 0x00000024 0x53c load address 0x80004540
*(.data .data.* .gnu.linkonce.d.*)
.data.VirtualSerial_CDC_Interface
0x00000024 0x20 obj/main.o
0x00000024 VirtualSerial_CDC_Interface
.data._ZN4aery5portcE
0x00000044 0x4 aery32/libaery32_uc3a1128.a(gpio.o)
0x00000044 aery::portc
.data._ZN4aery5portaE
0x00000048 0x4 aery32/libaery32_uc3a1128.a(gpio.o)
0x00000048 aery::porta
.data._ZN4aery5portbE
0x0000004c 0x4 aery32/libaery32_uc3a1128.a(gpio.o)
0x0000004c aery::portb
.data._ZN4aery2pmE
0x00000050 0x4 aery32/libaery32_uc3a1128.a(pm.o)
0x00000050 aery::pm
.data._ZN4aery4pll0E
0x00000054 0x4 aery32/libaery32_uc3a1128.a(pm.o)
0x00000054 aery::pll0
.data._ZN4aery4pll1E
0x00000058 0x4 aery32/libaery32_uc3a1128.a(pm.o)
0x00000058 aery::pll1
.data.impure_data
0x0000005c 0xf0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
.data._impure_ptr
0x0000014c 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
0x0000014c _impure_ptr
.data.__malloc_av_
0x00000150 0x408 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
0x00000150 __malloc_av_
.data.__malloc_trim_threshold
0x00000558 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
0x00000558 __malloc_trim_threshold
.data.__malloc_sbrk_base
0x0000055c 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
0x0000055c __malloc_sbrk_base
*(.gnu.linkonce.d.*personality*)
.data1
*(.data1)
.balign 0x00000560 0x0 load address 0x80004a7c
0x00000560 . = ALIGN (0x8)
0x00000560 _edata = .
0x00000560 _edata = .
0x00000560 PROVIDE (edata, .)
0x00000560 __bss_start = .
.bss 0x00000560 0xc8 load address 0x80004a7c
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
.bss 0x00000560 0x8 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
.bss 0x00000568 0x4 liblufa.a(Endpoint_UC3.o)
0x00000568 USB_Endpoint_SelectedEndpoint
.bss.cur_heap_pos.1869
0x0000056c 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.bss.__malloc_max_total_mem
0x00000570 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
0x00000570 __malloc_max_total_mem
.bss.__malloc_max_sbrked_mem
0x00000574 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
0x00000574 __malloc_max_sbrked_mem
.bss.__malloc_top_pad
0x00000578 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
0x00000578 __malloc_top_pad
.bss.__malloc_current_mallinfo
0x0000057c 0x28 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
0x0000057c __malloc_current_mallinfo
*(COMMON)
COMMON 0x000005a4 0x3 liblufa.a(DeviceStandardReq.o)
0x000005a4 USB_Device_ConfigurationNumber
0x000005a5 USB_Device_CurrentlySelfPowered
0x000005a6 USB_Device_RemoteWakeupEnabled
COMMON 0x000005a7 0xa liblufa.a(USBTask.o)
0x000005a7 USB_IsInitialized
0x000005a8 USB_DeviceState
0x000005a9 USB_ControlRequest
*fill* 0x000005b1 0x3 00
COMMON 0x000005b4 0x50 liblufa.a(InterruptManagement.o)
0x000005b4 InterruptHandlers
COMMON 0x00000604 0x1c liblufa.a(Endpoint_UC3.o)
0x00000604 USB_Endpoint_FIFOPos
COMMON 0x00000620 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
0x00000620 errno
0x00000628 . = ALIGN (0x8)
*fill* 0x00000624 0x4 00
0x00000628 . = ALIGN (0x8)
0x00000628 _end = .
0x00000628 PROVIDE (end, .)
0x00000628 __heap_start__ = ALIGN (0x8)
0x00007000 . = ((ORIGIN (CPUSRAM) + 0x7ffc) - _stack_size)
0x00007000 __heap_end__ = .
.stab
*(.stab)
.stabstr
*(.stabstr)
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment 0x00000000 0x30
*(.comment)
.comment 0x00000000 0x30 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
0x31 (size before relaxing)
.comment 0x00000000 0x31 obj/board.o
.comment 0x00000000 0x31 obj/main.o
.comment 0x00000000 0x31 obj/Descriptors.o
.comment 0x00000000 0x31 aery32/libaery32_uc3a1128.a(gpio.o)
.comment 0x00000000 0x31 aery32/libaery32_uc3a1128.a(pm.o)
.comment 0x00000000 0x31 liblufa.a(USBController_UC3.o)
.comment 0x00000000 0x31 liblufa.a(USBInterrupt_UC3.o)
.comment 0x00000000 0x31 liblufa.a(DeviceStandardReq.o)
.comment 0x00000000 0x31 liblufa.a(Events.o)
.comment 0x00000000 0x31 liblufa.a(USBTask.o)
.comment 0x00000000 0x31 liblufa.a(CDCClassDevice.o)
.comment 0x00000000 0x31 liblufa.a(InterruptManagement.o)
.comment 0x00000000 0x31 liblufa.a(Endpoint_UC3.o)
.comment 0x00000000 0x31 liblufa.a(EndpointStream_UC3.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
.comment 0x00000000 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtend.o
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x508
*(.debug_aranges)
.debug_aranges
0x00000000 0x30 liblufa.a(USBController_UC3.o)
.debug_aranges
0x00000030 0x30 liblufa.a(USBInterrupt_UC3.o)
.debug_aranges
0x00000060 0x20 liblufa.a(DeviceStandardReq.o)
.debug_aranges
0x00000080 0x20 liblufa.a(Events.o)
.debug_aranges
0x000000a0 0x20 liblufa.a(USBTask.o)
.debug_aranges
0x000000c0 0x70 liblufa.a(CDCClassDevice.o)
.debug_aranges
0x00000130 0x30 liblufa.a(InterruptManagement.o)
.debug_aranges
0x00000160 0x40 liblufa.a(Endpoint_UC3.o)
.debug_aranges
0x000001a0 0x68 liblufa.a(EndpointStream_UC3.o)
.debug_aranges
0x00000208 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
.debug_aranges
0x00000228 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
.debug_aranges
0x00000248 0xf8 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.debug_aranges
0x00000340 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
.debug_aranges
0x00000360 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
.debug_aranges
0x00000380 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
.debug_aranges
0x000003a0 0x80 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.debug_aranges
0x00000420 0x28 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
.debug_aranges
0x00000448 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
.debug_aranges
0x00000468 0x28 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
.debug_aranges
0x00000490 0x30 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.debug_aranges
0x000004c0 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
.debug_aranges
0x000004e0 0x28 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
.debug_pubnames
0x00000000 0xaf4
*(.debug_pubnames)
.debug_pubnames
0x00000000 0x46 liblufa.a(USBController_UC3.o)
.debug_pubnames
0x00000046 0x63 liblufa.a(USBInterrupt_UC3.o)
.debug_pubnames
0x000000a9 0xa1 liblufa.a(DeviceStandardReq.o)
.debug_pubnames
0x0000014a 0x25 liblufa.a(Events.o)
.debug_pubnames
0x0000016f 0x63 liblufa.a(USBTask.o)
.debug_pubnames
0x000001d2 0x14b liblufa.a(CDCClassDevice.o)
.debug_pubnames
0x0000031d 0x6b liblufa.a(InterruptManagement.o)
.debug_pubnames
0x00000388 0xea liblufa.a(Endpoint_UC3.o)
.debug_pubnames
0x00000472 0x14b liblufa.a(EndpointStream_UC3.o)
.debug_pubnames
0x000005bd 0x1d c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
.debug_pubnames
0x000005da 0x1b c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
.debug_pubnames
0x000005f5 0x39 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
.debug_pubnames
0x0000062e 0x171 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.debug_pubnames
0x0000079f 0x2a c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
.debug_pubnames
0x000007c9 0x27 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
.debug_pubnames
0x000007f0 0x1e c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
.debug_pubnames
0x0000080e 0x119 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.debug_pubnames
0x00000927 0x26 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
.debug_pubnames
0x0000094d 0xce c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
.debug_pubnames
0x00000a1b 0x38 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
.debug_pubnames
0x00000a53 0x52 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.debug_pubnames
0x00000aa5 0x1e c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
.debug_pubnames
0x00000ac3 0x31 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
.debug_info 0x00000000 0x5b3e3
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0xc6e6 liblufa.a(USBController_UC3.o)
.debug_info 0x0000c6e6 0xbac6 liblufa.a(USBInterrupt_UC3.o)
.debug_info 0x000181ac 0xbd78 liblufa.a(DeviceStandardReq.o)
.debug_info 0x00023f24 0xa6 liblufa.a(Events.o)
.debug_info 0x00023fca 0xb7e1 liblufa.a(USBTask.o)
.debug_info 0x0002f7ab 0xbf6f liblufa.a(CDCClassDevice.o)
.debug_info 0x0003b71a 0x2f8 liblufa.a(InterruptManagement.o)
.debug_info 0x0003ba12 0xbb4b liblufa.a(Endpoint_UC3.o)
.debug_info 0x0004755d 0xbfae liblufa.a(EndpointStream_UC3.o)
.debug_info 0x0005350b 0xc5 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
.debug_info 0x000535d0 0x8b7 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
.debug_info 0x00053e87 0x960 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
.debug_info 0x000547e7 0x93a c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.debug_info 0x00055121 0x92c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
.debug_info 0x00055a4d 0x931 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
.debug_info 0x0005637e 0x8a6 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
.debug_info 0x00056c24 0xc2a c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.debug_info 0x0005784e 0x8ea c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
.debug_info 0x00058138 0xc4e c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
.debug_info 0x00058d86 0x8cf c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
.debug_info 0x00059655 0x973 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.debug_info 0x00059fc8 0x8de c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
.debug_info 0x0005a8a6 0xb3d c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
.debug_abbrev 0x00000000 0x296b
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x22f liblufa.a(USBController_UC3.o)
.debug_abbrev 0x0000022f 0x218 liblufa.a(USBInterrupt_UC3.o)
.debug_abbrev 0x00000447 0x2ed liblufa.a(DeviceStandardReq.o)
.debug_abbrev 0x00000734 0x4c liblufa.a(Events.o)
.debug_abbrev 0x00000780 0x206 liblufa.a(USBTask.o)
.debug_abbrev 0x00000986 0x2f5 liblufa.a(CDCClassDevice.o)
.debug_abbrev 0x00000c7b 0x18e liblufa.a(InterruptManagement.o)
.debug_abbrev 0x00000e09 0x2ce liblufa.a(Endpoint_UC3.o)
.debug_abbrev 0x000010d7 0x257 liblufa.a(EndpointStream_UC3.o)
.debug_abbrev 0x0000132e 0x81 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
.debug_abbrev 0x000013af 0x15f c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
.debug_abbrev 0x0000150e 0x160 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
.debug_abbrev 0x0000166e 0x19a c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.debug_abbrev 0x00001808 0x1b5 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
.debug_abbrev 0x000019bd 0x1bc c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
.debug_abbrev 0x00001b79 0x150 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
.debug_abbrev 0x00001cc9 0x28c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.debug_abbrev 0x00001f55 0x178 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
.debug_abbrev 0x000020cd 0x205 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
.debug_abbrev 0x000022d2 0x15b c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
.debug_abbrev 0x0000242d 0x1e6 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.debug_abbrev 0x00002613 0x17f c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
.debug_abbrev 0x00002792 0x1d9 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
.debug_line 0x00000000 0x93c6
*(.debug_line)
.debug_line 0x00000000 0x977 liblufa.a(USBController_UC3.o)
.debug_line 0x00000977 0xb54 liblufa.a(USBInterrupt_UC3.o)
.debug_line 0x000014cb 0xd30 liblufa.a(DeviceStandardReq.o)
.debug_line 0x000021fb 0x549 liblufa.a(Events.o)
.debug_line 0x00002744 0x867 liblufa.a(USBTask.o)
.debug_line 0x00002fab 0x1813 liblufa.a(CDCClassDevice.o)
.debug_line 0x000047be 0x59b liblufa.a(InterruptManagement.o)
.debug_line 0x00004d59 0xc51 liblufa.a(Endpoint_UC3.o)
.debug_line 0x000059aa 0x148b liblufa.a(EndpointStream_UC3.o)
.debug_line 0x00006e35 0xfc c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
.debug_line 0x00006f31 0x1f5 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
.debug_line 0x00007126 0x166 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
.debug_line 0x0000728c 0x562 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.debug_line 0x000077ee 0x221 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
.debug_line 0x00007a0f 0x264 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
.debug_line 0x00007c73 0x18c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
.debug_line 0x00007dff 0x555 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.debug_line 0x00008354 0x1fd c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
.debug_line 0x00008551 0x52f c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
.debug_line 0x00008a80 0x192 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
.debug_line 0x00008c12 0x2aa c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.debug_line 0x00008ebc 0x200 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
.debug_line 0x000090bc 0x30a c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
.debug_frame 0x00000000 0xdd4
*(.debug_frame)
.debug_frame 0x00000000 0x4c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
.debug_frame 0x0000004c 0x2c obj/board.o
.debug_frame 0x00000078 0x78 obj/main.o
.debug_frame 0x000000f0 0x20 obj/Descriptors.o
.debug_frame 0x00000110 0x38 aery32/libaery32_uc3a1128.a(gpio.o)
.debug_frame 0x00000148 0xf4 aery32/libaery32_uc3a1128.a(pm.o)
.debug_frame 0x0000023c 0x60 liblufa.a(USBController_UC3.o)
.debug_frame 0x0000029c 0x48 liblufa.a(USBInterrupt_UC3.o)
.debug_frame 0x000002e4 0x38 liblufa.a(DeviceStandardReq.o)
.debug_frame 0x0000031c 0x20 liblufa.a(Events.o)
.debug_frame 0x0000033c 0x2c liblufa.a(USBTask.o)
.debug_frame 0x00000368 0x130 liblufa.a(CDCClassDevice.o)
.debug_frame 0x00000498 0x40 liblufa.a(InterruptManagement.o)
.debug_frame 0x000004d8 0xc0 liblufa.a(Endpoint_UC3.o)
.debug_frame 0x00000598 0x1f8 liblufa.a(EndpointStream_UC3.o)
.debug_frame 0x00000790 0x28 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
.debug_frame 0x000007b8 0x34 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
.debug_frame 0x000007ec 0x220 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.debug_frame 0x00000a0c 0x40 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
.debug_frame 0x00000a4c 0x44 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
.debug_frame 0x00000a90 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
.debug_frame 0x00000ab0 0x13c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.debug_frame 0x00000bec 0x40 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
.debug_frame 0x00000c2c 0x40 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
.debug_frame 0x00000c6c 0x30 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
.debug_frame 0x00000c9c 0x80 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.debug_frame 0x00000d1c 0x34 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
.debug_frame 0x00000d50 0x58 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
.debug_frame 0x00000da8 0x2c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtend.o
.debug_str 0x00000000 0x5510
*(.debug_str)
.debug_str 0x00000000 0x35a0 liblufa.a(USBController_UC3.o)
0x37ad (size before relaxing)
.debug_str 0x000035a0 0xfe liblufa.a(USBInterrupt_UC3.o)
0x33d6 (size before relaxing)
.debug_str 0x0000369e 0x4a6 liblufa.a(DeviceStandardReq.o)
0x36fd (size before relaxing)
.debug_str 0x00003b44 0x2e liblufa.a(Events.o)
0x10e (size before relaxing)
.debug_str 0x00003b72 0x82 liblufa.a(USBTask.o)
0x32cc (size before relaxing)
.debug_str 0x00003bf4 0x580 liblufa.a(CDCClassDevice.o)
0x3894 (size before relaxing)
.debug_str 0x00004174 0x12b liblufa.a(InterruptManagement.o)
0x22d (size before relaxing)
.debug_str 0x0000429f 0x17f liblufa.a(Endpoint_UC3.o)
0x3561 (size before relaxing)
.debug_str 0x0000441e 0x239 liblufa.a(EndpointStream_UC3.o)
0x3614 (size before relaxing)
.debug_str 0x00004657 0x88 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
0x124 (size before relaxing)
.debug_str 0x000046df 0x3aa c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
0x49e (size before relaxing)
.debug_str 0x00004a89 0xa2 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
0x4ec (size before relaxing)
.debug_str 0x00004b2b 0x31d c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
0x427 (size before relaxing)
.debug_str 0x00004e48 0x6e c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
0x4eb (size before relaxing)
.debug_str 0x00004eb6 0x7e c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
0x4c6 (size before relaxing)
.debug_str 0x00004f34 0x5e c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
0x495 (size before relaxing)
.debug_str 0x00004f92 0x11f c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
0x5c6 (size before relaxing)
.debug_str 0x000050b1 0x77 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
0x4ae (size before relaxing)
.debug_str 0x00005128 0x225 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
0x683 (size before relaxing)
.debug_str 0x0000534d 0x8a c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
0x4b5 (size before relaxing)
.debug_str 0x000053d7 0x90 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
0x4d2 (size before relaxing)
.debug_str 0x00005467 0x6d c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
0x49e (size before relaxing)
.debug_str 0x000054d4 0x3c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
0x5d5 (size before relaxing)
.debug_loc 0x00000000 0x240f
*(.debug_loc)
.debug_loc 0x00000000 0x5d liblufa.a(USBController_UC3.o)
.debug_loc 0x0000005d 0x1f liblufa.a(USBInterrupt_UC3.o)
.debug_loc 0x0000007c 0x139 liblufa.a(DeviceStandardReq.o)
.debug_loc 0x000001b5 0x1f liblufa.a(USBTask.o)
.debug_loc 0x000001d4 0x387 liblufa.a(CDCClassDevice.o)
.debug_loc 0x0000055b 0x13 liblufa.a(InterruptManagement.o)
.debug_loc 0x0000056e 0x231 liblufa.a(Endpoint_UC3.o)
.debug_loc 0x0000079f 0xac4 liblufa.a(EndpointStream_UC3.o)
.debug_loc 0x00001263 0x32 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
.debug_loc 0x00001295 0x3d c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
.debug_loc 0x000012d2 0x268 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.debug_loc 0x0000153a 0xe9 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
.debug_loc 0x00001623 0xf0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
.debug_loc 0x00001713 0x202 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.debug_loc 0x00001915 0x64 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
.debug_loc 0x00001979 0x5a5 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
.debug_loc 0x00001f1e 0x10a c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.debug_loc 0x00002028 0x63 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
.debug_loc 0x0000208b 0x384 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
.debug_macinfo 0x00000000 0x78e197
*(.debug_macinfo)
.debug_macinfo
0x00000000 0xd6263 liblufa.a(USBController_UC3.o)
.debug_macinfo
0x000d6263 0xd6254 liblufa.a(USBInterrupt_UC3.o)
.debug_macinfo
0x001ac4b7 0xd6622 liblufa.a(DeviceStandardReq.o)
.debug_macinfo
0x00282ad9 0xd577b liblufa.a(Events.o)
.debug_macinfo
0x00358254 0xd6268 liblufa.a(USBTask.o)
.debug_macinfo
0x0042e4bc 0xdd4e3 liblufa.a(CDCClassDevice.o)
.debug_macinfo
0x0050b99f 0xd5733 liblufa.a(InterruptManagement.o)
.debug_macinfo
0x005e10d2 0xd6268 liblufa.a(Endpoint_UC3.o)
.debug_macinfo
0x006b733a 0xd6e5d liblufa.a(EndpointStream_UC3.o)
.debug_weaknames
*(.debug_weaknames)
.debug_funcnames
*(.debug_funcnames)
.debug_typenames
*(.debug_typenames)
.debug_varnames
*(.debug_varnames)
.stack 0x00007000 0x1000
0x00007000 _stack = .
*(.stack)
0x00001000 . = _stack_size
*fill* 0x00007000 0x1000 00
0x00008000 _estack = .
.userpage
*(.userpage .userpage.*)
.factorypage
*(.factorypage .factorypage.*)
/DISCARD/
*(.note.GNU-stack)
OUTPUT(lufaery32.elf elf32-avr32)
.debug_ranges 0x00000000 0xe70
.debug_ranges 0x00000000 0x70 liblufa.a(USBController_UC3.o)
.debug_ranges 0x00000070 0x70 liblufa.a(USBInterrupt_UC3.o)
.debug_ranges 0x000000e0 0x1f8 liblufa.a(DeviceStandardReq.o)
.debug_ranges 0x000002d8 0x18 liblufa.a(Events.o)
.debug_ranges 0x000002f0 0x48 liblufa.a(USBTask.o)
.debug_ranges 0x00000338 0x1f8 liblufa.a(CDCClassDevice.o)
.debug_ranges 0x00000530 0x28 liblufa.a(InterruptManagement.o)
.debug_ranges 0x00000558 0x1e8 liblufa.a(Endpoint_UC3.o)
.debug_ranges 0x00000740 0x460 liblufa.a(EndpointStream_UC3.o)
.debug_ranges 0x00000ba0 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
.debug_ranges 0x00000bb8 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
.debug_ranges 0x00000bd0 0xf0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
.debug_ranges 0x00000cc0 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
.debug_ranges 0x00000cd8 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
.debug_ranges 0x00000cf0 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
.debug_ranges 0x00000d08 0xb0 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
.debug_ranges 0x00000db8 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
.debug_ranges 0x00000dd8 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
.debug_ranges 0x00000df0 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
.debug_ranges 0x00000e10 0x28 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
.debug_ranges 0x00000e38 0x18 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
.debug_ranges 0x00000e50 0x20 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
Cross Reference Table
Symbol File
Autovector_Table liblufa.a(Exception.o)
liblufa.a(InterruptManagement.o)
obj/main.o
CALLBACK_USB_GetDescriptor obj/Descriptors.o
liblufa.a(DeviceStandardReq.o)
CDC_Device_BytesReceived liblufa.a(CDCClassDevice.o)
CDC_Device_ConfigureEndpoints liblufa.a(CDCClassDevice.o)
obj/main.o
CDC_Device_Event_Stub liblufa.a(CDCClassDevice.o)
CDC_Device_Flush liblufa.a(CDCClassDevice.o)
CDC_Device_ProcessControlRequest liblufa.a(CDCClassDevice.o)
obj/main.o
CDC_Device_ReceiveByte liblufa.a(CDCClassDevice.o)
CDC_Device_SendByte liblufa.a(CDCClassDevice.o)
obj/main.o
CDC_Device_SendControlLineStateChange liblufa.a(CDCClassDevice.o)
CDC_Device_SendData liblufa.a(CDCClassDevice.o)
CDC_Device_SendString liblufa.a(CDCClassDevice.o)
CDC_Device_USBTask liblufa.a(CDCClassDevice.o)
obj/main.o
ConfigurationDescriptor obj/Descriptors.o
DeviceDescriptor obj/Descriptors.o
EVBA_Table liblufa.a(Exception.o)
liblufa.a(InterruptManagement.o)
EVENT_CDC_Device_BreakSent liblufa.a(CDCClassDevice.o)
EVENT_CDC_Device_ControLineStateChanged liblufa.a(CDCClassDevice.o)
EVENT_CDC_Device_LineEncodingChanged liblufa.a(CDCClassDevice.o)
EVENT_USB_Device_ConfigurationChanged obj/main.o
liblufa.a(DeviceStandardReq.o)
EVENT_USB_Device_Connect obj/main.o
liblufa.a(USBInterrupt_UC3.o)
EVENT_USB_Device_ControlRequest obj/main.o
liblufa.a(DeviceStandardReq.o)
EVENT_USB_Device_Disconnect obj/main.o
liblufa.a(USBInterrupt_UC3.o)
EVENT_USB_Device_Reset liblufa.a(Events.o)
liblufa.a(USBInterrupt_UC3.o)
EVENT_USB_Device_StartOfFrame liblufa.a(Events.o)
liblufa.a(USBInterrupt_UC3.o)
EVENT_USB_Device_Suspend liblufa.a(Events.o)
liblufa.a(USBInterrupt_UC3.o)
EVENT_USB_Device_WakeUp liblufa.a(Events.o)
liblufa.a(USBInterrupt_UC3.o)
Endpoint_ClearEndpoints liblufa.a(Endpoint_UC3.o)
Endpoint_ClearStatusStage liblufa.a(Endpoint_UC3.o)
liblufa.a(CDCClassDevice.o)
liblufa.a(DeviceStandardReq.o)
Endpoint_ConfigureEndpointTable liblufa.a(Endpoint_UC3.o)
liblufa.a(CDCClassDevice.o)
Endpoint_ConfigureEndpoint_Prv liblufa.a(Endpoint_UC3.o)
liblufa.a(USBInterrupt_UC3.o)
liblufa.a(USBController_UC3.o)
Endpoint_Discard_Stream liblufa.a(EndpointStream_UC3.o)
Endpoint_Null_Stream liblufa.a(EndpointStream_UC3.o)
Endpoint_Read_Control_Stream_BE liblufa.a(EndpointStream_UC3.o)
Endpoint_Read_Control_Stream_LE liblufa.a(EndpointStream_UC3.o)
Endpoint_Read_Stream_BE liblufa.a(EndpointStream_UC3.o)
Endpoint_Read_Stream_LE liblufa.a(EndpointStream_UC3.o)
Endpoint_WaitUntilReady liblufa.a(Endpoint_UC3.o)
liblufa.a(EndpointStream_UC3.o)
liblufa.a(CDCClassDevice.o)
Endpoint_Write_Control_Stream_BE liblufa.a(EndpointStream_UC3.o)
Endpoint_Write_Control_Stream_LE liblufa.a(EndpointStream_UC3.o)
liblufa.a(DeviceStandardReq.o)
Endpoint_Write_Stream_BE liblufa.a(EndpointStream_UC3.o)
Endpoint_Write_Stream_LE liblufa.a(EndpointStream_UC3.o)
liblufa.a(CDCClassDevice.o)
INTC_GetInterruptHandler liblufa.a(InterruptManagement.o)
liblufa.a(Exception.o)
INTC_Init liblufa.a(InterruptManagement.o)
obj/main.o
InterruptHandlers liblufa.a(InterruptManagement.o)
obj/main.o
LanguageString obj/Descriptors.o
ManufacturerString obj/Descriptors.o
ProductString obj/Descriptors.o
USB_ControlRequest liblufa.a(EndpointStream_UC3.o)
liblufa.a(Endpoint_UC3.o)
liblufa.a(CDCClassDevice.o)
liblufa.a(USBTask.o)
liblufa.a(DeviceStandardReq.o)
USB_DeviceState liblufa.a(EndpointStream_UC3.o)
liblufa.a(Endpoint_UC3.o)
liblufa.a(CDCClassDevice.o)
liblufa.a(USBTask.o)
liblufa.a(DeviceStandardReq.o)
liblufa.a(USBInterrupt_UC3.o)
liblufa.a(USBController_UC3.o)
USB_Device_ConfigurationNumber liblufa.a(DeviceStandardReq.o)
liblufa.a(USBInterrupt_UC3.o)
liblufa.a(USBController_UC3.o)
USB_Device_CurrentlySelfPowered liblufa.a(DeviceStandardReq.o)
liblufa.a(USBController_UC3.o)
USB_Device_ProcessControlRequest liblufa.a(DeviceStandardReq.o)
liblufa.a(USBTask.o)
USB_Device_RemoteWakeupEnabled liblufa.a(DeviceStandardReq.o)
liblufa.a(USBController_UC3.o)
USB_Disable liblufa.a(USBController_UC3.o)
USB_Endpoint_FIFOPos liblufa.a(EndpointStream_UC3.o)
liblufa.a(Endpoint_UC3.o)
liblufa.a(CDCClassDevice.o)
liblufa.a(DeviceStandardReq.o)
USB_Endpoint_SelectedEndpoint liblufa.a(Endpoint_UC3.o)
liblufa.a(EndpointStream_UC3.o)
liblufa.a(CDCClassDevice.o)
liblufa.a(USBTask.o)
liblufa.a(DeviceStandardReq.o)
USB_Event_Stub liblufa.a(Events.o)
USB_GEN_vect liblufa.a(USBInterrupt_UC3.o)
obj/main.o
USB_INT_ClearAllInterrupts liblufa.a(USBInterrupt_UC3.o)
liblufa.a(USBController_UC3.o)
USB_INT_DisableAllInterrupts liblufa.a(USBInterrupt_UC3.o)
liblufa.a(USBController_UC3.o)
USB_Init liblufa.a(USBController_UC3.o)
obj/main.o
USB_IsInitialized liblufa.a(USBTask.o)
liblufa.a(USBController_UC3.o)
USB_ResetInterface liblufa.a(USBController_UC3.o)
USB_USBTask liblufa.a(USBTask.o)
liblufa.a(EndpointStream_UC3.o)
obj/main.o
Unhandled_Interrupt liblufa.a(InterruptManagement.o)
VirtualSerial_CDC_Interface obj/main.o
_GLOBAL_OFFSET_TABLE_ c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crti.o
_Jv_RegisterClasses c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
__DTOR_END__ c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtend.o
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
__call_exitprocs c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
__dso_handle c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o
__errno c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
__fp_lock_all c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
__fp_unlock_all c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
__heap_end__ c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
__heap_start__ c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
__malloc_av_ c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
__malloc_current_mallinfo c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
__malloc_lock c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
__malloc_max_sbrked_mem c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
__malloc_max_total_mem c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
__malloc_sbrk_base c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
__malloc_top_pad c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
__malloc_trim_threshold c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
__malloc_unlock c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mlock.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
__register_exitproc c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
__sclose c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
__sf_fake_stderr c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
__sf_fake_stdin c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
__sf_fake_stdout c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
__sfmoreglue c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
__sfp c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
__sfp_lock_acquire c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
__sfp_lock_release c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
__sinit c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
__sinit_lock_acquire c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
__sinit_lock_release c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
__sread c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
__sseek c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
__swrite c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
_cleanup c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
_cleanup_r c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
_close c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
_close_r c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
_data c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
_data_lma c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
_edata c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
_end c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
_estack c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
_execve c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_exit c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
_fclose_r c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
_fcntl c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_fflush_r c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
_fini c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crti.o
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
_fork c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_free_r c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
_fstat c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_fstat_host c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_fwalk c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
_fwalk_reent c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fwalk.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
_getpid c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_gettimeofday c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_gettimeofday_host c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_global_impure_ptr c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
_impure_ptr c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-impure.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-errno.o)
_init c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crti.o
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
_init_argv c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
_init_startup c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
_kill c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_link c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_lseek c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
_lseek_r c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
_malloc_r c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
_malloc_trim_r c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
_open c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_read c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
_read_r c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
_reclaim_reent c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
_sbrk c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
_sbrk_r c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-freer.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-mallocr.o)
_start c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
_stat c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_stat_host c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_stext c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
_system c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_times c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_unlink c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_wait c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
_wrapup_reent c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
_write c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
_write_r c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-stdio.o)
aery::gpio_init_pin(unsigned char, int) aery32/libaery32_uc3a1128.a(gpio.o)
obj/main.o
aery::gpio_init_pins(avr32_gpio_port_t volatile*, unsigned long, int) aery32/libaery32_uc3a1128.a(gpio.o)
obj/board.o
aery::lporta aery32/libaery32_uc3a1128.a(gpio.o)
aery::lportb aery32/libaery32_uc3a1128.a(gpio.o)
aery::lportc aery32/libaery32_uc3a1128.a(gpio.o)
aery::pll0 aery32/libaery32_uc3a1128.a(pm.o)
obj/board.o
aery::pll1 aery32/libaery32_uc3a1128.a(pm.o)
obj/board.o
aery::pm aery32/libaery32_uc3a1128.a(pm.o)
obj/board.o
aery::pm_disable_gclk(aery::Pm_gclk) aery32/libaery32_uc3a1128.a(pm.o)
aery::pm_enable_gclk(aery::Pm_gclk) aery32/libaery32_uc3a1128.a(pm.o)
obj/main.o
aery::pm_enable_pll(avr32_pm_pll_t volatile*, bool) aery32/libaery32_uc3a1128.a(pm.o)
obj/board.o
aery::pm_get_fclkdomain(unsigned char) aery32/libaery32_uc3a1128.a(pm.o)
aery::pm_get_fmck() aery32/libaery32_uc3a1128.a(pm.o)
aery::pm_init_gclk(aery::Pm_gclk, aery::Pm_gclk_source, unsigned short) aery32/libaery32_uc3a1128.a(pm.o)
obj/main.o
aery::pm_init_pllvco(avr32_pm_pll_t volatile*, aery::Pm_pll_source, unsigned char, unsigned char, bool) aery32/libaery32_uc3a1128.a(pm.o)
obj/board.o
aery::pm_select_mck(aery::Pm_mck_source) aery32/libaery32_uc3a1128.a(pm.o)
obj/board.o
aery::pm_setup_clkdomain(unsigned char, unsigned char) aery32/libaery32_uc3a1128.a(pm.o)
aery::pm_start_osc(unsigned char, aery::Pm_osc_mode, aery::Pm_osc_startup) aery32/libaery32_uc3a1128.a(pm.o)
obj/board.o
aery::pm_wait_osc_to_stabilize(unsigned char) aery32/libaery32_uc3a1128.a(pm.o)
obj/board.o
aery::pm_wait_pll_to_lock(avr32_pm_pll_t volatile*) aery32/libaery32_uc3a1128.a(pm.o)
obj/board.o
aery::porta aery32/libaery32_uc3a1128.a(gpio.o)
obj/board.o
aery::portb aery32/libaery32_uc3a1128.a(gpio.o)
obj/board.o
aery::portc aery32/libaery32_uc3a1128.a(gpio.o)
obj/board.o
atexit c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-atexit.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
cleanup_glue c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
errno c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-readr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-lseekr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-closer.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-writer.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-sbrkr.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-reent.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
exit c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-exit.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
fclose c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fclose.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
fflush c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-fflush.o)
free c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__call_atexit.o)
init_board() obj/board.o
obj/main.o
isatty c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
main obj/main.o
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2/crt0.o
malloc c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-malloc.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-__atexit.o)
memcpy c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memcpy.o)
liblufa.a(CDCClassDevice.o)
memset c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-memset.o)
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-findfp.o)
sigfillset c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
sigprocmask c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-syscalls.o)
strlen c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/../../../../avr32/lib/ucr2\libc.a(lib_a-strlen.o)
liblufa.a(CDCClassDevice.o)
@kblomqvist
Copy link
Author

  • LUFA compiled with -O2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment