added projects to LF files

parent 8753b829

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 += \
../PWM-LF.c
PREPROCESSING_SRCS +=
ASM_SRCS +=
OBJS += \
PWM-LF.o
OBJS_AS_ARGS += \
PWM-LF.o
C_DEPS += \
PWM-LF.d
C_DEPS_AS_ARGS += \
PWM-LF.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
./PWM-LF.o: .././PWM-LF.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.3.300\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.3.300\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.3.300\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
PWM-LF.d PWM-LF.o: .././PWM-LF.c \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.3.300\include/avr/iom4809.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\xmega.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.3.300\include/avr/iom4809.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\xmega.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
:100000000C9450000C945A000C945A000C945A0012
:100010000C945A000C945A000C945A000C945A00F8
:100020000C945A000C945A000C945A000C945A00E8
:100030000C945A000C945A000C945A000C945A00D8
:100040000C945A000C945A000C945A000C945A00C8
:100050000C945A000C945A000C945A000C945A00B8
:100060000C945A000C945A000C945A000C945A00A8
:100070000C945A000C945A000C945A000C945A0098
:100080000C945A000C945A000C945A000C945A0088
:100090000C945A000C945A000C945A000C945A0078
:1000A00011241FBECFEFCDBFDFE3DEBF0E945C0097
:1000B0000C9491000C9400007894E0E6F4E080E168
:1000C000818380E2818383E08093E405E0E0FAE0CD
:1000D0008381816083838081816080838181806668
:1000E000818385E587A313A615A695E580E083A700
:1000F000292F281B25A7AFE0B7E21197F1F700C021
:1001000000008F5F853599F783A7292F281B25A726
:10011000AFE0B7E21197F1F700C000008150A1F7FE
:06012000E5CFF894FFCFCB
:00000001FF
PWM.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000000 00802800 00802800 0000017a 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00000126 00000000 00000000 00000054 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .comment 00000030 00000000 00000000 0000017a 2**0
CONTENTS, READONLY
3 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 000001ac 2**2
CONTENTS, READONLY
4 .debug_aranges 00000020 00000000 00000000 000001ec 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 000032fd 00000000 00000000 0000020c 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 0000243b 00000000 00000000 00003509 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000388 00000000 00000000 00005944 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 00000024 00000000 00000000 00005ccc 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 00001736 00000000 00000000 00005cf0 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 000000ab 00000000 00000000 00007426 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_ranges 00000010 00000000 00000000 000074d1 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 91 00 jmp 0x122 ; 0x122 <_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
LED1_PORT.DIRSET = (1 << LED1); //Datasheet say that we should put pins to PWM as outputs.
ba: e0 e6 ldi r30, 0x60 ; 96
bc: f4 e0 ldi r31, 0x04 ; 4
be: 80 e1 ldi r24, 0x10 ; 16
c0: 81 83 std Z+1, r24 ; 0x01
LED2_PORT.DIRSET = (1 << LED2); //Also, since we put signals out on them, this make sense.
c2: 80 e2 ldi r24, 0x20 ; 32
c4: 81 83 std Z+1, r24 ; 0x01
/**
In dataheet: "http://ww1.microchip.com/downloads/en/DeviceDoc/40002016A.pdf", section 4.1, Multiplexed signals, we see that if we want to use TCA0 with PD4 and PD5,
we need to use portmux to change TCA to Port D. We find that the led is at port D, pin 4 and 5 by looking at datasheets and silk text for PCBs.
*/
PORTMUX.TCAROUTEA = (0x3 << 0);
c6: 83 e0 ldi r24, 0x03 ; 3
c8: 80 93 e4 05 sts 0x05E4, r24 ; 0x8005e4 <__TEXT_REGION_LENGTH__+0x7005e4>
TCA0.SPLIT.CTRLD |= (1 << TCA_SPLIT_SPLITM_bp); //Set splitmode to get access to WO4 and WO5
cc: e0 e0 ldi r30, 0x00 ; 0
ce: fa e0 ldi r31, 0x0A ; 10
d0: 83 81 ldd r24, Z+3 ; 0x03
d2: 81 60 ori r24, 0x01 ; 1
d4: 83 83 std Z+3, r24 ; 0x03
TCA0.SPLIT.CTRLA |= (1 << TCA_SPLIT_ENABLE_bp) | (TCA_SPLIT_CLKSEL_DIV1_gc); //Enable the TCA and set prescaler to 1. Try different prescalers and see what happens.
d6: 80 81 ld r24, Z
d8: 81 60 ori r24, 0x01 ; 1
da: 80 83 st Z, r24
TCA0.SPLIT.CTRLB |= (1 << TCA_SPLIT_HCMP1EN_bp) | (1 << TCA_SPLIT_HCMP2EN_bp); //Enable High Compare 1 and 2 to get output on WO4 and WO5. See Figure 19-13 in functional description datasheet.
dc: 81 81 ldd r24, Z+1 ; 0x01
de: 80 66 ori r24, 0x60 ; 96
e0: 81 83 std Z+1, r24 ; 0x01
TCA0.SPLIT.HPER = TOP_PERIOD; // Set period for High compare. See figures in datasheet. But this is the PWM Period.
e2: 85 e5 ldi r24, 0x55 ; 85
e4: 87 a3 std Z+39, r24 ; 0x27
TCA0.SPLIT.HCMP1 = 0x00; //See figures in datasheet. This is the PWM duty cycle.
e6: 13 a6 std Z+43, r1 ; 0x2b
TCA0.SPLIT.HCMP2 = 0x00;
e8: 15 a6 std Z+45, r1 ; 0x2d
ea: 95 e5 ldi r25, 0x55 ; 85
Have them fade in a pattern (Heartbeat?)
Change the brightness based on buttons
*/
for (uint8_t i = 0; i < TOP_PERIOD; i++) {
ec: 80 e0 ldi r24, 0x00 ; 0
TCA0.SPLIT.HCMP1 = i;
ee: 83 a7 std Z+43, r24 ; 0x2b
f0: 29 2f mov r18, r25
f2: 28 1b sub r18, r24
TCA0.SPLIT.HCMP2 = TOP_PERIOD-i;
f4: 25 a7 std Z+45, r18 ; 0x2d
#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
Have them fade in a pattern (Heartbeat?)
Change the brightness based on buttons
*/
for (uint8_t i = 0; i < TOP_PERIOD; i++) {
102: 8f 5f subi r24, 0xFF ; 255
104: 85 35 cpi r24, 0x55 ; 85
106: 99 f7 brne .-26 ; 0xee <main+0x36>
TCA0.SPLIT.HCMP1 = i;
TCA0.SPLIT.HCMP2 = TOP_PERIOD-i;
_delay_ms(2);
}
for (uint8_t i = TOP_PERIOD; i > 0;i--) {
TCA0.SPLIT.HCMP1 = i;
108: 83 a7 std Z+43, r24 ; 0x2b
10a: 29 2f mov r18, r25
10c: 28 1b sub r18, r24
TCA0.SPLIT.HCMP2 = TOP_PERIOD-i;
10e: 25 a7 std Z+45, r18 ; 0x2d
110: af e0 ldi r26, 0x0F ; 15
112: b7 e2 ldi r27, 0x27 ; 39
114: 11 97 sbiw r26, 0x01 ; 1
116: f1 f7 brne .-4 ; 0x114 <main+0x5c>
118: 00 c0 rjmp .+0 ; 0x11a <main+0x62>
11a: 00 00 nop
for (uint8_t i = 0; i < TOP_PERIOD; i++) {
TCA0.SPLIT.HCMP1 = i;
TCA0.SPLIT.HCMP2 = TOP_PERIOD-i;
_delay_ms(2);
}
for (uint8_t i = TOP_PERIOD; i > 0;i--) {
11c: 81 50 subi r24, 0x01 ; 1
11e: a1 f7 brne .-24 ; 0x108 <main+0x50>
120: e5 cf rjmp .-54 ; 0xec <main+0x34>
00000122 <_exit>:
122: f8 94 cli
00000124 <__stop_program>:
124: ff cf rjmp .-2 ; 0x124 <__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.3.300/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.3.300/gcc/dev/atmega4809/avrxmega3/crtatmega4809.o
.bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.3.300/gcc/dev/atmega4809/avrxmega3/crtatmega4809.o
.text 0x00000000 0x0 PWM-LF.o
.data 0x00000000 0x0 PWM-LF.o
.bss 0x00000000 0x0 PWM-LF.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.3.300/gcc/dev/atmega4809/avrxmega3/crtatmega4809.o
LOAD PWM-LF.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.3.300/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 0x126
*(.vectors)
.vectors 0x00000000 0xa0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.3.300/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.3.300/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.3.300/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.3.300/gcc/dev/atmega4809/avrxmega3/crtatmega4809.o
*(.init9)
*(.text)
.text 0x000000b4 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.3.300/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