Created
July 28, 2012 20:05
-
-
Save kblomqvist/3194586 to your computer and use it in GitHub Desktop.
Aery32+LUFA, https://github.com/kblomqvist/aery32-plus-lufa
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 000029e4 80002024 80002024 00000424 2**2 | |
CONTENTS, ALLOC, LOAD, READONLY, CODE | |
4 .exception_handlers 00000200 80004c00 80004c00 00003000 2**9 | |
CONTENTS, ALLOC, LOAD, READONLY, CODE | |
5 .fini 00000018 80004e00 80004e00 00003200 2**2 | |
CONTENTS, ALLOC, LOAD, READONLY, CODE | |
6 .rodata 00000068 80004e18 80004e18 00003218 2**2 | |
CONTENTS, ALLOC, LOAD, READONLY, DATA | |
7 .ctors 00000008 00000004 80004e80 00003404 2**2 | |
CONTENTS, ALLOC, LOAD, DATA | |
8 .dtors 00000008 0000000c 80004e88 0000340c 2**2 | |
CONTENTS, ALLOC, LOAD, DATA | |
9 .jcr 00000004 00000014 80004e90 00003414 2**2 | |
CONTENTS, ALLOC, LOAD, DATA | |
10 .got 0000000c 00000018 80004e94 00003418 2**2 | |
CONTENTS, ALLOC, LOAD, DATA | |
11 .data 00000548 00000024 80004ea0 00003424 2**2 | |
CONTENTS, ALLOC, LOAD, DATA | |
12 .balign 00000004 0000056c 800053e8 0000396c 2**0 | |
ALLOC | |
13 .bss 000000c8 00000570 800053e8 00003970 2**2 | |
ALLOC | |
14 .comment 00000030 00000000 00000000 0000396c 2**0 | |
CONTENTS, READONLY | |
15 .debug_aranges 000005c8 00000000 00000000 0000399c 2**0 | |
CONTENTS, READONLY, DEBUGGING | |
16 .debug_pubnames 00000eb3 00000000 00000000 00003f64 2**0 | |
CONTENTS, READONLY, DEBUGGING | |
17 .debug_info 0005f973 00000000 00000000 00004e17 2**0 | |
CONTENTS, READONLY, DEBUGGING | |
18 .debug_abbrev 0000325d 00000000 00000000 0006478a 2**0 | |
CONTENTS, READONLY, DEBUGGING | |
19 .debug_line 0000b854 00000000 00000000 000679e7 2**0 | |
CONTENTS, READONLY, DEBUGGING | |
20 .debug_frame 00000edc 00000000 00000000 0007323c 2**2 | |
CONTENTS, READONLY, DEBUGGING | |
21 .debug_str 000069bf 00000000 00000000 00074118 2**0 | |
CONTENTS, READONLY, DEBUGGING | |
22 .debug_loc 00002860 00000000 00000000 0007aad7 2**0 | |
CONTENTS, READONLY, DEBUGGING | |
23 .debug_macinfo 00bc2217 00000000 00000000 0007d337 2**0 | |
CONTENTS, READONLY, DEBUGGING | |
24 .stack 00001000 00007000 00007000 00000400 2**0 | |
ALLOC | |
25 .debug_ranges 00000e10 00000000 00000000 00c3f54e 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: 4e 80 lddpc r0,8000221c <_ZN4aeryL17gpio_set_pin_highEh+0x10> | |
80002080: 00 00 add r0,r0 | |
80002082: 00 04 add r4,r0 | |
80002084: 00 00 add r0,r0 | |
80002086: 05 70 ld.ub r0,--r2 | |
80002088: 00 00 add r0,r0 | |
8000208a: 06 38 cp.w r8,r3 | |
8000208c: 80 00 ld.sh r0,r0[0x0] | |
8000208e: 41 0a lddsp r10,sp[0x40] | |
80002090: 80 00 ld.sh r0,r0[0x0] | |
80002092: 4e 00 lddpc r0,80002210 <_ZN4aeryL17gpio_set_pin_highEh+0x4> | |
80002094: 80 00 ld.sh r0,r0[0x0] | |
80002096: 40 c0 lddsp r0,sp[0x30] | |
80002098: 80 00 ld.sh r0,r0[0x0] | |
8000209a: 20 08 sub r8,0 | |
8000209c: 80 00 ld.sh r0,r0[0x0] | |
8000209e: 41 0c lddsp r12,sp[0x40] | |
800020a0: 80 00 ld.sh r0,r0[0x0] | |
800020a2: 22 88 sub r8,40 | |
800020a4: 80 00 ld.sh r0,r0[0x0] | |
800020a6: 40 d4 lddsp r4,sp[0x34] | |
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 70 ld.ub r0,--r2 | |
800020e4: 00 00 add r0,r0 | |
800020e6: 05 74 ld.ub 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>: | |
#include <aery32/gpio.h> | |
using namespace aery; | |
void init_board(void) | |
{ | |
8000210c: eb cd 40 80 pushm r7,lr | |
80002110: 1a 97 mov r7,sp | |
gpio_init_pins(porta, 0xffffffff, GPIO_INPUT); | |
80002112: 4b 28 lddpc r8,800021d8 <_Z10init_boardv+0xcc> | |
80002114: 70 08 ld.w r8,r8[0x0] | |
80002116: 30 0a mov r10,0 | |
80002118: 3f fb mov r11,-1 | |
8000211a: 10 9c mov r12,r8 | |
8000211c: f0 1f 00 30 mcall 800021dc <_Z10init_boardv+0xd0> | |
gpio_init_pins(portb, 0xffffffff, GPIO_INPUT); | |
80002120: 4b 08 lddpc r8,800021e0 <_Z10init_boardv+0xd4> | |
80002122: 70 08 ld.w r8,r8[0x0] | |
80002124: 30 0a mov r10,0 | |
80002126: 3f fb mov r11,-1 | |
80002128: 10 9c mov r12,r8 | |
8000212a: f0 1f 00 2d mcall 800021dc <_Z10init_boardv+0xd0> | |
gpio_init_pins(portc, 0x0000003f, GPIO_INPUT); | |
8000212e: 4a e8 lddpc r8,800021e4 <_Z10init_boardv+0xd8> | |
80002130: 70 08 ld.w r8,r8[0x0] | |
80002132: 30 0a mov r10,0 | |
80002134: 33 fb mov r11,63 | |
80002136: 10 9c mov r12,r8 | |
80002138: f0 1f 00 29 mcall 800021dc <_Z10init_boardv+0xd0> | |
pm_start_osc(0, OSC_MODE_GAIN3, OSC_STARTUP_36ms); | |
8000213c: 30 4a mov r10,4 | |
8000213e: 30 7b mov r11,7 | |
80002140: 30 0c mov r12,0 | |
80002142: f0 1f 00 2a mcall 800021e8 <_Z10init_boardv+0xdc> | |
pm_wait_osc_to_stabilize(0); | |
80002146: 30 0c mov r12,0 | |
80002148: f0 1f 00 29 mcall 800021ec <_Z10init_boardv+0xe0> | |
/* Initialize f_vco0 to 132 MHz. Then divide this by two to get 66 MHz. */ | |
pm_init_pllvco(pll0, PLL_SOURCE_OSC0, 11, 1, false); | |
8000214c: 4a 98 lddpc r8,800021f0 <_Z10init_boardv+0xe4> | |
8000214e: 70 0c ld.w r12,r8[0x0] | |
80002150: 30 08 mov r8,0 | |
80002152: 30 19 mov r9,1 | |
80002154: 30 ba mov r10,11 | |
80002156: 30 0b mov r11,0 | |
80002158: f0 1f 00 27 mcall 800021f4 <_Z10init_boardv+0xe8> | |
pm_enable_pll(pll0, true); | |
8000215c: 4a 58 lddpc r8,800021f0 <_Z10init_boardv+0xe4> | |
8000215e: 70 08 ld.w r8,r8[0x0] | |
80002160: 30 1b mov r11,1 | |
80002162: 10 9c mov r12,r8 | |
80002164: f0 1f 00 25 mcall 800021f8 <_Z10init_boardv+0xec> | |
pm_wait_pll_to_lock(pll0); | |
80002168: 4a 28 lddpc r8,800021f0 <_Z10init_boardv+0xe4> | |
8000216a: 70 08 ld.w r8,r8[0x0] | |
8000216c: 10 9c mov r12,r8 | |
8000216e: f0 1f 00 24 mcall 800021fc <_Z10init_boardv+0xf0> | |
/* | |
* Also initialize and enable PLL1; 96 MHz is a good choice as it can be | |
* used for USB when divided by two when initialized as a general clock. | |
*/ | |
pm_init_pllvco(pll1, PLL_SOURCE_OSC0, 16, 1, true); | |
80002172: 4a 48 lddpc r8,80002200 <_Z10init_boardv+0xf4> | |
80002174: 70 0c ld.w r12,r8[0x0] | |
80002176: 30 18 mov r8,1 | |
80002178: 30 19 mov r9,1 | |
8000217a: 31 0a mov r10,16 | |
8000217c: 30 0b mov r11,0 | |
8000217e: f0 1f 00 1e mcall 800021f4 <_Z10init_boardv+0xe8> | |
pm_enable_pll(pll1, true); | |
80002182: 4a 08 lddpc r8,80002200 <_Z10init_boardv+0xf4> | |
80002184: 70 08 ld.w r8,r8[0x0] | |
80002186: 30 1b mov r11,1 | |
80002188: 10 9c mov r12,r8 | |
8000218a: f0 1f 00 1c mcall 800021f8 <_Z10init_boardv+0xec> | |
pm_wait_pll_to_lock(pll1); | |
8000218e: 49 d8 lddpc r8,80002200 <_Z10init_boardv+0xf4> | |
80002190: 70 08 ld.w r8,r8[0x0] | |
80002192: 10 9c mov r12,r8 | |
80002194: f0 1f 00 1a mcall 800021fc <_Z10init_boardv+0xf0> | |
/* For CPU clock speed over 33 MHz, flash wait state has to be set 1 */ | |
AVR32_FLASHC.FCR.fws = 1; | |
80002198: fe 69 14 00 mov r9,-125952 | |
8000219c: 72 08 ld.w r8,r9[0x0] | |
8000219e: 30 1a mov r10,1 | |
800021a0: f1 da d0 c1 bfins r8,r10,0x6,0x1 | |
800021a4: 93 08 st.w r9[0x0],r8 | |
/* Set main clock source to PLL0 (66 MHz) */ | |
pm_select_mck(MCK_SOURCE_PLL0); | |
800021a6: 30 2c mov r12,2 | |
800021a8: f0 1f 00 17 mcall 80002204 <_Z10init_boardv+0xf8> | |
/* | |
* Peripheral clock masking. By default all modules are enabled. | |
* You might be interested in to disable modules you are not using. */ | |
pm->hsbmask = HSBMASK_DEFAULT; | |
800021ac: 49 78 lddpc r8,80002208 <_Z10init_boardv+0xfc> | |
800021ae: 70 08 ld.w r8,r8[0x0] | |
800021b0: 3f f9 mov r9,-1 | |
800021b2: 91 39 st.w r8[0xc],r9 | |
pm->pbamask = PBAMASK_DEFAULT; | |
800021b4: 49 58 lddpc r8,80002208 <_Z10init_boardv+0xfc> | |
800021b6: 70 08 ld.w r8,r8[0x0] | |
800021b8: 3f f9 mov r9,-1 | |
800021ba: 91 49 st.w r8[0x10],r9 | |
pm->pbbmask = PBBMASK_DEFAULT; | |
800021bc: 49 38 lddpc r8,80002208 <_Z10init_boardv+0xfc> | |
800021be: 70 08 ld.w r8,r8[0x0] | |
800021c0: 3f f9 mov r9,-1 | |
800021c2: 91 59 st.w r8[0x14],r9 | |
while (!(pm->isr & AVR32_PM_ISR_MSKRDY_MASK)); | |
800021c4: 49 18 lddpc r8,80002208 <_Z10init_boardv+0xfc> | |
800021c6: 70 08 ld.w r8,r8[0x0] | |
800021c8: 71 38 ld.w r8,r8[0x4c] | |
800021ca: e2 18 00 40 andl r8,0x40,COH | |
800021ce: 5f 08 sreq r8 | |
800021d0: 5c 58 castu.b r8 | |
800021d2: cf 91 brne 800021c4 <_Z10init_boardv+0xb8> | |
/* | |
* Clocks are now masked according to (CPU/HSB/PBA/PBB)_MASK | |
* registers. */ | |
} | |
800021d4: e3 cd 80 80 ldm sp++,r7,pc | |
800021d8: 00 00 add r0,r0 | |
800021da: 00 44 or r4,r0 | |
800021dc: 80 00 ld.sh r0,r0[0x0] | |
800021de: 24 a4 sub r4,74 | |
800021e0: 00 00 add r0,r0 | |
800021e2: 00 48 or r8,r0 | |
800021e4: 00 00 add r0,r0 | |
800021e6: 00 4c or r12,r0 | |
800021e8: 80 00 ld.sh r0,r0[0x0] | |
800021ea: 26 e4 sub r4,110 | |
800021ec: 80 00 ld.sh r0,r0[0x0] | |
800021ee: 2a a0 sub r0,-86 | |
800021f0: 00 00 add r0,r0 | |
800021f2: 00 60 and r0,r0 | |
800021f4: 80 00 ld.sh r0,r0[0x0] | |
800021f6: 28 50 sub r0,-123 | |
800021f8: 80 00 ld.sh r0,r0[0x0] | |
800021fa: 29 36 sub r6,-109 | |
800021fc: 80 00 ld.sh r0,r0[0x0] | |
800021fe: 2a fa sub r10,-81 | |
80002200: 00 00 add r0,r0 | |
80002202: 00 64 and r4,r0 | |
80002204: 80 00 ld.sh r0,r0[0x0] | |
80002206: 2b c8 sub r8,-68 | |
80002208: 00 00 add r0,r0 | |
8000220a: 00 5c eor r12,r0 | |
8000220c <_ZN4aeryL17gpio_set_pin_highEh>: | |
* \param pinnum GPIO number, e.g. AVR32_PIN_PA05 | |
* | |
* \note Does not work for local bus | |
*/ | |
static inline void gpio_set_pin_high(uint8_t pinnum) | |
{ | |
8000220c: eb cd 40 80 pushm r7,lr | |
80002210: 1a 97 mov r7,sp | |
80002212: 20 1d sub sp,4 | |
80002214: 18 98 mov r8,r12 | |
80002216: ef 68 ff fc st.b r7[-4],r8 | |
AVR32_GPIO.port[GPIO_NUM2PORT(pinnum)].ovrs = 1UL << GPIO_NUM2PIN(pinnum); | |
8000221a: fe 7a 10 00 mov r10,-61440 | |
8000221e: ef 38 ff fc ld.ub r8,r7[-4] | |
80002222: a5 58 asr r8,0x5 | |
80002224: ef 39 ff fc ld.ub r9,r7[-4] | |
80002228: f3 d9 c0 05 bfextu r9,r9,0x0,0x5 | |
8000222c: 30 1b mov r11,1 | |
8000222e: f6 09 09 49 lsl r9,r11,r9 | |
80002232: a9 68 lsl r8,0x8 | |
80002234: f4 08 00 08 add r8,r10,r8 | |
80002238: 2a c8 sub r8,-84 | |
8000223a: 91 09 st.w r8[0x0],r9 | |
} | |
8000223c: 2f fd sub sp,-4 | |
8000223e: e3 cd 80 80 ldm sp++,r7,pc | |
80002242 <EVENT_USB_Device_Connect>: | |
} | |
}; | |
/** Event handler for the library USB Connection event. */ | |
void EVENT_USB_Device_Connect(void) | |
{ | |
80002242: eb cd 40 80 pushm r7,lr | |
80002246: 1a 97 mov r7,sp | |
} | |
80002248: e3 cd 80 80 ldm sp++,r7,pc | |
8000224c <EVENT_USB_Device_Disconnect>: | |
/** Event handler for the library USB Disconnection event. */ | |
void EVENT_USB_Device_Disconnect(void) | |
{ | |
8000224c: eb cd 40 80 pushm r7,lr | |
80002250: 1a 97 mov r7,sp | |
} | |
80002252: e3 cd 80 80 ldm sp++,r7,pc | |
80002256 <EVENT_USB_Device_ControlRequest>: | |
/** Event handler for the library USB Control Request reception event. */ | |
void EVENT_USB_Device_ControlRequest(void) | |
{ | |
80002256: eb cd 40 80 pushm r7,lr | |
8000225a: 1a 97 mov r7,sp | |
CDC_Device_ProcessControlRequest(&VirtualSerial_CDC_Interface); | |
8000225c: 48 3c lddpc r12,80002268 <EVENT_USB_Device_ControlRequest+0x12> | |
8000225e: f0 1f 00 04 mcall 8000226c <EVENT_USB_Device_ControlRequest+0x16> | |
} | |
80002262: e3 cd 80 80 ldm sp++,r7,pc | |
80002266: 00 00 add r0,r0 | |
80002268: 00 00 add r0,r0 | |
8000226a: 00 24 rsub r4,r0 | |
8000226c: 80 00 ld.sh r0,r0[0x0] | |
8000226e: 39 9c mov r12,-103 | |
80002270 <EVENT_USB_Device_ConfigurationChanged>: | |
/** Event handler for the library USB Configuration Changed event. */ | |
void EVENT_USB_Device_ConfigurationChanged(void) | |
{ | |
80002270: eb cd 40 80 pushm r7,lr | |
80002274: 1a 97 mov r7,sp | |
CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface); | |
80002276: 48 3c lddpc r12,80002280 <EVENT_USB_Device_ConfigurationChanged+0x10> | |
80002278: f0 1f 00 03 mcall 80002284 <EVENT_USB_Device_ConfigurationChanged+0x14> | |
} | |
8000227c: e3 cd 80 80 ldm sp++,r7,pc | |
80002280: 00 00 add r0,r0 | |
80002282: 00 24 rsub r4,r0 | |
80002284: 80 00 ld.sh r0,r0[0x0] | |
80002286: 39 50 mov r0,-107 | |
80002288 <main>: | |
int main(void) | |
{ | |
80002288: eb cd 40 80 pushm r7,lr | |
8000228c: 1a 97 mov r7,sp | |
8000228e: 20 2d sub sp,8 | |
init_board(); | |
80002290: f0 1f 00 23 mcall 8000231c <main+0x94> | |
gpio_init_pin(LED, GPIO_OUTPUT|GPIO_HIGH); | |
80002294: 30 3b mov r11,3 | |
80002296: 34 4c mov r12,68 | |
80002298: f0 1f 00 22 mcall 80002320 <main+0x98> | |
/* Set up the USB generic clock. That's f_pll1 / 2 == 48MHz. */ | |
pm_init_gclk(GCLK_USBB, GCLK_SOURCE_PLL1, 1); | |
8000229c: 30 1a mov r10,1 | |
8000229e: 30 3b mov r11,3 | |
800022a0: 30 4c mov r12,4 | |
800022a2: f0 1f 00 21 mcall 80002324 <main+0x9c> | |
pm_enable_gclk(GCLK_USBB); | |
800022a6: 30 4c mov r12,4 | |
800022a8: f0 1f 00 20 mcall 80002328 <main+0xa0> | |
/* Register USB isr handler, from LUFA library */ | |
INTC_Init(); | |
800022ac: f0 1f 00 20 mcall 8000232c <main+0xa4> | |
const InterruptHandlerPtr_t Handler) ATTR_ALWAYS_INLINE; | |
static inline void INTC_RegisterGroupHandler(const uint16_t GroupNumber, | |
const uint8_t InterruptLevel, | |
const InterruptHandlerPtr_t Handler) | |
{ | |
InterruptHandlers[GroupNumber] = Handler; | |
800022b0: 31 19 mov r9,17 | |
800022b2: 4a 08 lddpc r8,80002330 <main+0xa8> | |
800022b4: 4a 0a lddpc r10,80002334 <main+0xac> | |
800022b6: f0 09 09 2a st.w r8[r9<<0x2],r10 | |
AVR32_INTC.ipr[GroupNumber] = Autovector_Table[InterruptLevel]; | |
800022ba: fe 78 08 00 mov r8,-63488 | |
800022be: 31 19 mov r9,17 | |
800022c0: 30 1b mov r11,1 | |
800022c2: 49 ea lddpc r10,80002338 <main+0xb0> | |
800022c4: f4 0b 03 2a ld.w r10,r10[r11<<0x2] | |
800022c8: f0 09 09 2a st.w r8[r9<<0x2],r10 | |
GCC_MEMORY_BARRIER(); | |
#if (ARCH == ARCH_AVR8) | |
sei(); | |
#elif (ARCH == ARCH_UC3) | |
__builtin_csrf(AVR32_SR_GM_OFFSET); | |
800022cc: d5 03 csrf 0x10 | |
INTC_RegisterGroupHandler(INTC_IRQ_GROUP(AVR32_USBB_IRQ), 1, &USB_GEN_vect); | |
GlobalInterruptEnable(); | |
/* Initiliaze the USB, LUFA magic */ | |
USB_Init(); | |
800022ce: f0 1f 00 1c mcall 8000233c <main+0xb4> | |
/* All init done, turn the LED on */ | |
gpio_set_pin_high(LED); | |
800022d2: 34 4c mov r12,68 | |
800022d4: c9 cf rcall 8000220c <_ZN4aeryL17gpio_set_pin_highEh> | |
for(;;) { | |
CDC_Device_SendByte(&VirtualSerial_CDC_Interface, 'H'); | |
800022d6: 34 8b mov r11,72 | |
800022d8: 49 ac lddpc r12,80002340 <main+0xb8> | |
800022da: f0 1f 00 1b mcall 80002344 <main+0xbc> | |
CDC_Device_SendByte(&VirtualSerial_CDC_Interface, 'e'); | |
800022de: 36 5b mov r11,101 | |
800022e0: 49 8c lddpc r12,80002340 <main+0xb8> | |
800022e2: f0 1f 00 19 mcall 80002344 <main+0xbc> | |
CDC_Device_SendByte(&VirtualSerial_CDC_Interface, 'l'); | |
800022e6: 36 cb mov r11,108 | |
800022e8: 49 6c lddpc r12,80002340 <main+0xb8> | |
800022ea: f0 1f 00 17 mcall 80002344 <main+0xbc> | |
CDC_Device_SendByte(&VirtualSerial_CDC_Interface, 'l'); | |
800022ee: 36 cb mov r11,108 | |
800022f0: 49 4c lddpc r12,80002340 <main+0xb8> | |
800022f2: f0 1f 00 15 mcall 80002344 <main+0xbc> | |
CDC_Device_SendByte(&VirtualSerial_CDC_Interface, 'o'); | |
800022f6: 36 fb mov r11,111 | |
800022f8: 49 2c lddpc r12,80002340 <main+0xb8> | |
800022fa: f0 1f 00 13 mcall 80002344 <main+0xbc> | |
CDC_Device_SendByte(&VirtualSerial_CDC_Interface, '\n'); | |
800022fe: 30 ab mov r11,10 | |
80002300: 49 0c lddpc r12,80002340 <main+0xb8> | |
80002302: f0 1f 00 11 mcall 80002344 <main+0xbc> | |
CDC_Device_SendByte(&VirtualSerial_CDC_Interface, '\r'); | |
80002306: 30 db mov r11,13 | |
80002308: 48 ec lddpc r12,80002340 <main+0xb8> | |
8000230a: f0 1f 00 0f mcall 80002344 <main+0xbc> | |
CDC_Device_USBTask(&VirtualSerial_CDC_Interface); | |
8000230e: 48 dc lddpc r12,80002340 <main+0xb8> | |
80002310: f0 1f 00 0e mcall 80002348 <main+0xc0> | |
USB_USBTask(); | |
80002314: f0 1f 00 0e mcall 8000234c <main+0xc4> | |
USB_Init(); | |
/* All init done, turn the LED on */ | |
gpio_set_pin_high(LED); | |
for(;;) { | |
80002318: cd fb rjmp 800022d6 <main+0x4e> | |
8000231a: 00 00 add r0,r0 | |
8000231c: 80 00 ld.sh r0,r0[0x0] | |
8000231e: 21 0c sub r12,16 | |
80002320: 80 00 ld.sh r0,r0[0x0] | |
80002322: 26 9c sub r12,105 | |
80002324: 80 00 ld.sh r0,r0[0x0] | |
80002326: 29 b0 sub r0,-101 | |
80002328: 80 00 ld.sh r0,r0[0x0] | |
8000232a: 2b 4e sub lr,-76 | |
8000232c: 80 00 ld.sh r0,r0[0x0] | |
8000232e: 3c c0 mov r0,-52 | |
80002330: 00 00 add r0,r0 | |
80002332: 05 c4 ld.ub r4,r2[0x4] | |
80002334: 80 00 ld.sh r0,r0[0x0] | |
80002336: 30 a0 mov r0,10 | |
80002338: 80 00 ld.sh r0,r0[0x0] | |
8000233a: 4d 24 lddpc r4,80002480 <CALLBACK_USB_GetDescriptor+0xa8> | |
8000233c: 80 00 ld.sh r0,r0[0x0] | |
8000233e: 30 28 mov r8,2 | |
80002340: 00 00 add r0,r0 | |
80002342: 00 24 rsub r4,r0 | |
80002344: 80 00 ld.sh r0,r0[0x0] | |
80002346: 38 b4 mov r4,-117 | |
80002348: 80 00 ld.sh r0,r0[0x0] | |
8000234a: 38 88 mov r8,-120 | |
8000234c: 80 00 ld.sh r0,r0[0x0] | |
8000234e: 37 74 mov r4,119 | |
80002350 <DeviceDescriptor>: | |
80002350: 12 01 10 01 02 00 00 08 eb 03 44 20 01 00 01 02 ..........D .... | |
80002360: 00 01 .. | |
80002362 <ConfigurationDescriptor>: | |
80002362: 09 02 3e 00 02 01 00 c0 32 09 04 00 00 01 02 02 ..>.....2....... | |
80002372: 01 00 05 24 00 10 01 04 24 02 06 05 24 06 00 01 ...$....$...$... | |
80002382: 07 05 82 03 08 00 ff 09 04 01 00 02 0a 00 00 00 ................ | |
80002392: 07 05 04 02 10 00 05 07 05 83 02 10 00 05 .............. | |
800023a0 <LanguageString>: | |
800023a0: 04 03 09 04 .... | |
800023a4 <ManufacturerString>: | |
800023a4: 18 03 44 00 65 00 61 00 6e 00 20 00 43 00 61 00 ..D.e.a.n. .C.a. | |
800023b4: 6d 00 65 00 72 00 61 00 m.e.r.a. | |
800023bc <ProductString>: | |
800023bc: 1c 03 4c 00 55 00 46 00 41 00 20 00 43 00 44 00 ..L.U.F.A. .C.D. | |
800023cc: 43 00 20 00 44 00 65 00 6d 00 6f 00 C. .D.e.m.o. | |
800023d8 <CALLBACK_USB_GetDescriptor>: | |
* USB host. | |
*/ | |
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, | |
const uint8_t wIndex, | |
const void** const DescriptorAddress) | |
{ | |
800023d8: eb cd 40 80 pushm r7,lr | |
800023dc: 1a 97 mov r7,sp | |
800023de: 20 6d sub sp,24 | |
800023e0: 18 99 mov r9,r12 | |
800023e2: 16 98 mov r8,r11 | |
800023e4: ef 4a ff e8 st.w r7[-24],r10 | |
800023e8: ef 59 ff f0 st.h r7[-16],r9 | |
800023ec: ef 68 ff ec st.b r7[-20],r8 | |
const uint8_t DescriptorType = (wValue >> 8); | |
800023f0: ef 18 ff f0 ld.uh r8,r7[-16] | |
800023f4: a9 88 lsr r8,0x8 | |
800023f6: 5c 88 casts.h r8 | |
800023f8: ef 68 ff f6 st.b r7[-10],r8 | |
const uint8_t DescriptorNumber = (wValue & 0xFF); | |
800023fc: ef 08 ff f0 ld.sh r8,r7[-16] | |
80002400: ef 68 ff f7 st.b r7[-9],r8 | |
const void* Address = NULL; | |
80002404: 30 08 mov r8,0 | |
80002406: ef 48 ff f8 st.w r7[-8],r8 | |
uint16_t Size = NO_DESCRIPTOR; | |
8000240a: 30 08 mov r8,0 | |
8000240c: ef 58 ff fe st.h r7[-2],r8 | |
switch (DescriptorType) | |
80002410: ef 38 ff f6 ld.ub r8,r7[-10] | |
80002414: 58 28 cp.w r8,2 | |
80002416: c0 c0 breq 8000242e <CALLBACK_USB_GetDescriptor+0x56> | |
80002418: 58 38 cp.w r8,3 | |
8000241a: c1 10 breq 8000243c <CALLBACK_USB_GetDescriptor+0x64> | |
8000241c: 58 18 cp.w r8,1 | |
8000241e: c2 e1 brne 8000247a <CALLBACK_USB_GetDescriptor+0xa2> | |
{ | |
case DTYPE_Device: | |
Address = &DeviceDescriptor; | |
80002420: 49 c8 lddpc r8,80002490 <CALLBACK_USB_GetDescriptor+0xb8> | |
80002422: ef 48 ff f8 st.w r7[-8],r8 | |
Size = sizeof(USB_Descriptor_Device_t); | |
80002426: 31 28 mov r8,18 | |
80002428: ef 58 ff fe st.h r7[-2],r8 | |
break; | |
8000242c: c2 78 rjmp 8000247a <CALLBACK_USB_GetDescriptor+0xa2> | |
case DTYPE_Configuration: | |
Address = &ConfigurationDescriptor; | |
8000242e: 49 a8 lddpc r8,80002494 <CALLBACK_USB_GetDescriptor+0xbc> | |
80002430: ef 48 ff f8 st.w r7[-8],r8 | |
Size = sizeof(USB_Descriptor_Configuration_t); | |
80002434: 33 e8 mov r8,62 | |
80002436: ef 58 ff fe st.h r7[-2],r8 | |
break; | |
8000243a: c2 08 rjmp 8000247a <CALLBACK_USB_GetDescriptor+0xa2> | |
case DTYPE_String: | |
switch (DescriptorNumber) | |
8000243c: ef 38 ff f7 ld.ub r8,r7[-9] | |
80002440: 58 18 cp.w r8,1 | |
80002442: c0 d0 breq 8000245c <CALLBACK_USB_GetDescriptor+0x84> | |
80002444: 58 28 cp.w r8,2 | |
80002446: c1 30 breq 8000246c <CALLBACK_USB_GetDescriptor+0x94> | |
80002448: 58 08 cp.w r8,0 | |
8000244a: c1 81 brne 8000247a <CALLBACK_USB_GetDescriptor+0xa2> | |
{ | |
case 0x00: | |
Address = &LanguageString; | |
8000244c: 49 38 lddpc r8,80002498 <CALLBACK_USB_GetDescriptor+0xc0> | |
8000244e: ef 48 ff f8 st.w r7[-8],r8 | |
Size = pgm_read_byte(&LanguageString.Header.Size); | |
80002452: 49 28 lddpc r8,80002498 <CALLBACK_USB_GetDescriptor+0xc0> | |
80002454: 11 88 ld.ub r8,r8[0x0] | |
80002456: ef 58 ff fe st.h r7[-2],r8 | |
break; | |
8000245a: c1 08 rjmp 8000247a <CALLBACK_USB_GetDescriptor+0xa2> | |
case 0x01: | |
Address = &ManufacturerString; | |
8000245c: 49 08 lddpc r8,8000249c <CALLBACK_USB_GetDescriptor+0xc4> | |
8000245e: ef 48 ff f8 st.w r7[-8],r8 | |
Size = pgm_read_byte(&ManufacturerString.Header.Size); | |
80002462: 48 f8 lddpc r8,8000249c <CALLBACK_USB_GetDescriptor+0xc4> | |
80002464: 11 88 ld.ub r8,r8[0x0] | |
80002466: ef 58 ff fe st.h r7[-2],r8 | |
break; | |
8000246a: c0 88 rjmp 8000247a <CALLBACK_USB_GetDescriptor+0xa2> | |
case 0x02: | |
Address = &ProductString; | |
8000246c: 48 d8 lddpc r8,800024a0 <CALLBACK_USB_GetDescriptor+0xc8> | |
8000246e: ef 48 ff f8 st.w r7[-8],r8 | |
Size = pgm_read_byte(&ProductString.Header.Size); | |
80002472: 48 c8 lddpc r8,800024a0 <CALLBACK_USB_GetDescriptor+0xc8> | |
80002474: 11 88 ld.ub r8,r8[0x0] | |
80002476: ef 58 ff fe st.h r7[-2],r8 | |
} | |
break; | |
} | |
*DescriptorAddress = Address; | |
8000247a: ee f8 ff e8 ld.w r8,r7[-24] | |
8000247e: ee f9 ff f8 ld.w r9,r7[-8] | |
80002482: 91 09 st.w r8[0x0],r9 | |
return Size; | |
80002484: ef 08 ff fe ld.sh r8,r7[-2] | |
80002488: 10 9c mov r12,r8 | |
8000248a: 2f ad sub sp,-24 | |
8000248c: e3 cd 80 80 ldm sp++,r7,pc | |
80002490: 80 00 ld.sh r0,r0[0x0] | |
80002492: 23 50 sub r0,53 | |
80002494: 80 00 ld.sh r0,r0[0x0] | |
80002496: 23 62 sub r2,54 | |
80002498: 80 00 ld.sh r0,r0[0x0] | |
8000249a: 23 a0 sub r0,58 | |
8000249c: 80 00 ld.sh r0,r0[0x0] | |
8000249e: 23 a4 sub r4,58 | |
800024a0: 80 00 ld.sh r0,r0[0x0] | |
800024a2: 23 bc sub r12,59 | |
800024a4 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi>: | |
volatile avr32_gpio_local_port_t *aery::lportb = &AVR32_GPIO_LOCAL.port[1]; | |
volatile avr32_gpio_local_port_t *aery::lportc = &AVR32_GPIO_LOCAL.port[2]; | |
void aery::gpio_init_pins(volatile avr32_gpio_port_t *pport, uint32_t pinmask, | |
int options) | |
{ | |
800024a4: eb cd 40 80 pushm r7,lr | |
800024a8: 1a 97 mov r7,sp | |
800024aa: 20 3d sub sp,12 | |
800024ac: ef 4c ff fc st.w r7[-4],r12 | |
800024b0: ef 4b ff f8 st.w r7[-8],r11 | |
800024b4: ef 4a ff f4 st.w r7[-12],r10 | |
/* | |
* By default define pin to be controlled by the GPIO with output | |
* drivers disabled. | |
*/ | |
pport->gpers = pinmask; | |
800024b8: ee f8 ff fc ld.w r8,r7[-4] | |
800024bc: ee f9 ff f8 ld.w r9,r7[-8] | |
800024c0: 91 19 st.w r8[0x4],r9 | |
pport->oderc = pinmask; | |
800024c2: ee f8 ff fc ld.w r8,r7[-4] | |
800024c6: ee f9 ff f8 ld.w r9,r7[-8] | |
800024ca: f1 49 00 48 st.w r8[72],r9 | |
switch (options & 0007) { | |
800024ce: ee f8 ff f4 ld.w r8,r7[-12] | |
800024d2: f1 d8 c0 03 bfextu r8,r8,0x0,0x3 | |
800024d6: 58 48 cp.w r8,4 | |
800024d8: c2 80 breq 80002528 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x84> | |
800024da: e0 89 00 07 brgt 800024e8 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x44> | |
800024de: 58 28 cp.w r8,2 | |
800024e0: c0 a0 breq 800024f4 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x50> | |
800024e2: 58 38 cp.w r8,3 | |
800024e4: c1 50 breq 8000250e <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x6a> | |
800024e6: c6 08 rjmp 800025a6 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x102> | |
800024e8: 58 68 cp.w r8,6 | |
800024ea: c3 f0 breq 80002568 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0xc4> | |
800024ec: c2 e5 brlt 80002548 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0xa4> | |
800024ee: 58 78 cp.w r8,7 | |
800024f0: c4 c0 breq 80002588 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0xe4> | |
800024f2: c5 a8 rjmp 800025a6 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x102> | |
case 0002: /* Output */ | |
pport->oders = pinmask; | |
800024f4: ee f8 ff fc ld.w r8,r7[-4] | |
800024f8: ee f9 ff f8 ld.w r9,r7[-8] | |
800024fc: f1 49 00 44 st.w r8[68],r9 | |
pport->ovrc = pinmask; | |
80002500: ee f8 ff fc ld.w r8,r7[-4] | |
80002504: ee f9 ff f8 ld.w r9,r7[-8] | |
80002508: f1 49 00 58 st.w r8[88],r9 | |
break; | |
8000250c: c4 d8 rjmp 800025a6 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x102> | |
case 0003: /* Output high */ | |
pport->oders = pinmask; | |
8000250e: ee f8 ff fc ld.w r8,r7[-4] | |
80002512: ee f9 ff f8 ld.w r9,r7[-8] | |
80002516: f1 49 00 44 st.w r8[68],r9 | |
pport->ovrs = pinmask; | |
8000251a: ee f8 ff fc ld.w r8,r7[-4] | |
8000251e: ee f9 ff f8 ld.w r9,r7[-8] | |
80002522: f1 49 00 54 st.w r8[84],r9 | |
break; | |
80002526: c4 08 rjmp 800025a6 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x102> | |
* be controlled by the GPIO with output drivers disabled, as has been | |
* done by default. The pin can then be assured to be tri-stated while | |
* changing the Peripheral Mux Registers. | |
*/ | |
case 0004: /* Peripheral Function A */ | |
pport->pmr1c = pinmask; | |
80002528: ee f8 ff fc ld.w r8,r7[-4] | |
8000252c: ee f9 ff f8 ld.w r9,r7[-8] | |
80002530: 91 a9 st.w r8[0x28],r9 | |
pport->pmr0c = pinmask; | |
80002532: ee f8 ff fc ld.w r8,r7[-4] | |
80002536: ee f9 ff f8 ld.w r9,r7[-8] | |
8000253a: 91 69 st.w r8[0x18],r9 | |
pport->gperc = pinmask; | |
8000253c: ee f8 ff fc ld.w r8,r7[-4] | |
80002540: ee f9 ff f8 ld.w r9,r7[-8] | |
80002544: 91 29 st.w r8[0x8],r9 | |
break; | |
80002546: c3 08 rjmp 800025a6 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x102> | |
case 0005: /* Peripheral Function B */ | |
pport->pmr1c = pinmask; | |
80002548: ee f8 ff fc ld.w r8,r7[-4] | |
8000254c: ee f9 ff f8 ld.w r9,r7[-8] | |
80002550: 91 a9 st.w r8[0x28],r9 | |
pport->pmr0s = pinmask; | |
80002552: ee f8 ff fc ld.w r8,r7[-4] | |
80002556: ee f9 ff f8 ld.w r9,r7[-8] | |
8000255a: 91 59 st.w r8[0x14],r9 | |
pport->gperc = pinmask; | |
8000255c: ee f8 ff fc ld.w r8,r7[-4] | |
80002560: ee f9 ff f8 ld.w r9,r7[-8] | |
80002564: 91 29 st.w r8[0x8],r9 | |
break; | |
80002566: c2 08 rjmp 800025a6 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x102> | |
case 0006: /* Peripheral Function C */ | |
pport->pmr1s = pinmask; | |
80002568: ee f8 ff fc ld.w r8,r7[-4] | |
8000256c: ee f9 ff f8 ld.w r9,r7[-8] | |
80002570: 91 99 st.w r8[0x24],r9 | |
pport->pmr0c = pinmask; | |
80002572: ee f8 ff fc ld.w r8,r7[-4] | |
80002576: ee f9 ff f8 ld.w r9,r7[-8] | |
8000257a: 91 69 st.w r8[0x18],r9 | |
pport->gperc = pinmask; | |
8000257c: ee f8 ff fc ld.w r8,r7[-4] | |
80002580: ee f9 ff f8 ld.w r9,r7[-8] | |
80002584: 91 29 st.w r8[0x8],r9 | |
break; | |
80002586: c1 08 rjmp 800025a6 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x102> | |
case 0007: /* Peripheral Function D */ | |
pport->pmr1s = pinmask; | |
80002588: ee f8 ff fc ld.w r8,r7[-4] | |
8000258c: ee f9 ff f8 ld.w r9,r7[-8] | |
80002590: 91 99 st.w r8[0x24],r9 | |
pport->pmr0s = pinmask; | |
80002592: ee f8 ff fc ld.w r8,r7[-4] | |
80002596: ee f9 ff f8 ld.w r9,r7[-8] | |
8000259a: 91 59 st.w r8[0x14],r9 | |
pport->gperc = pinmask; | |
8000259c: ee f8 ff fc ld.w r8,r7[-4] | |
800025a0: ee f9 ff f8 ld.w r9,r7[-8] | |
800025a4: 91 29 st.w r8[0x8],r9 | |
break; | |
} | |
if (options & 0040) { | |
800025a6: ee f8 ff f4 ld.w r8,r7[-12] | |
800025aa: e2 18 00 20 andl r8,0x20,COH | |
800025ae: c3 80 breq 8000261e <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x17a> | |
/* | |
* Interrupt can be enabled on a pin, regardless of the | |
* configuration the I/O line, i.e. controlled by the GPIO | |
* or assigned to a peripheral function. [ds, p.173] | |
*/ | |
switch (options & 0030) { | |
800025b0: ee f8 ff f4 ld.w r8,r7[-12] | |
800025b4: e2 18 00 18 andl r8,0x18,COH | |
800025b8: 58 88 cp.w r8,8 | |
800025ba: c1 20 breq 800025de <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x13a> | |
800025bc: 59 08 cp.w r8,16 | |
800025be: c1 d0 breq 800025f8 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x154> | |
800025c0: 58 08 cp.w r8,0 | |
800025c2: c2 71 brne 80002610 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x16c> | |
case 0000: | |
pport->imr0c = pinmask; | |
800025c4: ee f8 ff fc ld.w r8,r7[-4] | |
800025c8: ee f9 ff f8 ld.w r9,r7[-8] | |
800025cc: f1 49 00 a8 st.w r8[168],r9 | |
pport->imr1c = pinmask; | |
800025d0: ee f8 ff fc ld.w r8,r7[-4] | |
800025d4: ee f9 ff f8 ld.w r9,r7[-8] | |
800025d8: f1 49 00 b8 st.w r8[184],r9 | |
break; | |
800025dc: c1 a8 rjmp 80002610 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x16c> | |
case 0010: | |
pport->imr0s = pinmask; | |
800025de: ee f8 ff fc ld.w r8,r7[-4] | |
800025e2: ee f9 ff f8 ld.w r9,r7[-8] | |
800025e6: f1 49 00 a4 st.w r8[164],r9 | |
pport->imr1c = pinmask; | |
800025ea: ee f8 ff fc ld.w r8,r7[-4] | |
800025ee: ee f9 ff f8 ld.w r9,r7[-8] | |
800025f2: f1 49 00 b8 st.w r8[184],r9 | |
break; | |
800025f6: c0 d8 rjmp 80002610 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x16c> | |
case 0020: | |
pport->imr0c = pinmask; | |
800025f8: ee f8 ff fc ld.w r8,r7[-4] | |
800025fc: ee f9 ff f8 ld.w r9,r7[-8] | |
80002600: f1 49 00 a8 st.w r8[168],r9 | |
pport->imr1s = pinmask; | |
80002604: ee f8 ff fc ld.w r8,r7[-4] | |
80002608: ee f9 ff f8 ld.w r9,r7[-8] | |
8000260c: f1 49 00 b4 st.w r8[180],r9 | |
break; | |
} | |
pport->iers = pinmask; | |
80002610: ee f8 ff fc ld.w r8,r7[-4] | |
80002614: ee f9 ff f8 ld.w r9,r7[-8] | |
80002618: f1 49 00 94 st.w r8[148],r9 | |
8000261c: c0 78 rjmp 8000262a <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x186> | |
} else { | |
pport->ierc = pinmask; | |
8000261e: ee f8 ff fc ld.w r8,r7[-4] | |
80002622: ee f9 ff f8 ld.w r9,r7[-8] | |
80002626: f1 49 00 98 st.w r8[152],r9 | |
} | |
if (options & 0100) { | |
8000262a: ee f8 ff f4 ld.w r8,r7[-12] | |
8000262e: e2 18 00 40 andl r8,0x40,COH | |
80002632: c0 80 breq 80002642 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x19e> | |
/* | |
* Control of the pull-up resistor is possible whether an I/O | |
* line is controlled by a peripheral or the GPIO. | |
*/ | |
pport->puers = pinmask; | |
80002634: ee f8 ff fc ld.w r8,r7[-4] | |
80002638: ee f9 ff f8 ld.w r9,r7[-8] | |
8000263c: f1 49 00 74 st.w r8[116],r9 | |
80002640: c0 78 rjmp 8000264e <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x1aa> | |
} else { | |
pport->puerc = pinmask; | |
80002642: ee f8 ff fc ld.w r8,r7[-4] | |
80002646: ee f9 ff f8 ld.w r9,r7[-8] | |
8000264a: f1 49 00 78 st.w r8[120],r9 | |
} | |
if (options & 0200) { | |
8000264e: ee f8 ff f4 ld.w r8,r7[-12] | |
80002652: e2 18 00 80 andl r8,0x80,COH | |
80002656: c0 80 breq 80002666 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x1c2> | |
/* | |
* The open drain mode can be selected whether the I/O line is | |
* controlled by the GPIO or assigned to a peripheral function. | |
*/ | |
pport->odmers = pinmask; | |
80002658: ee f8 ff fc ld.w r8,r7[-4] | |
8000265c: ee f9 ff f8 ld.w r9,r7[-8] | |
80002660: f1 49 00 84 st.w r8[132],r9 | |
80002664: c0 78 rjmp 80002672 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x1ce> | |
} else { | |
pport->odmerc = pinmask; | |
80002666: ee f8 ff fc ld.w r8,r7[-4] | |
8000266a: ee f9 ff f8 ld.w r9,r7[-8] | |
8000266e: f1 49 00 88 st.w r8[136],r9 | |
} | |
if (options & 0400) | |
80002672: ee f8 ff f4 ld.w r8,r7[-12] | |
80002676: e2 18 01 00 andl r8,0x100,COH | |
8000267a: c0 80 breq 8000268a <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x1e6> | |
pport->gfers = pinmask; | |
8000267c: ee f8 ff fc ld.w r8,r7[-4] | |
80002680: ee f9 ff f8 ld.w r9,r7[-8] | |
80002684: f1 49 00 c4 st.w r8[196],r9 | |
80002688: c0 78 rjmp 80002696 <_ZN4aery14gpio_init_pinsEPV17avr32_gpio_port_tmi+0x1f2> | |
else | |
pport->gferc = pinmask; | |
8000268a: ee f8 ff fc ld.w r8,r7[-4] | |
8000268e: ee f9 ff f8 ld.w r9,r7[-8] | |
80002692: f1 49 00 c8 st.w r8[200],r9 | |
} | |
80002696: 2f dd sub sp,-12 | |
80002698: e3 cd 80 80 ldm sp++,r7,pc | |
8000269c <_ZN4aery13gpio_init_pinEhi>: | |
void aery::gpio_init_pin(uint8_t pinnum, int options) | |
{ | |
8000269c: eb cd 40 80 pushm r7,lr | |
800026a0: 1a 97 mov r7,sp | |
800026a2: 20 2d sub sp,8 | |
800026a4: 18 98 mov r8,r12 | |
800026a6: ef 4b ff f8 st.w r7[-8],r11 | |
800026aa: ef 68 ff fc st.b r7[-4],r8 | |
aery::gpio_init_pins(&AVR32_GPIO.port[GPIO_NUM2PORT(pinnum)], | |
(1UL << GPIO_NUM2PIN(pinnum)), options); | |
800026ae: ef 38 ff fc ld.ub r8,r7[-4] | |
800026b2: f1 d8 c0 05 bfextu r8,r8,0x0,0x5 | |
800026b6: 30 19 mov r9,1 | |
800026b8: f2 08 09 49 lsl r9,r9,r8 | |
pport->gferc = pinmask; | |
} | |
void aery::gpio_init_pin(uint8_t pinnum, int options) | |
{ | |
aery::gpio_init_pins(&AVR32_GPIO.port[GPIO_NUM2PORT(pinnum)], | |
800026bc: fe 7a 10 00 mov r10,-61440 | |
800026c0: ef 38 ff fc ld.ub r8,r7[-4] | |
800026c4: a5 58 asr r8,0x5 | |
(1UL << GPIO_NUM2PIN(pinnum)), options); | |
800026c6: a9 68 lsl r8,0x8 | |
800026c8: f4 08 00 08 add r8,r10,r8 | |
800026cc: ee fa ff f8 ld.w r10,r7[-8] | |
800026d0: 12 9b mov r11,r9 | |
800026d2: 10 9c mov r12,r8 | |
800026d4: f0 1f 00 03 mcall 800026e0 <_ZN4aery13gpio_init_pinEhi+0x44> | |
} | |
800026d8: 2f ed sub sp,-8 | |
800026da: e3 cd 80 80 ldm sp++,r7,pc | |
800026de: 00 00 add r0,r0 | |
800026e0: 80 00 ld.sh r0,r0[0x0] | |
800026e2: 24 a4 sub r4,74 | |
800026e4 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE>: | |
#define CKSEL_GETDIV(VAR, SEL) \ | |
((VAR & AVR32_PM_CKSEL_##SEL##SEL_MASK) >> AVR32_PM_CKSEL_##SEL##SEL_OFFSET) | |
int aery::pm_start_osc(uint8_t oscnum, enum Pm_osc_mode mode, | |
enum Pm_osc_startup startup) | |
{ | |
800026e4: eb cd 40 80 pushm r7,lr | |
800026e8: 1a 97 mov r7,sp | |
800026ea: 20 3d sub sp,12 | |
800026ec: 18 98 mov r8,r12 | |
800026ee: ef 4b ff f8 st.w r7[-8],r11 | |
800026f2: ef 4a ff f4 st.w r7[-12],r10 | |
800026f6: ef 68 ff fc st.b r7[-4],r8 | |
switch (oscnum) { | |
800026fa: ef 38 ff fc ld.ub r8,r7[-4] | |
800026fe: 58 18 cp.w r8,1 | |
80002700: c3 90 breq 80002772 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x8e> | |
80002702: e0 48 00 20 cp.w r8,32 | |
80002706: c6 80 breq 800027d6 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0xf2> | |
80002708: 58 08 cp.w r8,0 | |
8000270a: e0 81 00 9c brne 80002842 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x15e> | |
case 0: | |
if (AVR32_PM.MCCTRL.osc0en == 1) | |
8000270e: fe 78 0c 00 mov r8,-62464 | |
80002712: 70 08 ld.w r8,r8[0x0] | |
80002714: e2 18 00 04 andl r8,0x4,COH | |
80002718: 5f 18 srne r8 | |
8000271a: 5c 58 castu.b r8 | |
8000271c: c0 30 breq 80002722 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x3e> | |
return -1; | |
8000271e: 3f f8 mov r8,-1 | |
80002720: c9 48 rjmp 80002848 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x164> | |
if (mode == OSC_MODE_OSC32) | |
80002722: ee f8 ff f8 ld.w r8,r7[-8] | |
80002726: 58 18 cp.w r8,1 | |
80002728: c0 31 brne 8000272e <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x4a> | |
return -1; | |
8000272a: 3f f8 mov r8,-1 | |
8000272c: c8 e8 rjmp 80002848 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x164> | |
AVR32_PM.OSCCTRL0.mode = mode; | |
8000272e: fe 79 0c 00 mov r9,-62464 | |
80002732: ee f8 ff f8 ld.w r8,r7[-8] | |
80002736: 5c 58 castu.b r8 | |
80002738: f1 d8 c0 03 bfextu r8,r8,0x0,0x3 | |
8000273c: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
80002740: 72 a8 ld.w r8,r9[0x28] | |
80002742: f1 da d0 03 bfins r8,r10,0x0,0x3 | |
80002746: 93 a8 st.w r9[0x28],r8 | |
AVR32_PM.OSCCTRL0.startup = startup; | |
80002748: fe 79 0c 00 mov r9,-62464 | |
8000274c: ee f8 ff f4 ld.w r8,r7[-12] | |
80002750: 5c 58 castu.b r8 | |
80002752: f1 d8 c0 03 bfextu r8,r8,0x0,0x3 | |
80002756: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
8000275a: 72 a8 ld.w r8,r9[0x28] | |
8000275c: f1 da d1 03 bfins r8,r10,0x8,0x3 | |
80002760: 93 a8 st.w r9[0x28],r8 | |
AVR32_PM.MCCTRL.osc0en = 1; | |
80002762: fe 79 0c 00 mov r9,-62464 | |
80002766: 72 08 ld.w r8,r9[0x0] | |
80002768: 30 1a mov r10,1 | |
8000276a: f1 da d0 41 bfins r8,r10,0x2,0x1 | |
8000276e: 93 08 st.w r9[0x0],r8 | |
break; | |
80002770: c6 b8 rjmp 80002846 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x162> | |
case 1: | |
if (AVR32_PM.MCCTRL.osc1en == 1) | |
80002772: fe 78 0c 00 mov r8,-62464 | |
80002776: 70 08 ld.w r8,r8[0x0] | |
80002778: e2 18 00 08 andl r8,0x8,COH | |
8000277c: 5f 18 srne r8 | |
8000277e: 5c 58 castu.b r8 | |
80002780: c0 30 breq 80002786 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0xa2> | |
return -1; | |
80002782: 3f f8 mov r8,-1 | |
80002784: c6 28 rjmp 80002848 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x164> | |
if (mode == OSC_MODE_OSC32) | |
80002786: ee f8 ff f8 ld.w r8,r7[-8] | |
8000278a: 58 18 cp.w r8,1 | |
8000278c: c0 31 brne 80002792 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0xae> | |
return -1; | |
8000278e: 3f f8 mov r8,-1 | |
80002790: c5 c8 rjmp 80002848 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x164> | |
AVR32_PM.OSCCTRL1.mode = mode; | |
80002792: fe 79 0c 00 mov r9,-62464 | |
80002796: ee f8 ff f8 ld.w r8,r7[-8] | |
8000279a: 5c 58 castu.b r8 | |
8000279c: f1 d8 c0 03 bfextu r8,r8,0x0,0x3 | |
800027a0: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
800027a4: 72 b8 ld.w r8,r9[0x2c] | |
800027a6: f1 da d0 03 bfins r8,r10,0x0,0x3 | |
800027aa: 93 b8 st.w r9[0x2c],r8 | |
AVR32_PM.OSCCTRL1.startup = startup; | |
800027ac: fe 79 0c 00 mov r9,-62464 | |
800027b0: ee f8 ff f4 ld.w r8,r7[-12] | |
800027b4: 5c 58 castu.b r8 | |
800027b6: f1 d8 c0 03 bfextu r8,r8,0x0,0x3 | |
800027ba: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
800027be: 72 b8 ld.w r8,r9[0x2c] | |
800027c0: f1 da d1 03 bfins r8,r10,0x8,0x3 | |
800027c4: 93 b8 st.w r9[0x2c],r8 | |
AVR32_PM.MCCTRL.osc1en = 1; | |
800027c6: fe 79 0c 00 mov r9,-62464 | |
800027ca: 72 08 ld.w r8,r9[0x0] | |
800027cc: 30 1a mov r10,1 | |
800027ce: f1 da d0 61 bfins r8,r10,0x3,0x1 | |
800027d2: 93 08 st.w r9[0x0],r8 | |
break; | |
800027d4: c3 98 rjmp 80002846 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x162> | |
case 32: | |
if (AVR32_PM.OSCCTRL32.osc32en == 1) | |
800027d6: fe 78 0c 00 mov r8,-62464 | |
800027da: 70 c8 ld.w r8,r8[0x30] | |
800027dc: f1 d8 c0 01 bfextu r8,r8,0x0,0x1 | |
800027e0: 5f 18 srne r8 | |
800027e2: 5c 58 castu.b r8 | |
800027e4: c0 30 breq 800027ea <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x106> | |
return -1; | |
800027e6: 3f f8 mov r8,-1 | |
800027e8: c3 08 rjmp 80002848 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x164> | |
if (mode != OSC_MODE_OSC32 || mode != OSC_MODE_EXTERNAL) | |
800027ea: ee f8 ff f8 ld.w r8,r7[-8] | |
800027ee: 58 18 cp.w r8,1 | |
800027f0: c0 51 brne 800027fa <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x116> | |
800027f2: ee f8 ff f8 ld.w r8,r7[-8] | |
800027f6: 58 08 cp.w r8,0 | |
800027f8: c0 30 breq 800027fe <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x11a> | |
return -1; | |
800027fa: 3f f8 mov r8,-1 | |
800027fc: c2 68 rjmp 80002848 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x164> | |
AVR32_PM.OSCCTRL32.mode = mode; | |
800027fe: fe 79 0c 00 mov r9,-62464 | |
80002802: ee f8 ff f8 ld.w r8,r7[-8] | |
80002806: 5c 58 castu.b r8 | |
80002808: f1 d8 c0 03 bfextu r8,r8,0x0,0x3 | |
8000280c: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
80002810: 72 c8 ld.w r8,r9[0x30] | |
80002812: f1 da d1 03 bfins r8,r10,0x8,0x3 | |
80002816: 93 c8 st.w r9[0x30],r8 | |
AVR32_PM.OSCCTRL32.startup = startup; | |
80002818: fe 79 0c 00 mov r9,-62464 | |
8000281c: ee f8 ff f4 ld.w r8,r7[-12] | |
80002820: 5c 58 castu.b r8 | |
80002822: f1 d8 c0 03 bfextu r8,r8,0x0,0x3 | |
80002826: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
8000282a: 72 c8 ld.w r8,r9[0x30] | |
8000282c: f1 da d2 03 bfins r8,r10,0x10,0x3 | |
80002830: 93 c8 st.w r9[0x30],r8 | |
AVR32_PM.OSCCTRL32.osc32en = 1; | |
80002832: fe 79 0c 00 mov r9,-62464 | |
80002836: 72 c8 ld.w r8,r9[0x30] | |
80002838: 30 1a mov r10,1 | |
8000283a: f1 da d0 01 bfins r8,r10,0x0,0x1 | |
8000283e: 93 c8 st.w r9[0x30],r8 | |
break; | |
80002840: c0 38 rjmp 80002846 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x162> | |
default: | |
return -1; | |
80002842: 3f f8 mov r8,-1 | |
80002844: c0 28 rjmp 80002848 <_ZN4aery12pm_start_oscEhNS_11Pm_osc_modeENS_14Pm_osc_startupE+0x164> | |
} | |
return 0; | |
80002846: 30 08 mov r8,0 | |
} | |
80002848: 10 9c mov r12,r8 | |
8000284a: 2f dd sub sp,-12 | |
8000284c: e3 cd 80 80 ldm sp++,r7,pc | |
80002850 <_ZN4aery14pm_init_pllvcoEPV14avr32_pm_pll_tNS_13Pm_pll_sourceEhhb>: | |
int aery::pm_init_pllvco(volatile avr32_pm_pll_t *ppll, enum Pm_pll_source src, | |
uint8_t mul, uint8_t div, bool hifreq) | |
{ | |
80002850: eb cd 40 80 pushm r7,lr | |
80002854: 1a 97 mov r7,sp | |
80002856: 20 5d sub sp,20 | |
80002858: ef 4c ff fc st.w r7[-4],r12 | |
8000285c: ef 4b ff f8 st.w r7[-8],r11 | |
80002860: ef 6a ff f4 st.b r7[-12],r10 | |
80002864: ef 69 ff f0 st.b r7[-16],r9 | |
80002868: ef 68 ff ec st.b r7[-20],r8 | |
/* mul < 3, is not a typo */ | |
if (mul < 3 || mul > 16) | |
8000286c: ef 39 ff f4 ld.ub r9,r7[-12] | |
80002870: 30 28 mov r8,2 | |
80002872: f0 09 18 00 cp.b r9,r8 | |
80002876: e0 88 00 09 brls 80002888 <_ZN4aery14pm_init_pllvcoEPV14avr32_pm_pll_tNS_13Pm_pll_sourceEhhb+0x38> | |
8000287a: ef 39 ff f4 ld.ub r9,r7[-12] | |
8000287e: 31 08 mov r8,16 | |
80002880: f0 09 18 00 cp.b r9,r8 | |
80002884: e0 88 00 04 brls 8000288c <_ZN4aery14pm_init_pllvcoEPV14avr32_pm_pll_tNS_13Pm_pll_sourceEhhb+0x3c> | |
return -1; | |
80002888: 3f f8 mov r8,-1 | |
8000288a: c5 28 rjmp 8000292e <_ZN4aery14pm_init_pllvcoEPV14avr32_pm_pll_tNS_13Pm_pll_sourceEhhb+0xde> | |
ppll->plltest = 0; | |
8000288c: ee f9 ff fc ld.w r9,r7[-4] | |
80002890: 72 08 ld.w r8,r9[0x0] | |
80002892: 30 0a mov r10,0 | |
80002894: f1 da d3 e1 bfins r8,r10,0x1f,0x1 | |
80002898: 93 08 st.w r9[0x0],r8 | |
ppll->plliotesten = 0; | |
8000289a: ee f9 ff fc ld.w r9,r7[-4] | |
8000289e: 72 08 ld.w r8,r9[0x0] | |
800028a0: 30 0a mov r10,0 | |
800028a2: f1 da d3 c1 bfins r8,r10,0x1e,0x1 | |
800028a6: 93 08 st.w r9[0x0],r8 | |
ppll->pllcount = 63; | |
800028a8: ee f9 ff fc ld.w r9,r7[-4] | |
800028ac: 72 08 ld.w r8,r9[0x0] | |
800028ae: 33 fa mov r10,63 | |
800028b0: f1 da d3 06 bfins r8,r10,0x18,0x6 | |
800028b4: 93 08 st.w r9[0x0],r8 | |
ppll->pllmul = mul - 1; | |
800028b6: ef 38 ff f4 ld.ub r8,r7[-12] | |
800028ba: 20 18 sub r8,1 | |
800028bc: 5c 58 castu.b r8 | |
800028be: f1 d8 c0 04 bfextu r8,r8,0x0,0x4 | |
800028c2: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
800028c6: ee f9 ff fc ld.w r9,r7[-4] | |
800028ca: 72 08 ld.w r8,r9[0x0] | |
800028cc: f1 da d2 04 bfins r8,r10,0x10,0x4 | |
800028d0: 93 08 st.w r9[0x0],r8 | |
ppll->plldiv = (div & ~(0xf0)); | |
800028d2: ef 38 ff f0 ld.ub r8,r7[-16] | |
800028d6: f1 d8 c0 04 bfextu r8,r8,0x0,0x4 | |
800028da: 5c 58 castu.b r8 | |
800028dc: f1 d8 c0 04 bfextu r8,r8,0x0,0x4 | |
800028e0: f1 d8 c0 04 bfextu r8,r8,0x0,0x4 | |
800028e4: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
800028e8: ee f9 ff fc ld.w r9,r7[-4] | |
800028ec: 72 08 ld.w r8,r9[0x0] | |
800028ee: f1 da d1 04 bfins r8,r10,0x8,0x4 | |
800028f2: 93 08 st.w r9[0x0],r8 | |
ppll->pllopt = (hifreq == true) ? 0b001 : 0b101; | |
800028f4: ef 39 ff ec ld.ub r9,r7[-20] | |
800028f8: 30 08 mov r8,0 | |
800028fa: f0 09 18 00 cp.b r9,r8 | |
800028fe: c0 30 breq 80002904 <_ZN4aery14pm_init_pllvcoEPV14avr32_pm_pll_tNS_13Pm_pll_sourceEhhb+0xb4> | |
80002900: 30 1a mov r10,1 | |
80002902: c0 28 rjmp 80002906 <_ZN4aery14pm_init_pllvcoEPV14avr32_pm_pll_tNS_13Pm_pll_sourceEhhb+0xb6> | |
80002904: 30 5a mov r10,5 | |
80002906: ee f9 ff fc ld.w r9,r7[-4] | |
8000290a: 72 08 ld.w r8,r9[0x0] | |
8000290c: f1 da d0 43 bfins r8,r10,0x2,0x3 | |
80002910: 93 08 st.w r9[0x0],r8 | |
ppll->pllosc = src; | |
80002912: ee f8 ff f8 ld.w r8,r7[-8] | |
80002916: 5c 58 castu.b r8 | |
80002918: f1 d8 c0 01 bfextu r8,r8,0x0,0x1 | |
8000291c: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
80002920: ee f9 ff fc ld.w r9,r7[-4] | |
80002924: 72 08 ld.w r8,r9[0x0] | |
80002926: f1 da d0 21 bfins r8,r10,0x1,0x1 | |
8000292a: 93 08 st.w r9[0x0],r8 | |
return 0; | |
8000292c: 30 08 mov r8,0 | |
} | |
8000292e: 10 9c mov r12,r8 | |
80002930: 2f bd sub sp,-20 | |
80002932: e3 cd 80 80 ldm sp++,r7,pc | |
80002936 <_ZN4aery13pm_enable_pllEPV14avr32_pm_pll_tb>: | |
void aery::pm_enable_pll(volatile avr32_pm_pll_t *ppll, bool divby2) | |
{ | |
80002936: eb cd 40 80 pushm r7,lr | |
8000293a: 1a 97 mov r7,sp | |
8000293c: 20 2d sub sp,8 | |
8000293e: ef 4c ff fc st.w r7[-4],r12 | |
80002942: 16 98 mov r8,r11 | |
80002944: ef 68 ff f8 st.b r7[-8],r8 | |
switch (divby2) { | |
80002948: ef 38 ff f8 ld.ub r8,r7[-8] | |
8000294c: 58 18 cp.w r8,1 | |
8000294e: c1 51 brne 80002978 <_ZN4aery13pm_enable_pllEPV14avr32_pm_pll_tb+0x42> | |
case true: | |
ppll->pllopt |= 2; | |
80002950: ee f8 ff fc ld.w r8,r7[-4] | |
80002954: 70 08 ld.w r8,r8[0x0] | |
80002956: f1 d8 c0 43 bfextu r8,r8,0x2,0x3 | |
8000295a: 5c 58 castu.b r8 | |
8000295c: a1 b8 sbr r8,0x1 | |
8000295e: 5c 58 castu.b r8 | |
80002960: 5c 58 castu.b r8 | |
80002962: f1 d8 c0 03 bfextu r8,r8,0x0,0x3 | |
80002966: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
8000296a: ee f9 ff fc ld.w r9,r7[-4] | |
8000296e: 72 08 ld.w r8,r9[0x0] | |
80002970: f1 da d0 43 bfins r8,r10,0x2,0x3 | |
80002974: 93 08 st.w r9[0x0],r8 | |
break; | |
80002976: c1 38 rjmp 8000299c <_ZN4aery13pm_enable_pllEPV14avr32_pm_pll_tb+0x66> | |
case false: | |
ppll->pllopt &= ~2; | |
80002978: ee f8 ff fc ld.w r8,r7[-4] | |
8000297c: 70 08 ld.w r8,r8[0x0] | |
8000297e: f1 d8 c0 43 bfextu r8,r8,0x2,0x3 | |
80002982: 5c 58 castu.b r8 | |
80002984: e2 18 00 05 andl r8,0x5,COH | |
80002988: f1 d8 c0 03 bfextu r8,r8,0x0,0x3 | |
8000298c: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
80002990: ee f9 ff fc ld.w r9,r7[-4] | |
80002994: 72 08 ld.w r8,r9[0x0] | |
80002996: f1 da d0 43 bfins r8,r10,0x2,0x3 | |
8000299a: 93 08 st.w r9[0x0],r8 | |
break; | |
} | |
ppll->pllen = 1; | |
8000299c: ee f9 ff fc ld.w r9,r7[-4] | |
800029a0: 72 08 ld.w r8,r9[0x0] | |
800029a2: 30 1a mov r10,1 | |
800029a4: f1 da d0 01 bfins r8,r10,0x0,0x1 | |
800029a8: 93 08 st.w r9[0x0],r8 | |
} | |
800029aa: 2f ed sub sp,-8 | |
800029ac: e3 cd 80 80 ldm sp++,r7,pc | |
800029b0 <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt>: | |
int aery::pm_init_gclk(enum Pm_gclk clknum, enum Pm_gclk_source clksrc, | |
uint16_t clkdiv) | |
{ | |
800029b0: eb cd 40 80 pushm r7,lr | |
800029b4: 1a 97 mov r7,sp | |
800029b6: 20 5d sub sp,20 | |
800029b8: ef 4c ff f4 st.w r7[-12],r12 | |
800029bc: ef 4b ff f0 st.w r7[-16],r11 | |
800029c0: 14 98 mov r8,r10 | |
800029c2: ef 58 ff ec st.h r7[-20],r8 | |
volatile avr32_pm_gcctrl_t *gclock = &(AVR32_PM.GCCTRL[clknum]); | |
800029c6: fe 79 0c 00 mov r9,-62464 | |
800029ca: ee f8 ff f4 ld.w r8,r7[-12] | |
800029ce: 2e 88 sub r8,-24 | |
800029d0: a3 68 lsl r8,0x2 | |
800029d2: f2 08 00 08 add r8,r9,r8 | |
800029d6: ef 48 ff f8 st.w r7[-8],r8 | |
bool was_enabled = (bool) gclock->cen; | |
800029da: ee f8 ff f8 ld.w r8,r7[-8] | |
800029de: 70 08 ld.w r8,r8[0x0] | |
800029e0: e2 18 00 04 andl r8,0x4,COH | |
800029e4: 5f 18 srne r8 | |
800029e6: ef 68 ff ff st.b r7[-1],r8 | |
if (clkdiv > 256) | |
800029ea: ef 09 ff ec ld.sh r9,r7[-20] | |
800029ee: e0 68 01 00 mov r8,256 | |
800029f2: f0 09 19 00 cp.h r9,r8 | |
800029f6: e0 88 00 04 brls 800029fe <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt+0x4e> | |
return -1; | |
800029fa: 3f f8 mov r8,-1 | |
800029fc: c4 a8 rjmp 80002a90 <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt+0xe0> | |
/* | |
* Disable general clock before init to prevent glitches on the clock | |
* during the possible reinitialization. | |
*/ | |
aery::pm_disable_gclk(clknum); | |
800029fe: ee fc ff f4 ld.w r12,r7[-12] | |
80002a02: f0 1f 00 26 mcall 80002a98 <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt+0xe8> | |
/* Select clock source */ | |
gclock->oscsel = (bool) (clksrc & 1); | |
80002a06: ee f8 ff f0 ld.w r8,r7[-16] | |
80002a0a: f1 d8 c0 01 bfextu r8,r8,0x0,0x1 | |
80002a0e: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
80002a12: ee f9 ff f8 ld.w r9,r7[-8] | |
80002a16: 72 08 ld.w r8,r9[0x0] | |
80002a18: f1 da d0 01 bfins r8,r10,0x0,0x1 | |
80002a1c: 93 08 st.w r9[0x0],r8 | |
gclock->pllsel = (bool) (clksrc & 2); | |
80002a1e: ee f8 ff f0 ld.w r8,r7[-16] | |
80002a22: e2 18 00 02 andl r8,0x2,COH | |
80002a26: 5f 18 srne r8 | |
80002a28: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
80002a2c: ee f9 ff f8 ld.w r9,r7[-8] | |
80002a30: 72 08 ld.w r8,r9[0x0] | |
80002a32: f1 da d0 21 bfins r8,r10,0x1,0x1 | |
80002a36: 93 08 st.w r9[0x0],r8 | |
if (clkdiv > 0) { | |
80002a38: ef 09 ff ec ld.sh r9,r7[-20] | |
80002a3c: 30 08 mov r8,0 | |
80002a3e: f0 09 19 00 cp.h r9,r8 | |
80002a42: c1 50 breq 80002a6c <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt+0xbc> | |
gclock->diven = 1; | |
80002a44: ee f9 ff f8 ld.w r9,r7[-8] | |
80002a48: 72 08 ld.w r8,r9[0x0] | |
80002a4a: 30 1a mov r10,1 | |
80002a4c: f1 da d0 81 bfins r8,r10,0x4,0x1 | |
80002a50: 93 08 st.w r9[0x0],r8 | |
gclock->div = clkdiv - 1; | |
80002a52: ef 08 ff ec ld.sh r8,r7[-20] | |
80002a56: 5c 58 castu.b r8 | |
80002a58: 20 18 sub r8,1 | |
80002a5a: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
80002a5e: ee f9 ff f8 ld.w r9,r7[-8] | |
80002a62: 72 08 ld.w r8,r9[0x0] | |
80002a64: f1 da d1 08 bfins r8,r10,0x8,0x8 | |
80002a68: 93 08 st.w r9[0x0],r8 | |
80002a6a: c0 88 rjmp 80002a7a <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt+0xca> | |
} else { | |
gclock->diven = 0; | |
80002a6c: ee f9 ff f8 ld.w r9,r7[-8] | |
80002a70: 72 08 ld.w r8,r9[0x0] | |
80002a72: 30 0a mov r10,0 | |
80002a74: f1 da d0 81 bfins r8,r10,0x4,0x1 | |
80002a78: 93 08 st.w r9[0x0],r8 | |
} | |
if (was_enabled) | |
80002a7a: ef 39 ff ff ld.ub r9,r7[-1] | |
80002a7e: 30 08 mov r8,0 | |
80002a80: f0 09 18 00 cp.b r9,r8 | |
80002a84: c0 50 breq 80002a8e <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt+0xde> | |
aery::pm_enable_gclk(clknum); | |
80002a86: ee fc ff f4 ld.w r12,r7[-12] | |
80002a8a: f0 1f 00 05 mcall 80002a9c <_ZN4aery12pm_init_gclkENS_7Pm_gclkENS_14Pm_gclk_sourceEt+0xec> | |
return 0; | |
80002a8e: 30 08 mov r8,0 | |
} | |
80002a90: 10 9c mov r12,r8 | |
80002a92: 2f bd sub sp,-20 | |
80002a94: e3 cd 80 80 ldm sp++,r7,pc | |
80002a98: 80 00 ld.sh r0,r0[0x0] | |
80002a9a: 2b 7a sub r10,-73 | |
80002a9c: 80 00 ld.sh r0,r0[0x0] | |
80002a9e: 2b 4e sub lr,-76 | |
80002aa0 <_ZN4aery24pm_wait_osc_to_stabilizeEh>: | |
void aery::pm_wait_osc_to_stabilize(uint8_t oscnum) | |
{ | |
80002aa0: eb cd 40 80 pushm r7,lr | |
80002aa4: 1a 97 mov r7,sp | |
80002aa6: 20 1d sub sp,4 | |
80002aa8: 18 98 mov r8,r12 | |
80002aaa: ef 68 ff fc st.b r7[-4],r8 | |
switch (oscnum) { | |
80002aae: ef 38 ff fc ld.ub r8,r7[-4] | |
80002ab2: 58 18 cp.w r8,1 | |
80002ab4: c0 f0 breq 80002ad2 <_ZN4aery24pm_wait_osc_to_stabilizeEh+0x32> | |
80002ab6: e0 48 00 20 cp.w r8,32 | |
80002aba: c1 50 breq 80002ae4 <_ZN4aery24pm_wait_osc_to_stabilizeEh+0x44> | |
80002abc: 58 08 cp.w r8,0 | |
80002abe: c1 b1 brne 80002af4 <_ZN4aery24pm_wait_osc_to_stabilizeEh+0x54> | |
case 0: | |
while (!(AVR32_PM.isr & AVR32_PM_ISR_OSC0RDY_MASK)); | |
80002ac0: fe 78 0c 00 mov r8,-62464 | |
80002ac4: 71 38 ld.w r8,r8[0x4c] | |
80002ac6: e2 18 00 80 andl r8,0x80,COH | |
80002aca: 5f 08 sreq r8 | |
80002acc: 5c 58 castu.b r8 | |
80002ace: cf 91 brne 80002ac0 <_ZN4aery24pm_wait_osc_to_stabilizeEh+0x20> | |
break; | |
80002ad0: c1 28 rjmp 80002af4 <_ZN4aery24pm_wait_osc_to_stabilizeEh+0x54> | |
case 1: | |
while (!(AVR32_PM.isr & AVR32_PM_ISR_OSC1RDY_MASK)); | |
80002ad2: fe 78 0c 00 mov r8,-62464 | |
80002ad6: 71 38 ld.w r8,r8[0x4c] | |
80002ad8: e2 18 01 00 andl r8,0x100,COH | |
80002adc: 5f 08 sreq r8 | |
80002ade: 5c 58 castu.b r8 | |
80002ae0: cf 91 brne 80002ad2 <_ZN4aery24pm_wait_osc_to_stabilizeEh+0x32> | |
break; | |
80002ae2: c0 98 rjmp 80002af4 <_ZN4aery24pm_wait_osc_to_stabilizeEh+0x54> | |
case 32: | |
while (!(AVR32_PM.isr & AVR32_PM_ISR_OSC32RDY_MASK)); | |
80002ae4: fe 78 0c 00 mov r8,-62464 | |
80002ae8: 71 38 ld.w r8,r8[0x4c] | |
80002aea: e2 18 02 00 andl r8,0x200,COH | |
80002aee: 5f 08 sreq r8 | |
80002af0: 5c 58 castu.b r8 | |
80002af2: cf 91 brne 80002ae4 <_ZN4aery24pm_wait_osc_to_stabilizeEh+0x44> | |
break; | |
} | |
} | |
80002af4: 2f fd sub sp,-4 | |
80002af6: e3 cd 80 80 ldm sp++,r7,pc | |
80002afa <_ZN4aery19pm_wait_pll_to_lockEPV14avr32_pm_pll_t>: | |
void aery::pm_wait_pll_to_lock(volatile avr32_pm_pll_t *ppll) | |
{ | |
80002afa: eb cd 40 80 pushm r7,lr | |
80002afe: 1a 97 mov r7,sp | |
80002b00: 20 1d sub sp,4 | |
80002b02: ef 4c ff fc st.w r7[-4],r12 | |
if (ppll == &AVR32_PM.PLL[0]) { | |
80002b06: fe 78 0c 00 mov r8,-62464 | |
80002b0a: 2e 08 sub r8,-32 | |
80002b0c: ee f9 ff fc ld.w r9,r7[-4] | |
80002b10: 10 39 cp.w r9,r8 | |
80002b12: c0 c1 brne 80002b2a <_ZN4aery19pm_wait_pll_to_lockEPV14avr32_pm_pll_t+0x30> | |
while (!(AVR32_PM.isr & AVR32_PM_ISR_LOCK0_MASK)); | |
80002b14: fe 78 0c 00 mov r8,-62464 | |
80002b18: 71 38 ld.w r8,r8[0x4c] | |
80002b1a: f1 d8 c0 01 bfextu r8,r8,0x0,0x1 | |
80002b1e: 5c 58 castu.b r8 | |
80002b20: ec 18 00 01 eorl r8,0x1 | |
80002b24: 5c 58 castu.b r8 | |
80002b26: cf 71 brne 80002b14 <_ZN4aery19pm_wait_pll_to_lockEPV14avr32_pm_pll_t+0x1a> | |
80002b28: c1 08 rjmp 80002b48 <_ZN4aery19pm_wait_pll_to_lockEPV14avr32_pm_pll_t+0x4e> | |
} else if (ppll == &AVR32_PM.PLL[1]) { | |
80002b2a: fe 78 0c 00 mov r8,-62464 | |
80002b2e: 2d c8 sub r8,-36 | |
80002b30: ee f9 ff fc ld.w r9,r7[-4] | |
80002b34: 10 39 cp.w r9,r8 | |
80002b36: c0 91 brne 80002b48 <_ZN4aery19pm_wait_pll_to_lockEPV14avr32_pm_pll_t+0x4e> | |
while (!(AVR32_PM.isr & AVR32_PM_ISR_LOCK1_MASK)); | |
80002b38: fe 78 0c 00 mov r8,-62464 | |
80002b3c: 71 38 ld.w r8,r8[0x4c] | |
80002b3e: e2 18 00 02 andl r8,0x2,COH | |
80002b42: 5f 08 sreq r8 | |
80002b44: 5c 58 castu.b r8 | |
80002b46: cf 91 brne 80002b38 <_ZN4aery19pm_wait_pll_to_lockEPV14avr32_pm_pll_t+0x3e> | |
} | |
} | |
80002b48: 2f fd sub sp,-4 | |
80002b4a: e3 cd 80 80 ldm sp++,r7,pc | |
80002b4e <_ZN4aery14pm_enable_gclkENS_7Pm_gclkE>: | |
void aery::pm_enable_gclk(enum Pm_gclk clknum) | |
{ | |
80002b4e: eb cd 40 80 pushm r7,lr | |
80002b52: 1a 97 mov r7,sp | |
80002b54: 20 1d sub sp,4 | |
80002b56: ef 4c ff fc st.w r7[-4],r12 | |
AVR32_PM.GCCTRL[clknum].cen = 1; | |
80002b5a: fe 79 0c 00 mov r9,-62464 | |
80002b5e: ee f8 ff fc ld.w r8,r7[-4] | |
80002b62: f0 ca ff e8 sub r10,r8,-24 | |
80002b66: f2 0a 03 28 ld.w r8,r9[r10<<0x2] | |
80002b6a: 30 1b mov r11,1 | |
80002b6c: f1 db d0 41 bfins r8,r11,0x2,0x1 | |
80002b70: f2 0a 09 28 st.w r9[r10<<0x2],r8 | |
} | |
80002b74: 2f fd sub sp,-4 | |
80002b76: e3 cd 80 80 ldm sp++,r7,pc | |
80002b7a <_ZN4aery15pm_disable_gclkENS_7Pm_gclkE>: | |
void aery::pm_disable_gclk(enum Pm_gclk clknum) | |
{ | |
80002b7a: eb cd 40 80 pushm r7,lr | |
80002b7e: 1a 97 mov r7,sp | |
80002b80: 20 1d sub sp,4 | |
80002b82: ef 4c ff fc st.w r7[-4],r12 | |
AVR32_PM.GCCTRL[clknum].cen = 0; | |
80002b86: fe 79 0c 00 mov r9,-62464 | |
80002b8a: ee f8 ff fc ld.w r8,r7[-4] | |
80002b8e: f0 ca ff e8 sub r10,r8,-24 | |
80002b92: f2 0a 03 28 ld.w r8,r9[r10<<0x2] | |
80002b96: 30 0b mov r11,0 | |
80002b98: f1 db d0 41 bfins r8,r11,0x2,0x1 | |
80002b9c: f2 0a 09 28 st.w r9[r10<<0x2],r8 | |
/* We have to wait before cen reads zero. */ | |
while (AVR32_PM.GCCTRL[clknum].cen); | |
80002ba0: fe 78 0c 00 mov r8,-62464 | |
80002ba4: ee f9 ff fc ld.w r9,r7[-4] | |
80002ba8: 2e 89 sub r9,-24 | |
80002baa: f0 09 03 28 ld.w r8,r8[r9<<0x2] | |
80002bae: f1 d8 c0 41 bfextu r8,r8,0x2,0x1 | |
80002bb2: f3 d8 c0 08 bfextu r9,r8,0x0,0x8 | |
80002bb6: 30 08 mov r8,0 | |
80002bb8: f0 09 18 00 cp.b r9,r8 | |
80002bbc: 5f 18 srne r8 | |
80002bbe: 5c 58 castu.b r8 | |
80002bc0: cf 01 brne 80002ba0 <_ZN4aery15pm_disable_gclkENS_7Pm_gclkE+0x26> | |
} | |
80002bc2: 2f fd sub sp,-4 | |
80002bc4: e3 cd 80 80 ldm sp++,r7,pc | |
80002bc8 <_ZN4aery13pm_select_mckENS_13Pm_mck_sourceE>: | |
void aery::pm_select_mck(enum Pm_mck_source mcksrc) | |
{ | |
80002bc8: eb cd 40 80 pushm r7,lr | |
80002bcc: 1a 97 mov r7,sp | |
80002bce: 20 1d sub sp,4 | |
80002bd0: ef 4c ff fc st.w r7[-4],r12 | |
AVR32_PM.MCCTRL.mcsel = mcksrc; | |
80002bd4: fe 79 0c 00 mov r9,-62464 | |
80002bd8: ee f8 ff fc ld.w r8,r7[-4] | |
80002bdc: 5c 58 castu.b r8 | |
80002bde: f1 d8 c0 02 bfextu r8,r8,0x0,0x2 | |
80002be2: f5 d8 c0 08 bfextu r10,r8,0x0,0x8 | |
80002be6: 72 08 ld.w r8,r9[0x0] | |
80002be8: f1 da d0 02 bfins r8,r10,0x0,0x2 | |
80002bec: 93 08 st.w r9[0x0],r8 | |
} | |
80002bee: 2f fd sub sp,-4 | |
80002bf0: e3 cd 80 80 ldm sp++,r7,pc | |
80002bf4 <_ZN4aery11pm_get_fmckEv>: | |
uint32_t aery::pm_get_fmck(void) | |
{ | |
80002bf4: eb cd 40 80 pushm r7,lr | |
80002bf8: 1a 97 mov r7,sp | |
80002bfa: 20 2d sub sp,8 | |
uint32_t mck = 0; | |
80002bfc: 30 08 mov r8,0 | |
80002bfe: ef 48 ff f8 st.w r7[-8],r8 | |
volatile avr32_pm_pll_t *pll0 = &AVR32_PM.PLL[0]; | |
80002c02: fe 78 0c 00 mov r8,-62464 | |
80002c06: 2e 08 sub r8,-32 | |
80002c08: ef 48 ff fc st.w r7[-4],r8 | |
switch (AVR32_PM.MCCTRL.mcsel) { | |
80002c0c: fe 78 0c 00 mov r8,-62464 | |
80002c10: 70 08 ld.w r8,r8[0x0] | |
80002c12: f1 d8 c0 02 bfextu r8,r8,0x0,0x2 | |
80002c16: 5c 58 castu.b r8 | |
80002c18: 58 18 cp.w r8,1 | |
80002c1a: c0 a0 breq 80002c2e <_ZN4aery11pm_get_fmckEv+0x3a> | |
80002c1c: 58 28 cp.w r8,2 | |
80002c1e: c0 f0 breq 80002c3c <_ZN4aery11pm_get_fmckEv+0x48> | |
80002c20: 58 08 cp.w r8,0 | |
80002c22: c6 21 brne 80002ce6 <_ZN4aery11pm_get_fmckEv+0xf2> | |
case 0: | |
mck = F_SLOWCLK; | |
80002c24: e0 78 c1 38 mov r8,115000 | |
80002c28: ef 48 ff f8 st.w r7[-8],r8 | |
break; | |
80002c2c: c5 d8 rjmp 80002ce6 <_ZN4aery11pm_get_fmckEv+0xf2> | |
case 1: | |
mck = F_OSC0; | |
80002c2e: e0 68 1b 00 mov r8,6912 | |
80002c32: ea 18 00 b7 orh r8,0xb7 | |
80002c36: ef 48 ff f8 st.w r7[-8],r8 | |
break; | |
80002c3a: c5 68 rjmp 80002ce6 <_ZN4aery11pm_get_fmckEv+0xf2> | |
case 2: | |
if (pll0->pllosc == 0) | |
80002c3c: ee f8 ff fc ld.w r8,r7[-4] | |
80002c40: 70 08 ld.w r8,r8[0x0] | |
80002c42: e2 18 00 02 andl r8,0x2,COH | |
80002c46: 5f 08 sreq r8 | |
80002c48: 5c 58 castu.b r8 | |
80002c4a: c0 80 breq 80002c5a <_ZN4aery11pm_get_fmckEv+0x66> | |
mck = F_OSC0; | |
80002c4c: e0 68 1b 00 mov r8,6912 | |
80002c50: ea 18 00 b7 orh r8,0xb7 | |
80002c54: ef 48 ff f8 st.w r7[-8],r8 | |
80002c58: c0 78 rjmp 80002c66 <_ZN4aery11pm_get_fmckEv+0x72> | |
else | |
mck = F_OSC1; | |
80002c5a: e0 68 24 00 mov r8,9216 | |
80002c5e: ea 18 00 f4 orh r8,0xf4 | |
80002c62: ef 48 ff f8 st.w r7[-8],r8 | |
if (pll0->plldiv > 0) | |
80002c66: ee f8 ff fc ld.w r8,r7[-4] | |
80002c6a: 70 08 ld.w r8,r8[0x0] | |
80002c6c: f1 d8 c1 04 bfextu r8,r8,0x8,0x4 | |
80002c70: 5c 58 castu.b r8 | |
80002c72: 58 08 cp.w r8,0 | |
80002c74: 5f 98 srgt r8 | |
80002c76: 5c 58 castu.b r8 | |
80002c78: c1 80 breq 80002ca8 <_ZN4aery11pm_get_fmckEv+0xb4> | |
mck *= (pll0->pllmul + 1) / pll0->plldiv; | |
80002c7a: ee f8 ff fc ld.w r8,r7[-4] | |
80002c7e: 70 08 ld.w r8,r8[0x0] | |
80002c80: f1 d8 c2 04 bfextu r8,r8,0x10,0x4 | |
80002c84: 5c 58 castu.b r8 | |
80002c86: f0 c9 ff ff sub r9,r8,-1 | |
80002c8a: ee f8 ff fc ld.w r8,r7[-4] | |
80002c8e: 70 08 ld.w r8,r8[0x0] | |
80002c90: f1 d8 c1 04 bfextu r8,r8,0x8,0x4 | |
80002c94: 5c 58 castu.b r8 | |
80002c96: f2 08 0c 08 divs r8,r9,r8 | |
80002c9a: ee f9 ff f8 ld.w r9,r7[-8] | |
80002c9e: f2 08 02 48 mul r8,r9,r8 | |
80002ca2: ef 48 ff f8 st.w r7[-8],r8 | |
80002ca6: c1 08 rjmp 80002cc6 <_ZN4aery11pm_get_fmckEv+0xd2> | |
else | |
mck *= 2 * (pll0->pllmul + 1); | |
80002ca8: ee f8 ff fc ld.w r8,r7[-4] | |
80002cac: 70 08 ld.w r8,r8[0x0] | |
80002cae: f1 d8 c2 04 bfextu r8,r8,0x10,0x4 | |
80002cb2: 5c 58 castu.b r8 | |
80002cb4: 2f f8 sub r8,-1 | |
80002cb6: 10 99 mov r9,r8 | |
80002cb8: ee f8 ff f8 ld.w r8,r7[-8] | |
80002cbc: f2 08 02 48 mul r8,r9,r8 | |
80002cc0: a1 78 lsl r8,0x1 | |
80002cc2: ef 48 ff f8 st.w r7[-8],r8 | |
if (pll0->pllopt & 2) | |
80002cc6: ee f8 ff fc ld.w r8,r7[-4] | |
80002cca: 70 08 ld.w r8,r8[0x0] | |
80002ccc: f1 d8 c0 43 bfextu r8,r8,0x2,0x3 | |
80002cd0: 5c 58 castu.b r8 | |
80002cd2: e2 18 00 02 andl r8,0x2,COH | |
80002cd6: 5f 18 srne r8 | |
80002cd8: 5c 58 castu.b r8 | |
80002cda: c0 60 breq 80002ce6 <_ZN4aery11pm_get_fmckEv+0xf2> | |
mck /= 2; | |
80002cdc: ee f8 ff f8 ld.w r8,r7[-8] | |
80002ce0: a1 98 lsr r8,0x1 | |
80002ce2: ef 48 ff f8 st.w r7[-8],r8 | |
break; | |
} | |
return mck; | |
80002ce6: ee f8 ff f8 ld.w r8,r7[-8] | |
} | |
80002cea: 10 9c mov r12,r8 | |
80002cec: 2f ed sub sp,-8 | |
80002cee: e3 cd 80 80 ldm sp++,r7,pc | |
80002cf2 <_ZN4aery18pm_setup_clkdomainEhh>: | |
int aery::pm_setup_clkdomain(uint8_t prescal, uint8_t domain) | |
{ | |
80002cf2: eb cd 40 80 pushm r7,lr | |
80002cf6: 1a 97 mov r7,sp | |
80002cf8: 20 3d sub sp,12 | |
80002cfa: 18 99 mov r9,r12 | |
80002cfc: 16 98 mov r8,r11 | |
80002cfe: ef 69 ff f8 st.b r7[-8],r9 | |
80002d02: ef 68 ff f4 st.b r7[-12],r8 | |
uint32_t cksel = AVR32_PM.cksel; | |
80002d06: fe 78 0c 00 mov r8,-62464 | |
80002d0a: 70 18 ld.w r8,r8[0x4] | |
80002d0c: ef 48 ff fc st.w r7[-4],r8 | |
if (prescal != 0 && prescal > 8) | |
80002d10: ef 39 ff f8 ld.ub r9,r7[-8] | |
80002d14: 30 08 mov r8,0 | |
80002d16: f0 09 18 00 cp.b r9,r8 | |
80002d1a: c0 a0 breq 80002d2e <_ZN4aery18pm_setup_clkdomainEhh+0x3c> | |
80002d1c: ef 39 ff f8 ld.ub r9,r7[-8] | |
80002d20: 30 88 mov r8,8 | |
80002d22: f0 09 18 00 cp.b r9,r8 | |
80002d26: e0 88 00 04 brls 80002d2e <_ZN4aery18pm_setup_clkdomainEhh+0x3c> | |
return -1; | |
80002d2a: 3f f8 mov r8,-1 | |
80002d2c: c9 e8 rjmp 80002e68 <_ZN4aery18pm_setup_clkdomainEhh+0x176> | |
if (domain & CLKDOMAIN_CPU) { | |
80002d2e: ef 38 ff f4 ld.ub r8,r7[-12] | |
80002d32: f1 d8 c0 01 bfextu r8,r8,0x0,0x1 | |
80002d36: 5c 58 castu.b r8 | |
80002d38: c2 40 breq 80002d80 <_ZN4aery18pm_setup_clkdomainEhh+0x8e> | |
cksel &= CKSEL_RESET_MASK(CPU); | |
80002d3a: ee f8 ff fc ld.w r8,r7[-4] | |
80002d3e: e0 18 ff 78 andl r8,0xff78 | |
80002d42: ef 48 ff fc st.w r7[-4],r8 | |
if (prescal != 0) { | |
80002d46: ef 39 ff f8 ld.ub r9,r7[-8] | |
80002d4a: 30 08 mov r8,0 | |
80002d4c: f0 09 18 00 cp.b r9,r8 | |
80002d50: c1 80 breq 80002d80 <_ZN4aery18pm_setup_clkdomainEhh+0x8e> | |
cksel |= CKSEL_PRESCALER_MASK(prescal, CPU); | |
80002d52: ef 38 ff f8 ld.ub r8,r7[-8] | |
80002d56: 20 18 sub r8,1 | |
80002d58: 10 99 mov r9,r8 | |
80002d5a: ee f8 ff fc ld.w r8,r7[-4] | |
80002d5e: f3 e8 10 08 or r8,r9,r8 | |
80002d62: a7 b8 sbr r8,0x7 | |
80002d64: ef 48 ff fc st.w r7[-4],r8 | |
cksel |= CKSEL_PRESCALER_MASK(prescal, HSB); | |
80002d68: ef 38 ff f8 ld.ub r8,r7[-8] | |
80002d6c: 20 18 sub r8,1 | |
80002d6e: a9 68 lsl r8,0x8 | |
80002d70: 10 99 mov r9,r8 | |
80002d72: ee f8 ff fc ld.w r8,r7[-4] | |
80002d76: f3 e8 10 08 or r8,r9,r8 | |
80002d7a: af b8 sbr r8,0xf | |
80002d7c: ef 48 ff fc st.w r7[-4],r8 | |
} | |
} | |
if (domain & CLKDOMAIN_PBA) { | |
80002d80: ef 38 ff f4 ld.ub r8,r7[-12] | |
80002d84: e2 18 00 02 andl r8,0x2,COH | |
80002d88: c1 90 breq 80002dba <_ZN4aery18pm_setup_clkdomainEhh+0xc8> | |
cksel &= CKSEL_RESET_MASK(PBA); | |
80002d8a: ee f8 ff fc ld.w r8,r7[-4] | |
80002d8e: e4 18 ff 78 andh r8,0xff78 | |
80002d92: ef 48 ff fc st.w r7[-4],r8 | |
if (prescal != 0) | |
80002d96: ef 39 ff f8 ld.ub r9,r7[-8] | |
80002d9a: 30 08 mov r8,0 | |
80002d9c: f0 09 18 00 cp.b r9,r8 | |
80002da0: c0 d0 breq 80002dba <_ZN4aery18pm_setup_clkdomainEhh+0xc8> | |
cksel |= CKSEL_PRESCALER_MASK(prescal, PBA); | |
80002da2: ef 38 ff f8 ld.ub r8,r7[-8] | |
80002da6: 20 18 sub r8,1 | |
80002da8: b1 68 lsl r8,0x10 | |
80002daa: 10 99 mov r9,r8 | |
80002dac: ee f8 ff fc ld.w r8,r7[-4] | |
80002db0: f3 e8 10 08 or r8,r9,r8 | |
80002db4: b7 b8 sbr r8,0x17 | |
80002db6: ef 48 ff fc st.w r7[-4],r8 | |
} | |
if (domain & CLKDOMAIN_PBB) { | |
80002dba: ef 38 ff f4 ld.ub r8,r7[-12] | |
80002dbe: e2 18 00 04 andl r8,0x4,COH | |
80002dc2: c1 90 breq 80002df4 <_ZN4aery18pm_setup_clkdomainEhh+0x102> | |
cksel &= CKSEL_RESET_MASK(PBB); | |
80002dc4: ee f8 ff fc ld.w r8,r7[-4] | |
80002dc8: e4 18 78 ff andh r8,0x78ff | |
80002dcc: ef 48 ff fc st.w r7[-4],r8 | |
if (prescal != 0) | |
80002dd0: ef 39 ff f8 ld.ub r9,r7[-8] | |
80002dd4: 30 08 mov r8,0 | |
80002dd6: f0 09 18 00 cp.b r9,r8 | |
80002dda: c0 d0 breq 80002df4 <_ZN4aery18pm_setup_clkdomainEhh+0x102> | |
cksel |= CKSEL_PRESCALER_MASK(prescal, PBB); | |
80002ddc: ef 38 ff f8 ld.ub r8,r7[-8] | |
80002de0: 20 18 sub r8,1 | |
80002de2: b9 68 lsl r8,0x18 | |
80002de4: 10 99 mov r9,r8 | |
80002de6: ee f8 ff fc ld.w r8,r7[-4] | |
80002dea: f3 e8 10 08 or r8,r9,r8 | |
80002dee: bf b8 sbr r8,0x1f | |
80002df0: ef 48 ff fc st.w r7[-4],r8 | |
} | |
/* Check that PBA and PBB clocks are equal or smaller than CPU clock */ | |
if (CKSEL_HASDIV(cksel, CPU)) { | |
80002df4: ee f8 ff fc ld.w r8,r7[-4] | |
80002df8: e2 18 00 80 andl r8,0x80,COH | |
80002dfc: c2 80 breq 80002e4c <_ZN4aery18pm_setup_clkdomainEhh+0x15a> | |
if (!CKSEL_HASDIV(cksel, PBA) || !CKSEL_HASDIV(cksel, PBB)) | |
80002dfe: ee f8 ff fc ld.w r8,r7[-4] | |
80002e02: e6 18 00 80 andh r8,0x80,COH | |
80002e06: c0 50 breq 80002e10 <_ZN4aery18pm_setup_clkdomainEhh+0x11e> | |
80002e08: ee f8 ff fc ld.w r8,r7[-4] | |
80002e0c: 58 08 cp.w r8,0 | |
80002e0e: c0 35 brlt 80002e14 <_ZN4aery18pm_setup_clkdomainEhh+0x122> | |
return -1; | |
80002e10: 3f f8 mov r8,-1 | |
80002e12: c2 b8 rjmp 80002e68 <_ZN4aery18pm_setup_clkdomainEhh+0x176> | |
if (CKSEL_GETDIV(cksel, CPU) > CKSEL_GETDIV(cksel, PBA)) | |
80002e14: ee f8 ff fc ld.w r8,r7[-4] | |
80002e18: f3 d8 c0 03 bfextu r9,r8,0x0,0x3 | |
80002e1c: ee f8 ff fc ld.w r8,r7[-4] | |
80002e20: e6 18 00 07 andh r8,0x7,COH | |
80002e24: b1 88 lsr r8,0x10 | |
80002e26: 10 39 cp.w r9,r8 | |
80002e28: e0 88 00 04 brls 80002e30 <_ZN4aery18pm_setup_clkdomainEhh+0x13e> | |
return -1; | |
80002e2c: 3f f8 mov r8,-1 | |
80002e2e: c1 d8 rjmp 80002e68 <_ZN4aery18pm_setup_clkdomainEhh+0x176> | |
if (CKSEL_GETDIV(cksel, CPU) > CKSEL_GETDIV(cksel, PBB)) | |
80002e30: ee f8 ff fc ld.w r8,r7[-4] | |
80002e34: f3 d8 c0 03 bfextu r9,r8,0x0,0x3 | |
80002e38: ee f8 ff fc ld.w r8,r7[-4] | |
80002e3c: e6 18 07 00 andh r8,0x700,COH | |
80002e40: b9 88 lsr r8,0x18 | |
80002e42: 10 39 cp.w r9,r8 | |
80002e44: e0 88 00 04 brls 80002e4c <_ZN4aery18pm_setup_clkdomainEhh+0x15a> | |
return -1; | |
80002e48: 3f f8 mov r8,-1 | |
80002e4a: c0 f8 rjmp 80002e68 <_ZN4aery18pm_setup_clkdomainEhh+0x176> | |
} | |
/* The register must not be re-written until CKRDY goes high. */ | |
while (!(AVR32_PM.isr & AVR32_PM_ISR_CKRDY_MASK)); | |
80002e4c: fe 78 0c 00 mov r8,-62464 | |
80002e50: 71 38 ld.w r8,r8[0x4c] | |
80002e52: e2 18 00 20 andl r8,0x20,COH | |
80002e56: 5f 08 sreq r8 | |
80002e58: 5c 58 castu.b r8 | |
80002e5a: cf 91 brne 80002e4c <_ZN4aery18pm_setup_clkdomainEhh+0x15a> | |
AVR32_PM.cksel = cksel; | |
80002e5c: fe 78 0c 00 mov r8,-62464 | |
80002e60: ee f9 ff fc ld.w r9,r7[-4] | |
80002e64: 91 19 st.w r8[0x4],r9 | |
return 0; | |
80002e66: 30 08 mov r8,0 | |
} | |
80002e68: 10 9c mov r12,r8 | |
80002e6a: 2f dd sub sp,-12 | |
80002e6c: e3 cd 80 80 ldm sp++,r7,pc | |
80002e70 <_ZN4aery17pm_get_fclkdomainEh>: | |
uint32_t aery::pm_get_fclkdomain(uint8_t domain) | |
{ | |
80002e70: eb cd 40 80 pushm r7,lr | |
80002e74: 1a 97 mov r7,sp | |
80002e76: 20 2d sub sp,8 | |
80002e78: 18 98 mov r8,r12 | |
80002e7a: ef 68 ff f8 st.b r7[-8],r8 | |
uint32_t f = aery::pm_get_fmck(); | |
80002e7e: f0 1f 00 2e mcall 80002f34 <_ZN4aery17pm_get_fclkdomainEh+0xc4> | |
80002e82: 18 98 mov r8,r12 | |
80002e84: ef 48 ff fc st.w r7[-4],r8 | |
switch (domain) { | |
80002e88: ef 38 ff f8 ld.ub r8,r7[-8] | |
80002e8c: 58 28 cp.w r8,2 | |
80002e8e: c1 a0 breq 80002ec2 <_ZN4aery17pm_get_fclkdomainEh+0x52> | |
80002e90: 58 48 cp.w r8,4 | |
80002e92: c2 e0 breq 80002eee <_ZN4aery17pm_get_fclkdomainEh+0x7e> | |
80002e94: 58 18 cp.w r8,1 | |
80002e96: c4 01 brne 80002f16 <_ZN4aery17pm_get_fclkdomainEh+0xa6> | |
case CLKDOMAIN_CPU: | |
if (CKSEL_HASDIV(AVR32_PM.cksel, CPU)) | |
80002e98: fe 78 0c 00 mov r8,-62464 | |
80002e9c: 70 18 ld.w r8,r8[0x4] | |
80002e9e: e2 18 00 80 andl r8,0x80,COH | |
80002ea2: 5f 18 srne r8 | |
80002ea4: 5c 58 castu.b r8 | |
80002ea6: c3 c0 breq 80002f1e <_ZN4aery17pm_get_fclkdomainEh+0xae> | |
f = f >> (CKSEL_GETDIV(AVR32_PM.cksel, CPU) + 1); | |
80002ea8: fe 78 0c 00 mov r8,-62464 | |
80002eac: 70 18 ld.w r8,r8[0x4] | |
80002eae: f1 d8 c0 03 bfextu r8,r8,0x0,0x3 | |
80002eb2: 2f f8 sub r8,-1 | |
80002eb4: ee f9 ff fc ld.w r9,r7[-4] | |
80002eb8: f2 08 0a 48 lsr r8,r9,r8 | |
80002ebc: ef 48 ff fc st.w r7[-4],r8 | |
break; | |
80002ec0: c3 48 rjmp 80002f28 <_ZN4aery17pm_get_fclkdomainEh+0xb8> | |
case CLKDOMAIN_PBA: | |
if (CKSEL_HASDIV(AVR32_PM.cksel, PBA)) | |
80002ec2: fe 78 0c 00 mov r8,-62464 | |
80002ec6: 70 18 ld.w r8,r8[0x4] | |
80002ec8: e6 18 00 80 andh r8,0x80,COH | |
80002ecc: 5f 18 srne r8 | |
80002ece: 5c 58 castu.b r8 | |
80002ed0: c2 90 breq 80002f22 <_ZN4aery17pm_get_fclkdomainEh+0xb2> | |
f = f >> (CKSEL_GETDIV(AVR32_PM.cksel, PBA) + 1); | |
80002ed2: fe 78 0c 00 mov r8,-62464 | |
80002ed6: 70 18 ld.w r8,r8[0x4] | |
80002ed8: e6 18 00 07 andh r8,0x7,COH | |
80002edc: b1 88 lsr r8,0x10 | |
80002ede: 2f f8 sub r8,-1 | |
80002ee0: ee f9 ff fc ld.w r9,r7[-4] | |
80002ee4: f2 08 0a 48 lsr r8,r9,r8 | |
80002ee8: ef 48 ff fc st.w r7[-4],r8 | |
break; | |
80002eec: c1 e8 rjmp 80002f28 <_ZN4aery17pm_get_fclkdomainEh+0xb8> | |
case CLKDOMAIN_PBB: | |
if (CKSEL_HASDIV(AVR32_PM.cksel, PBB)) | |
80002eee: fe 78 0c 00 mov r8,-62464 | |
80002ef2: 70 18 ld.w r8,r8[0x4] | |
80002ef4: bf 98 lsr r8,0x1f | |
80002ef6: 5c 58 castu.b r8 | |
80002ef8: c1 70 breq 80002f26 <_ZN4aery17pm_get_fclkdomainEh+0xb6> | |
f = f >> (CKSEL_GETDIV(AVR32_PM.cksel, PBB) + 1); | |
80002efa: fe 78 0c 00 mov r8,-62464 | |
80002efe: 70 18 ld.w r8,r8[0x4] | |
80002f00: e6 18 07 00 andh r8,0x700,COH | |
80002f04: b9 88 lsr r8,0x18 | |
80002f06: 2f f8 sub r8,-1 | |
80002f08: ee f9 ff fc ld.w r9,r7[-4] | |
80002f0c: f2 08 0a 48 lsr r8,r9,r8 | |
80002f10: ef 48 ff fc st.w r7[-4],r8 | |
break; | |
80002f14: c0 a8 rjmp 80002f28 <_ZN4aery17pm_get_fclkdomainEh+0xb8> | |
default: | |
f = 0; /* error */ | |
80002f16: 30 08 mov r8,0 | |
80002f18: ef 48 ff fc st.w r7[-4],r8 | |
80002f1c: c0 68 rjmp 80002f28 <_ZN4aery17pm_get_fclkdomainEh+0xb8> | |
switch (domain) { | |
case CLKDOMAIN_CPU: | |
if (CKSEL_HASDIV(AVR32_PM.cksel, CPU)) | |
f = f >> (CKSEL_GETDIV(AVR32_PM.cksel, CPU) + 1); | |
break; | |
80002f1e: d7 03 nop | |
80002f20: c0 48 rjmp 80002f28 <_ZN4aery17pm_get_fclkdomainEh+0xb8> | |
case CLKDOMAIN_PBA: | |
if (CKSEL_HASDIV(AVR32_PM.cksel, PBA)) | |
f = f >> (CKSEL_GETDIV(AVR32_PM.cksel, PBA) + 1); | |
break; | |
80002f22: d7 03 nop | |
80002f24: c0 28 rjmp 80002f28 <_ZN4aery17pm_get_fclkdomainEh+0xb8> | |
case CLKDOMAIN_PBB: | |
if (CKSEL_HASDIV(AVR32_PM.cksel, PBB)) | |
f = f >> (CKSEL_GETDIV(AVR32_PM.cksel, PBB) + 1); | |
break; | |
80002f26: d7 03 nop | |
default: | |
f = 0; /* error */ | |
} | |
return f; | |
80002f28: ee f8 ff fc ld.w r8,r7[-4] | |
} | |
80002f2c: 10 9c mov r12,r8 | |
80002f2e: 2f ed sub sp,-8 | |
80002f30: e3 cd 80 80 ldm sp++,r7,pc | |
80002f34: 80 00 ld.sh r0,r0[0x0] | |
80002f36: 2b f4 sub r4,-65 | |
80002f38 <USB_ResetInterface>: | |
USB_IsInitialized = false; | |
} | |
void USB_ResetInterface(void) | |
{ | |
80002f38: d4 21 pushm r4-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); | |
80002f3a: fe 78 0c 00 mov r8,-62464 | |
80002f3e: 30 16 mov r6,1 | |
80002f40: 71 c9 ld.w r9,r8[0x70] | |
80002f42: f3 d6 d0 21 bfins r9,r6,0x1,0x1 | |
80002f46: f1 49 00 70 st.w r8[112],r9 | |
AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].oscsel = !(USB_Options & USB_OPT_GCLK_CHANNEL_0); | |
80002f4a: 71 c9 ld.w r9,r8[0x70] | |
80002f4c: f3 d6 d0 01 bfins r9,r6,0x0,0x1 | |
80002f50: f1 49 00 70 st.w r8[112],r9 | |
AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].diven = (F_USB != USB_CLOCK_REQUIRED_FREQ); | |
80002f54: 71 c9 ld.w r9,r8[0x70] | |
80002f56: 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); | |
80002f5a: 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); | |
80002f5c: 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); | |
80002f60: 71 c9 ld.w r9,r8[0x70] | |
80002f62: f3 d5 d1 08 bfins r9,r5,0x8,0x8 | |
80002f66: f1 49 00 70 st.w r8[112],r9 | |
AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].cen = true; | |
80002f6a: 71 c9 ld.w r9,r8[0x70] | |
80002f6c: 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; | |
80002f70: fe 67 00 00 mov r7,-131072 | |
80002f74: f1 49 00 70 st.w r8[112],r9 | |
USB_INT_DisableAllInterrupts(); | |
80002f78: f0 1f 00 25 mcall 8000300c <USB_ResetInterface+0xd4> | |
USB_INT_ClearAllInterrupts(); | |
80002f7c: f0 1f 00 25 mcall 80003010 <USB_ResetInterface+0xd8> | |
80002f80: ee f8 08 00 ld.w r8,r7[2048] | |
80002f84: f1 d5 d1 e1 bfins r8,r5,0xf,0x1 | |
80002f88: ef 48 08 00 st.w r7[2048],r8 | |
AVR32_USBB.USBCON.usbe = true; | |
80002f8c: ee f8 08 00 ld.w r8,r7[2048] | |
80002f90: f1 d6 d1 e1 bfins r8,r6,0xf,0x1 | |
80002f94: 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; | |
80002f98: ee f8 08 00 ld.w r8,r7[2048] | |
80002f9c: f1 d5 d1 c1 bfins r8,r5,0xe,0x1 | |
80002fa0: 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; | |
80002fa4: ee f8 08 00 ld.w r8,r7[2048] | |
80002fa8: f1 d6 d3 21 bfins r8,r6,0x19,0x1 | |
80002fac: 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; | |
80002fb0: 49 98 lddpc r8,80003014 <USB_ResetInterface+0xdc> | |
80002fb2: 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; | |
80002fb4: 6e 08 ld.w r8,r7[0x0] | |
80002fb6: f1 d5 d1 81 bfins r8,r5,0xc,0x1 | |
80002fba: 8f 08 st.w r7[0x0],r8 | |
USB_Device_ConfigurationNumber = 0; | |
80002fbc: 49 78 lddpc r8,80003018 <USB_ResetInterface+0xe0> | |
80002fbe: 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; | |
80002fc0: ee f8 08 00 ld.w r8,r7[2048] | |
80002fc4: f1 d6 d0 21 bfins r8,r6,0x1,0x1 | |
80002fc8: ef 48 08 00 st.w r7[2048],r8 | |
#if !defined(NO_DEVICE_REMOTE_WAKEUP) | |
USB_Device_RemoteWakeupEnabled = false; | |
80002fcc: 49 48 lddpc r8,8000301c <USB_ResetInterface+0xe4> | |
80002fce: b0 85 st.b r8[0x0],r5 | |
#endif | |
#if !defined(NO_DEVICE_SELF_POWER) | |
USB_Device_CurrentlySelfPowered = false; | |
80002fd0: 49 48 lddpc r8,80003020 <USB_ResetInterface+0xe8> | |
uint8_t Number = (Address & ENDPOINT_EPNUM_MASK); | |
if (Number >= ENDPOINT_TOTAL_ENDPOINTS) | |
return false; | |
return Endpoint_ConfigureEndpoint_Prv(Number, | |
80002fd2: 30 3b mov r11,3 | |
80002fd4: b0 85 st.b r8[0x0],r5 | |
80002fd6: 0a 9c mov r12,r5 | |
80002fd8: f0 1f 00 13 mcall 80003024 <USB_ResetInterface+0xec> | |
case USB_INT_WAKEUPI: | |
AVR32_USBB.UDINTCLR.wakeupc = true; | |
(void)AVR32_USBB.UDINTCLR; | |
break; | |
case USB_INT_SUSPI: | |
AVR32_USBB.UDINTCLR.suspc = true; | |
80002fdc: 6e 28 ld.w r8,r7[0x8] | |
80002fde: f1 d6 d0 01 bfins r8,r6,0x0,0x1 | |
80002fe2: 8f 28 st.w r7[0x8],r8 | |
(void)AVR32_USBB.UDINTCLR; | |
80002fe4: 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; | |
80002fe6: 6e 68 ld.w r8,r7[0x18] | |
80002fe8: f1 d6 d0 01 bfins r8,r6,0x0,0x1 | |
80002fec: 8f 68 st.w r7[0x18],r8 | |
break; | |
case USB_INT_EORSTI: | |
AVR32_USBB.UDINTESET.eorstes = true; | |
80002fee: 6e 68 ld.w r8,r7[0x18] | |
80002ff0: f1 d6 d0 61 bfins r8,r6,0x3,0x1 | |
80002ff4: 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; | |
80002ff6: 6e 08 ld.w r8,r7[0x0] | |
80002ff8: f1 d5 d1 01 bfins r8,r5,0x8,0x1 | |
80002ffc: 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; | |
80002ffe: ee f8 08 00 ld.w r8,r7[2048] | |
80003002: f1 d6 d1 81 bfins r8,r6,0xc,0x1 | |
80003006: ef 48 08 00 st.w r7[2048],r8 | |
USB_Init_Host(); | |
#endif | |
} | |
USB_OTGPAD_On(); | |
} | |
8000300a: d8 22 popm r4-r7,pc | |
8000300c: 80 00 ld.sh r0,r0[0x0] | |
8000300e: 30 50 mov r0,5 | |
80003010: 80 00 ld.sh r0,r0[0x0] | |
80003012: 30 78 mov r8,7 | |
80003014: 00 00 add r0,r0 | |
80003016: 05 b8 ld.ub r8,r2[0x3] | |
80003018: 00 00 add r0,r0 | |
8000301a: 05 b4 ld.ub r4,r2[0x3] | |
8000301c: 00 00 add r0,r0 | |
8000301e: 05 b6 ld.ub r6,r2[0x3] | |
80003020: 00 00 add r0,r0 | |
80003022: 05 b5 ld.ub r5,r2[0x3] | |
80003024: 80 00 ld.sh r0,r0[0x0] | |
80003026: 3c f4 mov r4,-49 | |
80003028 <USB_Init>: | |
#if !defined(USE_STATIC_OPTIONS) | |
const uint8_t Options | |
#endif | |
) | |
{ | |
80003028: d4 01 pushm lr | |
{ | |
AVR32_USBB.USBCON.uide = false; | |
USB_CurrentMode = Mode; | |
} | |
#else | |
AVR32_USBB.USBCON.uide = false; | |
8000302a: fe 68 00 00 mov r8,-131072 | |
8000302e: 30 0a mov r10,0 | |
80003030: f0 f9 08 00 ld.w r9,r8[2048] | |
80003034: f3 da d3 01 bfins r9,r10,0x18,0x1 | |
80003038: f1 49 08 00 st.w r8[2048],r9 | |
#endif | |
USB_IsInitialized = true; | |
8000303c: 30 19 mov r9,1 | |
8000303e: 48 38 lddpc r8,80003048 <USB_Init+0x20> | |
80003040: b0 89 st.b r8[0x0],r9 | |
USB_ResetInterface(); | |
80003042: f0 1f 00 03 mcall 8000304c <USB_Init+0x24> | |
} | |
80003046: d8 02 popm pc | |
80003048: 00 00 add r0,r0 | |
8000304a: 05 b7 ld.ub r7,r2[0x3] | |
8000304c: 80 00 ld.sh r0,r0[0x0] | |
8000304e: 2f 38 sub r8,-13 | |
80003050 <USB_INT_DisableAllInterrupts>: | |
#define __INCLUDE_FROM_USB_DRIVER | |
#include "../USBInterrupt.h" | |
void USB_INT_DisableAllInterrupts(void) | |
{ | |
AVR32_USBB.USBCON.vbuste = false; | |
80003050: fe 68 00 00 mov r8,-131072 | |
80003054: 30 0a mov r10,0 | |
80003056: f0 f9 08 00 ld.w r9,r8[2048] | |
8000305a: f3 da d0 21 bfins r9,r10,0x1,0x1 | |
8000305e: f1 49 08 00 st.w r8[2048],r9 | |
AVR32_USBB.USBCON.idte = false; | |
80003062: f0 f9 08 00 ld.w r9,r8[2048] | |
80003066: f3 da d0 01 bfins r9,r10,0x0,0x1 | |
8000306a: f1 49 08 00 st.w r8[2048],r9 | |
AVR32_USBB.uhinteclr = -1; | |
8000306e: 3f f9 mov r9,-1 | |
80003070: f1 49 04 14 st.w r8[1044],r9 | |
AVR32_USBB.udinteclr = -1; | |
80003074: 91 59 st.w r8[0x14],r9 | |
} | |
80003076: 5e fc retal r12 | |
80003078 <USB_INT_ClearAllInterrupts>: | |
void USB_INT_ClearAllInterrupts(void) | |
{ | |
AVR32_USBB.USBSTACLR.vbustic = true; | |
80003078: fe 68 00 00 mov r8,-131072 | |
8000307c: 30 1a mov r10,1 | |
8000307e: f0 f9 08 08 ld.w r9,r8[2056] | |
80003082: f3 da d0 21 bfins r9,r10,0x1,0x1 | |
80003086: f1 49 08 08 st.w r8[2056],r9 | |
AVR32_USBB.USBSTACLR.idtic = true; | |
8000308a: f0 f9 08 08 ld.w r9,r8[2056] | |
8000308e: f3 da d0 01 bfins r9,r10,0x0,0x1 | |
80003092: f1 49 08 08 st.w r8[2056],r9 | |
AVR32_USBB.uhintclr = -1; | |
80003096: 3f f9 mov r9,-1 | |
80003098: f1 49 04 08 st.w r8[1032],r9 | |
AVR32_USBB.udintclr = -1; | |
8000309c: 91 29 st.w r8[0x8],r9 | |
} | |
8000309e: 5e fc retal r12 | |
800030a0 <USB_GEN_vect>: | |
ISR(USB_GEN_vect) | |
{ | |
800030a0: 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; | |
800030a2: fe 68 00 00 mov r8,-131072 | |
800030a6: 70 19 ld.w r9,r8[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)) | |
800030a8: ed b9 00 02 bld r9,0x2 | |
800030ac: c0 d1 brne 800030c6 <USB_GEN_vect+0x26> | |
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; | |
800030ae: 70 49 ld.w r9,r8[0x10] | |
800030b0: ed b9 00 02 bld r9,0x2 | |
800030b4: c0 91 brne 800030c6 <USB_GEN_vect+0x26> | |
case USB_INT_EORSTI: | |
AVR32_USBB.UDINTCLR.eorstc = true; | |
(void)AVR32_USBB.UDINTCLR; | |
break; | |
case USB_INT_SOFI: | |
AVR32_USBB.UDINTCLR.sofc = true; | |
800030b6: 70 29 ld.w r9,r8[0x8] | |
800030b8: 30 1a mov r10,1 | |
800030ba: f3 da d0 41 bfins r9,r10,0x2,0x1 | |
800030be: 91 29 st.w r8[0x8],r9 | |
(void)AVR32_USBB.UDINTCLR; | |
800030c0: 70 28 ld.w r8,r8[0x8] | |
{ | |
USB_INT_Clear(USB_INT_SOFI); | |
EVENT_USB_Device_StartOfFrame(); | |
800030c2: f0 1f 00 55 mcall 80003214 <USB_GEN_vect+0x174> | |
static inline bool USB_INT_HasOccurred(const uint8_t Interrupt) | |
{ | |
switch (Interrupt) | |
{ | |
case USB_INT_VBUSTI: | |
return AVR32_USBB.USBSTA.vbusti; | |
800030c6: fe 68 00 00 mov r8,-131072 | |
800030ca: f0 f9 08 04 ld.w r9,r8[2052] | |
} | |
#endif | |
if (USB_INT_HasOccurred(USB_INT_VBUSTI) && USB_INT_IsEnabled(USB_INT_VBUSTI)) | |
800030ce: ed b9 00 01 bld r9,0x1 | |
800030d2: c1 c1 brne 8000310a <USB_GEN_vect+0x6a> | |
static inline bool USB_INT_IsEnabled(const uint8_t Interrupt) | |
{ | |
switch (Interrupt) | |
{ | |
case USB_INT_VBUSTI: | |
return AVR32_USBB.USBCON.vbuste; | |
800030d4: f0 f9 08 00 ld.w r9,r8[2048] | |
800030d8: ed b9 00 01 bld r9,0x1 | |
800030dc: c1 71 brne 8000310a <USB_GEN_vect+0x6a> | |
static inline void USB_INT_Clear(const uint8_t Interrupt) | |
{ | |
switch (Interrupt) | |
{ | |
case USB_INT_VBUSTI: | |
AVR32_USBB.USBSTACLR.vbustic = true; | |
800030de: f0 f9 08 08 ld.w r9,r8[2056] | |
800030e2: 30 1a mov r10,1 | |
800030e4: f3 da d0 21 bfins r9,r10,0x1,0x1 | |
800030e8: f1 49 08 08 st.w r8[2056],r9 | |
(void)AVR32_USBB.USBSTACLR; | |
800030ec: f0 f9 08 08 ld.w r9,r8[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; | |
800030f0: f0 f8 08 04 ld.w r8,r8[2052] | |
800030f4: 4c 99 lddpc r9,80003218 <USB_GEN_vect+0x178> | |
{ | |
USB_INT_Clear(USB_INT_VBUSTI); | |
if (USB_VBUS_GetStatus()) | |
800030f6: e2 18 08 00 andl r8,0x800,COH | |
800030fa: c0 50 breq 80003104 <USB_GEN_vect+0x64> | |
{ | |
USB_DeviceState = DEVICE_STATE_Powered; | |
800030fc: b2 8a st.b r9[0x0],r10 | |
EVENT_USB_Device_Connect(); | |
800030fe: f0 1f 00 48 mcall 8000321c <USB_GEN_vect+0x17c> | |
80003102: c0 48 rjmp 8000310a <USB_GEN_vect+0x6a> | |
} | |
else | |
{ | |
USB_DeviceState = DEVICE_STATE_Unattached; | |
80003104: b2 88 st.b r9[0x0],r8 | |
EVENT_USB_Device_Disconnect(); | |
80003106: f0 1f 00 47 mcall 80003220 <USB_GEN_vect+0x180> | |
#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; | |
8000310a: fe 68 00 00 mov r8,-131072 | |
8000310e: 70 19 ld.w r9,r8[0x4] | |
} | |
} | |
if (USB_INT_HasOccurred(USB_INT_SUSPI) && USB_INT_IsEnabled(USB_INT_SUSPI)) | |
80003110: ed b9 00 00 bld r9,0x0 | |
80003114: c1 91 brne 80003146 <USB_GEN_vect+0xa6> | |
#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; | |
80003116: 70 49 ld.w r9,r8[0x10] | |
80003118: ed b9 00 00 bld r9,0x0 | |
8000311c: c1 51 brne 80003146 <USB_GEN_vect+0xa6> | |
#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; | |
8000311e: 70 5a ld.w r10,r8[0x14] | |
80003120: 30 19 mov r9,1 | |
80003122: f5 d9 d0 01 bfins r10,r9,0x0,0x1 | |
80003126: 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; | |
80003128: 70 6a ld.w r10,r8[0x18] | |
8000312a: f5 d9 d0 81 bfins r10,r9,0x4,0x1 | |
8000312e: 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; | |
80003130: f0 fa 08 00 ld.w r10,r8[2048] | |
80003134: 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; | |
80003138: 30 59 mov r9,5 | |
8000313a: f1 4a 08 00 st.w r8[2048],r10 | |
8000313e: 4b 78 lddpc r8,80003218 <USB_GEN_vect+0x178> | |
80003140: b0 89 st.b r8[0x0],r9 | |
EVENT_USB_Device_Suspend(); | |
80003142: f0 1f 00 39 mcall 80003224 <USB_GEN_vect+0x184> | |
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; | |
80003146: fe 68 00 00 mov r8,-131072 | |
8000314a: 70 19 ld.w r9,r8[0x4] | |
} | |
if (USB_INT_HasOccurred(USB_INT_WAKEUPI) && USB_INT_IsEnabled(USB_INT_WAKEUPI)) | |
8000314c: ed b9 00 04 bld r9,0x4 | |
80003150: c2 e1 brne 800031ac <USB_GEN_vect+0x10c> | |
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; | |
80003152: 70 49 ld.w r9,r8[0x10] | |
80003154: ed b9 00 04 bld r9,0x4 | |
80003158: c2 a1 brne 800031ac <USB_GEN_vect+0x10c> | |
} | |
static inline void USB_CLK_Unfreeze(void) ATTR_ALWAYS_INLINE; | |
static inline void USB_CLK_Unfreeze(void) | |
{ | |
AVR32_USBB.USBCON.frzclk = false; | |
8000315a: f0 f9 08 00 ld.w r9,r8[2048] | |
8000315e: 30 0a mov r10,0 | |
80003160: f3 da d1 c1 bfins r9,r10,0xe,0x1 | |
80003164: 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; | |
80003168: 30 19 mov r9,1 | |
8000316a: 70 2b ld.w r11,r8[0x8] | |
8000316c: f7 d9 d0 81 bfins r11,r9,0x4,0x1 | |
80003170: 91 2b st.w r8[0x8],r11 | |
(void)AVR32_USBB.UDINTCLR; | |
80003172: 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; | |
80003174: 70 5b ld.w r11,r8[0x14] | |
80003176: f7 d9 d0 81 bfins r11,r9,0x4,0x1 | |
8000317a: 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; | |
8000317c: 70 6b ld.w r11,r8[0x18] | |
8000317e: f7 d9 d0 01 bfins r11,r9,0x0,0x1 | |
80003182: 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) | |
80003184: 4a 99 lddpc r9,80003228 <USB_GEN_vect+0x188> | |
80003186: 13 89 ld.ub r9,r9[0x0] | |
80003188: f4 09 18 00 cp.b r9,r10 | |
8000318c: c0 50 breq 80003196 <USB_GEN_vect+0xf6> | |
USB_DeviceState = DEVICE_STATE_Configured; | |
8000318e: 30 49 mov r9,4 | |
80003190: 4a 28 lddpc r8,80003218 <USB_GEN_vect+0x178> | |
80003192: b0 89 st.b r8[0x0],r9 | |
80003194: c0 a8 rjmp 800031a8 <USB_GEN_vect+0x108> | |
} | |
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; | |
80003196: 70 08 ld.w r8,r8[0x0] | |
else | |
USB_DeviceState = (USB_Device_IsAddressSet()) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered; | |
80003198: 4a 09 lddpc r9,80003218 <USB_GEN_vect+0x178> | |
8000319a: e2 18 00 80 andl r8,0x80,COH | |
8000319e: f9 b8 01 04 movne r8,4 | |
800031a2: f9 b8 00 01 moveq r8,1 | |
800031a6: b2 88 st.b r9[0x0],r8 | |
EVENT_USB_Device_WakeUp(); | |
800031a8: f0 1f 00 21 mcall 8000322c <USB_GEN_vect+0x18c> | |
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; | |
800031ac: fe 68 00 00 mov r8,-131072 | |
800031b0: 70 19 ld.w r9,r8[0x4] | |
} | |
if (USB_INT_HasOccurred(USB_INT_EORSTI) && USB_INT_IsEnabled(USB_INT_EORSTI)) | |
800031b2: ed b9 00 03 bld r9,0x3 | |
800031b6: c2 c1 brne 8000320e <USB_GEN_vect+0x16e> | |
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; | |
800031b8: 70 49 ld.w r9,r8[0x10] | |
800031ba: ed b9 00 03 bld r9,0x3 | |
800031be: c2 81 brne 8000320e <USB_GEN_vect+0x16e> | |
case USB_INT_SUSPI: | |
AVR32_USBB.UDINTCLR.suspc = true; | |
(void)AVR32_USBB.UDINTCLR; | |
break; | |
case USB_INT_EORSTI: | |
AVR32_USBB.UDINTCLR.eorstc = true; | |
800031c0: 70 2a ld.w r10,r8[0x8] | |
800031c2: 30 19 mov r9,1 | |
800031c4: f5 d9 d0 61 bfins r10,r9,0x3,0x1 | |
800031c8: 91 2a st.w r8[0x8],r10 | |
(void)AVR32_USBB.UDINTCLR; | |
800031ca: 70 2a ld.w r10,r8[0x8] | |
{ | |
USB_INT_Clear(USB_INT_EORSTI); | |
USB_DeviceState = DEVICE_STATE_Default; | |
800031cc: 49 3a lddpc r10,80003218 <USB_GEN_vect+0x178> | |
800031ce: 30 2b mov r11,2 | |
800031d0: 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; | |
800031d2: 70 2a ld.w r10,r8[0x8] | |
800031d4: f5 d9 d0 01 bfins r10,r9,0x0,0x1 | |
800031d8: 91 2a st.w r8[0x8],r10 | |
(void)AVR32_USBB.UDINTCLR; | |
800031da: 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; | |
800031dc: 70 5a ld.w r10,r8[0x14] | |
800031de: f5 d9 d0 01 bfins r10,r9,0x0,0x1 | |
800031e2: 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; | |
800031e4: 70 6a ld.w r10,r8[0x18] | |
800031e6: f5 d9 d0 81 bfins r10,r9,0x4,0x1 | |
800031ea: 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; | |
800031ec: 30 09 mov r9,0 | |
800031ee: 70 0a ld.w r10,r8[0x0] | |
800031f0: f5 d9 d0 07 bfins r10,r9,0x0,0x7 | |
800031f4: 91 0a st.w r8[0x0],r10 | |
AVR32_USBB.UDCON.adden = (Address ? true : false); | |
800031f6: 70 0a ld.w r10,r8[0x0] | |
800031f8: f5 d9 d0 e1 bfins r10,r9,0x7,0x1 | |
800031fc: 91 0a st.w r8[0x0],r10 | |
USB_Device_ConfigurationNumber = 0; | |
800031fe: 48 b8 lddpc r8,80003228 <USB_GEN_vect+0x188> | |
uint8_t Number = (Address & ENDPOINT_EPNUM_MASK); | |
if (Number >= ENDPOINT_TOTAL_ENDPOINTS) | |
return false; | |
return Endpoint_ConfigureEndpoint_Prv(Number, | |
80003200: 12 9c mov r12,r9 | |
80003202: b0 89 st.b r8[0x0],r9 | |
80003204: 30 3b mov r11,3 | |
80003206: f0 1f 00 0b mcall 80003230 <USB_GEN_vect+0x190> | |
#if defined(INTERRUPT_CONTROL_ENDPOINT) | |
USB_INT_Enable(USB_INT_RXSTPI); | |
#endif | |
EVENT_USB_Device_Reset(); | |
8000320a: f0 1f 00 0b mcall 80003234 <USB_GEN_vect+0x194> | |
USB_ResetInterface(); | |
EVENT_USB_UIDChange(); | |
} | |
#endif | |
} | |
8000320e: d4 02 popm lr | |
80003210: d6 03 rete | |
80003212: 00 00 add r0,r0 | |
80003214: 80 00 ld.sh r0,r0[0x0] | |
80003216: 37 70 mov r0,119 | |
80003218: 00 00 add r0,r0 | |
8000321a: 05 b8 ld.ub r8,r2[0x3] | |
8000321c: 80 00 ld.sh r0,r0[0x0] | |
8000321e: 22 42 sub r2,36 | |
80003220: 80 00 ld.sh r0,r0[0x0] | |
80003222: 22 4c sub r12,36 | |
80003224: 80 00 ld.sh r0,r0[0x0] | |
80003226: 37 70 mov r0,119 | |
80003228: 00 00 add r0,r0 | |
8000322a: 05 b4 ld.ub r4,r2[0x3] | |
8000322c: 80 00 ld.sh r0,r0[0x0] | |
8000322e: 37 70 mov r0,119 | |
80003230: 80 00 ld.sh r0,r0[0x0] | |
80003232: 3c f4 mov r4,-49 | |
80003234: 80 00 ld.sh r0,r0[0x0] | |
80003236: 37 70 mov r0,119 | |
80003238: 80 00 ld.sh r0,r0[0x0] | |
8000323a: 33 00 mov r0,48 | |
8000323c: 80 00 ld.sh r0,r0[0x0] | |
8000323e: 33 ea mov r10,62 | |
80003240: 80 00 ld.sh r0,r0[0x0] | |
80003242: 37 16 mov r6,113 | |
80003244: 80 00 ld.sh r0,r0[0x0] | |
80003246: 33 ea mov r10,62 | |
80003248: 80 00 ld.sh r0,r0[0x0] | |
8000324a: 37 16 mov r6,113 | |
8000324c: 80 00 ld.sh r0,r0[0x0] | |
8000324e: 34 fc mov r12,79 | |
80003250: 80 00 ld.sh r0,r0[0x0] | |
80003252: 35 94 mov r4,89 | |
80003254: 80 00 ld.sh r0,r0[0x0] | |
80003256: 37 16 mov r6,113 | |
80003258: 80 00 ld.sh r0,r0[0x0] | |
8000325a: 36 1a mov r10,97 | |
8000325c: 80 00 ld.sh r0,r0[0x0] | |
8000325e: 36 8a mov r10,104 | |
80003260 <USB_Device_ProcessControlRequest>: | |
#if !defined(NO_DEVICE_REMOTE_WAKEUP) | |
bool USB_Device_RemoteWakeupEnabled; | |
#endif | |
void USB_Device_ProcessControlRequest(void) | |
{ | |
80003260: d4 21 pushm r4-r7,lr | |
80003262: 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]++); | |
80003264: 4b 78 lddpc r8,80003340 <USB_Device_ProcessControlRequest+0xe0> | |
80003266: 4b 86 lddpc r6,80003344 <USB_Device_ProcessControlRequest+0xe4> | |
80003268: 6c 0a ld.w r10,r6[0x0] | |
8000326a: f0 0a 03 29 ld.w r9,r8[r10<<0x2] | |
8000326e: 13 3b ld.ub r11,r9++ | |
80003270: f0 0a 09 29 st.w r8[r10<<0x2],r9 | |
#if defined(ARCH_BIG_ENDIAN) | |
USB_ControlRequest.bmRequestType = Endpoint_Read_8(); | |
80003274: 4b 57 lddpc r7,80003348 <USB_Device_ProcessControlRequest+0xe8> | |
80003276: 6c 0a ld.w r10,r6[0x0] | |
80003278: ae 8b st.b r7[0x0],r11 | |
8000327a: f0 0a 03 29 ld.w r9,r8[r10<<0x2] | |
8000327e: 13 3b ld.ub r11,r9++ | |
80003280: f0 0a 09 29 st.w r8[r10<<0x2],r9 | |
USB_ControlRequest.bRequest = Endpoint_Read_8(); | |
80003284: ae 9b st.b r7[0x1],r11 | |
* \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]++); | |
80003286: 6c 0a ld.w r10,r6[0x0] | |
80003288: f0 0a 03 29 ld.w r9,r8[r10<<0x2] | |
8000328c: 13 3b ld.ub r11,r9++ | |
8000328e: f0 0a 09 29 st.w r8[r10<<0x2],r9 | |
uint16_t Byte1 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++); | |
80003292: 6c 0a ld.w r10,r6[0x0] | |
80003294: f0 0a 03 29 ld.w r9,r8[r10<<0x2] | |
80003298: 13 3c ld.ub r12,r9++ | |
8000329a: f0 0a 09 29 st.w r8[r10<<0x2],r9 | |
USB_ControlRequest.wValue = Endpoint_Read_16_LE(); | |
8000329e: ae ac st.b r7[0x2],r12 | |
800032a0: ae bb st.b r7[0x3],r11 | |
* \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]++); | |
800032a2: 6c 0a ld.w r10,r6[0x0] | |
800032a4: f0 0a 03 29 ld.w r9,r8[r10<<0x2] | |
800032a8: 13 3b ld.ub r11,r9++ | |
800032aa: f0 0a 09 29 st.w r8[r10<<0x2],r9 | |
uint16_t Byte1 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++); | |
800032ae: 6c 0a ld.w r10,r6[0x0] | |
800032b0: f0 0a 03 29 ld.w r9,r8[r10<<0x2] | |
800032b4: 13 3c ld.ub r12,r9++ | |
800032b6: f0 0a 09 29 st.w r8[r10<<0x2],r9 | |
USB_ControlRequest.wIndex = Endpoint_Read_16_LE(); | |
800032ba: ae cc st.b r7[0x4],r12 | |
800032bc: ae db st.b r7[0x5],r11 | |
* \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]++); | |
800032be: 6c 0a ld.w r10,r6[0x0] | |
800032c0: f0 0a 03 29 ld.w r9,r8[r10<<0x2] | |
800032c4: 13 3b ld.ub r11,r9++ | |
800032c6: f0 0a 09 29 st.w r8[r10<<0x2],r9 | |
uint16_t Byte1 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++); | |
800032ca: 6c 0a ld.w r10,r6[0x0] | |
800032cc: f0 0a 03 29 ld.w r9,r8[r10<<0x2] | |
800032d0: 13 3c ld.ub r12,r9++ | |
800032d2: f0 0a 09 29 st.w r8[r10<<0x2],r9 | |
USB_ControlRequest.wLength = Endpoint_Read_16_LE(); | |
800032d6: ae ec st.b r7[0x6],r12 | |
800032d8: ae fb st.b r7[0x7],r11 | |
for (uint8_t RequestHeaderByte = 0; RequestHeaderByte < sizeof(USB_Request_Header_t); RequestHeaderByte++) | |
*(RequestHeader++) = Endpoint_Read_8(); | |
#endif | |
EVENT_USB_Device_ControlRequest(); | |
800032da: f0 1f 00 1d mcall 8000334c <USB_Device_ProcessControlRequest+0xec> | |
* \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; | |
800032de: 6c 08 ld.w r8,r6[0x0] | |
800032e0: a3 68 lsl r8,0x2 | |
800032e2: e0 38 fe d0 sub r8,130768 | |
800032e6: 70 08 ld.w r8,r8[0x0] | |
if (Endpoint_IsSETUPReceived()) | |
800032e8: ed b8 00 02 bld r8,0x2 | |
800032ec: e0 81 02 15 brne 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
{ | |
uint8_t bmRequestType = USB_ControlRequest.bmRequestType; | |
switch (USB_ControlRequest.bRequest) | |
800032f0: 0f 9c ld.ub r12,r7[0x1] | |
EVENT_USB_Device_ControlRequest(); | |
if (Endpoint_IsSETUPReceived()) | |
{ | |
uint8_t bmRequestType = USB_ControlRequest.bmRequestType; | |
800032f2: 0f 87 ld.ub r7,r7[0x0] | |
switch (USB_ControlRequest.bRequest) | |
800032f4: 58 9c cp.w r12,9 | |
800032f6: e0 8b 02 10 brhi 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
800032fa: 49 68 lddpc r8,80003350 <USB_Device_ProcessControlRequest+0xf0> | |
800032fc: f0 0c 03 2f ld.w pc,r8[r12<<0x2] | |
{ | |
case REQ_GetStatus: | |
if ((bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE)) || | |
80003300: 38 0a mov r10,-128 | |
80003302: f4 07 18 00 cp.b r7,r10 | |
80003306: 5f 08 sreq r8 | |
80003308: 38 29 mov r9,-126 | |
8000330a: f2 07 18 00 cp.b r7,r9 | |
8000330e: 5f 0b sreq r11 | |
80003310: 10 4b or r11,r8 | |
80003312: 30 08 mov r8,0 | |
80003314: f0 0b 18 00 cp.b r11,r8 | |
80003318: e0 80 01 ff breq 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
static void USB_Device_GetStatus(void) | |
{ | |
uint8_t CurrentStatus = 0; | |
switch (USB_ControlRequest.bmRequestType) | |
8000331c: f4 07 18 00 cp.b r7,r10 | |
80003320: c0 60 breq 8000332c <USB_Device_ProcessControlRequest+0xcc> | |
80003322: f2 07 18 00 cp.b r7,r9 | |
80003326: e0 81 01 f8 brne 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
8000332a: c1 98 rjmp 8000335c <USB_Device_ProcessControlRequest+0xfc> | |
8000332c: 48 a9 lddpc r9,80003354 <USB_Device_ProcessControlRequest+0xf4> | |
8000332e: 13 8a ld.ub r10,r9[0x0] | |
if (USB_Device_CurrentlySelfPowered) | |
CurrentStatus |= FEATURE_SELFPOWERED_ENABLED; | |
#endif | |
#if !defined(NO_DEVICE_REMOTE_WAKEUP) | |
if (USB_Device_RemoteWakeupEnabled) | |
80003330: 48 a9 lddpc r9,80003358 <USB_Device_ProcessControlRequest+0xf8> | |
80003332: 13 89 ld.ub r9,r9[0x0] | |
80003334: f0 09 18 00 cp.b r9,r8 | |
80003338: c2 10 breq 8000337a <USB_Device_ProcessControlRequest+0x11a> | |
CurrentStatus |= FEATURE_REMOTE_WAKEUP_ENABLED; | |
8000333a: a1 ba sbr r10,0x1 | |
8000333c: c1 f8 rjmp 8000337a <USB_Device_ProcessControlRequest+0x11a> | |
8000333e: 00 00 add r0,r0 | |
80003340: 00 00 add r0,r0 | |
80003342: 06 14 sub r4,r3 | |
80003344: 00 00 add r0,r0 | |
80003346: 05 78 ld.ub r8,--r2 | |
80003348: 00 00 add r0,r0 | |
8000334a: 05 b9 ld.ub r9,r2[0x3] | |
8000334c: 80 00 ld.sh r0,r0[0x0] | |
8000334e: 22 56 sub r6,37 | |
80003350: 80 00 ld.sh r0,r0[0x0] | |
80003352: 32 38 mov r8,35 | |
80003354: 00 00 add r0,r0 | |
80003356: 05 b5 ld.ub r5,r2[0x3] | |
80003358: 00 00 add r0,r0 | |
8000335a: 05 b6 ld.ub r6,r2[0x3] | |
* \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); | |
8000335c: 4c 69 lddpc r9,80003474 <USB_Device_ProcessControlRequest+0x214> | |
8000335e: 13 d9 ld.ub r9,r9[0x5] | |
80003360: f3 d9 c0 04 bfextu r9,r9,0x0,0x4 | |
80003364: 4c 58 lddpc r8,80003478 <USB_Device_ProcessControlRequest+0x218> | |
80003366: 91 09 st.w r8[0x0],r9 | |
* \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; | |
80003368: 70 09 ld.w r9,r8[0x0] | |
8000336a: a3 69 lsl r9,0x2 | |
8000336c: e0 39 fe 40 sub r9,130624 | |
80003370: 72 0a ld.w r10,r9[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); | |
80003372: 30 09 mov r9,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(); | |
80003374: f5 da c2 61 bfextu r10,r10,0x13,0x1 | |
80003378: 91 09 st.w r8[0x0],r9 | |
* \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; | |
8000337a: 4c 08 lddpc r8,80003478 <USB_Device_ProcessControlRequest+0x218> | |
8000337c: 30 1b mov r11,1 | |
8000337e: 70 09 ld.w r9,r8[0x0] | |
80003380: a3 69 lsl r9,0x2 | |
80003382: e0 39 fe a0 sub r9,130720 | |
80003386: 72 0c ld.w r12,r9[0x0] | |
80003388: f9 db d0 41 bfins r12,r11,0x2,0x1 | |
8000338c: 93 0c st.w r9[0x0],r12 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
8000338e: fc 17 e0 00 movh r7,0xe000 | |
80003392: 70 0c ld.w r12,r8[0x0] | |
80003394: 4b a9 lddpc r9,8000347c <USB_Device_ProcessControlRequest+0x21c> | |
80003396: 70 06 ld.w r6,r8[0x0] | |
80003398: b1 66 lsl r6,0x10 | |
8000339a: 0e 06 add r6,r7 | |
8000339c: f2 0c 09 26 st.w r9[r12<<0x2],r6 | |
* \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); | |
800033a0: 70 06 ld.w r6,r8[0x0] | |
800033a2: f2 06 03 2c ld.w r12,r9[r6<<0x2] | |
800033a6: 18 ca st.b r12++,r10 | |
800033a8: f2 06 09 2c st.w r9[r6<<0x2],r12 | |
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8); | |
800033ac: 70 0c ld.w r12,r8[0x0] | |
800033ae: 30 06 mov r6,0 | |
800033b0: f2 0c 03 2a ld.w r10,r9[r12<<0x2] | |
800033b4: 14 c6 st.b r10++,r6 | |
800033b6: f2 0c 09 2a st.w r9[r12<<0x2],r10 | |
* \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; | |
800033ba: 70 0a ld.w r10,r8[0x0] | |
800033bc: a3 6a lsl r10,0x2 | |
800033be: e0 3a fe a0 sub r10,130720 | |
800033c2: 74 0c ld.w r12,r10[0x0] | |
800033c4: f9 db d0 01 bfins r12,r11,0x0,0x1 | |
800033c8: 95 0c st.w r10[0x0],r12 | |
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true; | |
800033ca: 70 0a ld.w r10,r8[0x0] | |
800033cc: a3 6a lsl r10,0x2 | |
800033ce: e0 3a fd e0 sub r10,130528 | |
800033d2: 74 0c ld.w r12,r10[0x0] | |
800033d4: f9 db d1 c1 bfins r12,r11,0xe,0x1 | |
800033d8: 95 0c st.w r10[0x0],r12 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
800033da: 70 0a ld.w r10,r8[0x0] | |
800033dc: 70 08 ld.w r8,r8[0x0] | |
800033de: b1 68 lsl r8,0x10 | |
800033e0: f0 07 00 07 add r7,r8,r7 | |
800033e4: f2 0a 09 27 st.w r9[r10<<0x2],r7 | |
800033e8: c8 78 rjmp 800034f6 <USB_Device_ProcessControlRequest+0x296> | |
} | |
break; | |
case REQ_ClearFeature: | |
case REQ_SetFeature: | |
if ((bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE)) || | |
800033ea: 30 28 mov r8,2 | |
800033ec: f0 07 18 00 cp.b r7,r8 | |
800033f0: 5f 0a sreq r10 | |
800033f2: 30 08 mov r8,0 | |
800033f4: f0 07 18 00 cp.b r7,r8 | |
800033f8: 5f 09 sreq r9 | |
800033fa: f5 e9 10 09 or r9,r10,r9 | |
800033fe: f0 09 18 00 cp.b r9,r8 | |
80003402: e0 80 01 8a breq 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
Endpoint_ClearStatusStage(); | |
} | |
static void USB_Device_ClearSetFeature(void) | |
{ | |
switch (USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_RECIPIENT) | |
80003406: ef d7 c0 05 bfextu r7,r7,0x0,0x5 | |
8000340a: c0 50 breq 80003414 <USB_Device_ProcessControlRequest+0x1b4> | |
8000340c: 58 27 cp.w r7,2 | |
8000340e: e0 81 01 84 brne 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
80003412: c0 f8 rjmp 80003430 <USB_Device_ProcessControlRequest+0x1d0> | |
{ | |
#if !defined(NO_DEVICE_REMOTE_WAKEUP) | |
case REQREC_DEVICE: | |
if ((uint8_t)USB_ControlRequest.wValue == FEATURE_SEL_DeviceRemoteWakeup) | |
80003414: 49 88 lddpc r8,80003474 <USB_Device_ProcessControlRequest+0x214> | |
80003416: 11 b9 ld.ub r9,r8[0x3] | |
80003418: 30 18 mov r8,1 | |
8000341a: f0 09 18 00 cp.b r9,r8 | |
8000341e: e0 81 01 7c brne 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
USB_Device_RemoteWakeupEnabled = (USB_ControlRequest.bRequest == REQ_SetFeature); | |
80003422: 30 38 mov r8,3 | |
80003424: f0 0c 18 00 cp.b r12,r8 | |
80003428: 5f 09 sreq r9 | |
8000342a: 49 68 lddpc r8,80003480 <USB_Device_ProcessControlRequest+0x220> | |
8000342c: b0 89 st.b r8[0x0],r9 | |
8000342e: c4 f8 rjmp 800034cc <USB_Device_ProcessControlRequest+0x26c> | |
break; | |
#endif | |
#if !defined(CONTROL_ONLY_DEVICE) | |
case REQREC_ENDPOINT: | |
if ((uint8_t)USB_ControlRequest.wValue == FEATURE_SEL_EndpointHalt) | |
80003430: 49 19 lddpc r9,80003474 <USB_Device_ProcessControlRequest+0x214> | |
80003432: 13 ba ld.ub r10,r9[0x3] | |
80003434: f0 0a 18 00 cp.b r10,r8 | |
80003438: c4 a1 brne 800034cc <USB_Device_ProcessControlRequest+0x26c> | |
{ | |
uint8_t EndpointIndex = ((uint8_t)USB_ControlRequest.wIndex & ENDPOINT_EPNUM_MASK); | |
8000343a: 13 d9 ld.ub r9,r9[0x5] | |
8000343c: f3 d9 c0 04 bfextu r9,r9,0x0,0x4 | |
if (EndpointIndex == ENDPOINT_CONTROLEP) | |
80003440: e0 80 01 6b breq 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
* \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); | |
80003444: 48 d8 lddpc r8,80003478 <USB_Device_ProcessControlRequest+0x218> | |
* \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); | |
80003446: fe 6a 00 00 mov r10,-131072 | |
* \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); | |
8000344a: 91 09 st.w r8[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); | |
8000344c: 74 76 ld.w r6,r10[0x1c] | |
8000344e: 70 07 ld.w r7,r8[0x0] | |
return; | |
Endpoint_SelectEndpoint(EndpointIndex); | |
if (Endpoint_IsEnabled()) | |
80003450: 30 1b mov r11,1 | |
80003452: f6 07 09 47 lsl r7,r11,r7 | |
80003456: 0c 67 and r7,r6 | |
80003458: c3 a0 breq 800034cc <USB_Device_ProcessControlRequest+0x26c> | |
{ | |
if (USB_ControlRequest.bRequest == REQ_SetFeature) | |
8000345a: 30 37 mov r7,3 | |
8000345c: ee 0c 18 00 cp.b r12,r7 | |
80003460: c1 21 brne 80003484 <USB_Device_ProcessControlRequest+0x224> | |
* \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; | |
80003462: 70 08 ld.w r8,r8[0x0] | |
80003464: a3 68 lsl r8,0x2 | |
80003466: e0 38 fe 10 sub r8,130576 | |
8000346a: 70 09 ld.w r9,r8[0x0] | |
8000346c: f3 db d2 61 bfins r9,r11,0x13,0x1 | |
80003470: c2 d8 rjmp 800034ca <USB_Device_ProcessControlRequest+0x26a> | |
80003472: 00 00 add r0,r0 | |
80003474: 00 00 add r0,r0 | |
80003476: 05 b9 ld.ub r9,r2[0x3] | |
80003478: 00 00 add r0,r0 | |
8000347a: 05 78 ld.ub r8,--r2 | |
8000347c: 00 00 add r0,r0 | |
8000347e: 06 14 sub r4,r3 | |
80003480: 00 00 add r0,r0 | |
80003482: 05 b6 ld.ub r6,r2[0x3] | |
* \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; | |
80003484: 70 0c ld.w r12,r8[0x0] | |
80003486: a3 6c lsl r12,0x2 | |
80003488: e0 3c fd e0 sub r12,130528 | |
8000348c: 78 07 ld.w r7,r12[0x0] | |
8000348e: ef db d2 61 bfins r7,r11,0x13,0x1 | |
80003492: 99 07 st.w r12[0x0],r7 | |
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); | |
80003494: e0 7c 00 00 mov r12,65536 | |
80003498: 74 77 ld.w r7,r10[0x1c] | |
8000349a: f8 09 09 4c lsl r12,r12,r9 | |
8000349e: f9 e7 10 07 or r7,r12,r7 | |
800034a2: 95 77 st.w r10[0x1c],r7 | |
AVR32_USBB.uerst &= ~(AVR32_USBB_EPRST0_MASK << EndpointNumber); | |
800034a4: 5c dc com r12 | |
800034a6: 74 77 ld.w r7,r10[0x1c] | |
800034a8: 0e 6c and r12,r7 | |
800034aa: 95 7c st.w r10[0x1c],r12 | |
USB_Endpoint_FIFOPos[EndpointNumber] = &AVR32_USBB_SLAVE[EndpointNumber * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
800034ac: fc 1a e0 00 movh r10,0xe000 | |
800034b0: f2 0c 15 10 lsl r12,r9,0x10 | |
/** 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; | |
800034b4: 70 08 ld.w r8,r8[0x0] | |
{ | |
uint32_t EndpointNumber = (Address & ENDPOINT_EPNUM_MASK); | |
AVR32_USBB.uerst |= (AVR32_USBB_EPRST0_MASK << EndpointNumber); | |
AVR32_USBB.uerst &= ~(AVR32_USBB_EPRST0_MASK << EndpointNumber); | |
USB_Endpoint_FIFOPos[EndpointNumber] = &AVR32_USBB_SLAVE[EndpointNumber * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
800034b6: 14 0c add r12,r10 | |
/** 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; | |
800034b8: a3 68 lsl r8,0x2 | |
{ | |
uint32_t EndpointNumber = (Address & ENDPOINT_EPNUM_MASK); | |
AVR32_USBB.uerst |= (AVR32_USBB_EPRST0_MASK << EndpointNumber); | |
AVR32_USBB.uerst &= ~(AVR32_USBB_EPRST0_MASK << EndpointNumber); | |
USB_Endpoint_FIFOPos[EndpointNumber] = &AVR32_USBB_SLAVE[EndpointNumber * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
800034ba: 4b 2a lddpc r10,80003580 <USB_Device_ProcessControlRequest+0x320> | |
/** 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; | |
800034bc: e0 38 fe 10 sub r8,130576 | |
{ | |
uint32_t EndpointNumber = (Address & ENDPOINT_EPNUM_MASK); | |
AVR32_USBB.uerst |= (AVR32_USBB_EPRST0_MASK << EndpointNumber); | |
AVR32_USBB.uerst &= ~(AVR32_USBB_EPRST0_MASK << EndpointNumber); | |
USB_Endpoint_FIFOPos[EndpointNumber] = &AVR32_USBB_SLAVE[EndpointNumber * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
800034c0: f4 09 09 2c st.w r10[r9<<0x2],r12 | |
/** 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; | |
800034c4: 70 09 ld.w r9,r8[0x0] | |
800034c6: f3 db d2 41 bfins r9,r11,0x12,0x1 | |
800034ca: 91 09 st.w 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); | |
800034cc: 30 09 mov r9,0 | |
800034ce: 4a e8 lddpc r8,80003584 <USB_Device_ProcessControlRequest+0x324> | |
* \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; | |
800034d0: 30 1b mov r11,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); | |
800034d2: 91 09 st.w r8[0x0],r9 | |
* \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; | |
800034d4: 70 09 ld.w r9,r8[0x0] | |
800034d6: a3 69 lsl r9,0x2 | |
800034d8: e0 39 fe a0 sub r9,130720 | |
800034dc: 72 0a ld.w r10,r9[0x0] | |
800034de: f5 db d0 41 bfins r10,r11,0x2,0x1 | |
800034e2: 93 0a st.w r9[0x0],r10 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
800034e4: 70 09 ld.w r9,r8[0x0] | |
800034e6: 70 0a ld.w r10,r8[0x0] | |
800034e8: fc 18 e0 00 movh r8,0xe000 | |
800034ec: b1 6a lsl r10,0x10 | |
800034ee: 10 0a add r10,r8 | |
800034f0: 4a 48 lddpc r8,80003580 <USB_Device_ProcessControlRequest+0x320> | |
800034f2: f0 09 09 2a st.w r8[r9<<0x2],r10 | |
Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP); | |
Endpoint_ClearSETUP(); | |
Endpoint_ClearStatusStage(); | |
800034f6: f0 1f 00 25 mcall 80003588 <USB_Device_ProcessControlRequest+0x328> | |
800034fa: c0 e9 rjmp 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
USB_Device_ClearSetFeature(); | |
} | |
break; | |
case REQ_SetAddress: | |
if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE)) | |
800034fc: 58 07 cp.w r7,0 | |
800034fe: e0 81 01 0c brne 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
} | |
} | |
static void USB_Device_SetAddress(void) | |
{ | |
uint8_t DeviceAddress = (USB_ControlRequest.wValue & 0x7F); | |
80003502: 4a 38 lddpc r8,8000358c <USB_Device_ProcessControlRequest+0x32c> | |
80003504: 11 b6 ld.ub r6,r8[0x3] | |
80003506: ed d6 c0 07 bfextu r6,r6,0x0,0x7 | |
GCC_MEMORY_BARRIER(); | |
#if (ARCH == ARCH_AVR8) | |
return SREG; | |
#elif (ARCH == ARCH_UC3) | |
return __builtin_mfsr(AVR32_SR); | |
8000350a: e1 b5 00 00 mfsr r5,0x0 | |
GCC_MEMORY_BARRIER(); | |
#if (ARCH == ARCH_AVR8) | |
cli(); | |
#elif (ARCH == ARCH_UC3) | |
__builtin_ssrf(AVR32_SR_GM_OFFSET); | |
8000350e: 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; | |
80003510: 49 d7 lddpc r7,80003584 <USB_Device_ProcessControlRequest+0x324> | |
80003512: 6e 08 ld.w r8,r7[0x0] | |
80003514: a3 68 lsl r8,0x2 | |
80003516: e0 38 fe a0 sub r8,130720 | |
8000351a: 30 1a mov r10,1 | |
8000351c: 70 09 ld.w r9,r8[0x0] | |
8000351e: f3 da d0 41 bfins r9,r10,0x2,0x1 | |
80003522: 91 09 st.w r8[0x0],r9 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003524: fc 18 e0 00 movh r8,0xe000 | |
80003528: 6e 09 ld.w r9,r7[0x0] | |
8000352a: 6e 0a ld.w r10,r7[0x0] | |
8000352c: b1 6a lsl r10,0x10 | |
8000352e: 10 0a add r10,r8 | |
80003530: 49 48 lddpc r8,80003580 <USB_Device_ProcessControlRequest+0x320> | |
80003532: f0 09 09 2a st.w r8[r9<<0x2],r10 | |
uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask(); | |
GlobalInterruptDisable(); | |
Endpoint_ClearSETUP(); | |
Endpoint_ClearStatusStage(); | |
80003536: f0 1f 00 15 mcall 80003588 <USB_Device_ProcessControlRequest+0x328> | |
* \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; | |
8000353a: 6e 08 ld.w r8,r7[0x0] | |
8000353c: a3 68 lsl r8,0x2 | |
8000353e: e0 38 fe d0 sub r8,130768 | |
80003542: 70 08 ld.w r8,r8[0x0] | |
while (!(Endpoint_IsINReady())); | |
80003544: ed b8 00 00 bld r8,0x0 | |
80003548: cf 91 brne 8000353a <USB_Device_ProcessControlRequest+0x2da> | |
#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; | |
8000354a: fe 68 00 00 mov r8,-131072 | |
8000354e: 70 09 ld.w r9,r8[0x0] | |
80003550: f3 d6 d0 07 bfins r9,r6,0x0,0x7 | |
80003554: 91 09 st.w r8[0x0],r9 | |
AVR32_USBB.UDCON.adden = (Address ? true : false); | |
80003556: 58 06 cp.w r6,0 | |
80003558: 5f 19 srne r9 | |
8000355a: 70 0a ld.w r10,r8[0x0] | |
8000355c: f5 d9 d0 e1 bfins r10,r9,0x7,0x1 | |
80003560: 91 0a st.w r8[0x0],r10 | |
USB_Device_SetDeviceAddress(DeviceAddress); | |
USB_DeviceState = (DeviceAddress) ? DEVICE_STATE_Addressed : DEVICE_STATE_Default; | |
80003562: 58 09 cp.w r9,0 | |
80003564: f9 b9 01 03 movne r9,3 | |
80003568: f9 b9 00 02 moveq r9,2 | |
8000356c: 48 98 lddpc r8,80003590 <USB_Device_ProcessControlRequest+0x330> | |
8000356e: 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) | |
80003570: e2 15 00 10 andl r5,0x10,COH | |
80003574: c0 30 breq 8000357a <USB_Device_ProcessControlRequest+0x31a> | |
__builtin_ssrf(AVR32_SR_GM_OFFSET); | |
80003576: d3 03 ssrf 0x10 | |
80003578: c0 28 rjmp 8000357c <USB_Device_ProcessControlRequest+0x31c> | |
else | |
__builtin_csrf(AVR32_SR_GM_OFFSET); | |
8000357a: d5 03 csrf 0x10 | |
#elif (ARCH == ARCH_XMEGA) | |
SREG = GlobalIntState; | |
#endif | |
GCC_MEMORY_BARRIER(); | |
8000357c: cc d8 rjmp 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
8000357e: 00 00 add r0,r0 | |
80003580: 00 00 add r0,r0 | |
80003582: 06 14 sub r4,r3 | |
80003584: 00 00 add r0,r0 | |
80003586: 05 78 ld.ub r8,--r2 | |
80003588: 80 00 ld.sh r0,r0[0x0] | |
8000358a: 3e 10 mov r0,-31 | |
8000358c: 00 00 add r0,r0 | |
8000358e: 05 b9 ld.ub r9,r2[0x3] | |
80003590: 00 00 add r0,r0 | |
80003592: 05 b8 ld.ub r8,r2[0x3] | |
if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE)) | |
USB_Device_SetAddress(); | |
break; | |
case REQ_GetDescriptor: | |
if ((bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE)) || | |
80003594: ee c7 00 80 sub r7,r7,128 | |
80003598: 30 18 mov r8,1 | |
8000359a: f0 07 18 00 cp.b r7,r8 | |
8000359e: e0 8b 00 bc brhi 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
USB_Device_GetInternalSerialDescriptor(); | |
return; | |
} | |
#endif | |
if ((DescriptorSize = CALLBACK_USB_GetDescriptor(USB_ControlRequest.wValue, USB_ControlRequest.wIndex, | |
800035a2: 4c f8 lddpc r8,800036dc <USB_Device_ProcessControlRequest+0x47c> | |
800035a4: 11 db ld.ub r11,r8[0x5] | |
800035a6: 11 ac ld.ub r12,r8[0x2] | |
800035a8: 11 b8 ld.ub r8,r8[0x3] | |
800035aa: 1a 9a mov r10,sp | |
800035ac: f1 ec 10 8c or r12,r8,r12<<0x8 | |
800035b0: f0 1f 00 4c mcall 800036e0 <USB_Device_ProcessControlRequest+0x480> | |
800035b4: f7 dc b0 10 bfexts r11,r12,0x0,0x10 | |
800035b8: e0 80 00 af breq 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
* \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; | |
800035bc: 4c a7 lddpc r7,800036e4 <USB_Device_ProcessControlRequest+0x484> | |
800035be: 30 16 mov r6,1 | |
800035c0: 6e 08 ld.w r8,r7[0x0] | |
800035c2: a3 68 lsl r8,0x2 | |
800035c4: e0 38 fe a0 sub r8,130720 | |
800035c8: 70 09 ld.w r9,r8[0x0] | |
800035ca: f3 d6 d0 41 bfins r9,r6,0x2,0x1 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
800035ce: 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; | |
800035d2: 91 09 st.w r8[0x0],r9 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
800035d4: 6e 08 ld.w r8,r7[0x0] | |
800035d6: 6e 09 ld.w r9,r7[0x0] | |
800035d8: b1 69 lsl r9,0x10 | |
800035da: 08 09 add r9,r4 | |
800035dc: 4c 35 lddpc r5,800036e8 <USB_Device_ProcessControlRequest+0x488> | |
} | |
Endpoint_ClearSETUP(); | |
#if defined(USE_RAM_DESCRIPTORS) || !defined(ARCH_HAS_MULTI_ADDRESS_SPACE) | |
Endpoint_Write_Control_Stream_LE(DescriptorPointer, DescriptorSize); | |
800035de: 5c 7b castu.h r11 | |
800035e0: ea 08 09 29 st.w r5[r8<<0x2],r9 | |
800035e4: 40 0c lddsp r12,sp[0x0] | |
800035e6: f0 1f 00 42 mcall 800036ec <USB_Device_ProcessControlRequest+0x48c> | |
* \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; | |
800035ea: 6e 08 ld.w r8,r7[0x0] | |
800035ec: a3 68 lsl r8,0x2 | |
800035ee: e0 38 fe a0 sub r8,130720 | |
800035f2: 70 09 ld.w r9,r8[0x0] | |
800035f4: f3 d6 d0 21 bfins r9,r6,0x1,0x1 | |
800035f8: 91 09 st.w r8[0x0],r9 | |
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true; | |
800035fa: 6e 08 ld.w r8,r7[0x0] | |
800035fc: a3 68 lsl r8,0x2 | |
800035fe: e0 38 fd e0 sub r8,130528 | |
80003602: 70 09 ld.w r9,r8[0x0] | |
80003604: f3 d6 d1 c1 bfins r9,r6,0xe,0x1 | |
80003608: 91 09 st.w r8[0x0],r9 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
8000360a: 6e 08 ld.w r8,r7[0x0] | |
8000360c: 6e 09 ld.w r9,r7[0x0] | |
8000360e: b1 69 lsl r9,0x10 | |
80003610: f2 04 00 04 add r4,r9,r4 | |
80003614: ea 08 09 24 st.w r5[r8<<0x2],r4 | |
80003618: c7 f8 rjmp 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
USB_Device_GetDescriptor(); | |
} | |
break; | |
case REQ_GetConfiguration: | |
if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE)) | |
8000361a: 38 08 mov r8,-128 | |
8000361c: f0 07 18 00 cp.b r7,r8 | |
80003620: e0 81 00 7b brne 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
* \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; | |
80003624: 4b 08 lddpc r8,800036e4 <USB_Device_ProcessControlRequest+0x484> | |
80003626: 30 1b mov r11,1 | |
80003628: 70 09 ld.w r9,r8[0x0] | |
8000362a: a3 69 lsl r9,0x2 | |
8000362c: e0 39 fe a0 sub r9,130720 | |
80003630: 72 0a ld.w r10,r9[0x0] | |
80003632: f5 db d0 41 bfins r10,r11,0x2,0x1 | |
80003636: 93 0a st.w r9[0x0],r10 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003638: 70 0a ld.w r10,r8[0x0] | |
8000363a: 4a c9 lddpc r9,800036e8 <USB_Device_ProcessControlRequest+0x488> | |
8000363c: 70 07 ld.w r7,r8[0x0] | |
8000363e: fc 1c e0 00 movh r12,0xe000 | |
80003642: b1 67 lsl r7,0x10 | |
80003644: 18 07 add r7,r12 | |
80003646: f2 0a 09 27 st.w r9[r10<<0x2],r7 | |
static void USB_Device_GetConfiguration(void) | |
{ | |
Endpoint_ClearSETUP(); | |
Endpoint_Write_8(USB_Device_ConfigurationNumber); | |
8000364a: 4a aa lddpc r10,800036f0 <USB_Device_ProcessControlRequest+0x490> | |
* \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; | |
8000364c: 70 07 ld.w r7,r8[0x0] | |
8000364e: 15 86 ld.ub r6,r10[0x0] | |
80003650: f2 07 03 2a ld.w r10,r9[r7<<0x2] | |
80003654: 14 c6 st.b r10++,r6 | |
80003656: f2 07 09 2a st.w r9[r7<<0x2],r10 | |
* \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; | |
8000365a: 70 0a ld.w r10,r8[0x0] | |
8000365c: a3 6a lsl r10,0x2 | |
8000365e: e0 3a fe a0 sub r10,130720 | |
80003662: 74 07 ld.w r7,r10[0x0] | |
80003664: ef db d0 01 bfins r7,r11,0x0,0x1 | |
80003668: 95 07 st.w r10[0x0],r7 | |
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true; | |
8000366a: 70 0a ld.w r10,r8[0x0] | |
8000366c: a3 6a lsl r10,0x2 | |
8000366e: e0 3a fd e0 sub r10,130528 | |
80003672: 74 07 ld.w r7,r10[0x0] | |
80003674: ef db d1 c1 bfins r7,r11,0xe,0x1 | |
80003678: 95 07 st.w r10[0x0],r7 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
8000367a: 70 0a ld.w r10,r8[0x0] | |
8000367c: 70 08 ld.w r8,r8[0x0] | |
8000367e: b1 68 lsl r8,0x10 | |
80003680: f0 0c 00 0c add r12,r8,r12 | |
80003684: f2 0a 09 2c st.w r9[r10<<0x2],r12 | |
80003688: c3 7b rjmp 800034f6 <USB_Device_ProcessControlRequest+0x296> | |
if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE)) | |
USB_Device_GetConfiguration(); | |
break; | |
case REQ_SetConfiguration: | |
if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE)) | |
8000368a: 58 07 cp.w r7,0 | |
8000368c: c4 51 brne 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
} | |
static void USB_Device_SetConfiguration(void) | |
{ | |
#if defined(FIXED_NUM_CONFIGURATIONS) | |
if ((uint8_t)USB_ControlRequest.wValue > FIXED_NUM_CONFIGURATIONS) | |
8000368e: 49 4a lddpc r10,800036dc <USB_Device_ProcessControlRequest+0x47c> | |
80003690: 30 18 mov r8,1 | |
80003692: 15 b9 ld.ub r9,r10[0x3] | |
80003694: f0 09 18 00 cp.b r9,r8 | |
80003698: e0 8b 00 3f brhi 80003716 <USB_Device_ProcessControlRequest+0x4b6> | |
* \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; | |
8000369c: 49 29 lddpc r9,800036e4 <USB_Device_ProcessControlRequest+0x484> | |
8000369e: 72 08 ld.w r8,r9[0x0] | |
800036a0: a3 68 lsl r8,0x2 | |
800036a2: e0 38 fe a0 sub r8,130720 | |
800036a6: 30 1c mov r12,1 | |
800036a8: 70 0b ld.w r11,r8[0x0] | |
800036aa: f7 dc d0 41 bfins r11,r12,0x2,0x1 | |
800036ae: 91 0b st.w r8[0x0],r11 | |
#endif | |
#endif | |
Endpoint_ClearSETUP(); | |
USB_Device_ConfigurationNumber = (uint8_t)USB_ControlRequest.wValue; | |
800036b0: 15 b8 ld.ub r8,r10[0x3] | |
800036b2: 49 06 lddpc r6,800036f0 <USB_Device_ProcessControlRequest+0x490> | |
800036b4: ac 88 st.b r6[0x0],r8 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
800036b6: fc 18 e0 00 movh r8,0xe000 | |
800036ba: 72 0a ld.w r10,r9[0x0] | |
800036bc: 72 09 ld.w r9,r9[0x0] | |
800036be: b1 69 lsl r9,0x10 | |
800036c0: 10 09 add r9,r8 | |
800036c2: 48 a8 lddpc r8,800036e8 <USB_Device_ProcessControlRequest+0x488> | |
800036c4: f0 0a 09 29 st.w r8[r10<<0x2],r9 | |
Endpoint_ClearStatusStage(); | |
800036c8: f0 1f 00 0b mcall 800036f4 <USB_Device_ProcessControlRequest+0x494> | |
if (USB_Device_ConfigurationNumber) | |
800036cc: 0d 88 ld.ub r8,r6[0x0] | |
800036ce: ee 08 18 00 cp.b r8,r7 | |
800036d2: c1 50 breq 800036fc <USB_Device_ProcessControlRequest+0x49c> | |
USB_DeviceState = DEVICE_STATE_Configured; | |
800036d4: 30 49 mov r9,4 | |
800036d6: 48 98 lddpc r8,800036f8 <USB_Device_ProcessControlRequest+0x498> | |
800036d8: b0 89 st.b r8[0x0],r9 | |
800036da: c1 c8 rjmp 80003712 <USB_Device_ProcessControlRequest+0x4b2> | |
800036dc: 00 00 add r0,r0 | |
800036de: 05 b9 ld.ub r9,r2[0x3] | |
800036e0: 80 00 ld.sh r0,r0[0x0] | |
800036e2: 23 d8 sub r8,61 | |
800036e4: 00 00 add r0,r0 | |
800036e6: 05 78 ld.ub r8,--r2 | |
800036e8: 00 00 add r0,r0 | |
800036ea: 06 14 sub r4,r3 | |
800036ec: 80 00 ld.sh r0,r0[0x0] | |
800036ee: 3f 4c mov r12,-12 | |
800036f0: 00 00 add r0,r0 | |
800036f2: 05 b4 ld.ub r4,r2[0x3] | |
800036f4: 80 00 ld.sh r0,r0[0x0] | |
800036f6: 3e 10 mov r0,-31 | |
800036f8: 00 00 add r0,r0 | |
800036fa: 05 b8 ld.ub r8,r2[0x3] | |
} | |
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; | |
800036fc: fe 68 00 00 mov r8,-131072 | |
else | |
USB_DeviceState = (USB_Device_IsAddressSet()) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered; | |
80003700: 49 89 lddpc r9,80003760 <USB_Device_ProcessControlRequest+0x500> | |
80003702: 70 08 ld.w r8,r8[0x0] | |
80003704: e2 18 00 80 andl r8,0x80,COH | |
80003708: f9 b8 01 04 movne r8,4 | |
8000370c: f9 b8 00 01 moveq r8,1 | |
80003710: b2 88 st.b r9[0x0],r8 | |
EVENT_USB_Device_ConfigurationChanged(); | |
80003712: f0 1f 00 15 mcall 80003764 <USB_Device_ProcessControlRequest+0x504> | |
* \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; | |
80003716: 49 58 lddpc r8,80003768 <USB_Device_ProcessControlRequest+0x508> | |
80003718: 70 09 ld.w r9,r8[0x0] | |
8000371a: a3 69 lsl r9,0x2 | |
8000371c: e0 39 fe d0 sub r9,130768 | |
80003720: 72 09 ld.w r9,r9[0x0] | |
break; | |
} | |
} | |
if (Endpoint_IsSETUPReceived()) | |
80003722: ed b9 00 02 bld r9,0x2 | |
80003726: c1 b1 brne 8000375c <USB_Device_ProcessControlRequest+0x4fc> | |
* \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; | |
80003728: 70 09 ld.w r9,r8[0x0] | |
8000372a: 30 1b mov r11,1 | |
8000372c: a3 69 lsl r9,0x2 | |
8000372e: e0 39 fe 10 sub r9,130576 | |
80003732: 72 0a ld.w r10,r9[0x0] | |
80003734: f5 db d2 61 bfins r10,r11,0x13,0x1 | |
80003738: 93 0a st.w r9[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; | |
8000373a: 70 09 ld.w r9,r8[0x0] | |
8000373c: a3 69 lsl r9,0x2 | |
8000373e: e0 39 fe a0 sub r9,130720 | |
80003742: 72 0a ld.w r10,r9[0x0] | |
80003744: f5 db d0 41 bfins r10,r11,0x2,0x1 | |
80003748: 93 0a st.w r9[0x0],r10 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
8000374a: 70 09 ld.w r9,r8[0x0] | |
8000374c: 70 0a ld.w r10,r8[0x0] | |
8000374e: fc 18 e0 00 movh r8,0xe000 | |
80003752: b1 6a lsl r10,0x10 | |
80003754: 10 0a add r10,r8 | |
80003756: 48 68 lddpc r8,8000376c <USB_Device_ProcessControlRequest+0x50c> | |
80003758: f0 09 09 2a st.w r8[r9<<0x2],r10 | |
{ | |
Endpoint_StallTransaction(); | |
Endpoint_ClearSETUP(); | |
} | |
} | |
8000375c: 2f fd sub sp,-4 | |
8000375e: d8 22 popm r4-r7,pc | |
80003760: 00 00 add r0,r0 | |
80003762: 05 b8 ld.ub r8,r2[0x3] | |
80003764: 80 00 ld.sh r0,r0[0x0] | |
80003766: 22 70 sub r0,39 | |
80003768: 00 00 add r0,r0 | |
8000376a: 05 78 ld.ub r8,--r2 | |
8000376c: 00 00 add r0,r0 | |
8000376e: 06 14 sub r4,r3 | |
80003770 <USB_Event_Stub>: | |
// cppcheck-suppress unusedFunction | |
void USB_Event_Stub(void) | |
{ | |
} | |
80003770: 5e fc retal r12 | |
80003772: d7 03 nop | |
80003774 <USB_USBTask>: | |
#if defined(USB_CAN_BE_DEVICE) && !defined(DEVICE_STATE_AS_GPIOR) | |
volatile uint8_t USB_DeviceState; | |
#endif | |
void USB_USBTask(void) | |
{ | |
80003774: d4 21 pushm r4-r7,lr | |
} | |
#if defined(USB_CAN_BE_DEVICE) | |
static void USB_DeviceTask(void) | |
{ | |
if (USB_DeviceState != DEVICE_STATE_Unattached) | |
80003776: 48 f8 lddpc r8,800037b0 <USB_USBTask+0x3c> | |
80003778: 11 88 ld.ub r8,r8[0x0] | |
8000377a: 58 08 cp.w r8,0 | |
8000377c: c1 80 breq 800037ac <USB_USBTask+0x38> | |
* \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()); | |
8000377e: 48 e8 lddpc r8,800037b4 <USB_USBTask+0x40> | |
80003780: 70 07 ld.w r7,r8[0x0] | |
* \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); | |
80003782: 70 09 ld.w r9,r8[0x0] | |
80003784: a3 69 lsl r9,0x2 | |
80003786: e0 39 ff 00 sub r9,130816 | |
8000378a: 72 09 ld.w r9,r9[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); | |
8000378c: 30 09 mov r9,0 | |
8000378e: 91 09 st.w r8[0x0],r9 | |
* \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; | |
80003790: 70 08 ld.w r8,r8[0x0] | |
80003792: a3 68 lsl r8,0x2 | |
80003794: e0 38 fe d0 sub r8,130768 | |
80003798: 70 08 ld.w r8,r8[0x0] | |
{ | |
uint8_t PrevEndpoint = Endpoint_GetCurrentEndpoint(); | |
Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP); | |
if (Endpoint_IsSETUPReceived()) | |
8000379a: ed b8 00 02 bld r8,0x2 | |
8000379e: c0 31 brne 800037a4 <USB_USBTask+0x30> | |
USB_Device_ProcessControlRequest(); | |
800037a0: f0 1f 00 06 mcall 800037b8 <USB_USBTask+0x44> | |
* \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); | |
800037a4: ef d7 c0 04 bfextu r7,r7,0x0,0x4 | |
800037a8: 48 38 lddpc r8,800037b4 <USB_USBTask+0x40> | |
800037aa: 91 07 st.w r8[0x0],r7 | |
800037ac: d8 22 popm r4-r7,pc | |
800037ae: 00 00 add r0,r0 | |
800037b0: 00 00 add r0,r0 | |
800037b2: 05 b8 ld.ub r8,r2[0x3] | |
800037b4: 00 00 add r0,r0 | |
800037b6: 05 78 ld.ub r8,--r2 | |
800037b8: 80 00 ld.sh r0,r0[0x0] | |
800037ba: 32 60 mov r0,38 | |
800037bc <CDC_Device_Event_Stub>: | |
// cppcheck-suppress unusedFunction | |
void CDC_Device_Event_Stub(void) | |
{ | |
} | |
800037bc: 5e fc retal r12 | |
800037be: d7 03 nop | |
800037c0 <CDC_Device_Flush>: | |
Endpoint_Write_8(Data); | |
return ENDPOINT_READYWAIT_NoError; | |
} | |
uint8_t CDC_Device_Flush(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) | |
{ | |
800037c0: d4 21 pushm r4-r7,lr | |
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS)) | |
800037c2: 4a e8 lddpc r8,80003878 <CDC_Device_Flush+0xb8> | |
800037c4: 30 49 mov r9,4 | |
800037c6: 11 88 ld.ub r8,r8[0x0] | |
800037c8: f2 08 18 00 cp.b r8,r9 | |
800037cc: c5 21 brne 80003870 <CDC_Device_Flush+0xb0> | |
800037ce: f9 19 00 18 ld.uh r9,r12[24] | |
800037d2: f9 18 00 1a ld.uh r8,r12[26] | |
800037d6: f1 e9 11 08 or r8,r8,r9<<0x10 | |
800037da: c4 b0 breq 80003870 <CDC_Device_Flush+0xb0> | |
* \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); | |
800037dc: 19 a8 ld.ub r8,r12[0x2] | |
800037de: f1 d8 c0 04 bfextu r8,r8,0x0,0x4 | |
800037e2: 4a 77 lddpc r7,8000387c <CDC_Device_Flush+0xbc> | |
800037e4: 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; | |
800037e6: 6e 08 ld.w r8,r7[0x0] | |
800037e8: a3 68 lsl r8,0x2 | |
800037ea: e0 38 fe d0 sub r8,130768 | |
800037ee: 70 08 ld.w r8,r8[0x0] | |
800037f0: f1 d8 c2 8b bfextu r8,r8,0x14,0xb | |
uint8_t ErrorCode; | |
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address); | |
if (!(Endpoint_BytesInEndpoint())) | |
800037f4: c4 00 breq 80003874 <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; | |
800037f6: 6e 08 ld.w r8,r7[0x0] | |
800037f8: a3 68 lsl r8,0x2 | |
800037fa: 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; | |
800037fe: 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; | |
80003800: 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; | |
80003802: 6e 08 ld.w r8,r7[0x0] | |
80003804: a3 68 lsl r8,0x2 | |
80003806: e0 38 fe a0 sub r8,130720 | |
8000380a: 70 0a ld.w r10,r8[0x0] | |
8000380c: f5 d6 d0 01 bfins r10,r6,0x0,0x1 | |
80003810: 91 0a st.w r8[0x0],r10 | |
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true; | |
80003812: 6e 08 ld.w r8,r7[0x0] | |
80003814: a3 68 lsl r8,0x2 | |
80003816: e0 38 fd e0 sub r8,130528 | |
8000381a: 70 0a ld.w r10,r8[0x0] | |
8000381c: f5 d6 d1 c1 bfins r10,r6,0xe,0x1 | |
80003820: 91 0a st.w r8[0x0],r10 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003822: 49 85 lddpc r5,80003880 <CDC_Device_Flush+0xc0> | |
80003824: 6e 08 ld.w r8,r7[0x0] | |
80003826: fc 14 e0 00 movh r4,0xe000 | |
8000382a: 6e 0a ld.w r10,r7[0x0] | |
8000382c: b1 6a lsl r10,0x10 | |
8000382e: 08 0a add r10,r4 | |
80003830: ea 08 09 2a st.w r5[r8<<0x2],r10 | |
bool BankFull = !(Endpoint_IsReadWriteAllowed()); | |
Endpoint_ClearIN(); | |
if (BankFull) | |
80003834: ed b9 00 10 bld r9,0x10 | |
80003838: c1 e0 breq 80003874 <CDC_Device_Flush+0xb4> | |
{ | |
if ((ErrorCode = Endpoint_WaitUntilReady()) != ENDPOINT_READYWAIT_NoError) | |
8000383a: f0 1f 00 13 mcall 80003884 <CDC_Device_Flush+0xc4> | |
8000383e: c1 c1 brne 80003876 <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; | |
80003840: 6e 08 ld.w r8,r7[0x0] | |
80003842: a3 68 lsl r8,0x2 | |
80003844: e0 38 fe a0 sub r8,130720 | |
80003848: 70 09 ld.w r9,r8[0x0] | |
8000384a: f3 d6 d0 01 bfins r9,r6,0x0,0x1 | |
8000384e: 91 09 st.w r8[0x0],r9 | |
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true; | |
80003850: 6e 08 ld.w r8,r7[0x0] | |
80003852: a3 68 lsl r8,0x2 | |
80003854: e0 38 fd e0 sub r8,130528 | |
80003858: 70 09 ld.w r9,r8[0x0] | |
8000385a: f3 d6 d1 c1 bfins r9,r6,0xe,0x1 | |
8000385e: 91 09 st.w r8[0x0],r9 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003860: 6e 08 ld.w r8,r7[0x0] | |
80003862: 6e 09 ld.w r9,r7[0x0] | |
80003864: b1 69 lsl r9,0x10 | |
80003866: f2 04 00 04 add r4,r9,r4 | |
8000386a: ea 08 09 24 st.w r5[r8<<0x2],r4 | |
8000386e: d8 22 popm r4-r7,pc | |
80003870: 30 2c mov r12,2 | |
80003872: d8 22 popm r4-r7,pc | |
80003874: 30 0c mov r12,0 | |
Endpoint_ClearIN(); | |
} | |
return ENDPOINT_READYWAIT_NoError; | |
} | |
80003876: d8 22 popm r4-r7,pc | |
80003878: 00 00 add r0,r0 | |
8000387a: 05 b8 ld.ub r8,r2[0x3] | |
8000387c: 00 00 add r0,r0 | |
8000387e: 05 78 ld.ub r8,--r2 | |
80003880: 00 00 add r0,r0 | |
80003882: 06 14 sub r4,r3 | |
80003884: 80 00 ld.sh r0,r0[0x0] | |
80003886: 3e b4 mov r4,-21 | |
80003888 <CDC_Device_USBTask>: | |
return true; | |
} | |
void CDC_Device_USBTask(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) | |
{ | |
80003888: d4 01 pushm lr | |
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS)) | |
8000388a: 48 98 lddpc r8,800038ac <CDC_Device_USBTask+0x24> | |
8000388c: 30 49 mov r9,4 | |
8000388e: 11 8a ld.ub r10,r8[0x0] | |
80003890: f2 0a 18 00 cp.b r10,r9 | |
80003894: c0 a1 brne 800038a8 <CDC_Device_USBTask+0x20> | |
80003896: f9 19 00 1a ld.uh r9,r12[26] | |
8000389a: f9 18 00 18 ld.uh r8,r12[24] | |
8000389e: f3 e8 11 08 or r8,r9,r8<<0x10 | |
800038a2: c0 30 breq 800038a8 <CDC_Device_USBTask+0x20> | |
return; | |
#if !defined(NO_CLASS_DRIVER_AUTOFLUSH) | |
CDC_Device_Flush(CDCInterfaceInfo); | |
800038a4: f0 1f 00 03 mcall 800038b0 <CDC_Device_USBTask+0x28> | |
800038a8: d8 02 popm pc | |
800038aa: 00 00 add r0,r0 | |
800038ac: 00 00 add r0,r0 | |
800038ae: 05 b8 ld.ub r8,r2[0x3] | |
800038b0: 80 00 ld.sh r0,r0[0x0] | |
800038b2: 37 c0 mov r0,124 | |
800038b4 <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) | |
{ | |
800038b4: d4 21 pushm r4-r7,lr | |
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS)) | |
800038b6: 4a 38 lddpc r8,80003940 <CDC_Device_SendByte+0x8c> | |
return Endpoint_Write_Stream_LE(Buffer, Length, NULL); | |
} | |
uint8_t CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, | |
const uint8_t Data) | |
{ | |
800038b8: 16 97 mov r7,r11 | |
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS)) | |
800038ba: 11 88 ld.ub r8,r8[0x0] | |
800038bc: 30 49 mov r9,4 | |
800038be: f2 08 18 00 cp.b r8,r9 | |
800038c2: c3 c1 brne 8000393a <CDC_Device_SendByte+0x86> | |
800038c4: f9 19 00 18 ld.uh r9,r12[24] | |
800038c8: f9 18 00 1a ld.uh r8,r12[26] | |
800038cc: f1 e9 11 08 or r8,r8,r9<<0x10 | |
800038d0: c3 50 breq 8000393a <CDC_Device_SendByte+0x86> | |
* \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); | |
800038d2: 19 a9 ld.ub r9,r12[0x2] | |
800038d4: f3 d9 c0 04 bfextu r9,r9,0x0,0x4 | |
800038d8: 49 b8 lddpc r8,80003944 <CDC_Device_SendByte+0x90> | |
800038da: 91 09 st.w r8[0x0],r9 | |
* 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; | |
800038dc: 70 09 ld.w r9,r8[0x0] | |
800038de: a3 69 lsl r9,0x2 | |
800038e0: e0 39 fe d0 sub r9,130768 | |
800038e4: 72 09 ld.w r9,r9[0x0] | |
return ENDPOINT_RWSTREAM_DeviceDisconnected; | |
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address); | |
if (!(Endpoint_IsReadWriteAllowed())) | |
800038e6: ed b9 00 10 bld r9,0x10 | |
800038ea: c1 e0 breq 80003926 <CDC_Device_SendByte+0x72> | |
* \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; | |
800038ec: 70 09 ld.w r9,r8[0x0] | |
800038ee: 30 1b mov r11,1 | |
800038f0: a3 69 lsl r9,0x2 | |
800038f2: e0 39 fe a0 sub r9,130720 | |
800038f6: 72 0a ld.w r10,r9[0x0] | |
800038f8: f5 db d0 01 bfins r10,r11,0x0,0x1 | |
800038fc: 93 0a st.w r9[0x0],r10 | |
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true; | |
800038fe: 70 09 ld.w r9,r8[0x0] | |
80003900: a3 69 lsl r9,0x2 | |
80003902: e0 39 fd e0 sub r9,130528 | |
80003906: 72 0a ld.w r10,r9[0x0] | |
80003908: f5 db d1 c1 bfins r10,r11,0xe,0x1 | |
8000390c: 93 0a st.w r9[0x0],r10 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
8000390e: 70 09 ld.w r9,r8[0x0] | |
80003910: 70 0a ld.w r10,r8[0x0] | |
80003912: fc 18 e0 00 movh r8,0xe000 | |
80003916: b1 6a lsl r10,0x10 | |
80003918: 10 0a add r10,r8 | |
8000391a: 48 c8 lddpc r8,80003948 <CDC_Device_SendByte+0x94> | |
8000391c: f0 09 09 2a st.w r8[r9<<0x2],r10 | |
{ | |
Endpoint_ClearIN(); | |
uint8_t ErrorCode; | |
if ((ErrorCode = Endpoint_WaitUntilReady()) != ENDPOINT_READYWAIT_NoError) | |
80003920: f0 1f 00 0b mcall 8000394c <CDC_Device_SendByte+0x98> | |
80003924: c0 c1 brne 8000393c <CDC_Device_SendByte+0x88> | |
* \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; | |
80003926: 48 88 lddpc r8,80003944 <CDC_Device_SendByte+0x90> | |
80003928: 48 89 lddpc r9,80003948 <CDC_Device_SendByte+0x94> | |
8000392a: 70 0a ld.w r10,r8[0x0] | |
8000392c: 30 0c mov r12,0 | |
8000392e: f2 0a 03 28 ld.w r8,r9[r10<<0x2] | |
80003932: 10 c7 st.b r8++,r7 | |
80003934: f2 0a 09 28 st.w r9[r10<<0x2],r8 | |
return ErrorCode; | |
} | |
Endpoint_Write_8(Data); | |
return ENDPOINT_READYWAIT_NoError; | |
80003938: d8 22 popm r4-r7,pc | |
8000393a: 30 2c mov r12,2 | |
} | |
8000393c: d8 22 popm r4-r7,pc | |
8000393e: 00 00 add r0,r0 | |
80003940: 00 00 add r0,r0 | |
80003942: 05 b8 ld.ub r8,r2[0x3] | |
80003944: 00 00 add r0,r0 | |
80003946: 05 78 ld.ub r8,--r2 | |
80003948: 00 00 add r0,r0 | |
8000394a: 06 14 sub r4,r3 | |
8000394c: 80 00 ld.sh r0,r0[0x0] | |
8000394e: 3e b4 mov r4,-21 | |
80003950 <CDC_Device_ConfigureEndpoints>: | |
break; | |
} | |
} | |
bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) | |
{ | |
80003950: d4 21 pushm r4-r7,lr | |
memset(&CDCInterfaceInfo->State, 0x00, sizeof(CDCInterfaceInfo->State)); | |
80003952: 30 0b mov r11,0 | |
break; | |
} | |
} | |
bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) | |
{ | |
80003954: 18 97 mov r7,r12 | |
memset(&CDCInterfaceInfo->State, 0x00, sizeof(CDCInterfaceInfo->State)); | |
80003956: 30 ca mov r10,12 | |
80003958: 2e cc sub r12,-20 | |
8000395a: f0 1f 00 0f mcall 80003994 <CDC_Device_ConfigureEndpoints+0x44> | |
CDCInterfaceInfo->Config.DataINEndpoint.Type = EP_TYPE_BULK; | |
8000395e: 30 28 mov r8,2 | |
CDCInterfaceInfo->Config.DataOUTEndpoint.Type = EP_TYPE_BULK; | |
80003960: ef 68 00 0c st.b r7[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; | |
80003964: ae e8 st.b r7[0x6],r8 | |
CDCInterfaceInfo->Config.DataOUTEndpoint.Type = EP_TYPE_BULK; | |
CDCInterfaceInfo->Config.NotificationEndpoint.Type = EP_TYPE_INTERRUPT; | |
80003966: 30 38 mov r8,3 | |
if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataINEndpoint, 1))) | |
80003968: 30 1b mov r11,1 | |
{ | |
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; | |
8000396a: ef 68 00 12 st.b r7[18],r8 | |
if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataINEndpoint, 1))) | |
8000396e: ee cc ff fe sub r12,r7,-2 | |
80003972: f0 1f 00 0a mcall 80003998 <CDC_Device_ConfigureEndpoints+0x48> | |
80003976: c0 d0 breq 80003990 <CDC_Device_ConfigureEndpoints+0x40> | |
return false; | |
if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataOUTEndpoint, 1))) | |
80003978: 30 1b mov r11,1 | |
8000397a: ee cc ff f8 sub r12,r7,-8 | |
8000397e: f0 1f 00 07 mcall 80003998 <CDC_Device_ConfigureEndpoints+0x48> | |
80003982: c0 70 breq 80003990 <CDC_Device_ConfigureEndpoints+0x40> | |
return false; | |
if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.NotificationEndpoint, 1))) | |
80003984: ee cc ff f2 sub r12,r7,-14 | |
80003988: 30 1b mov r11,1 | |
8000398a: f0 1f 00 04 mcall 80003998 <CDC_Device_ConfigureEndpoints+0x48> | |
8000398e: d8 22 popm r4-r7,pc | |
80003990: d8 2a popm r4-r7,pc,r12=0 | |
80003992: 00 00 add r0,r0 | |
80003994: 80 00 ld.sh r0,r0[0x0] | |
80003996: 40 fc lddsp r12,sp[0x3c] | |
80003998: 80 00 ld.sh r0,r0[0x0] | |
8000399a: 3d 98 mov r8,-39 | |
8000399c <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) | |
{ | |
8000399c: d4 21 pushm r4-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; | |
8000399e: 4d 58 lddpc r8,80003af0 <CDC_Device_ProcessControlRequest+0x154> | |
800039a0: 70 09 ld.w r9,r8[0x0] | |
800039a2: 18 97 mov r7,r12 | |
800039a4: a3 69 lsl r9,0x2 | |
800039a6: e0 39 fe d0 sub r9,130768 | |
800039aa: 72 09 ld.w r9,r9[0x0] | |
if (!(Endpoint_IsSETUPReceived())) | |
800039ac: ed b9 00 02 bld r9,0x2 | |
800039b0: e0 81 01 69 brne 80003c82 <CDC_Device_ProcessControlRequest+0x2e6> | |
return; | |
if (USB_ControlRequest.wIndex != CDCInterfaceInfo->Config.ControlInterfaceNumber) | |
800039b4: 4d 06 lddpc r6,80003af4 <CDC_Device_ProcessControlRequest+0x158> | |
800039b6: 19 8a ld.ub r10,r12[0x0] | |
800039b8: 0d cb ld.ub r11,r6[0x4] | |
800039ba: 0d d9 ld.ub r9,r6[0x5] | |
800039bc: f3 eb 10 89 or r9,r9,r11<<0x8 | |
800039c0: f2 0a 19 00 cp.h r10,r9 | |
800039c4: e0 81 01 5f brne 80003c82 <CDC_Device_ProcessControlRequest+0x2e6> | |
return; | |
switch (USB_ControlRequest.bRequest) | |
800039c8: 0d 9a ld.ub r10,r6[0x1] | |
800039ca: 32 19 mov r9,33 | |
800039cc: f2 0a 18 00 cp.b r10,r9 | |
800039d0: c1 40 breq 800039f8 <CDC_Device_ProcessControlRequest+0x5c> | |
800039d2: e0 8b 00 08 brhi 800039e2 <CDC_Device_ProcessControlRequest+0x46> | |
800039d6: 32 0b mov r11,32 | |
800039d8: f6 0a 18 00 cp.b r10,r11 | |
800039dc: e0 81 01 53 brne 80003c82 <CDC_Device_ProcessControlRequest+0x2e6> | |
800039e0: c9 08 rjmp 80003b00 <CDC_Device_ProcessControlRequest+0x164> | |
800039e2: 32 2b mov r11,34 | |
800039e4: f6 0a 18 00 cp.b r10,r11 | |
800039e8: e0 80 01 0f breq 80003c06 <CDC_Device_ProcessControlRequest+0x26a> | |
800039ec: 32 3b mov r11,35 | |
800039ee: f6 0a 18 00 cp.b r10,r11 | |
800039f2: e0 81 01 48 brne 80003c82 <CDC_Device_ProcessControlRequest+0x2e6> | |
800039f6: c2 a9 rjmp 80003c4a <CDC_Device_ProcessControlRequest+0x2ae> | |
{ | |
case CDC_REQ_GetLineEncoding: | |
if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE)) | |
800039f8: 0d 8a ld.ub r10,r6[0x0] | |
800039fa: 3a 19 mov r9,-95 | |
800039fc: f2 0a 18 00 cp.b r10,r9 | |
80003a00: e0 81 01 41 brne 80003c82 <CDC_Device_ProcessControlRequest+0x2e6> | |
* \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; | |
80003a04: 70 09 ld.w r9,r8[0x0] | |
80003a06: 30 1b mov r11,1 | |
80003a08: a3 69 lsl r9,0x2 | |
80003a0a: e0 39 fe a0 sub r9,130720 | |
80003a0e: 72 0a ld.w r10,r9[0x0] | |
80003a10: f5 db d0 41 bfins r10,r11,0x2,0x1 | |
* \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; | |
80003a14: 10 9b mov r11,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; | |
80003a16: 93 0a st.w r9[0x0],r10 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003a18: 70 09 ld.w r9,r8[0x0] | |
80003a1a: 70 0a ld.w r10,r8[0x0] | |
80003a1c: fc 18 e0 00 movh r8,0xe000 | |
80003a20: b1 6a lsl r10,0x10 | |
80003a22: 10 0a add r10,r8 | |
80003a24: 4b 58 lddpc r8,80003af8 <CDC_Device_ProcessControlRequest+0x15c> | |
80003a26: f0 09 09 2a st.w r8[r9<<0x2],r10 | |
* \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; | |
80003a2a: 76 08 ld.w r8,r11[0x0] | |
80003a2c: a3 68 lsl r8,0x2 | |
80003a2e: e0 38 fe d0 sub r8,130768 | |
80003a32: 70 08 ld.w r8,r8[0x0] | |
80003a34: 4a f9 lddpc r9,80003af0 <CDC_Device_ProcessControlRequest+0x154> | |
{ | |
Endpoint_ClearSETUP(); | |
while (!(Endpoint_IsINReady())); | |
80003a36: f1 d8 c0 01 bfextu r8,r8,0x0,0x1 | |
80003a3a: cf 80 breq 80003a2a <CDC_Device_ProcessControlRequest+0x8e> | |
Endpoint_Write_32_LE(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS); | |
80003a3c: ef 18 00 1a ld.uh r8,r7[26] | |
* \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); | |
80003a40: 72 0c ld.w r12,r9[0x0] | |
80003a42: ef 1a 00 18 ld.uh r10,r7[24] | |
80003a46: f1 ea 11 0a or r10,r8,r10<<0x10 | |
80003a4a: 4a c8 lddpc r8,80003af8 <CDC_Device_ProcessControlRequest+0x15c> | |
80003a4c: f0 0c 03 2b ld.w r11,r8[r12<<0x2] | |
80003a50: fd da c0 08 bfextu lr,r10,0x0,0x8 | |
80003a54: 16 ce st.b r11++,lr | |
80003a56: f0 0c 09 2b st.w r8[r12<<0x2],r11 | |
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8); | |
80003a5a: 72 0c ld.w r12,r9[0x0] | |
80003a5c: f0 0c 03 2b ld.w r11,r8[r12<<0x2] | |
80003a60: fd da c1 08 bfextu lr,r10,0x8,0x8 | |
80003a64: 16 ce st.b r11++,lr | |
80003a66: f0 0c 09 2b st.w r8[r12<<0x2],r11 | |
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 16); | |
80003a6a: 72 0c ld.w r12,r9[0x0] | |
80003a6c: f0 0c 03 2b ld.w r11,r8[r12<<0x2] | |
80003a70: fd da c2 08 bfextu lr,r10,0x10,0x8 | |
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 24); | |
80003a74: b9 8a lsr r10,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); | |
80003a76: 16 ce st.b r11++,lr | |
80003a78: f0 0c 09 2b st.w r8[r12<<0x2],r11 | |
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 24); | |
80003a7c: 72 0c ld.w r12,r9[0x0] | |
80003a7e: f0 0c 03 2b ld.w r11,r8[r12<<0x2] | |
80003a82: 16 ca st.b r11++,r10 | |
80003a84: f0 0c 09 2b st.w r8[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; | |
80003a88: 72 0b ld.w r11,r9[0x0] | |
Endpoint_Write_8(CDCInterfaceInfo->State.LineEncoding.CharFormat); | |
80003a8a: ef 3c 00 1c ld.ub r12,r7[28] | |
80003a8e: f0 0b 03 2a ld.w r10,r8[r11<<0x2] | |
80003a92: 14 cc st.b r10++,r12 | |
80003a94: f0 0b 09 2a st.w r8[r11<<0x2],r10 | |
80003a98: 72 0b ld.w r11,r9[0x0] | |
Endpoint_Write_8(CDCInterfaceInfo->State.LineEncoding.ParityType); | |
80003a9a: ef 3c 00 1d ld.ub r12,r7[29] | |
80003a9e: f0 0b 03 2a ld.w r10,r8[r11<<0x2] | |
80003aa2: 14 cc st.b r10++,r12 | |
80003aa4: f0 0b 09 2a st.w r8[r11<<0x2],r10 | |
80003aa8: 72 0b ld.w r11,r9[0x0] | |
Endpoint_Write_8(CDCInterfaceInfo->State.LineEncoding.DataBits); | |
80003aaa: ef 3c 00 1e ld.ub r12,r7[30] | |
80003aae: f0 0b 03 2a ld.w r10,r8[r11<<0x2] | |
80003ab2: 14 cc st.b r10++,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; | |
80003ab4: 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; | |
80003ab6: f0 0b 09 2a st.w r8[r11<<0x2],r10 | |
* \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; | |
80003aba: 72 0a ld.w r10,r9[0x0] | |
80003abc: a3 6a lsl r10,0x2 | |
80003abe: e0 3a fe a0 sub r10,130720 | |
80003ac2: 74 0b ld.w r11,r10[0x0] | |
80003ac4: f7 dc d0 01 bfins r11,r12,0x0,0x1 | |
80003ac8: 95 0b st.w r10[0x0],r11 | |
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true; | |
80003aca: 72 0a ld.w r10,r9[0x0] | |
80003acc: a3 6a lsl r10,0x2 | |
80003ace: e0 3a fd e0 sub r10,130528 | |
80003ad2: 74 0b ld.w r11,r10[0x0] | |
80003ad4: f7 dc d1 c1 bfins r11,r12,0xe,0x1 | |
80003ad8: 95 0b st.w r10[0x0],r11 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003ada: fc 1b e0 00 movh r11,0xe000 | |
80003ade: 72 0a ld.w r10,r9[0x0] | |
80003ae0: 72 09 ld.w r9,r9[0x0] | |
80003ae2: b1 69 lsl r9,0x10 | |
80003ae4: 16 09 add r9,r11 | |
80003ae6: f0 0a 09 29 st.w r8[r10<<0x2],r9 | |
Endpoint_ClearIN(); | |
Endpoint_ClearStatusStage(); | |
80003aea: f0 1f 00 05 mcall 80003afc <CDC_Device_ProcessControlRequest+0x160> | |
80003aee: d8 22 popm r4-r7,pc | |
80003af0: 00 00 add r0,r0 | |
80003af2: 05 78 ld.ub r8,--r2 | |
80003af4: 00 00 add r0,r0 | |
80003af6: 05 b9 ld.ub r9,r2[0x3] | |
80003af8: 00 00 add r0,r0 | |
80003afa: 06 14 sub r4,r3 | |
80003afc: 80 00 ld.sh r0,r0[0x0] | |
80003afe: 3e 10 mov r0,-31 | |
} | |
break; | |
case CDC_REQ_SetLineEncoding: | |
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) | |
80003b00: 0d 8a ld.ub r10,r6[0x0] | |
80003b02: f2 0a 18 00 cp.b r10,r9 | |
80003b06: e0 81 00 be brne 80003c82 <CDC_Device_ProcessControlRequest+0x2e6> | |
* \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; | |
80003b0a: 70 09 ld.w r9,r8[0x0] | |
80003b0c: 30 1b mov r11,1 | |
80003b0e: a3 69 lsl r9,0x2 | |
80003b10: e0 39 fe a0 sub r9,130720 | |
80003b14: 72 0a ld.w r10,r9[0x0] | |
80003b16: f5 db d0 41 bfins r10,r11,0x2,0x1 | |
* \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; | |
80003b1a: 10 9b mov r11,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; | |
80003b1c: 93 0a st.w r9[0x0],r10 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003b1e: 70 09 ld.w r9,r8[0x0] | |
80003b20: 70 0a ld.w r10,r8[0x0] | |
80003b22: fc 18 e0 00 movh r8,0xe000 | |
80003b26: b1 6a lsl r10,0x10 | |
80003b28: 10 0a add r10,r8 | |
80003b2a: 4d 78 lddpc r8,80003c84 <CDC_Device_ProcessControlRequest+0x2e8> | |
80003b2c: f0 09 09 2a st.w r8[r9<<0x2],r10 | |
{ | |
Endpoint_ClearSETUP(); | |
while (!(Endpoint_IsOUTReceived())) | |
{ | |
if (USB_DeviceState == DEVICE_STATE_Unattached) | |
80003b30: 4d 6a lddpc r10,80003c88 <CDC_Device_ProcessControlRequest+0x2ec> | |
case CDC_REQ_SetLineEncoding: | |
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) | |
{ | |
Endpoint_ClearSETUP(); | |
while (!(Endpoint_IsOUTReceived())) | |
80003b32: c0 58 rjmp 80003b3c <CDC_Device_ProcessControlRequest+0x1a0> | |
{ | |
if (USB_DeviceState == DEVICE_STATE_Unattached) | |
80003b34: 15 88 ld.ub r8,r10[0x0] | |
80003b36: 58 08 cp.w r8,0 | |
80003b38: e0 80 00 a5 breq 80003c82 <CDC_Device_ProcessControlRequest+0x2e6> | |
* \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; | |
80003b3c: 76 08 ld.w r8,r11[0x0] | |
80003b3e: a3 68 lsl r8,0x2 | |
80003b40: e0 38 fe d0 sub r8,130768 | |
80003b44: 70 08 ld.w r8,r8[0x0] | |
80003b46: 4d 29 lddpc r9,80003c8c <CDC_Device_ProcessControlRequest+0x2f0> | |
case CDC_REQ_SetLineEncoding: | |
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) | |
{ | |
Endpoint_ClearSETUP(); | |
while (!(Endpoint_IsOUTReceived())) | |
80003b48: e2 18 00 02 andl r8,0x2,COH | |
80003b4c: cf 40 breq 80003b34 <CDC_Device_ProcessControlRequest+0x198> | |
* \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]++); | |
80003b4e: 72 0b ld.w r11,r9[0x0] | |
80003b50: 4c d8 lddpc r8,80003c84 <CDC_Device_ProcessControlRequest+0x2e8> | |
80003b52: f0 0b 03 2a ld.w r10,r8[r11<<0x2] | |
80003b56: 15 36 ld.ub r6,r10++ | |
80003b58: f0 0b 09 2a st.w r8[r11<<0x2],r10 | |
uint32_t Byte1 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++); | |
80003b5c: 72 0b ld.w r11,r9[0x0] | |
80003b5e: f0 0b 03 2a ld.w r10,r8[r11<<0x2] | |
80003b62: 15 3c ld.ub r12,r10++ | |
80003b64: f0 0b 09 2a st.w r8[r11<<0x2],r10 | |
uint32_t Byte2 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++); | |
80003b68: 72 0b ld.w r11,r9[0x0] | |
80003b6a: f0 0b 03 2a ld.w r10,r8[r11<<0x2] | |
80003b6e: 15 35 ld.ub r5,r10++ | |
80003b70: f0 0b 09 2a st.w r8[r11<<0x2],r10 | |
uint32_t Byte3 = *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++); | |
80003b74: 72 0b ld.w r11,r9[0x0] | |
80003b76: f0 0b 03 2a ld.w r10,r8[r11<<0x2] | |
80003b7a: 15 3e ld.ub lr,r10++ | |
80003b7c: f0 0b 09 2a st.w r8[r11<<0x2],r10 | |
{ | |
if (USB_DeviceState == DEVICE_STATE_Unattached) | |
return; | |
} | |
CDCInterfaceInfo->State.LineEncoding.BaudRateBPS = Endpoint_Read_32_LE(); | |
80003b80: ea 0a 15 10 lsl r10,r5,0x10 | |
80003b84: f5 ee 11 8a or r10,r10,lr<<0x18 | |
80003b88: 0c 4a or r10,r6 | |
80003b8a: f5 ec 10 8a or r10,r10,r12<<0x8 | |
80003b8e: ef 5a 00 1a st.h r7[26],r10 | |
80003b92: b1 8a lsr r10,0x10 | |
80003b94: ef 5a 00 18 st.h r7[24],r10 | |
* \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]++); | |
80003b98: 72 0b ld.w r11,r9[0x0] | |
80003b9a: f0 0b 03 2a ld.w r10,r8[r11<<0x2] | |
80003b9e: 15 3c ld.ub r12,r10++ | |
80003ba0: f0 0b 09 2a st.w r8[r11<<0x2],r10 | |
CDCInterfaceInfo->State.LineEncoding.CharFormat = Endpoint_Read_8(); | |
80003ba4: ef 6c 00 1c st.b r7[28],r12 | |
80003ba8: 72 0b ld.w r11,r9[0x0] | |
80003baa: f0 0b 03 2a ld.w r10,r8[r11<<0x2] | |
80003bae: 15 3c ld.ub r12,r10++ | |
80003bb0: f0 0b 09 2a st.w r8[r11<<0x2],r10 | |
CDCInterfaceInfo->State.LineEncoding.ParityType = Endpoint_Read_8(); | |
80003bb4: ef 6c 00 1d st.b r7[29],r12 | |
80003bb8: 72 0b ld.w r11,r9[0x0] | |
80003bba: f0 0b 03 2a ld.w r10,r8[r11<<0x2] | |
80003bbe: 15 3c ld.ub r12,r10++ | |
80003bc0: f0 0b 09 2a st.w r8[r11<<0x2],r10 | |
CDCInterfaceInfo->State.LineEncoding.DataBits = Endpoint_Read_8(); | |
80003bc4: 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; | |
80003bc8: 30 1c mov r12,1 | |
80003bca: 72 0a ld.w r10,r9[0x0] | |
80003bcc: a3 6a lsl r10,0x2 | |
80003bce: e0 3a fe a0 sub r10,130720 | |
80003bd2: 74 0b ld.w r11,r10[0x0] | |
80003bd4: f7 dc d0 21 bfins r11,r12,0x1,0x1 | |
80003bd8: 95 0b st.w r10[0x0],r11 | |
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true; | |
80003bda: 72 0a ld.w r10,r9[0x0] | |
80003bdc: a3 6a lsl r10,0x2 | |
80003bde: e0 3a fd e0 sub r10,130528 | |
80003be2: 74 0b ld.w r11,r10[0x0] | |
80003be4: f7 dc d1 c1 bfins r11,r12,0xe,0x1 | |
80003be8: 95 0b st.w r10[0x0],r11 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003bea: fc 1b e0 00 movh r11,0xe000 | |
80003bee: 72 0a ld.w r10,r9[0x0] | |
80003bf0: 72 09 ld.w r9,r9[0x0] | |
80003bf2: b1 69 lsl r9,0x10 | |
80003bf4: 16 09 add r9,r11 | |
80003bf6: f0 0a 09 29 st.w r8[r10<<0x2],r9 | |
Endpoint_ClearOUT(); | |
Endpoint_ClearStatusStage(); | |
80003bfa: f0 1f 00 26 mcall 80003c90 <CDC_Device_ProcessControlRequest+0x2f4> | |
EVENT_CDC_Device_LineEncodingChanged(CDCInterfaceInfo); | |
80003bfe: 0e 9c mov r12,r7 | |
80003c00: f0 1f 00 25 mcall 80003c94 <CDC_Device_ProcessControlRequest+0x2f8> | |
80003c04: d8 22 popm r4-r7,pc | |
} | |
break; | |
case CDC_REQ_SetControlLineState: | |
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) | |
80003c06: 0d 8a ld.ub r10,r6[0x0] | |
80003c08: f2 0a 18 00 cp.b r10,r9 | |
80003c0c: c3 b1 brne 80003c82 <CDC_Device_ProcessControlRequest+0x2e6> | |
* \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; | |
80003c0e: 70 09 ld.w r9,r8[0x0] | |
80003c10: 30 1b mov r11,1 | |
80003c12: a3 69 lsl r9,0x2 | |
80003c14: e0 39 fe a0 sub r9,130720 | |
80003c18: 72 0a ld.w r10,r9[0x0] | |
80003c1a: f5 db d0 41 bfins r10,r11,0x2,0x1 | |
80003c1e: 93 0a st.w r9[0x0],r10 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003c20: 70 09 ld.w r9,r8[0x0] | |
80003c22: 70 0a ld.w r10,r8[0x0] | |
80003c24: fc 18 e0 00 movh r8,0xe000 | |
80003c28: b1 6a lsl r10,0x10 | |
80003c2a: 10 0a add r10,r8 | |
80003c2c: 49 68 lddpc r8,80003c84 <CDC_Device_ProcessControlRequest+0x2e8> | |
80003c2e: f0 09 09 2a st.w r8[r9<<0x2],r10 | |
{ | |
Endpoint_ClearSETUP(); | |
Endpoint_ClearStatusStage(); | |
80003c32: f0 1f 00 18 mcall 80003c90 <CDC_Device_ProcessControlRequest+0x2f4> | |
CDCInterfaceInfo->State.ControlLineStates.HostToDevice = USB_ControlRequest.wValue; | |
80003c36: 0d b8 ld.ub r8,r6[0x3] | |
80003c38: 0d a9 ld.ub r9,r6[0x2] | |
80003c3a: f1 e9 10 88 or r8,r8,r9<<0x8 | |
EVENT_CDC_Device_ControLineStateChanged(CDCInterfaceInfo); | |
80003c3e: 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; | |
80003c40: ef 58 00 14 st.h r7[20],r8 | |
EVENT_CDC_Device_ControLineStateChanged(CDCInterfaceInfo); | |
80003c44: f0 1f 00 15 mcall 80003c98 <CDC_Device_ProcessControlRequest+0x2fc> | |
80003c48: d8 22 popm r4-r7,pc | |
} | |
break; | |
case CDC_REQ_SendBreak: | |
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) | |
80003c4a: 0d 8a ld.ub r10,r6[0x0] | |
80003c4c: f2 0a 18 00 cp.b r10,r9 | |
80003c50: c1 91 brne 80003c82 <CDC_Device_ProcessControlRequest+0x2e6> | |
* \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; | |
80003c52: 70 09 ld.w r9,r8[0x0] | |
80003c54: 30 1b mov r11,1 | |
80003c56: a3 69 lsl r9,0x2 | |
80003c58: e0 39 fe a0 sub r9,130720 | |
80003c5c: 72 0a ld.w r10,r9[0x0] | |
80003c5e: f5 db d0 41 bfins r10,r11,0x2,0x1 | |
80003c62: 93 0a st.w r9[0x0],r10 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003c64: 70 09 ld.w r9,r8[0x0] | |
80003c66: 70 0a ld.w r10,r8[0x0] | |
80003c68: fc 18 e0 00 movh r8,0xe000 | |
80003c6c: b1 6a lsl r10,0x10 | |
80003c6e: 10 0a add r10,r8 | |
80003c70: 48 58 lddpc r8,80003c84 <CDC_Device_ProcessControlRequest+0x2e8> | |
80003c72: f0 09 09 2a st.w r8[r9<<0x2],r10 | |
{ | |
Endpoint_ClearSETUP(); | |
Endpoint_ClearStatusStage(); | |
80003c76: f0 1f 00 07 mcall 80003c90 <CDC_Device_ProcessControlRequest+0x2f4> | |
EVENT_CDC_Device_BreakSent(CDCInterfaceInfo, (uint8_t)USB_ControlRequest.wValue); | |
80003c7a: 0d bb ld.ub r11,r6[0x3] | |
80003c7c: 0e 9c mov r12,r7 | |
80003c7e: f0 1f 00 08 mcall 80003c9c <CDC_Device_ProcessControlRequest+0x300> | |
80003c82: d8 22 popm r4-r7,pc | |
80003c84: 00 00 add r0,r0 | |
80003c86: 06 14 sub r4,r3 | |
80003c88: 00 00 add r0,r0 | |
80003c8a: 05 b8 ld.ub r8,r2[0x3] | |
80003c8c: 00 00 add r0,r0 | |
80003c8e: 05 78 ld.ub r8,--r2 | |
80003c90: 80 00 ld.sh r0,r0[0x0] | |
80003c92: 3e 10 mov r0,-31 | |
80003c94: 80 00 ld.sh r0,r0[0x0] | |
80003c96: 37 bc mov r12,123 | |
80003c98: 80 00 ld.sh r0,r0[0x0] | |
80003c9a: 37 bc mov r12,123 | |
80003c9c: 80 00 ld.sh r0,r0[0x0] | |
80003c9e: 37 bc mov r12,123 | |
80003ca0 <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) | |
{ | |
80003ca0: c0 08 rjmp 80003ca0 <Unhandled_Interrupt> | |
80003ca2: d7 03 nop | |
80003ca4 <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]]; | |
80003ca4: e0 68 00 83 mov r8,131 | |
80003ca8: f0 0c 01 0c sub r12,r8,r12 | |
80003cac: fe 78 08 00 mov r8,-63488 | |
80003cb0: f0 0c 03 29 ld.w r9,r8[r12<<0x2] | |
80003cb4: 48 28 lddpc r8,80003cbc <INTC_GetInterruptHandler+0x18> | |
} | |
80003cb6: f0 09 03 2c ld.w r12,r8[r9<<0x2] | |
80003cba: 5e fc retal r12 | |
80003cbc: 00 00 add r0,r0 | |
80003cbe: 05 c4 ld.ub r4,r2[0x4] | |
80003cc0 <INTC_Init>: | |
void INTC_Init(void) | |
{ | |
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]; | |
80003cc0: 48 98 lddpc r8,80003ce4 <INTC_Init+0x24> | |
80003cc2: 48 a9 lddpc r9,80003ce8 <INTC_Init+0x28> | |
80003cc4: 70 0c ld.w r12,r8[0x0] | |
*/ | |
void INTC_Init(void) | |
{ | |
for (uint8_t InterruptGroup = 0; InterruptGroup < AVR32_INTC_NUM_INT_GRPS; InterruptGroup++) | |
{ | |
InterruptHandlers[InterruptGroup] = Unhandled_Interrupt; | |
80003cc6: 48 ab lddpc r11,80003cec <INTC_Init+0x2c> | |
AVR32_INTC.ipr[InterruptGroup] = Autovector_Table[AVR32_INTC_INT0]; | |
80003cc8: 30 08 mov r8,0 | |
80003cca: 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; | |
80003cce: 12 ab st.w r9++,r11 | |
AVR32_INTC.ipr[InterruptGroup] = Autovector_Table[AVR32_INTC_INT0]; | |
80003cd0: f4 08 09 2c st.w r10[r8<<0x2],r12 | |
80003cd4: 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++) | |
80003cd6: 59 48 cp.w r8,20 | |
80003cd8: cf b1 brne 80003cce <INTC_Init+0xe> | |
{ | |
InterruptHandlers[InterruptGroup] = Unhandled_Interrupt; | |
AVR32_INTC.ipr[InterruptGroup] = Autovector_Table[AVR32_INTC_INT0]; | |
} | |
__builtin_mtsr(AVR32_EVBA, (uintptr_t)&EVBA_Table); | |
80003cda: 48 68 lddpc r8,80003cf0 <INTC_Init+0x30> | |
80003cdc: e3 b8 00 01 mtsr 0x4,r8 | |
} | |
80003ce0: 5e fc retal r12 | |
80003ce2: 00 00 add r0,r0 | |
80003ce4: 80 00 ld.sh r0,r0[0x0] | |
80003ce6: 4d 24 lddpc r4,80003e2c <Endpoint_ClearStatusStage+0x1c> | |
80003ce8: 00 00 add r0,r0 | |
80003cea: 05 c4 ld.ub r4,r2[0x4] | |
80003cec: 80 00 ld.sh r0,r0[0x0] | |
80003cee: 3c a0 mov r0,-54 | |
80003cf0: 80 00 ld.sh r0,r0[0x0] | |
80003cf2: 4c 00 lddpc r0,80003df0 <Endpoint_ConfigureEndpointTable+0x58> | |
80003cf4 <Endpoint_ConfigureEndpoint_Prv>: | |
return true; | |
} | |
bool Endpoint_ConfigureEndpoint_Prv(const uint8_t Number, | |
const uint32_t UECFG0Data) | |
{ | |
80003cf4: d4 31 pushm r0-r7,lr | |
USB_Endpoint_FIFOPos[Number] = &AVR32_USBB_SLAVE[Number * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003cf6: fc 18 e0 00 movh r8,0xe000 | |
80003cfa: f8 09 15 10 lsl r9,r12,0x10 | |
80003cfe: 10 09 add r9,r8 | |
80003d00: 4a 48 lddpc r8,80003d90 <Endpoint_ConfigureEndpoint_Prv+0x9c> | |
(&AVR32_USBB.uecfg0)[Number] = 0; | |
(&AVR32_USBB.uecfg0)[Number] = UECFG0Data; | |
return Endpoint_IsConfigured(); | |
#else | |
for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++) | |
80003d02: 30 64 mov r4,6 | |
} | |
bool Endpoint_ConfigureEndpoint_Prv(const uint8_t Number, | |
const uint32_t UECFG0Data) | |
{ | |
USB_Endpoint_FIFOPos[Number] = &AVR32_USBB_SLAVE[Number * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003d04: f0 0c 09 29 st.w r8[r12<<0x2],r9 | |
80003d08: 4a 3e lddpc lr,80003d94 <Endpoint_ConfigureEndpoint_Prv+0xa0> | |
80003d0a: 18 98 mov r8,r12 | |
* 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); | |
80003d0c: fe 6a 00 00 mov r10,-131072 | |
80003d10: 30 15 mov r5,1 | |
(&AVR32_USBB.uecfg0)[Number] = 0; | |
(&AVR32_USBB.uecfg0)[Number] = UECFG0Data; | |
return Endpoint_IsConfigured(); | |
#else | |
for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++) | |
80003d12: c3 38 rjmp 80003d78 <Endpoint_ConfigureEndpoint_Prv+0x84> | |
* \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); | |
80003d14: 9d 09 st.w lr[0x0],r9 | |
{ | |
UECFG0Temp = UECFG0Data; | |
} | |
else | |
{ | |
UECFG0Temp = (&AVR32_USBB.uecfg0)[EPNum]; | |
80003d16: f0 09 15 02 lsl r9,r8,0x2 | |
{ | |
uint32_t UECFG0Temp; | |
Endpoint_SelectEndpoint(EPNum); | |
if (EPNum == Number) | |
80003d1a: f8 08 18 00 cp.b r8,r12 | |
80003d1e: f6 07 17 00 moveq r7,r11 | |
{ | |
UECFG0Temp = UECFG0Data; | |
} | |
else | |
{ | |
UECFG0Temp = (&AVR32_USBB.uecfg0)[EPNum]; | |
80003d22: fe 67 01 00 mov r7,-130816 | |
80003d26: f3 d7 e1 09 addne r9,r9,r7 | |
80003d2a: f3 f7 10 00 ld.wne r7,r9[0x0] | |
if (!(UECFG0Temp & AVR32_USBB_ALLOC_MASK)) | |
continue; | |
Endpoint_DisableEndpoint(); | |
(&AVR32_USBB.uecfg0)[EPNum] &= ~AVR32_USBB_ALLOC_MASK; | |
80003d2e: f0 09 15 02 lsl r9,r8,0x2 | |
else | |
{ | |
UECFG0Temp = (&AVR32_USBB.uecfg0)[EPNum]; | |
} | |
if (!(UECFG0Temp & AVR32_USBB_ALLOC_MASK)) | |
80003d32: 0e 96 mov r6,r7 | |
(&AVR32_USBB.uecfg0)[Number] = 0; | |
(&AVR32_USBB.uecfg0)[Number] = UECFG0Data; | |
return Endpoint_IsConfigured(); | |
#else | |
for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++) | |
80003d34: 2f f8 sub r8,-1 | |
if (!(UECFG0Temp & AVR32_USBB_ALLOC_MASK)) | |
continue; | |
Endpoint_DisableEndpoint(); | |
(&AVR32_USBB.uecfg0)[EPNum] &= ~AVR32_USBB_ALLOC_MASK; | |
80003d36: e0 39 ff 00 sub r9,130816 | |
(&AVR32_USBB.uecfg0)[Number] = 0; | |
(&AVR32_USBB.uecfg0)[Number] = UECFG0Data; | |
return Endpoint_IsConfigured(); | |
#else | |
for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++) | |
80003d3a: 5c 58 castu.b r8 | |
else | |
{ | |
UECFG0Temp = (&AVR32_USBB.uecfg0)[EPNum]; | |
} | |
if (!(UECFG0Temp & AVR32_USBB_ALLOC_MASK)) | |
80003d3c: e2 16 00 02 andl r6,0x2,COH | |
80003d40: c1 c0 breq 80003d78 <Endpoint_ConfigureEndpoint_Prv+0x84> | |
* 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); | |
80003d42: 74 73 ld.w r3,r10[0x1c] | |
80003d44: 7c 06 ld.w r6,lr[0x0] | |
80003d46: ea 06 09 46 lsl r6,r5,r6 | |
80003d4a: 5c d6 com r6 | |
80003d4c: 06 66 and r6,r3 | |
80003d4e: 95 76 st.w r10[0x1c],r6 | |
continue; | |
Endpoint_DisableEndpoint(); | |
(&AVR32_USBB.uecfg0)[EPNum] &= ~AVR32_USBB_ALLOC_MASK; | |
80003d50: 72 06 ld.w r6,r9[0x0] | |
80003d52: a1 d6 cbr r6,0x1 | |
80003d54: 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); | |
80003d56: 74 73 ld.w r3,r10[0x1c] | |
80003d58: 7c 06 ld.w r6,lr[0x0] | |
80003d5a: ea 06 09 46 lsl r6,r5,r6 | |
80003d5e: 06 46 or r6,r3 | |
80003d60: 95 76 st.w r10[0x1c],r6 | |
Endpoint_EnableEndpoint(); | |
(&AVR32_USBB.uecfg0)[EPNum] = UECFG0Temp; | |
80003d62: 93 07 st.w r9[0x0],r7 | |
* \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; | |
80003d64: 7c 09 ld.w r9,lr[0x0] | |
80003d66: a3 69 lsl r9,0x2 | |
80003d68: e0 39 fe d0 sub r9,130768 | |
80003d6c: 72 09 ld.w r9,r9[0x0] | |
if (!(Endpoint_IsConfigured())) | |
80003d6e: e6 19 00 04 andh r9,0x4,COH | |
80003d72: c0 31 brne 80003d78 <Endpoint_ConfigureEndpoint_Prv+0x84> | |
80003d74: 12 9c mov r12,r9 | |
80003d76: d8 32 popm r0-r7,pc | |
* \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); | |
80003d78: f3 d8 c0 04 bfextu r9,r8,0x0,0x4 | |
(&AVR32_USBB.uecfg0)[Number] = 0; | |
(&AVR32_USBB.uecfg0)[Number] = UECFG0Data; | |
return Endpoint_IsConfigured(); | |
#else | |
for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++) | |
80003d7c: e8 08 18 00 cp.b r8,r4 | |
80003d80: fe 98 ff ca brls 80003d14 <Endpoint_ConfigureEndpoint_Prv+0x20> | |
80003d84: f9 dc c0 04 bfextu r12,r12,0x0,0x4 | |
80003d88: 48 38 lddpc r8,80003d94 <Endpoint_ConfigureEndpoint_Prv+0xa0> | |
80003d8a: 91 0c st.w r8[0x0],r12 | |
80003d8c: da 3a popm r0-r7,pc,r12=1 | |
80003d8e: 00 00 add r0,r0 | |
80003d90: 00 00 add r0,r0 | |
80003d92: 06 14 sub r4,r3 | |
80003d94: 00 00 add r0,r0 | |
80003d96: 05 78 ld.ub r8,--r2 | |
80003d98 <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) | |
{ | |
80003d98: d4 31 pushm r0-r7,lr | |
80003d9a: 30 06 mov r6,0 | |
80003d9c: 16 92 mov r2,r11 | |
80003d9e: 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) | |
80003da0: 30 63 mov r3,6 | |
return false; | |
return Endpoint_ConfigureEndpoint_Prv(Number, | |
80003da2: 0c 94 mov r4,r6 | |
80003da4: e0 60 01 00 mov r0,256 | |
80003da8: 30 15 mov r5,1 | |
for (uint8_t i = 0; i < Entries; i++) | |
80003daa: c2 c8 rjmp 80003e02 <Endpoint_ConfigureEndpointTable+0x6a> | |
{ | |
if (!(Table[i].Address)) | |
80003dac: 0f 89 ld.ub r9,r7[0x0] | |
80003dae: 58 09 cp.w r9,0 | |
80003db0: c2 60 breq 80003dfc <Endpoint_ConfigureEndpointTable+0x64> | |
continue; | |
if (!(Endpoint_ConfigureEndpoint(Table[i].Address, Table[i].Type, Table[i].Size, Table[i].Banks))) | |
80003db2: 0f de ld.ub lr,r7[0x5] | |
80003db4: 8e 11 ld.sh r1,r7[0x2] | |
80003db6: 0f ca ld.ub r10,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); | |
80003db8: f9 d9 c0 04 bfextu r12,r9,0x0,0x4 | |
if (Number >= ENDPOINT_TOTAL_ENDPOINTS) | |
80003dbc: e6 0c 18 00 cp.b r12,r3 | |
80003dc0: e0 8b 00 25 brhi 80003e0a <Endpoint_ConfigureEndpointTable+0x72> | |
return false; | |
return Endpoint_ConfigureEndpoint_Prv(Number, | |
80003dc4: f2 04 18 00 cp.b r4,r9 | |
80003dc8: e0 09 17 90 movgt r9,r0 | |
80003dcc: f9 b9 0a 00 movle r9,0 | |
80003dd0: 30 8b mov r11,8 | |
80003dd2: 30 08 mov r8,0 | |
80003dd4: c0 58 rjmp 80003dde <Endpoint_ConfigureEndpointTable+0x46> | |
uint8_t MaskVal = 0; | |
uint16_t CheckBytes = 8; | |
while (CheckBytes < Bytes) | |
{ | |
MaskVal++; | |
80003dd6: 2f f8 sub r8,-1 | |
CheckBytes <<= 1; | |
80003dd8: a1 7b lsl r11,0x1 | |
uint8_t MaskVal = 0; | |
uint16_t CheckBytes = 8; | |
while (CheckBytes < Bytes) | |
{ | |
MaskVal++; | |
80003dda: 5c 58 castu.b r8 | |
CheckBytes <<= 1; | |
80003ddc: 5c 8b casts.h r11 | |
static inline uint32_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes) | |
{ | |
uint8_t MaskVal = 0; | |
uint16_t CheckBytes = 8; | |
while (CheckBytes < Bytes) | |
80003dde: e2 0b 19 00 cp.h r11,r1 | |
80003de2: cf a3 brcs 80003dd6 <Endpoint_ConfigureEndpointTable+0x3e> | |
uint8_t Number = (Address & ENDPOINT_EPNUM_MASK); | |
if (Number >= ENDPOINT_TOTAL_ENDPOINTS) | |
return false; | |
return Endpoint_ConfigureEndpoint_Prv(Number, | |
80003de4: ea 0e 18 00 cp.b lr,r5 | |
80003de8: 5f 8b srls r11 | |
80003dea: a1 bb sbr r11,0x1 | |
80003dec: f7 ea 10 bb or r11,r11,r10<<0xb | |
80003df0: 12 4b or r11,r9 | |
80003df2: f7 e8 10 4b or r11,r11,r8<<0x4 | |
80003df6: f0 1f 00 06 mcall 80003e0c <Endpoint_ConfigureEndpointTable+0x74> | |
80003dfa: c0 80 breq 80003e0a <Endpoint_ConfigureEndpointTable+0x72> | |
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++) | |
80003dfc: 2f f6 sub r6,-1 | |
80003dfe: 2f a7 sub r7,-6 | |
80003e00: 5c 56 castu.b r6 | |
80003e02: e4 06 18 00 cp.b r6,r2 | |
80003e06: cd 33 brcs 80003dac <Endpoint_ConfigureEndpointTable+0x14> | |
80003e08: da 3a popm r0-r7,pc,r12=1 | |
80003e0a: d8 3a popm r0-r7,pc,r12=0 | |
80003e0c: 80 00 ld.sh r0,r0[0x0] | |
80003e0e: 3c f4 mov r4,-49 | |
80003e10 <Endpoint_ClearStatusStage>: | |
} | |
} | |
void Endpoint_ClearStatusStage(void) | |
{ | |
if (USB_ControlRequest.bmRequestType & REQDIR_DEVICETOHOST) | |
80003e10: 4a 58 lddpc r8,80003ea4 <Endpoint_ClearStatusStage+0x94> | |
80003e12: 11 89 ld.ub r9,r8[0x0] | |
80003e14: 30 08 mov r8,0 | |
80003e16: f0 09 18 00 cp.b r9,r8 | |
80003e1a: c1 e4 brge 80003e56 <Endpoint_ClearStatusStage+0x46> | |
80003e1c: c0 58 rjmp 80003e26 <Endpoint_ClearStatusStage+0x16> | |
{ | |
while (!(Endpoint_IsOUTReceived())) | |
{ | |
if (USB_DeviceState == DEVICE_STATE_Unattached) | |
80003e1e: 15 88 ld.ub r8,r10[0x0] | |
80003e20: 58 08 cp.w r8,0 | |
80003e22: c0 41 brne 80003e2a <Endpoint_ClearStatusStage+0x1a> | |
80003e24: 5e fc retal 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; | |
80003e26: 4a 1b lddpc r11,80003ea8 <Endpoint_ClearStatusStage+0x98> | |
80003e28: 4a 1a lddpc r10,80003eac <Endpoint_ClearStatusStage+0x9c> | |
80003e2a: 76 08 ld.w r8,r11[0x0] | |
80003e2c: a3 68 lsl r8,0x2 | |
80003e2e: e0 38 fe d0 sub r8,130768 | |
80003e32: 70 09 ld.w r9,r8[0x0] | |
80003e34: 49 d8 lddpc r8,80003ea8 <Endpoint_ClearStatusStage+0x98> | |
void Endpoint_ClearStatusStage(void) | |
{ | |
if (USB_ControlRequest.bmRequestType & REQDIR_DEVICETOHOST) | |
{ | |
while (!(Endpoint_IsOUTReceived())) | |
80003e36: e2 19 00 02 andl r9,0x2,COH | |
80003e3a: cf 20 breq 80003e1e <Endpoint_ClearStatusStage+0xe> | |
* \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; | |
80003e3c: 70 09 ld.w r9,r8[0x0] | |
80003e3e: 30 1b mov r11,1 | |
80003e40: a3 69 lsl r9,0x2 | |
80003e42: e0 39 fe a0 sub r9,130720 | |
80003e46: 72 0a ld.w r10,r9[0x0] | |
80003e48: f5 db d0 21 bfins r10,r11,0x1,0x1 | |
80003e4c: c1 88 rjmp 80003e7c <Endpoint_ClearStatusStage+0x6c> | |
} | |
else | |
{ | |
while (!(Endpoint_IsINReady())) | |
{ | |
if (USB_DeviceState == DEVICE_STATE_Unattached) | |
80003e4e: 13 88 ld.ub r8,r9[0x0] | |
80003e50: 58 08 cp.w r8,0 | |
80003e52: c0 41 brne 80003e5a <Endpoint_ClearStatusStage+0x4a> | |
80003e54: 5e fc retal 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; | |
80003e56: 49 5a lddpc r10,80003ea8 <Endpoint_ClearStatusStage+0x98> | |
80003e58: 49 59 lddpc r9,80003eac <Endpoint_ClearStatusStage+0x9c> | |
80003e5a: 74 08 ld.w r8,r10[0x0] | |
80003e5c: a3 68 lsl r8,0x2 | |
80003e5e: e0 38 fe d0 sub r8,130768 | |
80003e62: 70 0b ld.w r11,r8[0x0] | |
80003e64: 49 18 lddpc r8,80003ea8 <Endpoint_ClearStatusStage+0x98> | |
Endpoint_ClearOUT(); | |
} | |
else | |
{ | |
while (!(Endpoint_IsINReady())) | |
80003e66: f7 db c0 01 bfextu r11,r11,0x0,0x1 | |
80003e6a: cf 20 breq 80003e4e <Endpoint_ClearStatusStage+0x3e> | |
* \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; | |
80003e6c: 70 09 ld.w r9,r8[0x0] | |
80003e6e: 30 1b mov r11,1 | |
80003e70: a3 69 lsl r9,0x2 | |
80003e72: e0 39 fe a0 sub r9,130720 | |
80003e76: 72 0a ld.w r10,r9[0x0] | |
80003e78: f5 db d0 01 bfins r10,r11,0x0,0x1 | |
80003e7c: 93 0a st.w r9[0x0],r10 | |
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true; | |
80003e7e: 70 09 ld.w r9,r8[0x0] | |
80003e80: a3 69 lsl r9,0x2 | |
80003e82: e0 39 fd e0 sub r9,130528 | |
80003e86: 72 0a ld.w r10,r9[0x0] | |
80003e88: f5 db d1 c1 bfins r10,r11,0xe,0x1 | |
80003e8c: 93 0a st.w r9[0x0],r10 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003e8e: 70 09 ld.w r9,r8[0x0] | |
80003e90: 70 0a ld.w r10,r8[0x0] | |
80003e92: fc 18 e0 00 movh r8,0xe000 | |
80003e96: b1 6a lsl r10,0x10 | |
80003e98: 10 0a add r10,r8 | |
80003e9a: 48 68 lddpc r8,80003eb0 <Endpoint_ClearStatusStage+0xa0> | |
80003e9c: f0 09 09 2a st.w r8[r9<<0x2],r10 | |
80003ea0: 5e fc retal r12 | |
80003ea2: 00 00 add r0,r0 | |
80003ea4: 00 00 add r0,r0 | |
80003ea6: 05 b9 ld.ub r9,r2[0x3] | |
80003ea8: 00 00 add r0,r0 | |
80003eaa: 05 78 ld.ub r8,--r2 | |
80003eac: 00 00 add r0,r0 | |
80003eae: 05 b8 ld.ub r8,r2[0x3] | |
80003eb0: 00 00 add r0,r0 | |
80003eb2: 06 14 sub r4,r3 | |
80003eb4 <Endpoint_WaitUntilReady>: | |
} | |
} | |
#if !defined(CONTROL_ONLY_DEVICE) | |
uint8_t Endpoint_WaitUntilReady(void) | |
{ | |
80003eb4: d4 21 pushm r4-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; | |
80003eb6: fe 68 00 00 mov r8,-131072 | |
80003eba: 36 49 mov r9,100 | |
80003ebc: 70 8b ld.w r11,r8[0x20] | |
80003ebe: 10 9e mov lr,r8 | |
80003ec0: f7 db c0 6b bfextu r11,r11,0x3,0xb | |
* \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); | |
80003ec4: 4a 08 lddpc r8,80003f44 <Endpoint_WaitUntilReady+0x90> | |
{ | |
if (Endpoint_IsOUTReceived()) | |
return ENDPOINT_READYWAIT_NoError; | |
} | |
uint8_t USB_DeviceState_LCL = USB_DeviceState; | |
80003ec6: 4a 17 lddpc r7,80003f48 <Endpoint_WaitUntilReady+0x94> | |
if (USB_DeviceState_LCL == DEVICE_STATE_Unattached) | |
return ENDPOINT_READYWAIT_DeviceDisconnected; | |
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended) | |
80003ec8: 30 5c mov r12,5 | |
80003eca: 70 0a ld.w r10,r8[0x0] | |
80003ecc: a3 6a lsl r10,0x2 | |
80003ece: e0 3a ff 00 sub r10,130816 | |
80003ed2: 74 0a ld.w r10,r10[0x0] | |
80003ed4: ed ba 00 08 bld r10,0x8 | |
80003ed8: c2 d1 brne 80003f32 <Endpoint_WaitUntilReady+0x7e> | |
* \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; | |
80003eda: 70 0a ld.w r10,r8[0x0] | |
80003edc: a3 6a lsl r10,0x2 | |
80003ede: e0 3a fe d0 sub r10,130768 | |
80003ee2: 74 0a ld.w r10,r10[0x0] | |
for (;;) | |
{ | |
if (Endpoint_GetEndpointDirection() == ENDPOINT_DIR_IN) | |
{ | |
if (Endpoint_IsINReady()) | |
80003ee4: f5 da c0 01 bfextu r10,r10,0x0,0x1 | |
80003ee8: 58 0a cp.w r10,0 | |
80003eea: c2 31 brne 80003f30 <Endpoint_WaitUntilReady+0x7c> | |
{ | |
if (Endpoint_IsOUTReceived()) | |
return ENDPOINT_READYWAIT_NoError; | |
} | |
uint8_t USB_DeviceState_LCL = USB_DeviceState; | |
80003eec: 0f 8a ld.ub r10,r7[0x0] | |
if (USB_DeviceState_LCL == DEVICE_STATE_Unattached) | |
80003eee: 58 0a cp.w r10,0 | |
80003ef0: c0 31 brne 80003ef6 <Endpoint_WaitUntilReady+0x42> | |
80003ef2: 30 2c mov r12,2 | |
80003ef4: d8 22 popm r4-r7,pc | |
return ENDPOINT_READYWAIT_DeviceDisconnected; | |
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended) | |
80003ef6: f8 0a 18 00 cp.b r10,r12 | |
80003efa: c0 31 brne 80003f00 <Endpoint_WaitUntilReady+0x4c> | |
80003efc: 30 3c mov r12,3 | |
80003efe: d8 22 popm r4-r7,pc | |
* \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; | |
80003f00: 70 0a ld.w r10,r8[0x0] | |
80003f02: a3 6a lsl r10,0x2 | |
80003f04: e0 3a fe 40 sub r10,130624 | |
80003f08: 74 0a ld.w r10,r10[0x0] | |
return ENDPOINT_READYWAIT_BusSuspended; | |
else if (Endpoint_IsStalled()) | |
80003f0a: ed ba 00 13 bld r10,0x13 | |
80003f0e: c0 21 brne 80003f12 <Endpoint_WaitUntilReady+0x5e> | |
80003f10: da 2a popm r4-r7,pc,r12=1 | |
80003f12: 7c 8a ld.w r10,lr[0x20] | |
80003f14: f5 da c0 6b bfextu r10,r10,0x3,0xb | |
return ENDPOINT_READYWAIT_EndpointStalled; | |
uint16_t CurrentFrameNumber = USB_Device_GetFrameNumber(); | |
if (CurrentFrameNumber != PreviousFrameNumber) | |
80003f18: f6 0a 19 00 cp.h r10,r11 | |
80003f1c: cd 70 breq 80003eca <Endpoint_WaitUntilReady+0x16> | |
{ | |
PreviousFrameNumber = CurrentFrameNumber; | |
if (!(TimeoutMSRem--)) | |
80003f1e: 58 09 cp.w r9,0 | |
80003f20: c0 31 brne 80003f26 <Endpoint_WaitUntilReady+0x72> | |
80003f22: 30 4c mov r12,4 | |
80003f24: d8 22 popm r4-r7,pc | |
80003f26: 20 19 sub r9,1 | |
80003f28: f7 da b0 10 bfexts r11,r10,0x0,0x10 | |
80003f2c: 5c 59 castu.b r9 | |
80003f2e: cc eb rjmp 80003eca <Endpoint_WaitUntilReady+0x16> | |
80003f30: d8 2a popm r4-r7,pc,r12=0 | |
* \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; | |
80003f32: 70 0a ld.w r10,r8[0x0] | |
80003f34: a3 6a lsl r10,0x2 | |
80003f36: e0 3a fe d0 sub r10,130768 | |
80003f3a: 74 0a ld.w r10,r10[0x0] | |
if (Endpoint_IsINReady()) | |
return ENDPOINT_READYWAIT_NoError; | |
} | |
else | |
{ | |
if (Endpoint_IsOUTReceived()) | |
80003f3c: e2 1a 00 02 andl r10,0x2,COH | |
80003f40: cd 4b rjmp 80003ee8 <Endpoint_WaitUntilReady+0x34> | |
80003f42: 00 00 add r0,r0 | |
80003f44: 00 00 add r0,r0 | |
80003f46: 05 78 ld.ub r8,--r2 | |
80003f48: 00 00 add r0,r0 | |
80003f4a: 05 b8 ld.ub r8,r2[0x3] | |
80003f4c <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) | |
{ | |
80003f4c: d4 31 pushm r0-r7,lr | |
uint8_t* DataStream = ((uint8_t*)Buffer + TEMPLATE_BUFFER_OFFSET(Length)); | |
bool LastPacketFull = false; | |
if (Length > USB_ControlRequest.wLength) | |
80003f4e: 4c f9 lddpc r9,80004088 <Endpoint_Write_Control_Stream_LE+0x13c> | |
80003f50: 13 f8 ld.ub r8,r9[0x7] | |
80003f52: 13 e9 ld.ub r9,r9[0x6] | |
80003f54: f1 e9 10 88 or r8,r8,r9<<0x8 | |
80003f58: 5c 88 casts.h r8 | |
80003f5a: f0 0b 19 00 cp.h r11,r8 | |
80003f5e: e0 88 00 0b brls 80003f74 <Endpoint_Write_Control_Stream_LE+0x28> | |
// 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)); | |
80003f62: 30 0b mov r11,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; | |
80003f64: 4c a9 lddpc r9,8000408c <Endpoint_Write_Control_Stream_LE+0x140> | |
80003f66: 4c b7 lddpc r7,80004090 <Endpoint_Write_Control_Stream_LE+0x144> | |
if (Endpoint_IsINReady()) | |
{ | |
uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint(); | |
while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize)) | |
80003f68: 16 96 mov r6,r11 | |
80003f6a: 30 73 mov r3,7 | |
80003f6c: 16 94 mov r4,r11 | |
80003f6e: 12 9a mov r10,r9 | |
80003f70: 0e 95 mov r5,r7 | |
80003f72: c7 f8 rjmp 80004070 <Endpoint_Write_Control_Stream_LE+0x124> | |
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)) | |
80003f74: 58 0b cp.w r11,0 | |
80003f76: c0 40 breq 80003f7e <Endpoint_Write_Control_Stream_LE+0x32> | |
80003f78: f1 db b0 10 bfexts r8,r11,0x0,0x10 | |
80003f7c: cf 3b rjmp 80003f62 <Endpoint_Write_Control_Stream_LE+0x16> | |
* \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; | |
80003f7e: 4c 49 lddpc r9,8000408c <Endpoint_Write_Control_Stream_LE+0x140> | |
80003f80: 30 1e mov lr,1 | |
80003f82: 72 08 ld.w r8,r9[0x0] | |
80003f84: a3 68 lsl r8,0x2 | |
80003f86: e0 38 fe a0 sub r8,130720 | |
80003f8a: 70 0a ld.w r10,r8[0x0] | |
80003f8c: f5 de d0 01 bfins r10,lr,0x0,0x1 | |
80003f90: 91 0a st.w r8[0x0],r10 | |
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true; | |
80003f92: 72 08 ld.w r8,r9[0x0] | |
80003f94: a3 68 lsl r8,0x2 | |
80003f96: e0 38 fd e0 sub r8,130528 | |
80003f9a: 70 0a ld.w r10,r8[0x0] | |
80003f9c: f5 de d1 c1 bfins r10,lr,0xe,0x1 | |
80003fa0: 91 0a st.w r8[0x0],r10 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
80003fa2: 16 98 mov r8,r11 | |
80003fa4: 72 0a ld.w r10,r9[0x0] | |
80003fa6: 72 0b ld.w r11,r9[0x0] | |
80003fa8: fc 19 e0 00 movh r9,0xe000 | |
80003fac: b1 6b lsl r11,0x10 | |
80003fae: 12 0b add r11,r9 | |
80003fb0: 4b 89 lddpc r9,80004090 <Endpoint_Write_Control_Stream_LE+0x144> | |
80003fb2: f2 0a 09 2b st.w r9[r10<<0x2],r11 | |
80003fb6: cd 6b rjmp 80003f62 <Endpoint_Write_Control_Stream_LE+0x16> | |
Endpoint_ClearIN(); | |
while (Length || LastPacketFull) | |
{ | |
uint8_t USB_DeviceState_LCL = USB_DeviceState; | |
80003fb8: 4b 7e lddpc lr,80004094 <Endpoint_Write_Control_Stream_LE+0x148> | |
80003fba: 1d 8e ld.ub lr,lr[0x0] | |
if (USB_DeviceState_LCL == DEVICE_STATE_Unattached) | |
80003fbc: 58 0e cp.w lr,0 | |
80003fbe: c7 90 breq 800040b0 <Endpoint_Write_Control_Stream_LE+0x164> | |
return ENDPOINT_RWCSTREAM_DeviceDisconnected; | |
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended) | |
80003fc0: 30 52 mov r2,5 | |
80003fc2: e4 0e 18 00 cp.b lr,r2 | |
80003fc6: c7 70 breq 800040b4 <Endpoint_Write_Control_Stream_LE+0x168> | |
* \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; | |
80003fc8: 72 0e ld.w lr,r9[0x0] | |
80003fca: a3 6e lsl lr,0x2 | |
80003fcc: e0 3e fe d0 sub lr,130768 | |
80003fd0: 7c 0e ld.w lr,lr[0x0] | |
return ENDPOINT_RWCSTREAM_BusSuspended; | |
else if (Endpoint_IsSETUPReceived()) | |
80003fd2: e2 1e 00 04 andl lr,0x4,COH | |
80003fd6: c0 20 breq 80003fda <Endpoint_Write_Control_Stream_LE+0x8e> | |
80003fd8: da 3a popm r0-r7,pc,r12=1 | |
* \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; | |
80003fda: 72 0e ld.w lr,r9[0x0] | |
80003fdc: a3 6e lsl lr,0x2 | |
80003fde: e0 3e fe d0 sub lr,130768 | |
80003fe2: 7c 0e ld.w lr,lr[0x0] | |
return ENDPOINT_RWCSTREAM_HostAborted; | |
else if (Endpoint_IsOUTReceived()) | |
80003fe4: e2 1e 00 02 andl lr,0x2,COH | |
80003fe8: c5 81 brne 80004098 <Endpoint_Write_Control_Stream_LE+0x14c> | |
* \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; | |
80003fea: 72 0e ld.w lr,r9[0x0] | |
80003fec: a3 6e lsl lr,0x2 | |
80003fee: e0 3e fe d0 sub lr,130768 | |
80003ff2: 7c 0e ld.w lr,lr[0x0] | |
break; | |
if (Endpoint_IsINReady()) | |
80003ff4: fd de c0 01 bfextu lr,lr,0x0,0x1 | |
80003ff8: c3 c0 breq 80004070 <Endpoint_Write_Control_Stream_LE+0x124> | |
* \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; | |
80003ffa: 72 0b ld.w r11,r9[0x0] | |
80003ffc: a3 6b lsl r11,0x2 | |
80003ffe: e0 3b fe d0 sub r11,130768 | |
80004002: 76 0b ld.w r11,r11[0x0] | |
80004004: f7 db c2 8b bfextu r11,r11,0x14,0xb | |
{ | |
uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint(); | |
while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize)) | |
80004008: c0 c8 rjmp 80004020 <Endpoint_Write_Control_Stream_LE+0xd4> | |
* \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; | |
8000400a: 72 02 ld.w r2,r9[0x0] | |
{ | |
TEMPLATE_TRANSFER_BYTE(DataStream); | |
8000400c: 19 31 ld.ub r1,r12++ | |
8000400e: ee 02 03 2e ld.w lr,r7[r2<<0x2] | |
TEMPLATE_BUFFER_MOVE(DataStream, 1); | |
Length--; | |
80004012: 20 18 sub r8,1 | |
BytesInEndpoint++; | |
80004014: 2f fb sub r11,-1 | |
80004016: 1c c1 st.b lr++,r1 | |
while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize)) | |
{ | |
TEMPLATE_TRANSFER_BYTE(DataStream); | |
TEMPLATE_BUFFER_MOVE(DataStream, 1); | |
Length--; | |
80004018: 5c 88 casts.h r8 | |
BytesInEndpoint++; | |
8000401a: 5c 8b casts.h r11 | |
8000401c: ee 02 09 2e st.w r7[r2<<0x2],lr | |
if (Endpoint_IsINReady()) | |
{ | |
uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint(); | |
while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize)) | |
80004020: e6 0b 19 00 cp.h r11,r3 | |
80004024: 5f 82 srls r2 | |
80004026: ec 08 19 00 cp.h r8,r6 | |
8000402a: 5f 1e srne lr | |
8000402c: e5 ee 00 0e and lr,r2,lr | |
80004030: e8 0e 18 00 cp.b lr,r4 | |
80004034: ce b1 brne 8000400a <Endpoint_Write_Control_Stream_LE+0xbe> | |
* \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; | |
80004036: 74 0e ld.w lr,r10[0x0] | |
80004038: a3 6e lsl lr,0x2 | |
8000403a: e0 3e fe a0 sub lr,130720 | |
8000403e: 30 11 mov r1,1 | |
80004040: 7c 02 ld.w r2,lr[0x0] | |
80004042: e5 d1 d0 01 bfins r2,r1,0x0,0x1 | |
80004046: 9d 02 st.w lr[0x0],r2 | |
(&AVR32_USBB.UECON0CLR)[USB_Endpoint_SelectedEndpoint].fifoconc = true; | |
80004048: 74 0e ld.w lr,r10[0x0] | |
8000404a: a3 6e lsl lr,0x2 | |
8000404c: e0 3e fd e0 sub lr,130528 | |
80004050: 7c 02 ld.w r2,lr[0x0] | |
80004052: e5 d1 d1 c1 bfins r2,r1,0xe,0x1 | |
80004056: 9d 02 st.w lr[0x0],r2 | |
TEMPLATE_BUFFER_MOVE(DataStream, 1); | |
Length--; | |
BytesInEndpoint++; | |
} | |
LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize); | |
80004058: 30 8e mov lr,8 | |
USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint] = &AVR32_USBB_SLAVE[USB_Endpoint_SelectedEndpoint * ENDPOINT_HSB_ADDRESS_SPACE_SIZE]; | |
8000405a: fc 11 e0 00 movh r1,0xe000 | |
8000405e: fc 0b 19 00 cp.h r11,lr | |
80004062: 5f 0b sreq r11 | |
80004064: 74 0e ld.w lr,r10[0x0] | |
80004066: 74 02 ld.w r2,r10[0x0] | |
80004068: b1 62 lsl r2,0x10 | |
8000406a: 02 02 add r2,r1 | |
8000406c: ea 0e 09 22 st.w r5[lr<<0x2],r2 | |
if (Length > USB_ControlRequest.wLength) | |
Length = USB_ControlRequest.wLength; | |
else if (!(Length)) | |
Endpoint_ClearIN(); | |
while (Length || LastPacketFull) | |
80004070: 58 08 cp.w r8,0 | |
80004072: ca 31 brne 80003fb8 <Endpoint_Write_Control_Stream_LE+0x6c> | |
80004074: 58 0b cp.w r11,0 | |
80004076: ca 11 brne 80003fb8 <Endpoint_Write_Control_Stream_LE+0x6c> | |
80004078: c1 08 rjmp 80004098 <Endpoint_Write_Control_Stream_LE+0x14c> | |
} | |
} | |
while (!(Endpoint_IsOUTReceived())) | |
{ | |
uint8_t USB_DeviceState_LCL = USB_DeviceState; | |
8000407a: 15 88 ld.ub r8,r10[0x0] | |
if (USB_DeviceState_LCL == DEVICE_STATE_Unattached) | |
8000407c: 58 08 cp.w r8,0 | |
8000407e: c1 90 breq 800040b0 <Endpoint_Write_Control_Stream_LE+0x164> | |
return ENDPOINT_RWCSTREAM_DeviceDisconnected; | |
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended) | |
80004080: f2 08 18 00 cp.b r8,r9 | |
80004084: c0 d1 brne 8000409e <Endpoint_Write_Control_Stream_LE+0x152> | |
80004086: c1 78 rjmp 800040b4 <Endpoint_Write_Control_Stream_LE+0x168> | |
80004088: 00 00 add r0,r0 | |
8000408a: 05 b9 ld.ub r9,r2[0x3] | |
8000408c: 00 00 add r0,r0 | |
8000408e: 05 78 ld.ub r8,--r2 | |
80004090: 00 00 add r0,r0 | |
80004092: 06 14 sub r4,r3 | |
80004094: 00 00 add r0,r0 | |
80004096: 05 b8 ld.ub r8,r2[0x3] | |
* \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; | |
80004098: 48 8b lddpc r11,800040b8 <Endpoint_Write_Control_Stream_LE+0x16c> | |
} | |
} | |
while (!(Endpoint_IsOUTReceived())) | |
{ | |
uint8_t USB_DeviceState_LCL = USB_DeviceState; | |
8000409a: 48 9a lddpc r10,800040bc <Endpoint_Write_Control_Stream_LE+0x170> | |
if (USB_DeviceState_LCL == DEVICE_STATE_Unattached) | |
return ENDPOINT_RWCSTREAM_DeviceDisconnected; | |
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended) | |
8000409c: 30 59 mov r9,5 | |
8000409e: 76 08 ld.w r8,r11[0x0] | |
800040a0: a3 68 lsl r8,0x2 | |
800040a2: e0 38 fe d0 sub r8,130768 | |
800040a6: 70 08 ld.w r8,r8[0x0] | |
LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize); | |
Endpoint_ClearIN(); | |
} | |
} | |
while (!(Endpoint_IsOUTReceived())) | |
800040a8: ed b8 00 01 bld r8,0x1 | |
800040ac: ce 71 brne 8000407a <Endpoint_Write_Control_Stream_LE+0x12e> | |
800040ae: d8 3a popm r0-r7,pc,r12=0 | |
800040b0: 30 2c mov r12,2 | |
800040b2: d8 32 popm r0-r7,pc | |
800040b4: 30 3c mov r12,3 | |
else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended) | |
return ENDPOINT_RWCSTREAM_BusSuspended; | |
} | |
return ENDPOINT_RWCSTREAM_NoError; | |
} | |
800040b6: d8 32 popm r0-r7,pc | |
800040b8: 00 00 add r0,r0 | |
800040ba: 05 78 ld.ub r8,--r2 | |
800040bc: 00 00 add r0,r0 | |
800040be: 05 b8 ld.ub r8,r2[0x3] | |
800040c0 <atexit>: | |
800040c0: d4 01 pushm lr | |
800040c2: 30 09 mov r9,0 | |
800040c4: 18 9b mov r11,r12 | |
800040c6: 12 9a mov r10,r9 | |
800040c8: 12 9c mov r12,r9 | |
800040ca: f0 1f 00 02 mcall 800040d0 <atexit+0x10> | |
800040ce: d8 02 popm pc | |
800040d0: 80 00 ld.sh r0,r0[0x0] | |
800040d2: 41 60 lddsp r0,sp[0x58] | |
800040d4 <exit>: | |
800040d4: d4 21 pushm r4-r7,lr | |
800040d6: 30 0b mov r11,0 | |
800040d8: 18 97 mov r7,r12 | |
800040da: f0 1f 00 06 mcall 800040f0 <exit+0x1c> | |
800040de: 48 68 lddpc r8,800040f4 <exit+0x20> | |
800040e0: 70 0c ld.w r12,r8[0x0] | |
800040e2: 78 a8 ld.w r8,r12[0x28] | |
800040e4: 58 08 cp.w r8,0 | |
800040e6: c0 20 breq 800040ea <exit+0x16> | |
800040e8: 5d 18 icall r8 | |
800040ea: 0e 9c mov r12,r7 | |
800040ec: f0 1f 00 03 mcall 800040f8 <exit+0x24> | |
800040f0: 80 00 ld.sh r0,r0[0x0] | |
800040f2: 42 0c lddsp r12,sp[0x80] | |
800040f4: 80 00 ld.sh r0,r0[0x0] | |
800040f6: 4e 1c lddpc r12,80004278 <__call_exitprocs+0x6c> | |
800040f8: 80 00 ld.sh r0,r0[0x0] | |
800040fa: 41 16 lddsp r6,sp[0x44] | |
800040fc <memset>: | |
800040fc: 18 98 mov r8,r12 | |
800040fe: c0 38 rjmp 80004104 <memset+0x8> | |
80004100: 10 cb st.b r8++,r11 | |
80004102: 20 1a sub r10,1 | |
80004104: 58 0a cp.w r10,0 | |
80004106: cf d1 brne 80004100 <memset+0x4> | |
80004108: 5e fc retal r12 | |
8000410a <_init_startup>: | |
8000410a: 5e fd retal 0 | |
8000410c <_init_argv>: | |
8000410c: 30 e8 mov r8,14 | |
8000410e: d6 73 breakpoint | |
80004110: 3f fc mov r12,-1 | |
80004112: 35 8b mov r11,88 | |
80004114: 5e fc retal r12 | |
80004116 <_exit>: | |
80004116: 30 d8 mov r8,13 | |
80004118: d6 73 breakpoint | |
8000411a: 3f fc mov r12,-1 | |
8000411c: 35 8b mov r11,88 | |
8000411e: c0 08 rjmp 8000411e <_exit+0x8> | |
80004120 <_sbrk>: | |
80004120: d4 01 pushm lr | |
80004122: 48 c8 lddpc r8,80004150 <_sbrk+0x30> | |
80004124: 70 09 ld.w r9,r8[0x0] | |
80004126: 58 09 cp.w r9,0 | |
80004128: c0 31 brne 8000412e <_sbrk+0xe> | |
8000412a: 48 b9 lddpc r9,80004154 <_sbrk+0x34> | |
8000412c: 91 09 st.w r8[0x0],r9 | |
8000412e: 48 99 lddpc r9,80004150 <_sbrk+0x30> | |
80004130: 48 aa lddpc r10,80004158 <_sbrk+0x38> | |
80004132: 72 08 ld.w r8,r9[0x0] | |
80004134: f0 0c 00 0c add r12,r8,r12 | |
80004138: 14 3c cp.w r12,r10 | |
8000413a: e0 8b 00 04 brhi 80004142 <_sbrk+0x22> | |
8000413e: 93 0c st.w r9[0x0],r12 | |
80004140: c0 68 rjmp 8000414c <_sbrk+0x2c> | |
80004142: f0 1f 00 07 mcall 8000415c <_sbrk+0x3c> | |
80004146: 30 c8 mov r8,12 | |
80004148: 99 08 st.w r12[0x0],r8 | |
8000414a: 3f f8 mov r8,-1 | |
8000414c: 10 9c mov r12,r8 | |
8000414e: d8 02 popm pc | |
80004150: 00 00 add r0,r0 | |
80004152: 05 7c ld.ub r12,--r2 | |
80004154: 00 00 add r0,r0 | |
80004156: 06 38 cp.w r8,r3 | |
80004158: 00 00 add r0,r0 | |
8000415a: 70 00 ld.w r0,r8[0x0] | |
8000415c: 80 00 ld.sh r0,r0[0x0] | |
8000415e: 42 e0 lddsp r0,sp[0xb8] | |
80004160 <__register_exitproc>: | |
80004160: d4 31 pushm r0-r7,lr | |
80004162: 4a 98 lddpc r8,80004204 <__register_exitproc+0xa4> | |
80004164: 70 03 ld.w r3,r8[0x0] | |
80004166: 67 24 ld.w r4,r3[0x48] | |
80004168: 58 04 cp.w r4,0 | |
8000416a: f9 b8 00 4c moveq r8,76 | |
8000416e: e7 d8 e0 04 addeq r4,r3,r8 | |
80004172: e7 f4 0a 12 st.weq r3[0x48],r4 | |
80004176: 18 97 mov r7,r12 | |
80004178: 16 96 mov r6,r11 | |
8000417a: 14 95 mov r5,r10 | |
8000417c: 12 92 mov r2,r9 | |
8000417e: 68 18 ld.w r8,r4[0x4] | |
80004180: 59 f8 cp.w r8,31 | |
80004182: e0 8a 00 0e brle 8000419e <__register_exitproc+0x3e> | |
80004186: e0 6c 00 8c mov r12,140 | |
8000418a: f0 1f 00 20 mcall 80004208 <__register_exitproc+0xa8> | |
8000418e: 18 94 mov r4,r12 | |
80004190: c3 80 breq 80004200 <__register_exitproc+0xa0> | |
80004192: 67 28 ld.w r8,r3[0x48] | |
80004194: 99 08 st.w r12[0x0],r8 | |
80004196: e7 4c 00 48 st.w r3[72],r12 | |
8000419a: 30 08 mov r8,0 | |
8000419c: 99 18 st.w r12[0x4],r8 | |
8000419e: 58 07 cp.w r7,0 | |
800041a0: c2 70 breq 800041ee <__register_exitproc+0x8e> | |
800041a2: e8 fc 00 88 ld.w r12,r4[136] | |
800041a6: 58 0c cp.w r12,0 | |
800041a8: c0 d1 brne 800041c2 <__register_exitproc+0x62> | |
800041aa: e0 6c 01 08 mov r12,264 | |
800041ae: f0 1f 00 17 mcall 80004208 <__register_exitproc+0xa8> | |
800041b2: c2 70 breq 80004200 <__register_exitproc+0xa0> | |
800041b4: 30 08 mov r8,0 | |
800041b6: e9 4c 00 88 st.w r4[136],r12 | |
800041ba: f9 48 01 04 st.w r12[260],r8 | |
800041be: f9 48 01 00 st.w r12[256],r8 | |
800041c2: 68 18 ld.w r8,r4[0x4] | |
800041c4: f0 c9 ff e0 sub r9,r8,-32 | |
800041c8: f8 08 09 25 st.w r12[r8<<0x2],r5 | |
800041cc: f8 09 09 22 st.w r12[r9<<0x2],r2 | |
800041d0: 30 1a mov r10,1 | |
800041d2: f8 f9 01 00 ld.w r9,r12[256] | |
800041d6: f4 08 09 48 lsl r8,r10,r8 | |
800041da: 10 49 or r9,r8 | |
800041dc: f9 49 01 00 st.w r12[256],r9 | |
800041e0: 58 27 cp.w r7,2 | |
800041e2: f9 f9 00 41 ld.weq r9,r12[0x104] | |
800041e6: f3 d8 e0 38 oreq r8,r9,r8 | |
800041ea: f9 f8 0a 41 st.weq r12[0x104],r8 | |
800041ee: 68 18 ld.w r8,r4[0x4] | |
800041f0: 30 0c mov r12,0 | |
800041f2: f0 c9 ff ff sub r9,r8,-1 | |
800041f6: 2f e8 sub r8,-2 | |
800041f8: 89 19 st.w r4[0x4],r9 | |
800041fa: e8 08 09 26 st.w r4[r8<<0x2],r6 | |
800041fe: d8 32 popm r0-r7,pc | |
80004200: dc 3a popm r0-r7,pc,r12=-1 | |
80004202: 00 00 add r0,r0 | |
80004204: 80 00 ld.sh r0,r0[0x0] | |
80004206: 4e 1c lddpc r12,80004388 <_malloc_r+0x6c> | |
80004208: 80 00 ld.sh r0,r0[0x0] | |
8000420a: 43 04 lddsp r4,sp[0xc0] | |
8000420c <__call_exitprocs>: | |
8000420c: d4 31 pushm r0-r7,lr | |
8000420e: 20 3d sub sp,12 | |
80004210: 4b 28 lddpc r8,800042d8 <__call_exitprocs+0xcc> | |
80004212: 50 2c stdsp sp[0x8],r12 | |
80004214: 70 08 ld.w r8,r8[0x0] | |
80004216: 16 91 mov r1,r11 | |
80004218: 50 08 stdsp sp[0x0],r8 | |
8000421a: 2b 88 sub r8,-72 | |
8000421c: 50 18 stdsp sp[0x4],r8 | |
8000421e: 40 0a lddsp r10,sp[0x0] | |
80004220: 40 14 lddsp r4,sp[0x4] | |
80004222: 75 27 ld.w r7,r10[0x48] | |
80004224: c5 58 rjmp 800042ce <__call_exitprocs+0xc2> | |
80004226: 6e 15 ld.w r5,r7[0x4] | |
80004228: ee f6 00 88 ld.w r6,r7[136] | |
8000422c: ea c2 ff ff sub r2,r5,-1 | |
80004230: 20 15 sub r5,1 | |
80004232: ee 02 00 22 add r2,r7,r2<<0x2 | |
80004236: ec 05 00 23 add r3,r6,r5<<0x2 | |
8000423a: c3 58 rjmp 800042a4 <__call_exitprocs+0x98> | |
8000423c: 58 01 cp.w r1,0 | |
8000423e: c0 70 breq 8000424c <__call_exitprocs+0x40> | |
80004240: 58 06 cp.w r6,0 | |
80004242: c2 e0 breq 8000429e <__call_exitprocs+0x92> | |
80004244: e6 f8 00 80 ld.w r8,r3[128] | |
80004248: 02 38 cp.w r8,r1 | |
8000424a: c2 a1 brne 8000429e <__call_exitprocs+0x92> | |
8000424c: 6e 19 ld.w r9,r7[0x4] | |
8000424e: 64 08 ld.w r8,r2[0x0] | |
80004250: 20 19 sub r9,1 | |
80004252: 12 35 cp.w r5,r9 | |
80004254: ef f5 0a 01 st.weq r7[0x4],r5 | |
80004258: f9 b9 01 00 movne r9,0 | |
8000425c: e5 f9 1a 00 st.wne r2[0x0],r9 | |
80004260: 58 08 cp.w r8,0 | |
80004262: c1 e0 breq 8000429e <__call_exitprocs+0x92> | |
80004264: 6e 10 ld.w r0,r7[0x4] | |
80004266: 58 06 cp.w r6,0 | |
80004268: c0 90 breq 8000427a <__call_exitprocs+0x6e> | |
8000426a: 30 1a mov r10,1 | |
8000426c: f4 05 09 49 lsl r9,r10,r5 | |
80004270: ec fa 01 00 ld.w r10,r6[256] | |
80004274: f3 ea 00 0a and r10,r9,r10 | |
80004278: c0 31 brne 8000427e <__call_exitprocs+0x72> | |
8000427a: 5d 18 icall r8 | |
8000427c: c0 b8 rjmp 80004292 <__call_exitprocs+0x86> | |
8000427e: ec fa 01 04 ld.w r10,r6[260] | |
80004282: 66 0b ld.w r11,r3[0x0] | |
80004284: 14 69 and r9,r10 | |
80004286: c0 41 brne 8000428e <__call_exitprocs+0x82> | |
80004288: 40 2c lddsp r12,sp[0x8] | |
8000428a: 5d 18 icall r8 | |
8000428c: c0 38 rjmp 80004292 <__call_exitprocs+0x86> | |
8000428e: 16 9c mov r12,r11 | |
80004290: 5d 18 icall r8 | |
80004292: 6e 18 ld.w r8,r7[0x4] | |
80004294: 10 30 cp.w r0,r8 | |
80004296: cc 41 brne 8000421e <__call_exitprocs+0x12> | |
80004298: 68 08 ld.w r8,r4[0x0] | |
8000429a: 0e 38 cp.w r8,r7 | |
8000429c: cc 11 brne 8000421e <__call_exitprocs+0x12> | |
8000429e: 20 15 sub r5,1 | |
800042a0: 20 43 sub r3,4 | |
800042a2: 20 42 sub r2,4 | |
800042a4: 58 05 cp.w r5,0 | |
800042a6: cc b4 brge 8000423c <__call_exitprocs+0x30> | |
800042a8: 6e 18 ld.w r8,r7[0x4] | |
800042aa: 58 08 cp.w r8,0 | |
800042ac: c0 f1 brne 800042ca <__call_exitprocs+0xbe> | |
800042ae: 6e 08 ld.w r8,r7[0x0] | |
800042b0: 58 08 cp.w r8,0 | |
800042b2: c0 c0 breq 800042ca <__call_exitprocs+0xbe> | |
800042b4: 89 08 st.w r4[0x0],r8 | |
800042b6: 58 06 cp.w r6,0 | |
800042b8: c0 40 breq 800042c0 <__call_exitprocs+0xb4> | |
800042ba: 0c 9c mov r12,r6 | |
800042bc: f0 1f 00 08 mcall 800042dc <__call_exitprocs+0xd0> | |
800042c0: 0e 9c mov r12,r7 | |
800042c2: f0 1f 00 07 mcall 800042dc <__call_exitprocs+0xd0> | |
800042c6: 68 07 ld.w r7,r4[0x0] | |
800042c8: c0 38 rjmp 800042ce <__call_exitprocs+0xc2> | |
800042ca: 0e 94 mov r4,r7 | |
800042cc: 6e 07 ld.w r7,r7[0x0] | |
800042ce: 58 07 cp.w r7,0 | |
800042d0: ca b1 brne 80004226 <__call_exitprocs+0x1a> | |
800042d2: 2f dd sub sp,-12 | |
800042d4: d8 32 popm r0-r7,pc | |
800042d6: 00 00 add r0,r0 | |
800042d8: 80 00 ld.sh r0,r0[0x0] | |
800042da: 4e 1c lddpc r12,8000445c <_malloc_r+0x140> | |
800042dc: 80 00 ld.sh r0,r0[0x0] | |
800042de: 42 ec lddsp r12,sp[0xb8] | |
800042e0 <__errno>: | |
800042e0: 48 28 lddpc r8,800042e8 <__errno+0x8> | |
800042e2: 70 0c ld.w r12,r8[0x0] | |
800042e4: 2f 4c sub r12,-12 | |
800042e6: 5e fc retal r12 | |
800042e8: 00 00 add r0,r0 | |
800042ea: 01 58 ld.sh r8,--r0 | |
800042ec <free>: | |
800042ec: d4 01 pushm lr | |
800042ee: 48 48 lddpc r8,800042fc <free+0x10> | |
800042f0: 18 9b mov r11,r12 | |
800042f2: 70 0c ld.w r12,r8[0x0] | |
800042f4: f0 1f 00 03 mcall 80004300 <free+0x14> | |
800042f8: d8 02 popm pc | |
800042fa: 00 00 add r0,r0 | |
800042fc: 00 00 add r0,r0 | |
800042fe: 01 58 ld.sh r8,--r0 | |
80004300: 80 00 ld.sh r0,r0[0x0] | |
80004302: 48 44 lddpc r4,80004310 <malloc+0xc> | |
80004304 <malloc>: | |
80004304: d4 01 pushm lr | |
80004306: 48 48 lddpc r8,80004314 <malloc+0x10> | |
80004308: 18 9b mov r11,r12 | |
8000430a: 70 0c ld.w r12,r8[0x0] | |
8000430c: f0 1f 00 03 mcall 80004318 <malloc+0x14> | |
80004310: d8 02 popm pc | |
80004312: 00 00 add r0,r0 | |
80004314: 00 00 add r0,r0 | |
80004316: 01 58 ld.sh r8,--r0 | |
80004318: 80 00 ld.sh r0,r0[0x0] | |
8000431a: 43 1c lddsp r12,sp[0xc4] | |
8000431c <_malloc_r>: | |
8000431c: d4 31 pushm r0-r7,lr | |
8000431e: f6 c7 ff f5 sub r7,r11,-11 | |
80004322: 18 95 mov r5,r12 | |
80004324: 59 67 cp.w r7,22 | |
80004326: f9 b7 08 10 movls r7,16 | |
8000432a: f9 b8 0b f8 movhi r8,-8 | |
8000432e: ef d8 eb 27 andhi r7,r7,r8 | |
80004332: 16 37 cp.w r7,r11 | |
80004334: 5f 38 srlo r8 | |
80004336: f1 e7 13 f8 or r8,r8,r7>>0x1f | |
8000433a: c0 50 breq 80004344 <_malloc_r+0x28> | |
8000433c: 30 c8 mov r8,12 | |
8000433e: 99 38 st.w r12[0xc],r8 | |
80004340: e0 8f 01 f4 bral 80004728 <_malloc_r+0x40c> | |
80004344: f0 1f 00 50 mcall 80004484 <_malloc_r+0x168> | |
80004348: e0 47 01 f7 cp.w r7,503 | |
8000434c: e0 8b 00 1c brhi 80004384 <_malloc_r+0x68> | |
80004350: ee 03 16 03 lsr r3,r7,0x3 | |
80004354: 4c d8 lddpc r8,80004488 <_malloc_r+0x16c> | |
80004356: f0 03 00 38 add r8,r8,r3<<0x3 | |
8000435a: 70 36 ld.w r6,r8[0xc] | |
8000435c: 10 36 cp.w r6,r8 | |
8000435e: c0 61 brne 8000436a <_malloc_r+0x4e> | |
80004360: ec c8 ff f8 sub r8,r6,-8 | |
80004364: 70 36 ld.w r6,r8[0xc] | |
80004366: 10 36 cp.w r6,r8 | |
80004368: c0 c0 breq 80004380 <_malloc_r+0x64> | |
8000436a: 6c 18 ld.w r8,r6[0x4] | |
8000436c: e0 18 ff fc andl r8,0xfffc | |
80004370: 6c 3a ld.w r10,r6[0xc] | |
80004372: ec 08 00 09 add r9,r6,r8 | |
80004376: 0a 9c mov r12,r5 | |
80004378: 6c 28 ld.w r8,r6[0x8] | |
8000437a: 95 28 st.w r10[0x8],r8 | |
8000437c: 91 3a st.w r8[0xc],r10 | |
8000437e: c4 78 rjmp 8000440c <_malloc_r+0xf0> | |
80004380: 2f e3 sub r3,-2 | |
80004382: c4 d8 rjmp 8000441c <_malloc_r+0x100> | |
80004384: ee 08 16 09 lsr r8,r7,0x9 | |
80004388: c0 41 brne 80004390 <_malloc_r+0x74> | |
8000438a: ee 03 16 03 lsr r3,r7,0x3 | |
8000438e: c2 78 rjmp 800043dc <_malloc_r+0xc0> | |
80004390: 58 48 cp.w r8,4 | |
80004392: e0 8b 00 06 brhi 8000439e <_malloc_r+0x82> | |
80004396: ee 03 16 06 lsr r3,r7,0x6 | |
8000439a: 2c 83 sub r3,-56 | |
8000439c: c2 08 rjmp 800043dc <_malloc_r+0xc0> | |
8000439e: 59 48 cp.w r8,20 | |
800043a0: e0 8b 00 05 brhi 800043aa <_malloc_r+0x8e> | |
800043a4: f0 c3 ff a5 sub r3,r8,-91 | |
800043a8: c1 a8 rjmp 800043dc <_malloc_r+0xc0> | |
800043aa: e0 48 00 54 cp.w r8,84 | |
800043ae: e0 8b 00 06 brhi 800043ba <_malloc_r+0x9e> | |
800043b2: ee 03 16 0c lsr r3,r7,0xc | |
800043b6: 29 23 sub r3,-110 | |
800043b8: c1 28 rjmp 800043dc <_malloc_r+0xc0> | |
800043ba: e0 48 01 54 cp.w r8,340 | |
800043be: e0 8b 00 06 brhi 800043ca <_malloc_r+0xae> | |
800043c2: ee 03 16 0f lsr r3,r7,0xf | |
800043c6: 28 93 sub r3,-119 | |
800043c8: c0 a8 rjmp 800043dc <_malloc_r+0xc0> | |
800043ca: ee 03 16 12 lsr r3,r7,0x12 | |
800043ce: e0 48 05 54 cp.w r8,1364 | |
800043d2: e0 88 00 04 brls 800043da <_malloc_r+0xbe> | |
800043d6: 37 e3 mov r3,126 | |
800043d8: c0 28 rjmp 800043dc <_malloc_r+0xc0> | |
800043da: 28 43 sub r3,-124 | |
800043dc: 4a ba lddpc r10,80004488 <_malloc_r+0x16c> | |
800043de: f4 03 00 3a add r10,r10,r3<<0x3 | |
800043e2: 74 36 ld.w r6,r10[0xc] | |
800043e4: c1 98 rjmp 80004416 <_malloc_r+0xfa> | |
800043e6: 6c 19 ld.w r9,r6[0x4] | |
800043e8: e0 19 ff fc andl r9,0xfffc | |
800043ec: f2 07 01 0b sub r11,r9,r7 | |
800043f0: 58 fb cp.w r11,15 | |
800043f2: e0 8a 00 04 brle 800043fa <_malloc_r+0xde> | |
800043f6: 20 13 sub r3,1 | |
800043f8: c1 18 rjmp 8000441a <_malloc_r+0xfe> | |
800043fa: 6c 38 ld.w r8,r6[0xc] | |
800043fc: 58 0b cp.w r11,0 | |
800043fe: c0 b5 brlt 80004414 <_malloc_r+0xf8> | |
80004400: 6c 2a ld.w r10,r6[0x8] | |
80004402: ec 09 00 09 add r9,r6,r9 | |
80004406: 0a 9c mov r12,r5 | |
80004408: 91 2a st.w r8[0x8],r10 | |
8000440a: 95 38 st.w r10[0xc],r8 | |
8000440c: 72 18 ld.w r8,r9[0x4] | |
8000440e: a1 a8 sbr r8,0x0 | |
80004410: 93 18 st.w r9[0x4],r8 | |
80004412: cb d8 rjmp 8000458c <_malloc_r+0x270> | |
80004414: 10 96 mov r6,r8 | |
80004416: 14 36 cp.w r6,r10 | |
80004418: ce 71 brne 800043e6 <_malloc_r+0xca> | |
8000441a: 2f f3 sub r3,-1 | |
8000441c: 49 ba lddpc r10,80004488 <_malloc_r+0x16c> | |
8000441e: f4 cc ff f8 sub r12,r10,-8 | |
80004422: 78 26 ld.w r6,r12[0x8] | |
80004424: 18 36 cp.w r6,r12 | |
80004426: c6 f0 breq 80004504 <_malloc_r+0x1e8> | |
80004428: 6c 19 ld.w r9,r6[0x4] | |
8000442a: e0 19 ff fc andl r9,0xfffc | |
8000442e: f2 07 01 08 sub r8,r9,r7 | |
80004432: 58 f8 cp.w r8,15 | |
80004434: e0 89 00 91 brgt 80004556 <_malloc_r+0x23a> | |
80004438: 99 3c st.w r12[0xc],r12 | |
8000443a: 99 2c st.w r12[0x8],r12 | |
8000443c: 58 08 cp.w r8,0 | |
8000443e: c0 55 brlt 80004448 <_malloc_r+0x12c> | |
80004440: ec 09 00 09 add r9,r6,r9 | |
80004444: 0a 9c mov r12,r5 | |
80004446: ce 3b rjmp 8000440c <_malloc_r+0xf0> | |
80004448: e0 49 01 ff cp.w r9,511 | |
8000444c: e0 8b 00 13 brhi 80004472 <_malloc_r+0x156> | |
80004450: a3 99 lsr r9,0x3 | |
80004452: f4 09 00 38 add r8,r10,r9<<0x3 | |
80004456: 70 2b ld.w r11,r8[0x8] | |
80004458: 8d 38 st.w r6[0xc],r8 | |
8000445a: 8d 2b st.w r6[0x8],r11 | |
8000445c: 97 36 st.w r11[0xc],r6 | |
8000445e: 91 26 st.w r8[0x8],r6 | |
80004460: a3 49 asr r9,0x2 | |
80004462: 74 18 ld.w r8,r10[0x4] | |
80004464: 30 1b mov r11,1 | |
80004466: f6 09 09 49 lsl r9,r11,r9 | |
8000446a: f1 e9 10 09 or r9,r8,r9 | |
8000446e: 95 19 st.w r10[0x4],r9 | |
80004470: c4 a8 rjmp 80004504 <_malloc_r+0x1e8> | |
80004472: f2 08 16 09 lsr r8,r9,0x9 | |
80004476: 58 48 cp.w r8,4 | |
80004478: e0 8b 00 0a brhi 8000448c <_malloc_r+0x170> | |
8000447c: f2 0a 16 06 lsr r10,r9,0x6 | |
80004480: 2c 8a sub r10,-56 | |
80004482: c2 48 rjmp 800044ca <_malloc_r+0x1ae> | |
80004484: 80 00 ld.sh r0,r0[0x0] | |
80004486: 47 70 lddsp r0,sp[0x1dc] | |
80004488: 00 00 add r0,r0 | |
8000448a: 01 5c ld.sh r12,--r0 | |
8000448c: 59 48 cp.w r8,20 | |
8000448e: e0 8b 00 05 brhi 80004498 <_malloc_r+0x17c> | |
80004492: f0 ca ff a5 sub r10,r8,-91 | |
80004496: c1 a8 rjmp 800044ca <_malloc_r+0x1ae> | |
80004498: e0 48 00 54 cp.w r8,84 | |
8000449c: e0 8b 00 06 brhi 800044a8 <_malloc_r+0x18c> | |
800044a0: f2 0a 16 0c lsr r10,r9,0xc | |
800044a4: 29 2a sub r10,-110 | |
800044a6: c1 28 rjmp 800044ca <_malloc_r+0x1ae> | |
800044a8: e0 48 01 54 cp.w r8,340 | |
800044ac: e0 8b 00 06 brhi 800044b8 <_malloc_r+0x19c> | |
800044b0: f2 0a 16 0f lsr r10,r9,0xf | |
800044b4: 28 9a sub r10,-119 | |
800044b6: c0 a8 rjmp 800044ca <_malloc_r+0x1ae> | |
800044b8: f2 0a 16 12 lsr r10,r9,0x12 | |
800044bc: e0 48 05 54 cp.w r8,1364 | |
800044c0: e0 88 00 04 brls 800044c8 <_malloc_r+0x1ac> | |
800044c4: 37 ea mov r10,126 | |
800044c6: c0 28 rjmp 800044ca <_malloc_r+0x1ae> | |
800044c8: 28 4a sub r10,-124 | |
800044ca: 4c 8b lddpc r11,800045e8 <_malloc_r+0x2cc> | |
800044cc: f6 0a 00 34 add r4,r11,r10<<0x3 | |
800044d0: 68 28 ld.w r8,r4[0x8] | |
800044d2: 08 38 cp.w r8,r4 | |
800044d4: c0 e1 brne 800044f0 <_malloc_r+0x1d4> | |
800044d6: 76 19 ld.w r9,r11[0x4] | |
800044d8: a3 4a asr r10,0x2 | |
800044da: 30 1e mov lr,1 | |
800044dc: fc 0a 09 4a lsl r10,lr,r10 | |
800044e0: f3 ea 10 0a or r10,r9,r10 | |
800044e4: 10 99 mov r9,r8 | |
800044e6: 97 1a st.w r11[0x4],r10 | |
800044e8: c0 a8 rjmp 800044fc <_malloc_r+0x1e0> | |
800044ea: 70 28 ld.w r8,r8[0x8] | |
800044ec: 08 38 cp.w r8,r4 | |
800044ee: c0 60 breq 800044fa <_malloc_r+0x1de> | |
800044f0: 70 1a ld.w r10,r8[0x4] | |
800044f2: e0 1a ff fc andl r10,0xfffc | |
800044f6: 14 39 cp.w r9,r10 | |
800044f8: cf 93 brcs 800044ea <_malloc_r+0x1ce> | |
800044fa: 70 39 ld.w r9,r8[0xc] | |
800044fc: 8d 39 st.w r6[0xc],r9 | |
800044fe: 8d 28 st.w r6[0x8],r8 | |
80004500: 91 36 st.w r8[0xc],r6 | |
80004502: 93 26 st.w r9[0x8],r6 | |
80004504: e6 08 14 02 asr r8,r3,0x2 | |
80004508: 30 1b mov r11,1 | |
8000450a: 4b 84 lddpc r4,800045e8 <_malloc_r+0x2cc> | |
8000450c: f6 08 09 4b lsl r11,r11,r8 | |
80004510: 68 18 ld.w r8,r4[0x4] | |
80004512: 10 3b cp.w r11,r8 | |
80004514: e0 8b 00 6e brhi 800045f0 <_malloc_r+0x2d4> | |
80004518: f7 e8 00 09 and r9,r11,r8 | |
8000451c: c0 b1 brne 80004532 <_malloc_r+0x216> | |
8000451e: e0 13 ff fc andl r3,0xfffc | |
80004522: a1 7b lsl r11,0x1 | |
80004524: 2f c3 sub r3,-4 | |
80004526: c0 38 rjmp 8000452c <_malloc_r+0x210> | |
80004528: 2f c3 sub r3,-4 | |
8000452a: a1 7b lsl r11,0x1 | |
8000452c: f7 e8 00 09 and r9,r11,r8 | |
80004530: cf c0 breq 80004528 <_malloc_r+0x20c> | |
80004532: e8 03 00 3e add lr,r4,r3<<0x3 | |
80004536: 06 92 mov r2,r3 | |
80004538: 1c 91 mov r1,lr | |
8000453a: 62 36 ld.w r6,r1[0xc] | |
8000453c: c2 e8 rjmp 80004598 <_malloc_r+0x27c> | |
8000453e: 6c 1a ld.w r10,r6[0x4] | |
80004540: e0 1a ff fc andl r10,0xfffc | |
80004544: f4 07 01 08 sub r8,r10,r7 | |
80004548: 58 f8 cp.w r8,15 | |
8000454a: e0 8a 00 15 brle 80004574 <_malloc_r+0x258> | |
8000454e: 6c 3a ld.w r10,r6[0xc] | |
80004550: 6c 29 ld.w r9,r6[0x8] | |
80004552: 95 29 st.w r10[0x8],r9 | |
80004554: 93 3a st.w r9[0xc],r10 | |
80004556: 0e 99 mov r9,r7 | |
80004558: ec 07 00 07 add r7,r6,r7 | |
8000455c: a1 a9 sbr r9,0x0 | |
8000455e: 99 37 st.w r12[0xc],r7 | |
80004560: 99 27 st.w r12[0x8],r7 | |
80004562: 8d 19 st.w r6[0x4],r9 | |
80004564: ee 08 09 08 st.w r7[r8],r8 | |
80004568: 8f 2c st.w r7[0x8],r12 | |
8000456a: 8f 3c st.w r7[0xc],r12 | |
8000456c: a1 a8 sbr r8,0x0 | |
8000456e: 0a 9c mov r12,r5 | |
80004570: 8f 18 st.w r7[0x4],r8 | |
80004572: c0 d8 rjmp 8000458c <_malloc_r+0x270> | |
80004574: 6c 39 ld.w r9,r6[0xc] | |
80004576: 58 08 cp.w r8,0 | |
80004578: c0 f5 brlt 80004596 <_malloc_r+0x27a> | |
8000457a: ec 0a 00 0a add r10,r6,r10 | |
8000457e: 74 18 ld.w r8,r10[0x4] | |
80004580: a1 a8 sbr r8,0x0 | |
80004582: 0a 9c mov r12,r5 | |
80004584: 95 18 st.w r10[0x4],r8 | |
80004586: 6c 28 ld.w r8,r6[0x8] | |
80004588: 93 28 st.w r9[0x8],r8 | |
8000458a: 91 39 st.w r8[0xc],r9 | |
8000458c: f0 1f 00 18 mcall 800045ec <_malloc_r+0x2d0> | |
80004590: ec cc ff f8 sub r12,r6,-8 | |
80004594: d8 32 popm r0-r7,pc | |
80004596: 12 96 mov r6,r9 | |
80004598: 02 36 cp.w r6,r1 | |
8000459a: cd 21 brne 8000453e <_malloc_r+0x222> | |
8000459c: 2f f2 sub r2,-1 | |
8000459e: f1 d2 c0 02 bfextu r8,r2,0x0,0x2 | |
800045a2: c0 30 breq 800045a8 <_malloc_r+0x28c> | |
800045a4: 2f 81 sub r1,-8 | |
800045a6: cc ab rjmp 8000453a <_malloc_r+0x21e> | |
800045a8: 1c 98 mov r8,lr | |
800045aa: f3 d3 c0 02 bfextu r9,r3,0x0,0x2 | |
800045ae: c0 81 brne 800045be <_malloc_r+0x2a2> | |
800045b0: 68 19 ld.w r9,r4[0x4] | |
800045b2: f6 08 11 ff rsub r8,r11,-1 | |
800045b6: f3 e8 00 08 and r8,r9,r8 | |
800045ba: 89 18 st.w r4[0x4],r8 | |
800045bc: c0 78 rjmp 800045ca <_malloc_r+0x2ae> | |
800045be: f0 c9 00 08 sub r9,r8,8 | |
800045c2: 20 13 sub r3,1 | |
800045c4: 70 08 ld.w r8,r8[0x0] | |
800045c6: 12 38 cp.w r8,r9 | |
800045c8: cf 10 breq 800045aa <_malloc_r+0x28e> | |
800045ca: a1 7b lsl r11,0x1 | |
800045cc: 68 18 ld.w r8,r4[0x4] | |
800045ce: 10 3b cp.w r11,r8 | |
800045d0: e0 8b 00 10 brhi 800045f0 <_malloc_r+0x2d4> | |
800045d4: 58 0b cp.w r11,0 | |
800045d6: c0 d0 breq 800045f0 <_malloc_r+0x2d4> | |
800045d8: 04 93 mov r3,r2 | |
800045da: c0 38 rjmp 800045e0 <_malloc_r+0x2c4> | |
800045dc: 2f c3 sub r3,-4 | |
800045de: a1 7b lsl r11,0x1 | |
800045e0: f7 e8 00 09 and r9,r11,r8 | |
800045e4: ca 71 brne 80004532 <_malloc_r+0x216> | |
800045e6: cf bb rjmp 800045dc <_malloc_r+0x2c0> | |
800045e8: 00 00 add r0,r0 | |
800045ea: 01 5c ld.sh r12,--r0 | |
800045ec: 80 00 ld.sh r0,r0[0x0] | |
800045ee: 47 72 lddsp r2,sp[0x1dc] | |
800045f0: 68 23 ld.w r3,r4[0x8] | |
800045f2: 66 12 ld.w r2,r3[0x4] | |
800045f4: e0 12 ff fc andl r2,0xfffc | |
800045f8: 0e 32 cp.w r2,r7 | |
800045fa: 5f 39 srlo r9 | |
800045fc: e4 07 01 08 sub r8,r2,r7 | |
80004600: 58 f8 cp.w r8,15 | |
80004602: 5f aa srle r10 | |
80004604: f5 e9 10 09 or r9,r10,r9 | |
80004608: e0 80 00 a2 breq 8000474c <_malloc_r+0x430> | |
8000460c: 4c 88 lddpc r8,8000472c <_malloc_r+0x410> | |
8000460e: 70 01 ld.w r1,r8[0x0] | |
80004610: 4c 88 lddpc r8,80004730 <_malloc_r+0x414> | |
80004612: 2f 01 sub r1,-16 | |
80004614: 70 08 ld.w r8,r8[0x0] | |
80004616: 0e 01 add r1,r7 | |
80004618: 5b f8 cp.w r8,-1 | |
8000461a: c0 40 breq 80004622 <_malloc_r+0x306> | |
8000461c: 28 11 sub r1,-127 | |
8000461e: e0 11 ff 80 andl r1,0xff80 | |
80004622: 02 9b mov r11,r1 | |
80004624: 0a 9c mov r12,r5 | |
80004626: f0 1f 00 44 mcall 80004734 <_malloc_r+0x418> | |
8000462a: 18 96 mov r6,r12 | |
8000462c: 5b fc cp.w r12,-1 | |
8000462e: c6 e0 breq 8000470a <_malloc_r+0x3ee> | |
80004630: e6 02 00 08 add r8,r3,r2 | |
80004634: 10 3c cp.w r12,r8 | |
80004636: c0 32 brcc 8000463c <_malloc_r+0x320> | |
80004638: 08 33 cp.w r3,r4 | |
8000463a: c6 81 brne 8000470a <_malloc_r+0x3ee> | |
8000463c: 4b fa lddpc r10,80004738 <_malloc_r+0x41c> | |
8000463e: 74 09 ld.w r9,r10[0x0] | |
80004640: e2 09 00 09 add r9,r1,r9 | |
80004644: 95 09 st.w r10[0x0],r9 | |
80004646: 10 36 cp.w r6,r8 | |
80004648: c0 a1 brne 8000465c <_malloc_r+0x340> | |
8000464a: f5 d6 c0 07 bfextu r10,r6,0x0,0x7 | |
8000464e: c0 71 brne 8000465c <_malloc_r+0x340> | |
80004650: e2 02 00 02 add r2,r1,r2 | |
80004654: 68 28 ld.w r8,r4[0x8] | |
80004656: a1 a2 sbr r2,0x0 | |
80004658: 91 12 st.w r8[0x4],r2 | |
8000465a: c4 c8 rjmp 800046f2 <_malloc_r+0x3d6> | |
8000465c: 4b 5a lddpc r10,80004730 <_malloc_r+0x414> | |
8000465e: 74 0b ld.w r11,r10[0x0] | |
80004660: 5b fb cp.w r11,-1 | |
80004662: c0 31 brne 80004668 <_malloc_r+0x34c> | |
80004664: 95 06 st.w r10[0x0],r6 | |
80004666: c0 68 rjmp 80004672 <_malloc_r+0x356> | |
80004668: ec 09 00 09 add r9,r6,r9 | |
8000466c: 4b 3a lddpc r10,80004738 <_malloc_r+0x41c> | |
8000466e: 10 19 sub r9,r8 | |
80004670: 95 09 st.w r10[0x0],r9 | |
80004672: f1 d6 c0 03 bfextu r8,r6,0x0,0x3 | |
80004676: f0 09 11 08 rsub r9,r8,8 | |
8000467a: 58 08 cp.w r8,0 | |
8000467c: f2 08 17 10 movne r8,r9 | |
80004680: ed d8 e1 06 addne r6,r6,r8 | |
80004684: 28 08 sub r8,-128 | |
80004686: ec 01 00 01 add r1,r6,r1 | |
8000468a: 0a 9c mov r12,r5 | |
8000468c: e3 d1 c0 07 bfextu r1,r1,0x0,0x7 | |
80004690: f0 01 01 01 sub r1,r8,r1 | |
80004694: 02 9b mov r11,r1 | |
80004696: f0 1f 00 28 mcall 80004734 <_malloc_r+0x418> | |
8000469a: 4a 88 lddpc r8,80004738 <_malloc_r+0x41c> | |
8000469c: 5b fc cp.w r12,-1 | |
8000469e: ec 0c 17 00 moveq r12,r6 | |
800046a2: f9 b1 00 00 moveq r1,0 | |
800046a6: 70 09 ld.w r9,r8[0x0] | |
800046a8: 0c 1c sub r12,r6 | |
800046aa: 89 26 st.w r4[0x8],r6 | |
800046ac: 02 0c add r12,r1 | |
800046ae: 12 01 add r1,r9 | |
800046b0: a1 ac sbr r12,0x0 | |
800046b2: 91 01 st.w r8[0x0],r1 | |
800046b4: 8d 1c st.w r6[0x4],r12 | |
800046b6: 08 33 cp.w r3,r4 | |
800046b8: c1 d0 breq 800046f2 <_malloc_r+0x3d6> | |
800046ba: 58 f2 cp.w r2,15 | |
800046bc: e0 8b 00 05 brhi 800046c6 <_malloc_r+0x3aa> | |
800046c0: 30 18 mov r8,1 | |
800046c2: 8d 18 st.w r6[0x4],r8 | |
800046c4: c2 38 rjmp 8000470a <_malloc_r+0x3ee> | |
800046c6: 30 59 mov r9,5 | |
800046c8: 20 c2 sub r2,12 | |
800046ca: e0 12 ff f8 andl r2,0xfff8 | |
800046ce: e6 02 00 08 add r8,r3,r2 | |
800046d2: 91 29 st.w r8[0x8],r9 | |
800046d4: 91 19 st.w r8[0x4],r9 | |
800046d6: 66 18 ld.w r8,r3[0x4] | |
800046d8: f1 d8 c0 01 bfextu r8,r8,0x0,0x1 | |
800046dc: e5 e8 10 08 or r8,r2,r8 | |
800046e0: 87 18 st.w r3[0x4],r8 | |
800046e2: 58 f2 cp.w r2,15 | |
800046e4: e0 88 00 07 brls 800046f2 <_malloc_r+0x3d6> | |
800046e8: e6 cb ff f8 sub r11,r3,-8 | |
800046ec: 0a 9c mov r12,r5 | |
800046ee: f0 1f 00 14 mcall 8000473c <_malloc_r+0x420> | |
800046f2: 49 49 lddpc r9,80004740 <_malloc_r+0x424> | |
800046f4: 72 0a ld.w r10,r9[0x0] | |
800046f6: 49 18 lddpc r8,80004738 <_malloc_r+0x41c> | |
800046f8: 70 08 ld.w r8,r8[0x0] | |
800046fa: 14 38 cp.w r8,r10 | |
800046fc: f3 f8 ba 00 st.whi r9[0x0],r8 | |
80004700: 49 19 lddpc r9,80004744 <_malloc_r+0x428> | |
80004702: 72 0a ld.w r10,r9[0x0] | |
80004704: 14 38 cp.w r8,r10 | |
80004706: f3 f8 ba 00 st.whi r9[0x0],r8 | |
8000470a: 68 28 ld.w r8,r4[0x8] | |
8000470c: 70 18 ld.w r8,r8[0x4] | |
8000470e: e0 18 ff fc andl r8,0xfffc | |
80004712: 0e 38 cp.w r8,r7 | |
80004714: 5f 39 srlo r9 | |
80004716: 0e 18 sub r8,r7 | |
80004718: 58 f8 cp.w r8,15 | |
8000471a: 5f aa srle r10 | |
8000471c: f5 e9 10 09 or r9,r10,r9 | |
80004720: c1 60 breq 8000474c <_malloc_r+0x430> | |
80004722: 0a 9c mov r12,r5 | |
80004724: f0 1f 00 09 mcall 80004748 <_malloc_r+0x42c> | |
80004728: d8 3a popm r0-r7,pc,r12=0 | |
8000472a: 00 00 add r0,r0 | |
8000472c: 00 00 add r0,r0 | |
8000472e: 05 88 ld.ub r8,r2[0x0] | |
80004730: 00 00 add r0,r0 | |
80004732: 05 68 ld.uh r8,--r2 | |
80004734: 80 00 ld.sh r0,r0[0x0] | |
80004736: 47 74 lddsp r4,sp[0x1dc] | |
80004738: 00 00 add r0,r0 | |
8000473a: 05 8c ld.ub r12,r2[0x0] | |
8000473c: 80 00 ld.sh r0,r0[0x0] | |
8000473e: 48 44 lddpc r4,8000474c <_malloc_r+0x430> | |
80004740: 00 00 add r0,r0 | |
80004742: 05 84 ld.ub r4,r2[0x0] | |
80004744: 00 00 add r0,r0 | |
80004746: 05 80 ld.ub r0,r2[0x0] | |
80004748: 80 00 ld.sh r0,r0[0x0] | |
8000474a: 47 72 lddsp r2,sp[0x1dc] | |
8000474c: 68 26 ld.w r6,r4[0x8] | |
8000474e: a1 a8 sbr r8,0x0 | |
80004750: 0e 99 mov r9,r7 | |
80004752: a1 a9 sbr r9,0x0 | |
80004754: 8d 19 st.w r6[0x4],r9 | |
80004756: ec 07 00 07 add r7,r6,r7 | |
8000475a: 0a 9c mov r12,r5 | |
8000475c: 89 27 st.w r4[0x8],r7 | |
8000475e: 8f 18 st.w r7[0x4],r8 | |
80004760: f0 1f 00 03 mcall 8000476c <_malloc_r+0x450> | |
80004764: ec cc ff f8 sub r12,r6,-8 | |
80004768: d8 32 popm r0-r7,pc | |
8000476a: 00 00 add r0,r0 | |
8000476c: 80 00 ld.sh r0,r0[0x0] | |
8000476e: 47 72 lddsp r2,sp[0x1dc] | |
80004770 <__malloc_lock>: | |
80004770: 5e fc retal r12 | |
80004772 <__malloc_unlock>: | |
80004772: 5e fc retal r12 | |
80004774 <_sbrk_r>: | |
80004774: d4 21 pushm r4-r7,lr | |
80004776: 30 08 mov r8,0 | |
80004778: 18 97 mov r7,r12 | |
8000477a: 48 76 lddpc r6,80004794 <_sbrk_r+0x20> | |
8000477c: 16 9c mov r12,r11 | |
8000477e: 8d 08 st.w r6[0x0],r8 | |
80004780: f0 1f 00 06 mcall 80004798 <_sbrk_r+0x24> | |
80004784: 5b fc cp.w r12,-1 | |
80004786: c0 51 brne 80004790 <_sbrk_r+0x1c> | |
80004788: 6c 08 ld.w r8,r6[0x0] | |
8000478a: 58 08 cp.w r8,0 | |
8000478c: ef f8 1a 03 st.wne r7[0xc],r8 | |
80004790: d8 22 popm r4-r7,pc | |
80004792: 00 00 add r0,r0 | |
80004794: 00 00 add r0,r0 | |
80004796: 06 30 cp.w r0,r3 | |
80004798: 80 00 ld.sh r0,r0[0x0] | |
8000479a: 41 20 lddsp r0,sp[0x48] | |
8000479c <_malloc_trim_r>: | |
8000479c: d4 21 pushm r4-r7,lr | |
8000479e: 16 95 mov r5,r11 | |
800047a0: 18 97 mov r7,r12 | |
800047a2: f0 1f 00 23 mcall 8000482c <_malloc_trim_r+0x90> | |
800047a6: 4a 34 lddpc r4,80004830 <_malloc_trim_r+0x94> | |
800047a8: 68 28 ld.w r8,r4[0x8] | |
800047aa: 70 16 ld.w r6,r8[0x4] | |
800047ac: e0 16 ff fc andl r6,0xfffc | |
800047b0: ec c8 ff 91 sub r8,r6,-111 | |
800047b4: f0 05 01 05 sub r5,r8,r5 | |
800047b8: e0 15 ff 80 andl r5,0xff80 | |
800047bc: ea c5 00 80 sub r5,r5,128 | |
800047c0: e0 45 00 7f cp.w r5,127 | |
800047c4: e0 8a 00 23 brle 8000480a <_malloc_trim_r+0x6e> | |
800047c8: 30 0b mov r11,0 | |
800047ca: 0e 9c mov r12,r7 | |
800047cc: f0 1f 00 1a mcall 80004834 <_malloc_trim_r+0x98> | |
800047d0: 68 28 ld.w r8,r4[0x8] | |
800047d2: 0c 08 add r8,r6 | |
800047d4: 10 3c cp.w r12,r8 | |
800047d6: c1 a1 brne 8000480a <_malloc_trim_r+0x6e> | |
800047d8: ea 0b 11 00 rsub r11,r5,0 | |
800047dc: 0e 9c mov r12,r7 | |
800047de: f0 1f 00 16 mcall 80004834 <_malloc_trim_r+0x98> | |
800047e2: 5b fc cp.w r12,-1 | |
800047e4: c1 71 brne 80004812 <_malloc_trim_r+0x76> | |
800047e6: 30 0b mov r11,0 | |
800047e8: 0e 9c mov r12,r7 | |
800047ea: f0 1f 00 13 mcall 80004834 <_malloc_trim_r+0x98> | |
800047ee: 68 28 ld.w r8,r4[0x8] | |
800047f0: f8 08 01 09 sub r9,r12,r8 | |
800047f4: 58 f9 cp.w r9,15 | |
800047f6: e0 8a 00 0a brle 8000480a <_malloc_trim_r+0x6e> | |
800047fa: a1 a9 sbr r9,0x0 | |
800047fc: 91 19 st.w r8[0x4],r9 | |
800047fe: 48 f8 lddpc r8,80004838 <_malloc_trim_r+0x9c> | |
80004800: 70 09 ld.w r9,r8[0x0] | |
80004802: 48 f8 lddpc r8,8000483c <_malloc_trim_r+0xa0> | |
80004804: f8 09 01 09 sub r9,r12,r9 | |
80004808: 91 09 st.w r8[0x0],r9 | |
8000480a: 0e 9c mov r12,r7 | |
8000480c: f0 1f 00 0d mcall 80004840 <_malloc_trim_r+0xa4> | |
80004810: d8 2a popm r4-r7,pc,r12=0 | |
80004812: 68 28 ld.w r8,r4[0x8] | |
80004814: 0a 16 sub r6,r5 | |
80004816: a1 a6 sbr r6,0x0 | |
80004818: 91 16 st.w r8[0x4],r6 | |
8000481a: 48 98 lddpc r8,8000483c <_malloc_trim_r+0xa0> | |
8000481c: 70 09 ld.w r9,r8[0x0] | |
8000481e: 0a 19 sub r9,r5 | |
80004820: 0e 9c mov r12,r7 | |
80004822: 91 09 st.w r8[0x0],r9 | |
80004824: f0 1f 00 07 mcall 80004840 <_malloc_trim_r+0xa4> | |
80004828: da 2a popm r4-r7,pc,r12=1 | |
8000482a: 00 00 add r0,r0 | |
8000482c: 80 00 ld.sh r0,r0[0x0] | |
8000482e: 47 70 lddsp r0,sp[0x1dc] | |
80004830: 00 00 add r0,r0 | |
80004832: 01 5c ld.sh r12,--r0 | |
80004834: 80 00 ld.sh r0,r0[0x0] | |
80004836: 47 74 lddsp r4,sp[0x1dc] | |
80004838: 00 00 add r0,r0 | |
8000483a: 05 68 ld.uh r8,--r2 | |
8000483c: 00 00 add r0,r0 | |
8000483e: 05 8c ld.ub r12,r2[0x0] | |
80004840: 80 00 ld.sh r0,r0[0x0] | |
80004842: 47 72 lddsp r2,sp[0x1dc] | |
80004844 <_free_r>: | |
80004844: d4 21 pushm r4-r7,lr | |
80004846: 16 96 mov r6,r11 | |
80004848: 18 97 mov r7,r12 | |
8000484a: 58 0b cp.w r11,0 | |
8000484c: e0 80 00 ca breq 800049e0 <_free_r+0x19c> | |
80004850: f0 1f 00 4e mcall 80004988 <_free_r+0x144> | |
80004854: 20 86 sub r6,8 | |
80004856: 4c ea lddpc r10,8000498c <_free_r+0x148> | |
80004858: 6c 18 ld.w r8,r6[0x4] | |
8000485a: 74 2e ld.w lr,r10[0x8] | |
8000485c: f9 d8 c0 01 bfextu r12,r8,0x0,0x1 | |
80004860: a1 c8 cbr r8,0x0 | |
80004862: ec 08 00 09 add r9,r6,r8 | |
80004866: 72 1b ld.w r11,r9[0x4] | |
80004868: e0 1b ff fc andl r11,0xfffc | |
8000486c: 1c 39 cp.w r9,lr | |
8000486e: c1 d1 brne 800048a8 <_free_r+0x64> | |
80004870: f6 08 00 08 add r8,r11,r8 | |
80004874: 58 0c cp.w r12,0 | |
80004876: c0 81 brne 80004886 <_free_r+0x42> | |
80004878: 6c 09 ld.w r9,r6[0x0] | |
8000487a: 12 16 sub r6,r9 | |
8000487c: 12 08 add r8,r9 | |
8000487e: 6c 3b ld.w r11,r6[0xc] | |
80004880: 6c 29 ld.w r9,r6[0x8] | |
80004882: 97 29 st.w r11[0x8],r9 | |
80004884: 93 3b st.w r9[0xc],r11 | |
80004886: 10 99 mov r9,r8 | |
80004888: 95 26 st.w r10[0x8],r6 | |
8000488a: a1 a9 sbr r9,0x0 | |
8000488c: 8d 19 st.w r6[0x4],r9 | |
8000488e: 4c 19 lddpc r9,80004990 <_free_r+0x14c> | |
80004890: 72 09 ld.w r9,r9[0x0] | |
80004892: 12 38 cp.w r8,r9 | |
80004894: c0 63 brcs 800048a0 <_free_r+0x5c> | |
80004896: 4c 08 lddpc r8,80004994 <_free_r+0x150> | |
80004898: 0e 9c mov r12,r7 | |
8000489a: 70 0b ld.w r11,r8[0x0] | |
8000489c: f0 1f 00 3f mcall 80004998 <_free_r+0x154> | |
800048a0: 0e 9c mov r12,r7 | |
800048a2: f0 1f 00 3f mcall 8000499c <_free_r+0x158> | |
800048a6: d8 22 popm r4-r7,pc | |
800048a8: 93 1b st.w r9[0x4],r11 | |
800048aa: 58 0c cp.w r12,0 | |
800048ac: c0 30 breq 800048b2 <_free_r+0x6e> | |
800048ae: 30 0c mov r12,0 | |
800048b0: c1 08 rjmp 800048d0 <_free_r+0x8c> | |
800048b2: 6c 0e ld.w lr,r6[0x0] | |
800048b4: f4 c5 ff f8 sub r5,r10,-8 | |
800048b8: 1c 16 sub r6,lr | |
800048ba: 1c 08 add r8,lr | |
800048bc: 6c 2e ld.w lr,r6[0x8] | |
800048be: 0a 3e cp.w lr,r5 | |
800048c0: f9 bc 00 01 moveq r12,1 | |
800048c4: ed f5 10 03 ld.wne r5,r6[0xc] | |
800048c8: eb fe 1a 02 st.wne r5[0x8],lr | |
800048cc: fd f5 1a 03 st.wne lr[0xc],r5 | |
800048d0: f2 0b 00 0e add lr,r9,r11 | |
800048d4: 7c 1e ld.w lr,lr[0x4] | |
800048d6: ed be 00 00 bld lr,0x0 | |
800048da: c1 30 breq 80004900 <_free_r+0xbc> | |
800048dc: 16 08 add r8,r11 | |
800048de: 58 0c cp.w r12,0 | |
800048e0: c0 c1 brne 800048f8 <_free_r+0xb4> | |
800048e2: 4a be lddpc lr,8000498c <_free_r+0x148> | |
800048e4: 72 2b ld.w r11,r9[0x8] | |
800048e6: 2f 8e sub lr,-8 | |
800048e8: 1c 3b cp.w r11,lr | |
800048ea: c0 71 brne 800048f8 <_free_r+0xb4> | |
800048ec: 97 36 st.w r11[0xc],r6 | |
800048ee: 97 26 st.w r11[0x8],r6 | |
800048f0: 8d 2b st.w r6[0x8],r11 | |
800048f2: 8d 3b st.w r6[0xc],r11 | |
800048f4: 30 1c mov r12,1 | |
800048f6: c0 58 rjmp 80004900 <_free_r+0xbc> | |
800048f8: 72 2b ld.w r11,r9[0x8] | |
800048fa: 72 39 ld.w r9,r9[0xc] | |
800048fc: 93 2b st.w r9[0x8],r11 | |
800048fe: 97 39 st.w r11[0xc],r9 | |
80004900: 10 99 mov r9,r8 | |
80004902: ec 08 09 08 st.w r6[r8],r8 | |
80004906: a1 a9 sbr r9,0x0 | |
80004908: 8d 19 st.w r6[0x4],r9 | |
8000490a: 58 0c cp.w r12,0 | |
8000490c: c6 71 brne 800049da <_free_r+0x196> | |
8000490e: e0 48 01 ff cp.w r8,511 | |
80004912: e0 8b 00 13 brhi 80004938 <_free_r+0xf4> | |
80004916: a3 98 lsr r8,0x3 | |
80004918: f4 08 00 39 add r9,r10,r8<<0x3 | |
8000491c: 72 2b ld.w r11,r9[0x8] | |
8000491e: 8d 39 st.w r6[0xc],r9 | |
80004920: 8d 2b st.w r6[0x8],r11 | |
80004922: 97 36 st.w r11[0xc],r6 | |
80004924: 93 26 st.w r9[0x8],r6 | |
80004926: a3 48 asr r8,0x2 | |
80004928: 74 19 ld.w r9,r10[0x4] | |
8000492a: 30 1b mov r11,1 | |
8000492c: f6 08 09 48 lsl r8,r11,r8 | |
80004930: f3 e8 10 08 or r8,r9,r8 | |
80004934: 95 18 st.w r10[0x4],r8 | |
80004936: c5 28 rjmp 800049da <_free_r+0x196> | |
80004938: f0 09 16 09 lsr r9,r8,0x9 | |
8000493c: 58 49 cp.w r9,4 | |
8000493e: e0 8b 00 06 brhi 8000494a <_free_r+0x106> | |
80004942: f0 0b 16 06 lsr r11,r8,0x6 | |
80004946: 2c 8b sub r11,-56 | |
80004948: c2 d8 rjmp 800049a2 <_free_r+0x15e> | |
8000494a: 59 49 cp.w r9,20 | |
8000494c: e0 8b 00 05 brhi 80004956 <_free_r+0x112> | |
80004950: f2 cb ff a5 sub r11,r9,-91 | |
80004954: c2 78 rjmp 800049a2 <_free_r+0x15e> | |
80004956: e0 49 00 54 cp.w r9,84 | |
8000495a: e0 8b 00 06 brhi 80004966 <_free_r+0x122> | |
8000495e: f0 0b 16 0c lsr r11,r8,0xc | |
80004962: 29 2b sub r11,-110 | |
80004964: c1 f8 rjmp 800049a2 <_free_r+0x15e> | |
80004966: e0 49 01 54 cp.w r9,340 | |
8000496a: e0 8b 00 06 brhi 80004976 <_free_r+0x132> | |
8000496e: f0 0b 16 0f lsr r11,r8,0xf | |
80004972: 28 9b sub r11,-119 | |
80004974: c1 78 rjmp 800049a2 <_free_r+0x15e> | |
80004976: f0 0b 16 12 lsr r11,r8,0x12 | |
8000497a: e0 49 05 54 cp.w r9,1364 | |
8000497e: e0 88 00 11 brls 800049a0 <_free_r+0x15c> | |
80004982: 37 eb mov r11,126 | |
80004984: c0 f8 rjmp 800049a2 <_free_r+0x15e> | |
80004986: 00 00 add r0,r0 | |
80004988: 80 00 ld.sh r0,r0[0x0] | |
8000498a: 47 70 lddsp r0,sp[0x1dc] | |
8000498c: 00 00 add r0,r0 | |
8000498e: 01 5c ld.sh r12,--r0 | |
80004990: 00 00 add r0,r0 | |
80004992: 05 64 ld.uh r4,--r2 | |
80004994: 00 00 add r0,r0 | |
80004996: 05 88 ld.ub r8,r2[0x0] | |
80004998: 80 00 ld.sh r0,r0[0x0] | |
8000499a: 47 9c lddsp r12,sp[0x1e4] | |
8000499c: 80 00 ld.sh r0,r0[0x0] | |
8000499e: 47 72 lddsp r2,sp[0x1dc] | |
800049a0: 28 4b sub r11,-124 | |
800049a2: f4 0b 00 3c add r12,r10,r11<<0x3 | |
800049a6: 78 29 ld.w r9,r12[0x8] | |
800049a8: 18 39 cp.w r9,r12 | |
800049aa: c0 e1 brne 800049c6 <_free_r+0x182> | |
800049ac: 74 18 ld.w r8,r10[0x4] | |
800049ae: a3 4b asr r11,0x2 | |
800049b0: 30 1c mov r12,1 | |
800049b2: f8 0b 09 4b lsl r11,r12,r11 | |
800049b6: f1 eb 10 0b or r11,r8,r11 | |
800049ba: 12 98 mov r8,r9 | |
800049bc: 95 1b st.w r10[0x4],r11 | |
800049be: c0 a8 rjmp 800049d2 <_free_r+0x18e> | |
800049c0: 72 29 ld.w r9,r9[0x8] | |
800049c2: 18 39 cp.w r9,r12 | |
800049c4: c0 60 breq 800049d0 <_free_r+0x18c> | |
800049c6: 72 1a ld.w r10,r9[0x4] | |
800049c8: e0 1a ff fc andl r10,0xfffc | |
800049cc: 14 38 cp.w r8,r10 | |
800049ce: cf 93 brcs 800049c0 <_free_r+0x17c> | |
800049d0: 72 38 ld.w r8,r9[0xc] | |
800049d2: 8d 38 st.w r6[0xc],r8 | |
800049d4: 8d 29 st.w r6[0x8],r9 | |
800049d6: 93 36 st.w r9[0xc],r6 | |
800049d8: 91 26 st.w r8[0x8],r6 | |
800049da: 0e 9c mov r12,r7 | |
800049dc: f0 1f 00 02 mcall 800049e4 <_free_r+0x1a0> | |
800049e0: d8 22 popm r4-r7,pc | |
800049e2: 00 00 add r0,r0 | |
800049e4: 80 00 ld.sh r0,r0[0x0] | |
800049e6: 47 72 lddsp r2,sp[0x1dc] | |
800049e8 <__do_global_ctors_aux>: | |
800049e8: eb cd 40 80 pushm r7,lr | |
800049ec: 48 67 lddpc r7,80004a04 <__do_global_ctors_aux+0x1c> | |
800049ee: ee f8 ff fc ld.w r8,r7[-4] | |
800049f2: 5b f8 cp.w r8,-1 | |
800049f4: c0 60 breq 80004a00 <__do_global_ctors_aux+0x18> | |
800049f6: 20 47 sub r7,4 | |
800049f8: 5d 18 icall r8 | |
800049fa: 0f 48 ld.w r8,--r7 | |
800049fc: 5b f8 cp.w r8,-1 | |
800049fe: cf d1 brne 800049f8 <__do_global_ctors_aux+0x10> | |
80004a00: e3 cd 80 80 ldm sp++,r7,pc | |
80004a04: 00 00 add r0,r0 | |
80004a06: 00 08 add r8,r0 | |
Disassembly of section .exception_handlers: | |
80004c00 <EVBA_Table>: | |
80004c00: c0 08 rjmp 80004c00 <EVBA_Table> | |
... | |
80004c04 <Exception_TLB_Multiple_Hit>: | |
80004c04: c0 08 rjmp 80004c04 <Exception_TLB_Multiple_Hit> | |
... | |
80004c08 <Exception_Bus_Error_Data_Fetch>: | |
80004c08: c0 08 rjmp 80004c08 <Exception_Bus_Error_Data_Fetch> | |
... | |
80004c0c <Exception_Bus_Error_Instruction_Fetch>: | |
80004c0c: c0 08 rjmp 80004c0c <Exception_Bus_Error_Instruction_Fetch> | |
... | |
80004c10 <Exception_NMI>: | |
80004c10: c0 08 rjmp 80004c10 <Exception_NMI> | |
... | |
80004c14 <Exception_Instruction_Address>: | |
80004c14: c0 08 rjmp 80004c14 <Exception_Instruction_Address> | |
... | |
80004c18 <Exception_ITLB_Protection>: | |
80004c18: c0 08 rjmp 80004c18 <Exception_ITLB_Protection> | |
... | |
80004c1c <Exception_OCD_Breakpoint>: | |
80004c1c: c0 08 rjmp 80004c1c <Exception_OCD_Breakpoint> | |
... | |
80004c20 <Exception_Illegal_Opcode>: | |
80004c20: c0 08 rjmp 80004c20 <Exception_Illegal_Opcode> | |
... | |
80004c24 <Exception_Unimplemented_Instruction>: | |
80004c24: c0 08 rjmp 80004c24 <Exception_Unimplemented_Instruction> | |
... | |
80004c28 <Exception_Privilege_Violation>: | |
80004c28: c0 08 rjmp 80004c28 <Exception_Privilege_Violation> | |
... | |
80004c2c <Exception_Floating_Point>: | |
80004c2c: c0 08 rjmp 80004c2c <Exception_Floating_Point> | |
... | |
80004c30 <Exception_Coprocessor_Absent>: | |
80004c30: c0 08 rjmp 80004c30 <Exception_Coprocessor_Absent> | |
... | |
80004c34 <Exception_Data_Address_Read>: | |
80004c34: c0 08 rjmp 80004c34 <Exception_Data_Address_Read> | |
... | |
80004c38 <Exception_Data_Address_Write>: | |
80004c38: c0 08 rjmp 80004c38 <Exception_Data_Address_Write> | |
... | |
80004c3c <Exception_DTLB_Protection_Read>: | |
80004c3c: c0 08 rjmp 80004c3c <Exception_DTLB_Protection_Read> | |
... | |
80004c40 <Exception_DTLB_Protection_Write>: | |
80004c40: c0 08 rjmp 80004c40 <Exception_DTLB_Protection_Write> | |
... | |
80004c44 <Exception_DTLB_Modified>: | |
80004c44: c0 08 rjmp 80004c44 <Exception_DTLB_Modified> | |
... | |
80004c50 <Exception_ITLB_Miss>: | |
80004c50: c0 08 rjmp 80004c50 <Exception_ITLB_Miss> | |
... | |
80004c60 <Exception_DTLB_Miss_Read>: | |
80004c60: c0 08 rjmp 80004c60 <Exception_DTLB_Miss_Read> | |
... | |
80004c70 <Exception_DTLB_Miss_Write>: | |
80004c70: c0 08 rjmp 80004c70 <Exception_DTLB_Miss_Write> | |
... | |
80004d00 <Exception_Supervisor_Call>: | |
80004d00: c0 08 rjmp 80004d00 <Exception_Supervisor_Call> | |
... | |
80004d04 <Exception_INT0>: | |
80004d04: 30 0c mov r12,0 | |
80004d06: f0 1f 00 0c mcall 80004d34 <Autovector_Table+0x10> | |
80004d0a: 18 9f mov pc,r12 | |
80004d0c <Exception_INT1>: | |
80004d0c: 30 1c mov r12,1 | |
80004d0e: f0 1f 00 0a mcall 80004d34 <Autovector_Table+0x10> | |
80004d12: 18 9f mov pc,r12 | |
80004d14 <Exception_INT2>: | |
80004d14: 30 2c mov r12,2 | |
80004d16: f0 1f 00 08 mcall 80004d34 <Autovector_Table+0x10> | |
80004d1a: 18 9f mov pc,r12 | |
80004d1c <Exception_INT3>: | |
80004d1c: 30 3c mov r12,3 | |
80004d1e: f0 1f 00 06 mcall 80004d34 <Autovector_Table+0x10> | |
80004d22: 18 9f mov pc,r12 | |
80004d24 <Autovector_Table>: | |
80004d24: 00 00 add r0,r0 | |
80004d26: 01 04 ld.w r4,r0++ | |
80004d28: 40 00 lddsp r0,sp[0x0] | |
80004d2a: 01 0c ld.w r12,r0++ | |
80004d2c: 80 00 ld.sh r0,r0[0x0] | |
80004d2e: 01 14 ld.sh r4,r0++ | |
80004d30: c0 00 breq 80004d30 <Autovector_Table+0xc> | |
80004d32: 01 1c ld.sh r12,r0++ | |
80004d34: 80 00 ld.sh r0,r0[0x0] | |
80004d36: 3c a4 mov r4,-54 | |
... | |
Disassembly of section .fini: | |
80004e00 <_fini>: | |
80004e00: eb cd 40 40 pushm r6,lr | |
80004e04: 48 26 lddpc r6,80004e0c <_fini+0xc> | |
80004e06: 1e 26 rsub r6,pc | |
80004e08: c0 48 rjmp 80004e10 <_fini+0x10> | |
80004e0a: 00 00 add r0,r0 | |
80004e0c: 80 00 ld.sh r0,r0[0x0] | |
80004e0e: 4d ee lddpc lr,80004f84 <_data_lma+0x104> | |
80004e10: f0 16 00 02 mcall r6[8] | |
80004e14: e3 cd 80 40 ldm sp++,r6,pc |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Archive member included because of file (symbol) | |
aery32/libaery32_uc3a1128.a(gpio.o) | |
obj/board.o (aery::porta) | |
aery32/libaery32_uc3a1128.a(pm.o) | |
obj/board.o (aery::pm) | |
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_CurrentlySelfPowered) | |
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-memset.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-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-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 | |
.data 0x00000000 0x0 obj/board.o | |
.bss 0x00000000 0x0 obj/board.o | |
.bss 0x00000000 0x0 obj/main.o | |
.data 0x00000000 0x0 obj/Descriptors.o | |
.bss 0x00000000 0x0 obj/Descriptors.o | |
.bss 0x00000000 0x0 aery32/libaery32_uc3a1128.a(gpio.o) | |
.bss 0x00000000 0x0 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 0xa0 liblufa.a(CDCClassDevice.o) | |
.text.CDC_Device_SendData | |
0x00000000 0x48 liblufa.a(CDCClassDevice.o) | |
.text.CDC_Device_SendString | |
0x00000000 0x50 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 0x54 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 0x17c liblufa.a(EndpointStream_UC3.o) | |
.text.Endpoint_Read_Control_Stream_LE | |
0x00000000 0x10c liblufa.a(EndpointStream_UC3.o) | |
.text.Endpoint_Read_Control_Stream_BE | |
0x00000000 0x11c liblufa.a(EndpointStream_UC3.o) | |
.text.Endpoint_Null_Stream | |
0x00000000 0xac liblufa.a(EndpointStream_UC3.o) | |
.text.Endpoint_Discard_Stream | |
0x00000000 0xa4 liblufa.a(EndpointStream_UC3.o) | |
.text.Endpoint_Read_Stream_BE | |
0x00000000 0xbc liblufa.a(EndpointStream_UC3.o) | |
.text.Endpoint_Read_Stream_LE | |
0x00000000 0xb4 liblufa.a(EndpointStream_UC3.o) | |
.text.Endpoint_Write_Stream_BE | |
0x00000000 0xbc liblufa.a(EndpointStream_UC3.o) | |
.text.Endpoint_Write_Stream_LE | |
0x00000000 0xb4 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-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) | |
.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-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 0x29e4 | |
*(.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 0x8000210c 0x100 obj/board.o | |
0x8000210c init_board() | |
.text 0x8000220c 0x144 obj/main.o | |
0x80002242 EVENT_USB_Device_Connect | |
0x8000224c EVENT_USB_Device_Disconnect | |
0x80002256 EVENT_USB_Device_ControlRequest | |
0x80002270 EVENT_USB_Device_ConfigurationChanged | |
0x80002288 main | |
.text 0x80002350 0x154 obj/Descriptors.o | |
0x80002350 DeviceDescriptor | |
0x80002362 ConfigurationDescriptor | |
0x800023a0 LanguageString | |
0x800023a4 ManufacturerString | |
0x800023bc ProductString | |
0x800023d8 CALLBACK_USB_GetDescriptor | |
.text 0x800024a4 0x240 aery32/libaery32_uc3a1128.a(gpio.o) | |
0x800024a4 aery::gpio_init_pins(avr32_gpio_port_t volatile*, unsigned long, int) | |
0x8000269c aery::gpio_init_pin(unsigned char, int) | |
.text 0x800026e4 0x854 aery32/libaery32_uc3a1128.a(pm.o) | |
0x800026e4 aery::pm_start_osc(unsigned char, aery::Pm_osc_mode, aery::Pm_osc_startup) | |
0x80002850 aery::pm_init_pllvco(avr32_pm_pll_t volatile*, aery::Pm_pll_source, unsigned char, unsigned char, bool) | |
0x80002936 aery::pm_enable_pll(avr32_pm_pll_t volatile*, bool) | |
0x800029b0 aery::pm_init_gclk(aery::Pm_gclk, aery::Pm_gclk_source, unsigned short) | |
0x80002aa0 aery::pm_wait_osc_to_stabilize(unsigned char) | |
0x80002afa aery::pm_wait_pll_to_lock(avr32_pm_pll_t volatile*) | |
0x80002b4e aery::pm_enable_gclk(aery::Pm_gclk) | |
0x80002b7a aery::pm_disable_gclk(aery::Pm_gclk) | |
0x80002bc8 aery::pm_select_mck(aery::Pm_mck_source) | |
0x80002bf4 aery::pm_get_fmck() | |
0x80002cf2 aery::pm_setup_clkdomain(unsigned char, unsigned char) | |
0x80002e70 aery::pm_get_fclkdomain(unsigned char) | |
.text.USB_ResetInterface | |
0x80002f38 0xf0 liblufa.a(USBController_UC3.o) | |
0x80002f38 USB_ResetInterface | |
.text.USB_Init | |
0x80003028 0x28 liblufa.a(USBController_UC3.o) | |
0x80003028 USB_Init | |
.text.USB_INT_DisableAllInterrupts | |
0x80003050 0x28 liblufa.a(USBInterrupt_UC3.o) | |
0x80003050 USB_INT_DisableAllInterrupts | |
.text.USB_INT_ClearAllInterrupts | |
0x80003078 0x28 liblufa.a(USBInterrupt_UC3.o) | |
0x80003078 USB_INT_ClearAllInterrupts | |
.text.USB_GEN_vect | |
0x800030a0 0x198 liblufa.a(USBInterrupt_UC3.o) | |
0x800030a0 USB_GEN_vect | |
.text 0x80003238 0x28 liblufa.a(DeviceStandardReq.o) | |
.text.USB_Device_ProcessControlRequest | |
0x80003260 0x510 liblufa.a(DeviceStandardReq.o) | |
0x80003260 USB_Device_ProcessControlRequest | |
.text.USB_Event_Stub | |
0x80003770 0x2 liblufa.a(Events.o) | |
0x80003770 USB_Event_Stub | |
0x80003770 EVENT_USB_Device_Suspend | |
0x80003770 EVENT_USB_Device_StartOfFrame | |
0x80003770 EVENT_USB_Device_Reset | |
0x80003770 EVENT_USB_Device_WakeUp | |
*fill* 0x80003772 0x2 d703d703 | |
.text.USB_USBTask | |
0x80003774 0x48 liblufa.a(USBTask.o) | |
0x80003774 USB_USBTask | |
.text.CDC_Device_Event_Stub | |
0x800037bc 0x2 liblufa.a(CDCClassDevice.o) | |
0x800037bc EVENT_CDC_Device_ControLineStateChanged | |
0x800037bc EVENT_CDC_Device_BreakSent | |
0x800037bc CDC_Device_Event_Stub | |
0x800037bc EVENT_CDC_Device_LineEncodingChanged | |
*fill* 0x800037be 0x2 d703d703 | |
.text.CDC_Device_Flush | |
0x800037c0 0xc8 liblufa.a(CDCClassDevice.o) | |
0x800037c0 CDC_Device_Flush | |
.text.CDC_Device_USBTask | |
0x80003888 0x2c liblufa.a(CDCClassDevice.o) | |
0x80003888 CDC_Device_USBTask | |
.text.CDC_Device_SendByte | |
0x800038b4 0x9c liblufa.a(CDCClassDevice.o) | |
0x800038b4 CDC_Device_SendByte | |
.text.CDC_Device_ConfigureEndpoints | |
0x80003950 0x4c liblufa.a(CDCClassDevice.o) | |
0x80003950 CDC_Device_ConfigureEndpoints | |
.text.CDC_Device_ProcessControlRequest | |
0x8000399c 0x304 liblufa.a(CDCClassDevice.o) | |
0x8000399c CDC_Device_ProcessControlRequest | |
.text.Unhandled_Interrupt | |
0x80003ca0 0x2 liblufa.a(InterruptManagement.o) | |
0x80003ca0 Unhandled_Interrupt | |
*fill* 0x80003ca2 0x2 d703d703 | |
.text.INTC_GetInterruptHandler | |
0x80003ca4 0x1c liblufa.a(InterruptManagement.o) | |
0x80003ca4 INTC_GetInterruptHandler | |
.text.INTC_Init | |
0x80003cc0 0x34 liblufa.a(InterruptManagement.o) | |
0x80003cc0 INTC_Init | |
.text.Endpoint_ConfigureEndpoint_Prv | |
0x80003cf4 0xa4 liblufa.a(Endpoint_UC3.o) | |
0x80003cf4 Endpoint_ConfigureEndpoint_Prv | |
.text.Endpoint_ConfigureEndpointTable | |
0x80003d98 0x78 liblufa.a(Endpoint_UC3.o) | |
0x80003d98 Endpoint_ConfigureEndpointTable | |
.text.Endpoint_ClearStatusStage | |
0x80003e10 0xa4 liblufa.a(Endpoint_UC3.o) | |
0x80003e10 Endpoint_ClearStatusStage | |
.text.Endpoint_WaitUntilReady | |
0x80003eb4 0x98 liblufa.a(Endpoint_UC3.o) | |
0x80003eb4 Endpoint_WaitUntilReady | |
.text.Endpoint_Write_Control_Stream_LE | |
0x80003f4c 0x174 liblufa.a(EndpointStream_UC3.o) | |
0x80003f4c Endpoint_Write_Control_Stream_LE | |
.text.atexit 0x800040c0 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) | |
0x800040c0 atexit | |
.text.exit 0x800040d4 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) | |
0x800040d4 exit | |
.text.memset 0x800040fc 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) | |
0x800040fc memset | |
.text._init_startup | |
0x8000410a 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) | |
0x8000410a _init_startup | |
.text._init_argv | |
0x8000410c 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) | |
0x8000410c _init_argv | |
.text._exit 0x80004116 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) | |
0x80004116 _exit | |
.text._sbrk 0x80004120 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) | |
0x80004120 _sbrk | |
.text.__register_exitproc | |
0x80004160 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) | |
0x80004160 __register_exitproc | |
.text.__call_exitprocs | |
0x8000420c 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) | |
0x8000420c __call_exitprocs | |
.text.__errno 0x800042e0 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) | |
0x800042e0 __errno | |
.text.free 0x800042ec 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) | |
0x800042ec free | |
.text.malloc 0x80004304 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) | |
0x80004304 malloc | |
.text._malloc_r | |
0x8000431c 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) | |
0x8000431c _malloc_r | |
.text.__malloc_lock | |
0x80004770 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) | |
0x80004770 __malloc_lock | |
.text.__malloc_unlock | |
0x80004772 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) | |
0x80004772 __malloc_unlock | |
.text._sbrk_r 0x80004774 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) | |
0x80004774 _sbrk_r | |
.text._malloc_trim_r | |
0x8000479c 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) | |
0x8000479c _malloc_trim_r | |
.text._free_r 0x80004844 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) | |
0x80004844 _free_r | |
.text 0x800049e8 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 | |
0x80004c00 0x200 | |
.exception_handlers | |
0x80004c00 0x200 liblufa.a(Exception.o) | |
0x80004c00 EVBA_Table | |
0x80004d24 Autovector_Table | |
.fini 0x80004e00 0x18 | |
*(.fini) | |
.fini 0x80004e00 0x10 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crti.o | |
0x80004e00 _fini | |
.fini 0x80004e10 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o | |
.fini 0x80004e14 0x4 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtn.o | |
0x80004e18 PROVIDE (__etext, .) | |
0x80004e18 PROVIDE (_etext, .) | |
0x80004e18 PROVIDE (etext, .) | |
.rodata 0x80004e18 0x68 | |
*(.rodata .rodata.* .gnu.linkonce.r.*) | |
.rodata.str1.4 | |
0x80004e18 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 | |
0x80004e1c 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) | |
0x80004e1c _global_impure_ptr | |
.rodata.__sf_fake_stdin | |
0x80004e20 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) | |
0x80004e20 __sf_fake_stdin | |
.rodata.__sf_fake_stdout | |
0x80004e40 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) | |
0x80004e40 __sf_fake_stdout | |
.rodata.__sf_fake_stderr | |
0x80004e60 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) | |
0x80004e60 __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 0x80004e80 0x0 | |
0x80004e80 . = ALIGN (0x8) | |
0x80004e80 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 0x80004e80 | |
*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 0x80004e88 | |
*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 0x80004e90 | |
*(.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 0x80004e94 | |
*(.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 0x548 load address 0x80004ea0 | |
*(.data .data.* .gnu.linkonce.d.*) | |
.data 0x00000024 0x20 obj/main.o | |
0x00000024 VirtualSerial_CDC_Interface | |
.data 0x00000044 0x18 aery32/libaery32_uc3a1128.a(gpio.o) | |
0x00000044 aery::porta | |
0x00000048 aery::portb | |
0x0000004c aery::portc | |
0x00000050 aery::lporta | |
0x00000054 aery::lportb | |
0x00000058 aery::lportc | |
.data 0x0000005c 0xc aery32/libaery32_uc3a1128.a(pm.o) | |
0x0000005c aery::pm | |
0x00000060 aery::pll0 | |
0x00000064 aery::pll1 | |
.data.impure_data | |
0x00000068 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 | |
0x00000158 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) | |
0x00000158 _impure_ptr | |
.data.__malloc_av_ | |
0x0000015c 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) | |
0x0000015c __malloc_av_ | |
.data.__malloc_trim_threshold | |
0x00000564 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) | |
0x00000564 __malloc_trim_threshold | |
.data.__malloc_sbrk_base | |
0x00000568 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) | |
0x00000568 __malloc_sbrk_base | |
*(.gnu.linkonce.d.*personality*) | |
.data1 | |
*(.data1) | |
.balign 0x0000056c 0x4 load address 0x800053e8 | |
0x00000570 . = ALIGN (0x8) | |
*fill* 0x0000056c 0x4 00 | |
0x00000570 _edata = . | |
0x00000570 _edata = . | |
0x00000570 PROVIDE (edata, .) | |
0x00000570 __bss_start = . | |
.bss 0x00000570 0xc8 load address 0x800053e8 | |
*(.dynbss) | |
*(.bss .bss.* .gnu.linkonce.b.*) | |
.bss 0x00000570 0x8 c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtbegin.o | |
.bss 0x00000578 0x4 liblufa.a(Endpoint_UC3.o) | |
0x00000578 USB_Endpoint_SelectedEndpoint | |
.bss.cur_heap_pos.1869 | |
0x0000057c 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 | |
0x00000580 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) | |
0x00000580 __malloc_max_total_mem | |
.bss.__malloc_max_sbrked_mem | |
0x00000584 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) | |
0x00000584 __malloc_max_sbrked_mem | |
.bss.__malloc_top_pad | |
0x00000588 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) | |
0x00000588 __malloc_top_pad | |
.bss.__malloc_current_mallinfo | |
0x0000058c 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) | |
0x0000058c __malloc_current_mallinfo | |
*(COMMON) | |
COMMON 0x000005b4 0x3 liblufa.a(DeviceStandardReq.o) | |
0x000005b4 USB_Device_ConfigurationNumber | |
0x000005b5 USB_Device_CurrentlySelfPowered | |
0x000005b6 USB_Device_RemoteWakeupEnabled | |
COMMON 0x000005b7 0xa liblufa.a(USBTask.o) | |
0x000005b7 USB_IsInitialized | |
0x000005b8 USB_DeviceState | |
0x000005b9 USB_ControlRequest | |
*fill* 0x000005c1 0x3 00 | |
COMMON 0x000005c4 0x50 liblufa.a(InterruptManagement.o) | |
0x000005c4 InterruptHandlers | |
COMMON 0x00000614 0x1c liblufa.a(Endpoint_UC3.o) | |
0x00000614 USB_Endpoint_FIFOPos | |
COMMON 0x00000630 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) | |
0x00000630 errno | |
0x00000638 . = ALIGN (0x8) | |
*fill* 0x00000634 0x4 00 | |
0x00000638 . = ALIGN (0x8) | |
0x00000638 _end = . | |
0x00000638 PROVIDE (end, .) | |
0x00000638 __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-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-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 0x5c8 | |
*(.debug_aranges) | |
.debug_aranges | |
0x00000000 0x20 obj/board.o | |
.debug_aranges | |
0x00000020 0x20 obj/main.o | |
.debug_aranges | |
0x00000040 0x20 obj/Descriptors.o | |
.debug_aranges | |
0x00000060 0x20 aery32/libaery32_uc3a1128.a(gpio.o) | |
.debug_aranges | |
0x00000080 0x20 aery32/libaery32_uc3a1128.a(pm.o) | |
.debug_aranges | |
0x000000a0 0x30 liblufa.a(USBController_UC3.o) | |
.debug_aranges | |
0x000000d0 0x30 liblufa.a(USBInterrupt_UC3.o) | |
.debug_aranges | |
0x00000100 0x20 liblufa.a(DeviceStandardReq.o) | |
.debug_aranges | |
0x00000120 0x20 liblufa.a(Events.o) | |
.debug_aranges | |
0x00000140 0x20 liblufa.a(USBTask.o) | |
.debug_aranges | |
0x00000160 0x70 liblufa.a(CDCClassDevice.o) | |
.debug_aranges | |
0x000001d0 0x30 liblufa.a(InterruptManagement.o) | |
.debug_aranges | |
0x00000200 0x40 liblufa.a(Endpoint_UC3.o) | |
.debug_aranges | |
0x00000240 0x68 liblufa.a(EndpointStream_UC3.o) | |
.debug_aranges | |
0x000002a8 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 | |
0x000002c8 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 | |
0x000002e8 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_aranges | |
0x00000308 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 | |
0x00000400 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 | |
0x00000420 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 | |
0x00000440 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 | |
0x00000460 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 | |
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-malloc.o) | |
.debug_aranges | |
0x00000508 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 | |
0x00000528 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 | |
0x00000550 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 | |
0x00000580 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 | |
0x000005a0 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 0xeb3 | |
*(.debug_pubnames) | |
.debug_pubnames | |
0x00000000 0x21 obj/board.o | |
.debug_pubnames | |
0x00000021 0xc6 obj/main.o | |
.debug_pubnames | |
0x000000e7 0x9e obj/Descriptors.o | |
.debug_pubnames | |
0x00000185 0xa6 aery32/libaery32_uc3a1128.a(gpio.o) | |
.debug_pubnames | |
0x0000022b 0x177 aery32/libaery32_uc3a1128.a(pm.o) | |
.debug_pubnames | |
0x000003a2 0x46 liblufa.a(USBController_UC3.o) | |
.debug_pubnames | |
0x000003e8 0x63 liblufa.a(USBInterrupt_UC3.o) | |
.debug_pubnames | |
0x0000044b 0xa1 liblufa.a(DeviceStandardReq.o) | |
.debug_pubnames | |
0x000004ec 0x25 liblufa.a(Events.o) | |
.debug_pubnames | |
0x00000511 0x63 liblufa.a(USBTask.o) | |
.debug_pubnames | |
0x00000574 0x14b liblufa.a(CDCClassDevice.o) | |
.debug_pubnames | |
0x000006bf 0x6b liblufa.a(InterruptManagement.o) | |
.debug_pubnames | |
0x0000072a 0xea liblufa.a(Endpoint_UC3.o) | |
.debug_pubnames | |
0x00000814 0x14b liblufa.a(EndpointStream_UC3.o) | |
.debug_pubnames | |
0x0000095f 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 | |
0x0000097c 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 | |
0x00000997 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 | |
0x000009d0 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_pubnames | |
0x000009ed 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 | |
0x00000b5e 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 | |
0x00000b88 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 | |
0x00000baf 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 | |
0x00000bcd 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 | |
0x00000ce6 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 | |
0x00000d0c 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 | |
0x00000dda 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 | |
0x00000e12 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 | |
0x00000e64 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 | |
0x00000e82 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 0x5f973 | |
*(.debug_info .gnu.linkonce.wi.*) | |
.debug_info 0x00000000 0x1ae8 obj/board.o | |
.debug_info 0x00001ae8 0x8a7 obj/main.o | |
.debug_info 0x0000238f 0x723 obj/Descriptors.o | |
.debug_info 0x00002ab2 0x5bd aery32/libaery32_uc3a1128.a(gpio.o) | |
.debug_info 0x0000306f 0x1424 aery32/libaery32_uc3a1128.a(pm.o) | |
.debug_info 0x00004493 0xc6e6 liblufa.a(USBController_UC3.o) | |
.debug_info 0x00010b79 0xbac2 liblufa.a(USBInterrupt_UC3.o) | |
.debug_info 0x0001c63b 0xbd94 liblufa.a(DeviceStandardReq.o) | |
.debug_info 0x000283cf 0xa6 liblufa.a(Events.o) | |
.debug_info 0x00028475 0xb7e1 liblufa.a(USBTask.o) | |
.debug_info 0x00033c56 0xbf6f liblufa.a(CDCClassDevice.o) | |
.debug_info 0x0003fbc5 0x2f8 liblufa.a(InterruptManagement.o) | |
.debug_info 0x0003febd 0xbb57 liblufa.a(Endpoint_UC3.o) | |
.debug_info 0x0004ba14 0xbfba liblufa.a(EndpointStream_UC3.o) | |
.debug_info 0x000579ce 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 0x00057a93 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 0x0005834a 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 0x00058caa 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_info 0x00058d77 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 0x000596b1 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 0x00059fdd 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 0x0005a90e 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 0x0005b1b4 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 0x0005bdde 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 0x0005c6c8 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 0x0005d316 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 0x0005dbe5 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 0x0005e558 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 0x0005ee36 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 0x325d | |
*(.debug_abbrev) | |
.debug_abbrev 0x00000000 0x1a5 obj/board.o | |
.debug_abbrev 0x000001a5 0x241 obj/main.o | |
.debug_abbrev 0x000003e6 0x129 obj/Descriptors.o | |
.debug_abbrev 0x0000050f 0x135 aery32/libaery32_uc3a1128.a(gpio.o) | |
.debug_abbrev 0x00000644 0x22b aery32/libaery32_uc3a1128.a(pm.o) | |
.debug_abbrev 0x0000086f 0x22f liblufa.a(USBController_UC3.o) | |
.debug_abbrev 0x00000a9e 0x216 liblufa.a(USBInterrupt_UC3.o) | |
.debug_abbrev 0x00000cb4 0x2e0 liblufa.a(DeviceStandardReq.o) | |
.debug_abbrev 0x00000f94 0x4c liblufa.a(Events.o) | |
.debug_abbrev 0x00000fe0 0x206 liblufa.a(USBTask.o) | |
.debug_abbrev 0x000011e6 0x30f liblufa.a(CDCClassDevice.o) | |
.debug_abbrev 0x000014f5 0x18e liblufa.a(InterruptManagement.o) | |
.debug_abbrev 0x00001683 0x2ce liblufa.a(Endpoint_UC3.o) | |
.debug_abbrev 0x00001951 0x24a liblufa.a(EndpointStream_UC3.o) | |
.debug_abbrev 0x00001b9b 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 0x00001c1c 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 0x00001d7b 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 0x00001edb 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_abbrev 0x00001f60 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 0x000020fa 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 0x000022af 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 0x0000246b 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 0x000025bb 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 0x00002847 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 0x000029bf 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 0x00002bc4 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 0x00002d1f 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 0x00002f05 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 0x00003084 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 0xb854 | |
*(.debug_line) | |
.debug_line 0x00000000 0x322 obj/board.o | |
.debug_line 0x00000322 0xdf3 obj/main.o | |
.debug_line 0x00001115 0xc88 obj/Descriptors.o | |
.debug_line 0x00001d9d 0x332 aery32/libaery32_uc3a1128.a(gpio.o) | |
.debug_line 0x000020cf 0x3be aery32/libaery32_uc3a1128.a(pm.o) | |
.debug_line 0x0000248d 0x977 liblufa.a(USBController_UC3.o) | |
.debug_line 0x00002e04 0xb4e liblufa.a(USBInterrupt_UC3.o) | |
.debug_line 0x00003952 0xd1f liblufa.a(DeviceStandardReq.o) | |
.debug_line 0x00004671 0x549 liblufa.a(Events.o) | |
.debug_line 0x00004bba 0x85e liblufa.a(USBTask.o) | |
.debug_line 0x00005418 0x17b4 liblufa.a(CDCClassDevice.o) | |
.debug_line 0x00006bcc 0x5a1 liblufa.a(InterruptManagement.o) | |
.debug_line 0x0000716d 0xc26 liblufa.a(Endpoint_UC3.o) | |
.debug_line 0x00007d93 0x13b4 liblufa.a(EndpointStream_UC3.o) | |
.debug_line 0x00009147 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 0x00009243 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 0x00009438 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 0x0000959e 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) | |
.debug_line 0x0000971a 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 0x00009c7c 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 0x00009e9d 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 0x0000a101 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 0x0000a28d 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 0x0000a7e2 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 0x0000a9df 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 0x0000af0e 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 0x0000b0a0 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 0x0000b34a 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 0x0000b54a 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 0xedc | |
*(.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 0xb8 obj/main.o | |
.debug_frame 0x00000130 0x2c obj/Descriptors.o | |
.debug_frame 0x0000015c 0x48 aery32/libaery32_uc3a1128.a(gpio.o) | |
.debug_frame 0x000001a4 0x160 aery32/libaery32_uc3a1128.a(pm.o) | |
.debug_frame 0x00000304 0x64 liblufa.a(USBController_UC3.o) | |
.debug_frame 0x00000368 0x48 liblufa.a(USBInterrupt_UC3.o) | |
.debug_frame 0x000003b0 0x38 liblufa.a(DeviceStandardReq.o) | |
.debug_frame 0x000003e8 0x20 liblufa.a(Events.o) | |
.debug_frame 0x00000408 0x34 liblufa.a(USBTask.o) | |
.debug_frame 0x0000043c 0x14c liblufa.a(CDCClassDevice.o) | |
.debug_frame 0x00000588 0x40 liblufa.a(InterruptManagement.o) | |
.debug_frame 0x000005c8 0xd4 liblufa.a(Endpoint_UC3.o) | |
.debug_frame 0x0000069c 0x1dc liblufa.a(EndpointStream_UC3.o) | |
.debug_frame 0x00000878 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 0x000008a0 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 0x000008d4 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_frame 0x000008f4 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 0x00000b14 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 0x00000b54 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 0x00000b98 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 0x00000bb8 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 0x00000cf4 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 0x00000d34 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 0x00000d74 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 0x00000da4 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 0x00000e24 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 0x00000e58 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 0x00000eb0 0x2c c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr32/4.4.3/ucr2/crtend.o | |
.debug_str 0x00000000 0x69bf | |
*(.debug_str) | |
.debug_str 0x00000000 0x9aa obj/board.o | |
0xa17 (size before relaxing) | |
.debug_str 0x000009aa 0x34a obj/main.o | |
0x59e (size before relaxing) | |
.debug_str 0x00000cf4 0x8c0 obj/Descriptors.o | |
0xa4f (size before relaxing) | |
.debug_str 0x000015b4 0x134 aery32/libaery32_uc3a1128.a(gpio.o) | |
0x33f (size before relaxing) | |
.debug_str 0x000016e8 0x324 aery32/libaery32_uc3a1128.a(pm.o) | |
0xa4b (size before relaxing) | |
.debug_str 0x00001a0c 0x314d liblufa.a(USBController_UC3.o) | |
0x37ad (size before relaxing) | |
.debug_str 0x00004b59 0xfe liblufa.a(USBInterrupt_UC3.o) | |
0x33d6 (size before relaxing) | |
.debug_str 0x00004c57 0x498 liblufa.a(DeviceStandardReq.o) | |
0x36fd (size before relaxing) | |
.debug_str 0x000050ef 0x2e liblufa.a(Events.o) | |
0x10e (size before relaxing) | |
.debug_str 0x0000511d 0x82 liblufa.a(USBTask.o) | |
0x32cc (size before relaxing) | |
.debug_str 0x0000519f 0x4d7 liblufa.a(CDCClassDevice.o) | |
0x3894 (size before relaxing) | |
.debug_str 0x00005676 0x79 liblufa.a(InterruptManagement.o) | |
0x22d (size before relaxing) | |
.debug_str 0x000056ef 0x17f liblufa.a(Endpoint_UC3.o) | |
0x3561 (size before relaxing) | |
.debug_str 0x0000586e 0x239 liblufa.a(EndpointStream_UC3.o) | |
0x3614 (size before relaxing) | |
.debug_str 0x00005aa7 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 0x00005b2f 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 0x00005ed9 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 0x00005f7b 0x66 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) | |
0xfb (size before relaxing) | |
.debug_str 0x00005fe1 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 0x000062fe 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 0x0000636c 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 0x000063ea 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 0x00006448 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 0x00006567 0x70 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 0x000065d7 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 0x000067fc 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 0x00006886 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 0x00006916 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 0x00006983 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 0x2860 | |
*(.debug_loc) | |
.debug_loc 0x00000000 0x2b obj/board.o | |
.debug_loc 0x0000002b 0x102 obj/main.o | |
.debug_loc 0x0000012d 0x2b obj/Descriptors.o | |
.debug_loc 0x00000158 0x56 aery32/libaery32_uc3a1128.a(gpio.o) | |
.debug_loc 0x000001ae 0x204 aery32/libaery32_uc3a1128.a(pm.o) | |
.debug_loc 0x000003b2 0x5d liblufa.a(USBController_UC3.o) | |
.debug_loc 0x0000040f 0x1f liblufa.a(USBInterrupt_UC3.o) | |
.debug_loc 0x0000042e 0x139 liblufa.a(DeviceStandardReq.o) | |
.debug_loc 0x00000567 0x1f liblufa.a(USBTask.o) | |
.debug_loc 0x00000586 0x3c8 liblufa.a(CDCClassDevice.o) | |
.debug_loc 0x0000094e 0x13 liblufa.a(InterruptManagement.o) | |
.debug_loc 0x00000961 0x1d9 liblufa.a(Endpoint_UC3.o) | |
.debug_loc 0x00000b3a 0xb7a liblufa.a(EndpointStream_UC3.o) | |
.debug_loc 0x000016b4 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 0x000016e6 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 0x00001723 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 0x0000198b 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 0x00001a74 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 0x00001b64 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 0x00001d66 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 0x00001dca 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 0x0000236f 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 0x00002479 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 0x000024dc 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 0xbc2217 | |
*(.debug_macinfo) | |
.debug_macinfo | |
0x00000000 0xd3074 obj/board.o | |
.debug_macinfo | |
0x000d3074 0xde2ff obj/main.o | |
.debug_macinfo | |
0x001b1373 0xdce3a obj/Descriptors.o | |
.debug_macinfo | |
0x0028e1ad 0xd2ec5 aery32/libaery32_uc3a1128.a(gpio.o) | |
.debug_macinfo | |
0x00361072 0xd2f48 aery32/libaery32_uc3a1128.a(pm.o) | |
.debug_macinfo | |
0x00433fba 0xd6279 liblufa.a(USBController_UC3.o) | |
.debug_macinfo | |
0x0050a233 0xd626a liblufa.a(USBInterrupt_UC3.o) | |
.debug_macinfo | |
0x005e049d 0xd6638 liblufa.a(DeviceStandardReq.o) | |
.debug_macinfo | |
0x006b6ad5 0xd5791 liblufa.a(Events.o) | |
.debug_macinfo | |
0x0078c266 0xd627e liblufa.a(USBTask.o) | |
.debug_macinfo | |
0x008624e4 0xdd4f9 liblufa.a(CDCClassDevice.o) | |
.debug_macinfo | |
0x0093f9dd 0xd5749 liblufa.a(InterruptManagement.o) | |
.debug_macinfo | |
0x00a15126 0xd627e liblufa.a(Endpoint_UC3.o) | |
.debug_macinfo | |
0x00aeb3a4 0xd6e73 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 0xe10 | |
.debug_ranges 0x00000000 0x70 liblufa.a(USBController_UC3.o) | |
.debug_ranges 0x00000070 0x70 liblufa.a(USBInterrupt_UC3.o) | |
.debug_ranges 0x000000e0 0x180 liblufa.a(DeviceStandardReq.o) | |
.debug_ranges 0x00000260 0x18 liblufa.a(Events.o) | |
.debug_ranges 0x00000278 0x18 liblufa.a(USBTask.o) | |
.debug_ranges 0x00000290 0x1f0 liblufa.a(CDCClassDevice.o) | |
.debug_ranges 0x00000480 0x28 liblufa.a(InterruptManagement.o) | |
.debug_ranges 0x000004a8 0x1a0 liblufa.a(Endpoint_UC3.o) | |
.debug_ranges 0x00000648 0x4e0 liblufa.a(EndpointStream_UC3.o) | |
.debug_ranges 0x00000b28 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 0x00000b40 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 0x00000b58 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_ranges 0x00000b70 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 0x00000c60 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 0x00000c78 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 0x00000c90 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 0x00000ca8 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 0x00000d58 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 0x00000d78 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 0x00000d90 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 0x00000db0 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 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-sbrkr.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-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) | |
liblufa.a(CDCClassDevice.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) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Interrupts do not work. EVENT_USB_Device_ControlRequest() won't be called and Windows recognizes board as unkown device.