Commit 293ffe09 authored by BuildTools's avatar BuildTools
Browse files

Tried to fix PWM, not working yet

parent 65f56d48

Microsoft Visual Studio Solution File, Format Version 12.00
# Atmel Studio Solution File, Format Version 11.00
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "PWM", "PWM\PWM.cproj", "{DCE6C7E3-EE26-4D79-826B-08594B9AD897}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AVR = Debug|AVR
Release|AVR = Release|AVR
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.ActiveCfg = Debug|AVR
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.Build.0 = Debug|AVR
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.ActiveCfg = Release|AVR
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.Build.0 = Release|AVR
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
SHELL := cmd.exe
RM := rm -rf
USER_OBJS :=
LIBS :=
PROJ :=
O_SRCS :=
C_SRCS :=
S_SRCS :=
S_UPPER_SRCS :=
OBJ_SRCS :=
ASM_SRCS :=
PREPROCESSING_SRCS :=
OBJS :=
OBJS_AS_ARGS :=
C_DEPS :=
C_DEPS_AS_ARGS :=
EXECUTABLES :=
OUTPUT_FILE_PATH :=
OUTPUT_FILE_PATH_AS_ARGS :=
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
QUOTE := "
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:=
LIB_DEP:=
LINKER_SCRIPT_DEP:=
# Every subdirectory with source files must be described here
SUBDIRS :=
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../main.c
PREPROCESSING_SRCS +=
ASM_SRCS +=
OBJS += \
main.o
OBJS_AS_ARGS += \
main.o
C_DEPS += \
main.d
C_DEPS_AS_ARGS += \
main.d
OUTPUT_FILE_PATH +=PWM.elf
OUTPUT_FILE_PATH_AS_ARGS +=PWM.elf
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:= ./makedep.mk
LIB_DEP+=
LINKER_SCRIPT_DEP+=
# AVR32/GNU C Compiler
./main.o: .././main.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega4809 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega4809" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
@echo Finished building: $<
# AVR32/GNU Preprocessing Assembler
# AVR32/GNU Assembler
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif
# Add inputs and outputs from these tool invocations to the build variables
# All Target
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP)
@echo Building target: $@
@echo Invoking: AVR/GNU Linker : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="PWM.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega4809 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega4809"
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "PWM.elf" "PWM.hex"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "PWM.elf" "PWM.eep" || exit 0
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "PWM.elf" > "PWM.lss"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "PWM.elf" "PWM.srec"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "PWM.elf"
# Other Targets
clean:
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
-$(RM) $(C_DEPS_AS_ARGS)
rm -rf "PWM.elf" "PWM.a" "PWM.hex" "PWM.lss" "PWM.eep" "PWM.map" "PWM.srec" "PWM.usersignatures"
\ No newline at end of file
:100000000C9450000C945A000C945A000C945A0012
:100010000C945A000C945A000C945A000C945A00F8
:100020000C945A000C945A000C945A000C945A00E8
:100030000C945A000C945A000C945A000C945A00D8
:100040000C945A000C945A000C945A000C945A00C8
:100050000C945A000C945A000C945A000C945A00B8
:100060000C945A000C945A000C945A000C945A00A8
:100070000C945A000C945A000C945A000C945A0098
:100080000C945A000C945A000C945A000C945A0088
:100090000C945A000C945A000C945A000C945A0078
:1000A00011241FBECFEFCDBFDFE3DEBF0E945C0097
:1000B0000C9493000C940000789483E08093E40502
:1000C000E0E0FAE08FEF90E086A397A3808189605B
:1000D000808381858E7F8187818180628183818118
:1000E0008360818380E18093610412A613A680E07F
:1000F00090E082A793A7AFE0B7E21197F1F700C0B5
:10010000000001968F3F9105A1F78EEF282F30E078
:1001100022A733A7AFE0B7E21197F1F700C00000C4
:0A0120008150A0F7E4CFF894FFCF60
:00000001FF
PWM.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000000 00802800 00802800 0000017e 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 0000012a 00000000 00000000 00000054 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .comment 00000030 00000000 00000000 0000017e 2**0
CONTENTS, READONLY
3 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 000001b0 2**2
CONTENTS, READONLY
4 .debug_aranges 00000020 00000000 00000000 000001f0 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 00003335 00000000 00000000 00000210 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 000024b4 00000000 00000000 00003545 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000360 00000000 00000000 000059f9 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 00000024 00000000 00000000 00005d5c 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 00001674 00000000 00000000 00005d80 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 00000083 00000000 00000000 000073f4 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_ranges 00000010 00000000 00000000 00007477 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 50 00 jmp 0xa0 ; 0xa0 <__ctors_end>
4: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
8: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
c: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
10: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
14: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
18: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
1c: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
20: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
24: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
28: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
2c: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
30: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
34: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
38: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
3c: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
40: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
44: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
48: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
4c: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
50: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
54: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
58: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
5c: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
60: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
64: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
68: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
6c: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
70: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
74: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
78: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
7c: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
80: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
84: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
88: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
8c: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
90: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
94: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
98: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
9c: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__bad_interrupt>
000000a0 <__ctors_end>:
a0: 11 24 eor r1, r1
a2: 1f be out 0x3f, r1 ; 63
a4: cf ef ldi r28, 0xFF ; 255
a6: cd bf out 0x3d, r28 ; 61
a8: df e3 ldi r29, 0x3F ; 63
aa: de bf out 0x3e, r29 ; 62
ac: 0e 94 5c 00 call 0xb8 ; 0xb8 <main>
b0: 0c 94 93 00 jmp 0x126 ; 0x126 <_exit>
000000b4 <__bad_interrupt>:
b4: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
000000b8 <main>:
Once we have PWM set up, controlling the brightness is super easy!
*/
int main(void)
{
sei();
b8: 78 94 sei
PORTMUX.TCAROUTEA = (0x3 << 0);
ba: 83 e0 ldi r24, 0x03 ; 3
bc: 80 93 e4 05 sts 0x05E4, r24 ; 0x8005e4 <__TEXT_REGION_LENGTH__+0x7005e4>
TCA0.SINGLE.PER = 0xff;
c0: e0 e0 ldi r30, 0x00 ; 0
c2: fa e0 ldi r31, 0x0A ; 10
c4: 8f ef ldi r24, 0xFF ; 255
c6: 90 e0 ldi r25, 0x00 ; 0
c8: 86 a3 std Z+38, r24 ; 0x26
ca: 97 a3 std Z+39, r25 ; 0x27
TCA0.SINGLE.CTRLA |= (1 << TCA_SINGLE_ENABLE_bp) | (0x4 << 1);
cc: 80 81 ld r24, Z
ce: 89 60 ori r24, 0x09 ; 9
d0: 80 83 st Z, r24
TCA0.SINGLE.EVCTRL &= ~(1 << TCA_SINGLE_CNTEI_bp);
d2: 81 85 ldd r24, Z+9 ; 0x09
d4: 8e 7f andi r24, 0xFE ; 254
d6: 81 87 std Z+9, r24 ; 0x09
TCA0.SINGLE.CTRLB |=(1 << TCA_SINGLE_CMP1EN_bp);
d8: 81 81 ldd r24, Z+1 ; 0x01
da: 80 62 ori r24, 0x20 ; 32
dc: 81 83 std Z+1, r24 ; 0x01
TCA0.SINGLE.CTRLB |= (0x03 << 0);
de: 81 81 ldd r24, Z+1 ; 0x01
e0: 83 60 ori r24, 0x03 ; 3
e2: 81 83 std Z+1, r24 ; 0x01
LED1_PORT.DIRSET = (1 << LED1);
e4: 80 e1 ldi r24, 0x10 ; 16
e6: 80 93 61 04 sts 0x0461, r24 ; 0x800461 <__TEXT_REGION_LENGTH__+0x700461>
TCA0.SINGLE.CMP1 = 0x00;
ea: 12 a6 std Z+42, r1 ; 0x2a
ec: 13 a6 std Z+43, r1 ; 0x2b
In this exercise, you will use PWM to control the brightness of LEDs
Once we have PWM set up, controlling the brightness is super easy!
*/
int main(void)
{
ee: 80 e0 ldi r24, 0x00 ; 0
f0: 90 e0 ldi r25, 0x00 ; 0
Change the brightness based on buttons
*/
for (uint8_t i = 0; i < 255; i++) {
TCA0.SINGLE.CMP1 = i;
f2: 82 a7 std Z+42, r24 ; 0x2a
f4: 93 a7 std Z+43, r25 ; 0x2b
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
f6: af e0 ldi r26, 0x0F ; 15
f8: b7 e2 ldi r27, 0x27 ; 39
fa: 11 97 sbiw r26, 0x01 ; 1
fc: f1 f7 brne .-4 ; 0xfa <main+0x42>
fe: 00 c0 rjmp .+0 ; 0x100 <main+0x48>
100: 00 00 nop
102: 01 96 adiw r24, 0x01 ; 1
Have them fade in a pattern (Heartbeat?)
Change the brightness based on buttons
*/
for (uint8_t i = 0; i < 255; i++) {
104: 8f 3f cpi r24, 0xFF ; 255
106: 91 05 cpc r25, r1
108: a1 f7 brne .-24 ; 0xf2 <main+0x3a>
10a: 8e ef ldi r24, 0xFE ; 254
TCA0.SINGLE.CMP1 = i;
_delay_ms(2);
}
for (uint8_t i = 255; i --> 0;) {
TCA0.SINGLE.CMP1 = i;
10c: 28 2f mov r18, r24
10e: 30 e0 ldi r19, 0x00 ; 0
110: 22 a7 std Z+42, r18 ; 0x2a
112: 33 a7 std Z+43, r19 ; 0x2b
114: af e0 ldi r26, 0x0F ; 15
116: b7 e2 ldi r27, 0x27 ; 39
118: 11 97 sbiw r26, 0x01 ; 1
11a: f1 f7 brne .-4 ; 0x118 <main+0x60>
11c: 00 c0 rjmp .+0 ; 0x11e <main+0x66>
11e: 00 00 nop
for (uint8_t i = 0; i < 255; i++) {
TCA0.SINGLE.CMP1 = i;
_delay_ms(2);
}
for (uint8_t i = 255; i --> 0;) {
120: 81 50 subi r24, 0x01 ; 1
122: a0 f7 brcc .-24 ; 0x10c <main+0x54>
124: e4 cf rjmp .-56 ; 0xee <main+0x36>
00000126 <_exit>:
126: f8 94 cli
00000128 <__stop_program>:
128: ff cf rjmp .-2 ; 0x128 <__stop_program>
Archive member included to satisfy reference by file (symbol)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega4809/avrxmega3/crtatmega4809.o (exit)
Discarded input sections
.data 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega4809/avrxmega3/crtatmega4809.o
.bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega4809/avrxmega3/crtatmega4809.o
.text 0x00000000 0x0 main.o
.data 0x00000000 0x0 main.o
.bss 0x00000000 0x0 main.o
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a(_exit.o)
Memory Configuration
Name Origin Length Attributes
text 0x00000000 0x00100000 xr
data 0x00802000 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000009 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
user_signatures 0x00850000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
Linker script and memory map
Address of section .data set to 0x802800
0x00004000 __RODATA_PM_OFFSET__ = 0x4000
LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega4809/avrxmega3/crtatmega4809.o
LOAD main.o
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libm.a
END GROUP
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega3\libgcc.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libm.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega3\libc.a
LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega4809/avrxmega3\libatmega4809.a
END GROUP
0x00100000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x100000
0x0000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
0x00010000 __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
[0x00000009] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
0x00000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
0x00000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
0x00000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400
0x00008000 __RODATA_PM_OFFSET__ = DEFINED (__RODATA_PM_OFFSET__)?__RODATA_PM_OFFSET__:0x8000
.hash
*(.hash)
.dynsym
*(.dynsym)
.dynstr
*(.dynstr)
.gnu.version
*(.gnu.version)
.gnu.version_d
*(.gnu.version_d)
.gnu.version_r
*(.gnu.version_r)
.rel.init
*(.rel.init)
.rela.init
*(.rela.init)
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
.rel.fini
*(.rel.fini)
.rela.fini
*(.rela.fini)
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got
*(.rela.got)
.rel.bss
*(.rel.bss)
.rela.bss
*(.rela.bss)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.text 0x00000000 0x12a
*(.vectors)
.vectors 0x00000000 0xa0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega4809/avrxmega3/crtatmega4809.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
0x000000a0 . = ALIGN (0x2)
0x000000a0 __trampolines_start = .
*(.trampolines)
.trampolines 0x000000a0 0x0 linker stubs
*(.trampolines*)
0x000000a0 __trampolines_end = .
*libprintf_flt.a:*(.progmem.data)
*libc.a:*(.progmem.data)
*(.progmem*)
0x000000a0 . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x000000a0 __ctors_start = .
*(.ctors)
0x000000a0 __ctors_end = .
0x000000a0 __dtors_start = .
*(.dtors)
0x000000a0 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x000000a0 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega4809/avrxmega3/crtatmega4809.o
0x000000a0 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x000000a0 0xc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega4809/avrxmega3/crtatmega4809.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x000000ac 0x8 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega4809/avrxmega3/crtatmega4809.o
*(.init9)
*(.text)
.text 0x000000b4 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega4809/avrxmega3/crtatmega4809.o
0x000000b4 __vector_38
0x000000b4 __vector_22
0x000000b4 __vector_28
0x000000b4 __vector_1
0x000000b4 __vector_32
0x000000b4 __vector_34
0x000000b4 __vector_24
0x000000b4 __vector_12
0x000000b4 __bad_interrupt
0x000000b4 __vector_6
0x000000b4 __vector_31
0x000000b4 __vector_35
0x000000b4 __vector_39
0x000000b4 __vector_3
0x000000b4 __vector_23
0x000000b4 __vector_30
0x000000b4 __vector_25
0x000000b4 __vector_11
0x000000b4 __vector_13
0x000000b4 __vector_17
0x000000b4 __vector_19
0x000000b4 __vector_7
0x000000b4 __vector_27
0x000000b4 __vector_5
0x000000b4 __vector_33
0x000000b4 __vector_37
0x000000b4 __vector_4
0x000000b4 __vector_9
0x000000b4 __vector_2
0x000000b4 __vector_21
0x000000b4 __vector_15
0x000000b4 __vector_36
0x000000b4 __vector_29
0x000000b4 __vector_8
0x000000b4 __vector_26
0x000000b4 __vector_14
0x000000b4 __vector_10
0x000000b4 __vector_16
0x000000b4 __vector_18
0x000000b4 __vector_20
0x000000b8 . = ALIGN (0x2)
*(.text.*)
.text.main 0x000000b8 0x6e main.o