Got a template makefile compiling and loading to the board... big progress!

unstable
penguin 4 years ago
parent ee9d80a80b
commit 0ab0b06a16

@ -1,3 +1,4 @@
print-% : ; @echo $* = $($*)
# Generated Variables # Generated Variables
PROJECT_NAME=testdir PROJECT_NAME=testdir
CC=arm-none-eabi-gcc CC=arm-none-eabi-gcc
@ -11,8 +12,8 @@ AS=arm-none-eabi-as
MCPU=cortex-m0plus MCPU=cortex-m0plus
MCU=__SAMD21J18A__ MCU=__SAMD21J18A__
LD_PATH=../ld LD_PATH=../ESF/ld
LD_SCRIPT=$(LD_PATH)/flash.ld LD_SCRIPT=$(LD_PATH)/samd21j18a_flash.ld
# Generated Flags # Generated Flags
CFLAGS=-x c \ CFLAGS=-x c \
@ -22,6 +23,7 @@ CFLAGS=-x c \
-mlong-calls \ -mlong-calls \
-g3 \ -g3 \
-Wall \ -Wall \
-c \
-std=gnu99 \ -std=gnu99 \
-D$(MCU) \ -D$(MCU) \
-mcpu=$(MCPU) \ -mcpu=$(MCPU) \
@ -33,8 +35,7 @@ $(DIR_INCLUDES) \
ELF_FLAGS=-Wl,--start-group -l m -Wl,--end-group -mthumb \ ELF_FLAGS=-Wl,--start-group -l m -Wl,--end-group -mthumb \
-Wl,-Map=$(QUOTE)$(PROJECT_NAME).map$(QUOTE) --specs=nano.specs -Wl,--gc-sections -mcpu=$(MCPU) \ -Wl,-Map=$(QUOTE)$(PROJECT_NAME).map$(QUOTE) --specs=nano.specs -Wl,--gc-sections -mcpu=$(MCPU) \
-T$(QUOTE)$(LD_SCRIPT)$(QUOTE) \ -T$(QUOTE)$(LD_SCRIPT)$(QUOTE)
-L$(QUOTE)$(LD_PATH)$(QUOTE)
HEX_FLAGS=-R .eeprom \ HEX_FLAGS=-R .eeprom \
-R .fuse \ -R .fuse \
@ -70,28 +71,50 @@ else
endif endif
# List the subdirectories for creating object files # List the subdirectories for creating object files
SUB_DIRS= SUB_DIRS+= \
# List the object files src \
ESF/mcu/src
OBJS+= \
ESF/mcu/src/startup_samd21.o \
ESF/mcu/src/system_samd21.o \
src/main.o
# List the object files
OBJS_AS_ARGS+= \ OBJS_AS_ARGS+= \
$(QUOTE)ESF/mcu/src/startup_samd21.o$(QUOTE) \
$(QUOTE)ESF/mcu/src/system_samd21.o$(QUOTE) \
$(QUOTE)src/main.o$(QUOTE)
# List the directories containing header files # List the directories containing header files
DIR_INCLUDES += \ DIR_INCLUDES += \
-I$(QUOTE)../ESF/hdi$(QUOTE) \
-I$(QUOTE)../ESF/hdi/component$(QUOTE) \
-I$(QUOTE)../ESF/hdi/instance$(QUOTE) \
-I$(QUOTE)../ESF/hdi/pio$(QUOTE) \
-I$(QUOTE)../ESF/mcu/inc$(QUOTE) \
-I$(QUOTE)../ESF/common/inc$(QUOTE) \
-I$(QUOTE)../ESF/common/inc/cmsis$(QUOTE) \
-I$(QUOTE)../inc$(QUOTE)
# List the dependency files # List the dependency files
DEPS := $(OBJS:%.o=%.d) DEPS := $(OBJS:%.o=%.d)
DEPS_AS_ARGS += \ DEPS_AS_ARGS := $(OBJS_AS_ARGS:%.o=%.d)
vpath %.c ../ vpath %.c ../
vpath %.s ../ vpath %.s ../
vpath %.S ../ vpath %.S ../
# All Target
.PHONY: debug clean
# All Targets
all: $(SUB_DIRS) $(PROJECT_NAME).elf \ all: $(SUB_DIRS) $(PROJECT_NAME).elf \
$(PROJECT_NAME).bin \ $(PROJECT_NAME).bin \
$(PROJECT_NAME).hex \ $(PROJECT_NAME).hex \
$(PROJECT_NAME).eep \ $(PROJECT_NAME).eep \
$(PROJECT_NAME).lss $(PROJECT_NAME).lss
$(QUOTE)$(SIZE)$(QUOTE) $(QUOTE)$(PROJECT_NAME).elf$(QUOTE)
# Linker target # Linker target
# Make ELF # Make ELF
@ -101,7 +124,6 @@ $(PROJECT_NAME).elf: $(OBJS)
$(QUOTE)$(CC)$(QUOTE) -o $@ $(OBJS_AS_ARGS) $(ELF_FLAGS) $(QUOTE)$(CC)$(QUOTE) -o $@ $(OBJS_AS_ARGS) $(ELF_FLAGS)
@echo Finished building target: $@ @echo Finished building target: $@
$(QUOTE)$(SIZE)$(QUOTE) $(QUOTE)$@$(QUOTE)
# Make BIN # Make BIN
$(PROJECT_NAME).bin: $(PROJECT_NAME).elf $(PROJECT_NAME).bin: $(PROJECT_NAME).elf
@ -121,8 +143,7 @@ $(PROJECT_NAME).eep: $(PROJECT_NAME).elf
# Make LSS # Make LSS
$(PROJECT_NAME).lss: $(PROJECT_NAME).elf $(PROJECT_NAME).lss: $(PROJECT_NAME).elf
$(QUOTE)$(OBJDUMP)$(QUOTE) -h -S $(QUOTE)$<$(QUOTE) $(QUOTE)$(OBJDUMP)$(QUOTE) -h -S $(QUOTE)$<$(QUOTE) > $(QUOTE)$@$(QUOTE)
# Compiler targets # Compiler targets
%.o: %.c %.o: %.c
@ -143,24 +164,23 @@ $(PROJECT_NAME).lss: $(PROJECT_NAME).elf
$(QUOTE)$(CC)$(QUOTE) $(CFLAGS) -o $(QUOTE)$@$(QUOTE) $(QUOTE)$<$(QUOTE) $(QUOTE)$(CC)$(QUOTE) $(CFLAGS) -o $(QUOTE)$@$(QUOTE) $(QUOTE)$<$(QUOTE)
@echo Finished building: $< @echo Finished building: $<
# Detect changes in the dependent files and recompile the respective object files. $(SUB_DIRS):
$(MK_DIR) "$@"
ifneq ($(MAKECMDGOALS),clean) ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(DEPS)),) ifneq ($(strip $(DEPS)),)
-include $(DEPS) -include $(DEPS)
endif endif
endif endif
$(SUB_DIRS):
$(MK_DIR) "$@"
clean: clean:
rm -f $(OBJS_AS_ARGS) rm -f $(OBJS_AS_ARGS)
rm -f $(OUTPUT_FILE_PATH)
rm -f $(DEPS_AS_ARGS) rm -f $(DEPS_AS_ARGS)
rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \ rm -f $(PROJECT_NAME).a $(PROJECT_NAME).hex $(PROJECT_NAME).bin \
$(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \ $(PROJECT_NAME).lss $(PROJECT_NAME).eep $(PROJECT_NAME).map \
$(OUTPUT_FILE_NAME).srec $(PROJECT_NAME).srec $(PROJECT_NAME).elf
debug: $(PROJECT_NAME).elf
$(QUOTE)arm-none-eabi-gdb$(QUOTE) -iex $(QUOTE)target extended-remote localhost:3333$(QUOTE) $(PROJECT_NAME).elf
debug: $(OUTPUT_FILE_NAME).elf
$(QUOTE)arm-none-eabi-gdb$(QUOTE) -iex $(QUOTE)target extended-remote localhost:3333$(QUOTE) $(OUTPUT_FILE_NAME).elf
QUOTE := " QUOTE := "

@ -0,0 +1,6 @@
load
monitor reset
make
load
monitor reset
q

@ -0,0 +1,115 @@
ESF/mcu/src/startup_samd21.d ESF/mcu/src/startup_samd21.o: \
../ESF/mcu/src/startup_samd21.c ../ESF/mcu/inc/samd21.h \
../ESF/mcu/inc/samd21j18a.h \
/usr/lib/gcc/arm-none-eabi/10.2.0/include/stdint.h \
/usr/arm-none-eabi/include/stdint.h \
/usr/arm-none-eabi/include/machine/_default_types.h \
/usr/arm-none-eabi/include/sys/features.h \
/usr/arm-none-eabi/include/_newlib_version.h \
/usr/arm-none-eabi/include/sys/_intsup.h \
/usr/arm-none-eabi/include/sys/_stdint.h \
../ESF/common/inc/cmsis/core_cm0plus.h \
../ESF/common/inc/cmsis/cmsis_version.h \
../ESF/common/inc/cmsis/cmsis_compiler.h \
../ESF/common/inc/cmsis/cmsis_gcc.h ../ESF/mcu/inc/system_samd21.h \
../ESF/hdi/component/ac.h ../ESF/hdi/component/adc.h \
../ESF/hdi/component/dac.h ../ESF/hdi/component/dmac.h \
../ESF/hdi/component/dsu.h ../ESF/hdi/component/eic.h \
../ESF/hdi/component/evsys.h ../ESF/hdi/component/gclk.h \
../ESF/hdi/component/hmatrixb.h ../ESF/hdi/component/i2s.h \
../ESF/hdi/component/mtb.h ../ESF/hdi/component/nvmctrl.h \
../ESF/hdi/component/pac.h ../ESF/hdi/component/pm.h \
../ESF/hdi/component/port.h ../ESF/hdi/component/rtc.h \
../ESF/hdi/component/sercom.h ../ESF/hdi/component/sysctrl.h \
../ESF/hdi/component/tc.h ../ESF/hdi/component/tcc.h \
../ESF/hdi/component/usb.h ../ESF/hdi/component/wdt.h \
../ESF/hdi/instance/ac.h ../ESF/hdi/instance/adc.h \
../ESF/hdi/instance/dac.h ../ESF/hdi/instance/dmac.h \
../ESF/hdi/instance/dsu.h ../ESF/hdi/instance/eic.h \
../ESF/hdi/instance/evsys.h ../ESF/hdi/instance/gclk.h \
../ESF/hdi/instance/sbmatrix.h ../ESF/hdi/instance/i2s.h \
../ESF/hdi/instance/mtb.h ../ESF/hdi/instance/nvmctrl.h \
../ESF/hdi/instance/pac0.h ../ESF/hdi/instance/pac1.h \
../ESF/hdi/instance/pac2.h ../ESF/hdi/instance/pm.h \
../ESF/hdi/instance/port.h ../ESF/hdi/instance/rtc.h \
../ESF/hdi/instance/sercom0.h ../ESF/hdi/instance/sercom1.h \
../ESF/hdi/instance/sercom2.h ../ESF/hdi/instance/sercom3.h \
../ESF/hdi/instance/sercom4.h ../ESF/hdi/instance/sercom5.h \
../ESF/hdi/instance/sysctrl.h ../ESF/hdi/instance/tc3.h \
../ESF/hdi/instance/tc4.h ../ESF/hdi/instance/tc5.h \
../ESF/hdi/instance/tc6.h ../ESF/hdi/instance/tc7.h \
../ESF/hdi/instance/tcc0.h ../ESF/hdi/instance/tcc1.h \
../ESF/hdi/instance/tcc2.h ../ESF/hdi/instance/usb.h \
../ESF/hdi/instance/wdt.h ../ESF/hdi/pio/samd21j18a.h
../ESF/mcu/inc/samd21.h:
../ESF/mcu/inc/samd21j18a.h:
/usr/lib/gcc/arm-none-eabi/10.2.0/include/stdint.h:
/usr/arm-none-eabi/include/stdint.h:
/usr/arm-none-eabi/include/machine/_default_types.h:
/usr/arm-none-eabi/include/sys/features.h:
/usr/arm-none-eabi/include/_newlib_version.h:
/usr/arm-none-eabi/include/sys/_intsup.h:
/usr/arm-none-eabi/include/sys/_stdint.h:
../ESF/common/inc/cmsis/core_cm0plus.h:
../ESF/common/inc/cmsis/cmsis_version.h:
../ESF/common/inc/cmsis/cmsis_compiler.h:
../ESF/common/inc/cmsis/cmsis_gcc.h:
../ESF/mcu/inc/system_samd21.h:
../ESF/hdi/component/ac.h:
../ESF/hdi/component/adc.h:
../ESF/hdi/component/dac.h:
../ESF/hdi/component/dmac.h:
../ESF/hdi/component/dsu.h:
../ESF/hdi/component/eic.h:
../ESF/hdi/component/evsys.h:
../ESF/hdi/component/gclk.h:
../ESF/hdi/component/hmatrixb.h:
../ESF/hdi/component/i2s.h:
../ESF/hdi/component/mtb.h:
../ESF/hdi/component/nvmctrl.h:
../ESF/hdi/component/pac.h:
../ESF/hdi/component/pm.h:
../ESF/hdi/component/port.h:
../ESF/hdi/component/rtc.h:
../ESF/hdi/component/sercom.h:
../ESF/hdi/component/sysctrl.h:
../ESF/hdi/component/tc.h:
../ESF/hdi/component/tcc.h:
../ESF/hdi/component/usb.h:
../ESF/hdi/component/wdt.h:
../ESF/hdi/instance/ac.h:
../ESF/hdi/instance/adc.h:
../ESF/hdi/instance/dac.h:
../ESF/hdi/instance/dmac.h:
../ESF/hdi/instance/dsu.h:
../ESF/hdi/instance/eic.h:
../ESF/hdi/instance/evsys.h:
../ESF/hdi/instance/gclk.h:
../ESF/hdi/instance/sbmatrix.h:
../ESF/hdi/instance/i2s.h:
../ESF/hdi/instance/mtb.h:
../ESF/hdi/instance/nvmctrl.h:
../ESF/hdi/instance/pac0.h:
../ESF/hdi/instance/pac1.h:
../ESF/hdi/instance/pac2.h:
../ESF/hdi/instance/pm.h:
../ESF/hdi/instance/port.h:
../ESF/hdi/instance/rtc.h:
../ESF/hdi/instance/sercom0.h:
../ESF/hdi/instance/sercom1.h:
../ESF/hdi/instance/sercom2.h:
../ESF/hdi/instance/sercom3.h:
../ESF/hdi/instance/sercom4.h:
../ESF/hdi/instance/sercom5.h:
../ESF/hdi/instance/sysctrl.h:
../ESF/hdi/instance/tc3.h:
../ESF/hdi/instance/tc4.h:
../ESF/hdi/instance/tc5.h:
../ESF/hdi/instance/tc6.h:
../ESF/hdi/instance/tc7.h:
../ESF/hdi/instance/tcc0.h:
../ESF/hdi/instance/tcc1.h:
../ESF/hdi/instance/tcc2.h:
../ESF/hdi/instance/usb.h:
../ESF/hdi/instance/wdt.h:
../ESF/hdi/pio/samd21j18a.h:

@ -0,0 +1,115 @@
ESF/mcu/src/system_samd21.d ESF/mcu/src/system_samd21.o: \
../ESF/mcu/src/system_samd21.c ../ESF/mcu/inc/samd21.h \
../ESF/mcu/inc/samd21j18a.h \
/usr/lib/gcc/arm-none-eabi/10.2.0/include/stdint.h \
/usr/arm-none-eabi/include/stdint.h \
/usr/arm-none-eabi/include/machine/_default_types.h \
/usr/arm-none-eabi/include/sys/features.h \
/usr/arm-none-eabi/include/_newlib_version.h \
/usr/arm-none-eabi/include/sys/_intsup.h \
/usr/arm-none-eabi/include/sys/_stdint.h \
../ESF/common/inc/cmsis/core_cm0plus.h \
../ESF/common/inc/cmsis/cmsis_version.h \
../ESF/common/inc/cmsis/cmsis_compiler.h \
../ESF/common/inc/cmsis/cmsis_gcc.h ../ESF/mcu/inc/system_samd21.h \
../ESF/hdi/component/ac.h ../ESF/hdi/component/adc.h \
../ESF/hdi/component/dac.h ../ESF/hdi/component/dmac.h \
../ESF/hdi/component/dsu.h ../ESF/hdi/component/eic.h \
../ESF/hdi/component/evsys.h ../ESF/hdi/component/gclk.h \
../ESF/hdi/component/hmatrixb.h ../ESF/hdi/component/i2s.h \
../ESF/hdi/component/mtb.h ../ESF/hdi/component/nvmctrl.h \
../ESF/hdi/component/pac.h ../ESF/hdi/component/pm.h \
../ESF/hdi/component/port.h ../ESF/hdi/component/rtc.h \
../ESF/hdi/component/sercom.h ../ESF/hdi/component/sysctrl.h \
../ESF/hdi/component/tc.h ../ESF/hdi/component/tcc.h \
../ESF/hdi/component/usb.h ../ESF/hdi/component/wdt.h \
../ESF/hdi/instance/ac.h ../ESF/hdi/instance/adc.h \
../ESF/hdi/instance/dac.h ../ESF/hdi/instance/dmac.h \
../ESF/hdi/instance/dsu.h ../ESF/hdi/instance/eic.h \
../ESF/hdi/instance/evsys.h ../ESF/hdi/instance/gclk.h \
../ESF/hdi/instance/sbmatrix.h ../ESF/hdi/instance/i2s.h \
../ESF/hdi/instance/mtb.h ../ESF/hdi/instance/nvmctrl.h \
../ESF/hdi/instance/pac0.h ../ESF/hdi/instance/pac1.h \
../ESF/hdi/instance/pac2.h ../ESF/hdi/instance/pm.h \
../ESF/hdi/instance/port.h ../ESF/hdi/instance/rtc.h \
../ESF/hdi/instance/sercom0.h ../ESF/hdi/instance/sercom1.h \
../ESF/hdi/instance/sercom2.h ../ESF/hdi/instance/sercom3.h \
../ESF/hdi/instance/sercom4.h ../ESF/hdi/instance/sercom5.h \
../ESF/hdi/instance/sysctrl.h ../ESF/hdi/instance/tc3.h \
../ESF/hdi/instance/tc4.h ../ESF/hdi/instance/tc5.h \
../ESF/hdi/instance/tc6.h ../ESF/hdi/instance/tc7.h \
../ESF/hdi/instance/tcc0.h ../ESF/hdi/instance/tcc1.h \
../ESF/hdi/instance/tcc2.h ../ESF/hdi/instance/usb.h \
../ESF/hdi/instance/wdt.h ../ESF/hdi/pio/samd21j18a.h
../ESF/mcu/inc/samd21.h:
../ESF/mcu/inc/samd21j18a.h:
/usr/lib/gcc/arm-none-eabi/10.2.0/include/stdint.h:
/usr/arm-none-eabi/include/stdint.h:
/usr/arm-none-eabi/include/machine/_default_types.h:
/usr/arm-none-eabi/include/sys/features.h:
/usr/arm-none-eabi/include/_newlib_version.h:
/usr/arm-none-eabi/include/sys/_intsup.h:
/usr/arm-none-eabi/include/sys/_stdint.h:
../ESF/common/inc/cmsis/core_cm0plus.h:
../ESF/common/inc/cmsis/cmsis_version.h:
../ESF/common/inc/cmsis/cmsis_compiler.h:
../ESF/common/inc/cmsis/cmsis_gcc.h:
../ESF/mcu/inc/system_samd21.h:
../ESF/hdi/component/ac.h:
../ESF/hdi/component/adc.h:
../ESF/hdi/component/dac.h:
../ESF/hdi/component/dmac.h:
../ESF/hdi/component/dsu.h:
../ESF/hdi/component/eic.h:
../ESF/hdi/component/evsys.h:
../ESF/hdi/component/gclk.h:
../ESF/hdi/component/hmatrixb.h:
../ESF/hdi/component/i2s.h:
../ESF/hdi/component/mtb.h:
../ESF/hdi/component/nvmctrl.h:
../ESF/hdi/component/pac.h:
../ESF/hdi/component/pm.h:
../ESF/hdi/component/port.h:
../ESF/hdi/component/rtc.h:
../ESF/hdi/component/sercom.h:
../ESF/hdi/component/sysctrl.h:
../ESF/hdi/component/tc.h:
../ESF/hdi/component/tcc.h:
../ESF/hdi/component/usb.h:
../ESF/hdi/component/wdt.h:
../ESF/hdi/instance/ac.h:
../ESF/hdi/instance/adc.h:
../ESF/hdi/instance/dac.h:
../ESF/hdi/instance/dmac.h:
../ESF/hdi/instance/dsu.h:
../ESF/hdi/instance/eic.h:
../ESF/hdi/instance/evsys.h:
../ESF/hdi/instance/gclk.h:
../ESF/hdi/instance/sbmatrix.h:
../ESF/hdi/instance/i2s.h:
../ESF/hdi/instance/mtb.h:
../ESF/hdi/instance/nvmctrl.h:
../ESF/hdi/instance/pac0.h:
../ESF/hdi/instance/pac1.h:
../ESF/hdi/instance/pac2.h:
../ESF/hdi/instance/pm.h:
../ESF/hdi/instance/port.h:
../ESF/hdi/instance/rtc.h:
../ESF/hdi/instance/sercom0.h:
../ESF/hdi/instance/sercom1.h:
../ESF/hdi/instance/sercom2.h:
../ESF/hdi/instance/sercom3.h:
../ESF/hdi/instance/sercom4.h:
../ESF/hdi/instance/sercom5.h:
../ESF/hdi/instance/sysctrl.h:
../ESF/hdi/instance/tc3.h:
../ESF/hdi/instance/tc4.h:
../ESF/hdi/instance/tc5.h:
../ESF/hdi/instance/tc6.h:
../ESF/hdi/instance/tc7.h:
../ESF/hdi/instance/tcc0.h:
../ESF/hdi/instance/tcc1.h:
../ESF/hdi/instance/tcc2.h:
../ESF/hdi/instance/usb.h:
../ESF/hdi/instance/wdt.h:
../ESF/hdi/pio/samd21j18a.h:

@ -1,3 +1,4 @@
print-% : ; @echo $* = $($*)
# Generated Variables # Generated Variables
PROJECT_NAME=testdir PROJECT_NAME=testdir
CC=arm-none-eabi-gcc CC=arm-none-eabi-gcc
@ -11,8 +12,8 @@ AS=arm-none-eabi-as
MCPU=cortex-m0plus MCPU=cortex-m0plus
MCU=__SAMD21J18A__ MCU=__SAMD21J18A__
LD_PATH=../ld LD_PATH=../ESF/ld
LD_SCRIPT=$(LD_PATH)/flash.ld LD_SCRIPT=$(LD_PATH)/samd21j18a_flash.ld
# Generated Flags # Generated Flags
CFLAGS=-x c \ CFLAGS=-x c \
@ -22,6 +23,7 @@ CFLAGS=-x c \
-mlong-calls \ -mlong-calls \
-g3 \ -g3 \
-Wall \ -Wall \
-c \
-std=gnu99 \ -std=gnu99 \
-D$(MCU) \ -D$(MCU) \
-mcpu=$(MCPU) \ -mcpu=$(MCPU) \
@ -33,8 +35,7 @@ $(DIR_INCLUDES) \
ELF_FLAGS=-Wl,--start-group -l m -Wl,--end-group -mthumb \ ELF_FLAGS=-Wl,--start-group -l m -Wl,--end-group -mthumb \
-Wl,-Map=$(QUOTE)$(PROJECT_NAME).map$(QUOTE) --specs=nano.specs -Wl,--gc-sections -mcpu=$(MCPU) \ -Wl,-Map=$(QUOTE)$(PROJECT_NAME).map$(QUOTE) --specs=nano.specs -Wl,--gc-sections -mcpu=$(MCPU) \
-T$(QUOTE)$(LD_SCRIPT)$(QUOTE) \ -T$(QUOTE)$(LD_SCRIPT)$(QUOTE)
-L$(QUOTE)$(LD_PATH)$(QUOTE)
HEX_FLAGS=-R .eeprom \ HEX_FLAGS=-R .eeprom \
-R .fuse \ -R .fuse \
@ -70,28 +71,50 @@ else
endif endif
# List the subdirectories for creating object files # List the subdirectories for creating object files
SUB_DIRS= SUB_DIRS+= \
# List the object files src \
ESF/mcu/src
OBJS+= \
ESF/mcu/src/startup_samd21.o \
ESF/mcu/src/system_samd21.o \
src/main.o
# List the object files
OBJS_AS_ARGS+= \ OBJS_AS_ARGS+= \
$(QUOTE)ESF/mcu/src/startup_samd21.o$(QUOTE) \
$(QUOTE)ESF/mcu/src/system_samd21.o$(QUOTE) \
$(QUOTE)src/main.o$(QUOTE)
# List the directories containing header files # List the directories containing header files
DIR_INCLUDES += \ DIR_INCLUDES += \
-I$(QUOTE)../ESF/hdi$(QUOTE) \
-I$(QUOTE)../ESF/hdi/component$(QUOTE) \
-I$(QUOTE)../ESF/hdi/instance$(QUOTE) \
-I$(QUOTE)../ESF/hdi/pio$(QUOTE) \
-I$(QUOTE)../ESF/mcu/inc$(QUOTE) \
-I$(QUOTE)../ESF/common/inc$(QUOTE) \
-I$(QUOTE)../ESF/common/inc/cmsis$(QUOTE) \
-I$(QUOTE)../inc$(QUOTE)
# List the dependency files # List the dependency files
DEPS := $(OBJS:%.o=%.d) DEPS := $(OBJS:%.o=%.d)
DEPS_AS_ARGS += \ DEPS_AS_ARGS := $(OBJS_AS_ARGS:%.o=%.d)
vpath %.c ../ vpath %.c ../
vpath %.s ../ vpath %.s ../
vpath %.S ../ vpath %.S ../
# All Target
.PHONY: debug clean
# All Targets
all: $(SUB_DIRS) $(PROJECT_NAME).elf \ all: $(SUB_DIRS) $(PROJECT_NAME).elf \
$(PROJECT_NAME).bin \ $(PROJECT_NAME).bin \
$(PROJECT_NAME).hex \ $(PROJECT_NAME).hex \
$(PROJECT_NAME).eep \ $(PROJECT_NAME).eep \
$(PROJECT_NAME).lss $(PROJECT_NAME).lss
$(QUOTE)$(SIZE)$(QUOTE) $(QUOTE)$(PROJECT_NAME).elf$(QUOTE)
# Linker target # Linker target
# Make ELF # Make ELF
@ -101,7 +124,6 @@ $(PROJECT_NAME).elf: $(OBJS)
$(QUOTE)$(CC)$(QUOTE) -o $@ $(OBJS_AS_ARGS) $(ELF_FLAGS) $(QUOTE)$(CC)$(QUOTE) -o $@ $(OBJS_AS_ARGS) $(ELF_FLAGS)
@echo Finished building target: $@ @echo Finished building target: $@
$(QUOTE)$(SIZE)$(QUOTE) $(QUOTE)$@$(QUOTE)
# Make BIN # Make BIN
$(PROJECT_NAME).bin: $(PROJECT_NAME).elf $(PROJECT_NAME).bin: $(PROJECT_NAME).elf
@ -121,8 +143,7 @@ $(PROJECT_NAME).eep: $(PROJECT_NAME).elf
# Make LSS # Make LSS
$(PROJECT_NAME).lss: $(PROJECT_NAME).elf $(PROJECT_NAME).lss: $(PROJECT_NAME).elf
$(QUOTE)$(OBJDUMP)$(QUOTE) -h -S $(QUOTE)$<$(QUOTE) $(QUOTE)$(OBJDUMP)$(QUOTE) -h -S $(QUOTE)$<$(QUOTE) > $(QUOTE)$@$(QUOTE)
# Compiler targets # Compiler targets
%.o: %.c %.o: %.c
@ -143,24 +164,23 @@ $(PROJECT_NAME).lss: $(PROJECT_NAME).elf
$(QUOTE)$(CC)$(QUOTE) $(CFLAGS) -o $(QUOTE)$@$(QUOTE) $(QUOTE)$<$(QUOTE) $(QUOTE)$(CC)$(QUOTE) $(CFLAGS) -o $(QUOTE)$@$(QUOTE) $(QUOTE)$<$(QUOTE)
@echo Finished building: $< @echo Finished building: $<
# Detect changes in the dependent files and recompile the respective object files. $(SUB_DIRS):
$(MK_DIR) "$@"
ifneq ($(MAKECMDGOALS),clean) ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(DEPS)),) ifneq ($(strip $(DEPS)),)
-include $(DEPS) -include $(DEPS)
endif endif
endif endif
$(SUB_DIRS):
$(MK_DIR) "$@"
clean: clean:
rm -f $(OBJS_AS_ARGS) rm -f $(OBJS_AS_ARGS)
rm -f $(OUTPUT_FILE_PATH)
rm -f $(DEPS_AS_ARGS) rm -f $(DEPS_AS_ARGS)
rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \ rm -f $(PROJECT_NAME).a $(PROJECT_NAME).hex $(PROJECT_NAME).bin \
$(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \ $(PROJECT_NAME).lss $(PROJECT_NAME).eep $(PROJECT_NAME).map \
$(OUTPUT_FILE_NAME).srec $(PROJECT_NAME).srec $(PROJECT_NAME).elf
debug: $(PROJECT_NAME).elf
$(QUOTE)arm-none-eabi-gdb$(QUOTE) -iex $(QUOTE)target extended-remote localhost:3333$(QUOTE) $(PROJECT_NAME).elf
debug: $(OUTPUT_FILE_NAME).elf
$(QUOTE)arm-none-eabi-gdb$(QUOTE) -iex $(QUOTE)target extended-remote localhost:3333$(QUOTE) $(OUTPUT_FILE_NAME).elf
QUOTE := " QUOTE := "

@ -0,0 +1,115 @@
src/main.d src/main.o: ../src/main.c ../inc/igloo.h \
../ESF/mcu/inc/samd21.h ../ESF/mcu/inc/samd21j18a.h \
/usr/lib/gcc/arm-none-eabi/10.2.0/include/stdint.h \
/usr/arm-none-eabi/include/stdint.h \
/usr/arm-none-eabi/include/machine/_default_types.h \
/usr/arm-none-eabi/include/sys/features.h \
/usr/arm-none-eabi/include/_newlib_version.h \
/usr/arm-none-eabi/include/sys/_intsup.h \
/usr/arm-none-eabi/include/sys/_stdint.h \
../ESF/common/inc/cmsis/core_cm0plus.h \
../ESF/common/inc/cmsis/cmsis_version.h \
../ESF/common/inc/cmsis/cmsis_compiler.h \
../ESF/common/inc/cmsis/cmsis_gcc.h ../ESF/mcu/inc/system_samd21.h \
../ESF/hdi/component/ac.h ../ESF/hdi/component/adc.h \
../ESF/hdi/component/dac.h ../ESF/hdi/component/dmac.h \
../ESF/hdi/component/dsu.h ../ESF/hdi/component/eic.h \
../ESF/hdi/component/evsys.h ../ESF/hdi/component/gclk.h \
../ESF/hdi/component/hmatrixb.h ../ESF/hdi/component/i2s.h \
../ESF/hdi/component/mtb.h ../ESF/hdi/component/nvmctrl.h \
../ESF/hdi/component/pac.h ../ESF/hdi/component/pm.h \
../ESF/hdi/component/port.h ../ESF/hdi/component/rtc.h \
../ESF/hdi/component/sercom.h ../ESF/hdi/component/sysctrl.h \
../ESF/hdi/component/tc.h ../ESF/hdi/component/tcc.h \
../ESF/hdi/component/usb.h ../ESF/hdi/component/wdt.h \
../ESF/hdi/instance/ac.h ../ESF/hdi/instance/adc.h \
../ESF/hdi/instance/dac.h ../ESF/hdi/instance/dmac.h \
../ESF/hdi/instance/dsu.h ../ESF/hdi/instance/eic.h \
../ESF/hdi/instance/evsys.h ../ESF/hdi/instance/gclk.h \
../ESF/hdi/instance/sbmatrix.h ../ESF/hdi/instance/i2s.h \
../ESF/hdi/instance/mtb.h ../ESF/hdi/instance/nvmctrl.h \
../ESF/hdi/instance/pac0.h ../ESF/hdi/instance/pac1.h \
../ESF/hdi/instance/pac2.h ../ESF/hdi/instance/pm.h \
../ESF/hdi/instance/port.h ../ESF/hdi/instance/rtc.h \
../ESF/hdi/instance/sercom0.h ../ESF/hdi/instance/sercom1.h \
../ESF/hdi/instance/sercom2.h ../ESF/hdi/instance/sercom3.h \
../ESF/hdi/instance/sercom4.h ../ESF/hdi/instance/sercom5.h \
../ESF/hdi/instance/sysctrl.h ../ESF/hdi/instance/tc3.h \
../ESF/hdi/instance/tc4.h ../ESF/hdi/instance/tc5.h \
../ESF/hdi/instance/tc6.h ../ESF/hdi/instance/tc7.h \
../ESF/hdi/instance/tcc0.h ../ESF/hdi/instance/tcc1.h \
../ESF/hdi/instance/tcc2.h ../ESF/hdi/instance/usb.h \
../ESF/hdi/instance/wdt.h ../ESF/hdi/pio/samd21j18a.h
../inc/igloo.h:
../ESF/mcu/inc/samd21.h:
../ESF/mcu/inc/samd21j18a.h:
/usr/lib/gcc/arm-none-eabi/10.2.0/include/stdint.h:
/usr/arm-none-eabi/include/stdint.h:
/usr/arm-none-eabi/include/machine/_default_types.h:
/usr/arm-none-eabi/include/sys/features.h:
/usr/arm-none-eabi/include/_newlib_version.h:
/usr/arm-none-eabi/include/sys/_intsup.h:
/usr/arm-none-eabi/include/sys/_stdint.h:
../ESF/common/inc/cmsis/core_cm0plus.h:
../ESF/common/inc/cmsis/cmsis_version.h:
../ESF/common/inc/cmsis/cmsis_compiler.h:
../ESF/common/inc/cmsis/cmsis_gcc.h:
../ESF/mcu/inc/system_samd21.h:
../ESF/hdi/component/ac.h:
../ESF/hdi/component/adc.h:
../ESF/hdi/component/dac.h:
../ESF/hdi/component/dmac.h:
../ESF/hdi/component/dsu.h:
../ESF/hdi/component/eic.h:
../ESF/hdi/component/evsys.h:
../ESF/hdi/component/gclk.h:
../ESF/hdi/component/hmatrixb.h:
../ESF/hdi/component/i2s.h:
../ESF/hdi/component/mtb.h:
../ESF/hdi/component/nvmctrl.h:
../ESF/hdi/component/pac.h:
../ESF/hdi/component/pm.h:
../ESF/hdi/component/port.h:
../ESF/hdi/component/rtc.h:
../ESF/hdi/component/sercom.h:
../ESF/hdi/component/sysctrl.h:
../ESF/hdi/component/tc.h:
../ESF/hdi/component/tcc.h:
../ESF/hdi/component/usb.h:
../ESF/hdi/component/wdt.h:
../ESF/hdi/instance/ac.h:
../ESF/hdi/instance/adc.h:
../ESF/hdi/instance/dac.h:
../ESF/hdi/instance/dmac.h:
../ESF/hdi/instance/dsu.h:
../ESF/hdi/instance/eic.h:
../ESF/hdi/instance/evsys.h:
../ESF/hdi/instance/gclk.h:
../ESF/hdi/instance/sbmatrix.h:
../ESF/hdi/instance/i2s.h:
../ESF/hdi/instance/mtb.h:
../ESF/hdi/instance/nvmctrl.h:
../ESF/hdi/instance/pac0.h:
../ESF/hdi/instance/pac1.h:
../ESF/hdi/instance/pac2.h:
../ESF/hdi/instance/pm.h:
../ESF/hdi/instance/port.h:
../ESF/hdi/instance/rtc.h:
../ESF/hdi/instance/sercom0.h:
../ESF/hdi/instance/sercom1.h:
../ESF/hdi/instance/sercom2.h:
../ESF/hdi/instance/sercom3.h:
../ESF/hdi/instance/sercom4.h:
../ESF/hdi/instance/sercom5.h:
../ESF/hdi/instance/sysctrl.h:
../ESF/hdi/instance/tc3.h:
../ESF/hdi/instance/tc4.h:
../ESF/hdi/instance/tc5.h:
../ESF/hdi/instance/tc6.h:
../ESF/hdi/instance/tc7.h:
../ESF/hdi/instance/tcc0.h:
../ESF/hdi/instance/tcc1.h:
../ESF/hdi/instance/tcc2.h:
../ESF/hdi/instance/usb.h:
../ESF/hdi/instance/wdt.h:
../ESF/hdi/pio/samd21j18a.h:

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,45 @@
:100000002020002001010000FD000000FD00000094
:1000100000000000000000000000000000000000E0
:10002000000000000000000000000000FD000000D3
:100030000000000000000000FD000000FD000000C6
:10004000FD000000FD000000FD000000FD000000BC
:10005000FD000000FD000000FD000000FD000000AC
:10006000FD000000FD000000FD000000FD0000009C
:10007000FD000000FD000000FD000000FD0000008C
:10008000FD000000FD000000FD000000FD0000007C
:10009000FD000000FD000000FD000000FD0000006C
:1000A000FD000000FD000000FD000000FD0000005C
:1000B0000000000010B5064C2378002B07D1054B3B
:1000C000002B02D0044800E000BF0123237010BDC4
:1000D0000000002000000000C0020000044B10B52A
:1000E000002B03D00349044800E000BF10BDC04608
:1000F0000000000004000020C0020000FEE7000035
:100100002549264870B581420AD0254BC41E0022DD
:10011000A34203D303331A1A92089200214B984743
:100120002148224BC11E0022994203D803331A1AD8
:100130009208920000211E4B9847FF221D4B03217D
:1001400093431D4A0C2593600222082430261B4B42
:100150001B485A62C3788B431343C370C378AB43C5
:100160002343C370174B987BB043060020203043D5
:100170009873987BA84304439C73987B88430243FD
:100180009A738023104A51680B4353600F4B984772
:100190000F4B9847FEE7C046C00200000000002059
:1001A000000000207D020000000000201C00002054
:1001B0008F0200000000000000ED00E0FC70004134
:1001C000005000410048004100400041350200005D
:1001D000D5010000134A144B116880200B43022103
:1001E00030B51360114C124AC005FA2513686D0032
:1001F0008B43034313606423C046013B002BFBD1B8
:10020000013D002DF7D1FA2513686D0023400B4303
:1002100013606423C046013B002BFBD1013D002D40
:10022000F7D1E2E78044004102000040FFFFFFBF3A
:100230009044004170B500260C4D0D4C641BA41079
:10024000A64209D1002600F02BF80A4D0A4C641B87
:10025000A410A64205D170BDB300EB5898470136F3
:10026000EEE7B300EB5898470136F2E7AC02000026
:10027000AC020000AC020000B0020000002310B588
:100280009A4200D110BDCC5CC4540133F8E703009E
:100290008218934200D1704719700133F9E70000CA
:1002A000F8B5C046F8BC08BC9E467047DD000000AB
:1002B000F8B5C046F8BC08BC9E467047B5000000C3
:00000001FF

@ -0,0 +1,365 @@
testdir.elf: file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000002c0 00000000 00000000 00010000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .relocate 00000000 20000000 20000000 000102c0 2**0
CONTENTS
2 .bss 0000001c 20000000 20000000 00020000 2**2
ALLOC
3 .stack 00002004 2000001c 2000001c 00020000 2**0
ALLOC
4 .ARM.attributes 00000028 00000000 00000000 000102c0 2**0
CONTENTS, READONLY
5 .comment 0000001e 00000000 00000000 000102e8 2**0
CONTENTS, READONLY
6 .debug_info 00003d0a 00000000 00000000 00010306 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
7 .debug_abbrev 000003d9 00000000 00000000 00014010 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
8 .debug_aranges 00000048 00000000 00000000 000143e9 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
9 .debug_ranges 000000f0 00000000 00000000 00014431 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
10 .debug_macro 00011a5c 00000000 00000000 00014521 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
11 .debug_line 00000b0b 00000000 00000000 00025f7d 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
12 .debug_str 0006ed4e 00000000 00000000 00026a88 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
13 .debug_frame 000000dc 00000000 00000000 000957d8 2**2
CONTENTS, READONLY, DEBUGGING, OCTETS
14 .debug_loc 0000027c 00000000 00000000 000958b4 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
Disassembly of section .text:
00000000 <exception_table>:
0: 20 20 00 20 01 01 00 00 fd 00 00 00 fd 00 00 00 . ............
...
2c: fd 00 00 00 00 00 00 00 00 00 00 00 fd 00 00 00 ................
3c: fd 00 00 00 fd 00 00 00 fd 00 00 00 fd 00 00 00 ................
4c: fd 00 00 00 fd 00 00 00 fd 00 00 00 fd 00 00 00 ................
5c: fd 00 00 00 fd 00 00 00 fd 00 00 00 fd 00 00 00 ................
6c: fd 00 00 00 fd 00 00 00 fd 00 00 00 fd 00 00 00 ................
7c: fd 00 00 00 fd 00 00 00 fd 00 00 00 fd 00 00 00 ................
8c: fd 00 00 00 fd 00 00 00 fd 00 00 00 fd 00 00 00 ................
9c: fd 00 00 00 fd 00 00 00 fd 00 00 00 fd 00 00 00 ................
ac: fd 00 00 00 00 00 00 00 ........
000000b4 <__do_global_dtors_aux>:
b4: b510 push {r4, lr}
b6: 4c06 ldr r4, [pc, #24] ; (d0 <__do_global_dtors_aux+0x1c>)
b8: 7823 ldrb r3, [r4, #0]
ba: 2b00 cmp r3, #0
bc: d107 bne.n ce <__do_global_dtors_aux+0x1a>
be: 4b05 ldr r3, [pc, #20] ; (d4 <__do_global_dtors_aux+0x20>)
c0: 2b00 cmp r3, #0
c2: d002 beq.n ca <__do_global_dtors_aux+0x16>
c4: 4804 ldr r0, [pc, #16] ; (d8 <__do_global_dtors_aux+0x24>)
c6: e000 b.n ca <__do_global_dtors_aux+0x16>
c8: bf00 nop
ca: 2301 movs r3, #1
cc: 7023 strb r3, [r4, #0]
ce: bd10 pop {r4, pc}
d0: 20000000 .word 0x20000000
d4: 00000000 .word 0x00000000
d8: 000002c0 .word 0x000002c0
000000dc <frame_dummy>:
dc: 4b04 ldr r3, [pc, #16] ; (f0 <frame_dummy+0x14>)
de: b510 push {r4, lr}
e0: 2b00 cmp r3, #0
e2: d003 beq.n ec <frame_dummy+0x10>
e4: 4903 ldr r1, [pc, #12] ; (f4 <frame_dummy+0x18>)
e6: 4804 ldr r0, [pc, #16] ; (f8 <frame_dummy+0x1c>)
e8: e000 b.n ec <frame_dummy+0x10>
ea: bf00 nop
ec: bd10 pop {r4, pc}
ee: 46c0 nop ; (mov r8, r8)
f0: 00000000 .word 0x00000000
f4: 20000004 .word 0x20000004
f8: 000002c0 .word 0x000002c0
000000fc <Dummy_Handler>:
/**
* \brief Default interrupt handler for unused IRQs.
*/
void Dummy_Handler(void)
{
while (1) {
fc: e7fe b.n fc <Dummy_Handler>
...
00000100 <Reset_Handler>:
if (pSrc != pDest) {
100: 4925 ldr r1, [pc, #148] ; (198 <Reset_Handler+0x98>)
102: 4826 ldr r0, [pc, #152] ; (19c <Reset_Handler+0x9c>)
{
104: b570 push {r4, r5, r6, lr}
if (pSrc != pDest) {
106: 4281 cmp r1, r0
108: d00a beq.n 120 <Reset_Handler+0x20>
*pDest++ = *pSrc++;
10a: 4b25 ldr r3, [pc, #148] ; (1a0 <Reset_Handler+0xa0>)
10c: 1ec4 subs r4, r0, #3
10e: 2200 movs r2, #0
110: 42a3 cmp r3, r4
112: d303 bcc.n 11c <Reset_Handler+0x1c>
114: 3303 adds r3, #3
116: 1a1a subs r2, r3, r0
118: 0892 lsrs r2, r2, #2
11a: 0092 lsls r2, r2, #2
11c: 4b21 ldr r3, [pc, #132] ; (1a4 <Reset_Handler+0xa4>)
11e: 4798 blx r3
*pDest++ = 0;
120: 4821 ldr r0, [pc, #132] ; (1a8 <Reset_Handler+0xa8>)
122: 4b22 ldr r3, [pc, #136] ; (1ac <Reset_Handler+0xac>)
124: 1ec1 subs r1, r0, #3
126: 2200 movs r2, #0
128: 4299 cmp r1, r3
12a: d803 bhi.n 134 <Reset_Handler+0x34>
12c: 3303 adds r3, #3
12e: 1a1a subs r2, r3, r0
130: 0892 lsrs r2, r2, #2
132: 0092 lsls r2, r2, #2
134: 2100 movs r1, #0
136: 4b1e ldr r3, [pc, #120] ; (1b0 <Reset_Handler+0xb0>)
138: 4798 blx r3
SCB->VTOR = ((uint32_t) pSrc & SCB_VTOR_TBLOFF_Msk);
13a: 22ff movs r2, #255 ; 0xff
13c: 4b1d ldr r3, [pc, #116] ; (1b4 <Reset_Handler+0xb4>)
USB->DEVICE.QOSCTRL.bit.CQOS = 2;
13e: 2103 movs r1, #3
SCB->VTOR = ((uint32_t) pSrc & SCB_VTOR_TBLOFF_Msk);
140: 4393 bics r3, r2
142: 4a1d ldr r2, [pc, #116] ; (1b8 <Reset_Handler+0xb8>)
USB->DEVICE.QOSCTRL.bit.DQOS = 2;
144: 250c movs r5, #12
SCB->VTOR = ((uint32_t) pSrc & SCB_VTOR_TBLOFF_Msk);
146: 6093 str r3, [r2, #8]
SBMATRIX->SFR[SBMATRIX_SLAVE_HMCRAMC0].reg = 2;
148: 2202 movs r2, #2
USB->DEVICE.QOSCTRL.bit.DQOS = 2;
14a: 2408 movs r4, #8
DMAC->QOSCTRL.bit.DQOS = 2;
14c: 2630 movs r6, #48 ; 0x30
SBMATRIX->SFR[SBMATRIX_SLAVE_HMCRAMC0].reg = 2;
14e: 4b1b ldr r3, [pc, #108] ; (1bc <Reset_Handler+0xbc>)
USB->DEVICE.QOSCTRL.bit.CQOS = 2;
150: 481b ldr r0, [pc, #108] ; (1c0 <Reset_Handler+0xc0>)
SBMATRIX->SFR[SBMATRIX_SLAVE_HMCRAMC0].reg = 2;
152: 625a str r2, [r3, #36] ; 0x24
USB->DEVICE.QOSCTRL.bit.CQOS = 2;
154: 78c3 ldrb r3, [r0, #3]
156: 438b bics r3, r1
158: 4313 orrs r3, r2
15a: 70c3 strb r3, [r0, #3]
USB->DEVICE.QOSCTRL.bit.DQOS = 2;
15c: 78c3 ldrb r3, [r0, #3]
15e: 43ab bics r3, r5
160: 4323 orrs r3, r4
162: 70c3 strb r3, [r0, #3]
DMAC->QOSCTRL.bit.DQOS = 2;
164: 4b17 ldr r3, [pc, #92] ; (1c4 <Reset_Handler+0xc4>)
166: 7b98 ldrb r0, [r3, #14]
168: 43b0 bics r0, r6
16a: 0006 movs r6, r0
16c: 2020 movs r0, #32
16e: 4330 orrs r0, r6
170: 7398 strb r0, [r3, #14]
DMAC->QOSCTRL.bit.FQOS = 2;
172: 7b98 ldrb r0, [r3, #14]
174: 43a8 bics r0, r5
176: 4304 orrs r4, r0
178: 739c strb r4, [r3, #14]
DMAC->QOSCTRL.bit.WRBQOS = 2;
17a: 7b98 ldrb r0, [r3, #14]
17c: 4388 bics r0, r1
17e: 4302 orrs r2, r0
180: 739a strb r2, [r3, #14]
NVMCTRL->CTRLB.bit.MANW = 1;
182: 2380 movs r3, #128 ; 0x80
184: 4a10 ldr r2, [pc, #64] ; (1c8 <Reset_Handler+0xc8>)
186: 6851 ldr r1, [r2, #4]
188: 430b orrs r3, r1
18a: 6053 str r3, [r2, #4]
__libc_init_array();
18c: 4b0f ldr r3, [pc, #60] ; (1cc <Reset_Handler+0xcc>)
18e: 4798 blx r3
main();
190: 4b0f ldr r3, [pc, #60] ; (1d0 <Reset_Handler+0xd0>)
192: 4798 blx r3
while (1);
194: e7fe b.n 194 <Reset_Handler+0x94>
196: 46c0 nop ; (mov r8, r8)
198: 000002c0 .word 0x000002c0
19c: 20000000 .word 0x20000000
1a0: 20000000 .word 0x20000000
1a4: 0000027d .word 0x0000027d
1a8: 20000000 .word 0x20000000
1ac: 2000001c .word 0x2000001c
1b0: 0000028f .word 0x0000028f
1b4: 00000000 .word 0x00000000
1b8: e000ed00 .word 0xe000ed00
1bc: 410070fc .word 0x410070fc
1c0: 41005000 .word 0x41005000
1c4: 41004800 .word 0x41004800
1c8: 41004000 .word 0x41004000
1cc: 00000235 .word 0x00000235
1d0: 000001d5 .word 0x000001d5
000001d4 <main>:
void init_pin(int port, int pin)
{
uint32_t* dir_reg = (uint32_t*)((PORT_ADDR | (port * PORT_GROUP_SIZE) | PORT_DIR_OFF));
*dir_reg |= (1 << pin);
1d4: 4a13 ldr r2, [pc, #76] ; (224 <main+0x50>)
1d6: 4b14 ldr r3, [pc, #80] ; (228 <main+0x54>)
1d8: 6811 ldr r1, [r2, #0]
}
void clr_pin(int port, int pin)
{
uint32_t* out_reg = (uint32_t*)((PORT_ADDR | (port * PORT_GROUP_SIZE) | PORT_OUT_OFF));
*out_reg &= ~(1 << pin);
1da: 2080 movs r0, #128 ; 0x80
*dir_reg |= (1 << pin);
1dc: 430b orrs r3, r1
*out_reg &= ~(1 << pin);
1de: 2102 movs r1, #2
{
1e0: b530 push {r4, r5, lr}
*dir_reg |= (1 << pin);
1e2: 6013 str r3, [r2, #0]
*out_reg &= ~(1 << pin);
1e4: 4c11 ldr r4, [pc, #68] ; (22c <main+0x58>)
1e6: 4a12 ldr r2, [pc, #72] ; (230 <main+0x5c>)
1e8: 05c0 lsls r0, r0, #23
1ea: 25fa movs r5, #250 ; 0xfa
1ec: 6813 ldr r3, [r2, #0]
1ee: 006d lsls r5, r5, #1
1f0: 438b bics r3, r1
1f2: 4303 orrs r3, r0
1f4: 6013 str r3, [r2, #0]
{
1f6: 2364 movs r3, #100 ; 0x64
asm volatile("nop");
1f8: 46c0 nop ; (mov r8, r8)
for(i=0;i<100;i++)
1fa: 3b01 subs r3, #1
1fc: 2b00 cmp r3, #0
1fe: d1fb bne.n 1f8 <main+0x24>
for(;n>0;n--)
200: 3d01 subs r5, #1
202: 2d00 cmp r5, #0
204: d1f7 bne.n 1f6 <main+0x22>
*out_reg |= (1 << pin);
206: 25fa movs r5, #250 ; 0xfa
*out_reg &= ~(1 << pin);
208: 6813 ldr r3, [r2, #0]
*out_reg |= (1 << pin);
20a: 006d lsls r5, r5, #1
*out_reg &= ~(1 << pin);
20c: 4023 ands r3, r4
*out_reg |= (1 << pin);
20e: 430b orrs r3, r1
210: 6013 str r3, [r2, #0]
*out_reg &= ~(1 << pin);
212: 2364 movs r3, #100 ; 0x64
asm volatile("nop");
214: 46c0 nop ; (mov r8, r8)
for(i=0;i<100;i++)
216: 3b01 subs r3, #1
218: 2b00 cmp r3, #0
21a: d1fb bne.n 214 <main+0x40>
for(;n>0;n--)
21c: 3d01 subs r5, #1
21e: 2d00 cmp r5, #0
220: d1f7 bne.n 212 <main+0x3e>
222: e7e2 b.n 1ea <main+0x16>
224: 41004480 .word 0x41004480
228: 40000002 .word 0x40000002
22c: bfffffff .word 0xbfffffff
230: 41004490 .word 0x41004490
00000234 <__libc_init_array>:
234: b570 push {r4, r5, r6, lr}
236: 2600 movs r6, #0
238: 4d0c ldr r5, [pc, #48] ; (26c <__libc_init_array+0x38>)
23a: 4c0d ldr r4, [pc, #52] ; (270 <__libc_init_array+0x3c>)
23c: 1b64 subs r4, r4, r5
23e: 10a4 asrs r4, r4, #2
240: 42a6 cmp r6, r4
242: d109 bne.n 258 <__libc_init_array+0x24>
244: 2600 movs r6, #0
246: f000 f82b bl 2a0 <_init>
24a: 4d0a ldr r5, [pc, #40] ; (274 <__libc_init_array+0x40>)
24c: 4c0a ldr r4, [pc, #40] ; (278 <__libc_init_array+0x44>)
24e: 1b64 subs r4, r4, r5
250: 10a4 asrs r4, r4, #2
252: 42a6 cmp r6, r4
254: d105 bne.n 262 <__libc_init_array+0x2e>
256: bd70 pop {r4, r5, r6, pc}
258: 00b3 lsls r3, r6, #2
25a: 58eb ldr r3, [r5, r3]
25c: 4798 blx r3
25e: 3601 adds r6, #1
260: e7ee b.n 240 <__libc_init_array+0xc>
262: 00b3 lsls r3, r6, #2
264: 58eb ldr r3, [r5, r3]
266: 4798 blx r3
268: 3601 adds r6, #1
26a: e7f2 b.n 252 <__libc_init_array+0x1e>
26c: 000002ac .word 0x000002ac
270: 000002ac .word 0x000002ac
274: 000002ac .word 0x000002ac
278: 000002b0 .word 0x000002b0
0000027c <memcpy>:
27c: 2300 movs r3, #0
27e: b510 push {r4, lr}
280: 429a cmp r2, r3
282: d100 bne.n 286 <memcpy+0xa>
284: bd10 pop {r4, pc}
286: 5ccc ldrb r4, [r1, r3]
288: 54c4 strb r4, [r0, r3]
28a: 3301 adds r3, #1
28c: e7f8 b.n 280 <memcpy+0x4>
0000028e <memset>:
28e: 0003 movs r3, r0
290: 1882 adds r2, r0, r2
292: 4293 cmp r3, r2
294: d100 bne.n 298 <memset+0xa>
296: 4770 bx lr
298: 7019 strb r1, [r3, #0]
29a: 3301 adds r3, #1
29c: e7f9 b.n 292 <memset+0x4>
...
000002a0 <_init>:
2a0: b5f8 push {r3, r4, r5, r6, r7, lr}
2a2: 46c0 nop ; (mov r8, r8)
2a4: bcf8 pop {r3, r4, r5, r6, r7}
2a6: bc08 pop {r3}
2a8: 469e mov lr, r3
2aa: 4770 bx lr
000002ac <__frame_dummy_init_array_entry>:
2ac: 00dd 0000 ....
000002b0 <_fini>:
2b0: b5f8 push {r3, r4, r5, r6, r7, lr}
2b2: 46c0 nop ; (mov r8, r8)
2b4: bcf8 pop {r3, r4, r5, r6, r7}
2b6: bc08 pop {r3}
2b8: 469e mov lr, r3
2ba: 4770 bx lr
000002bc <__do_global_dtors_aux_fini_array_entry>:
2bc: 00b5 0000 ....

@ -0,0 +1,882 @@
Archive member included to satisfy reference by file (symbol)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-atexit.o)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/crt0.o (atexit)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-exit.o)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/crt0.o (exit)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-fini.o)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/crt0.o (__libc_fini_array)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-impure.o)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-exit.o) (_global_impure_ptr)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-init.o)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/crt0.o (__libc_init_array)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memcpy-stub.o)
ESF/mcu/src/startup_samd21.o (memcpy)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memset.o)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/crt0.o (memset)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__atexit.o)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-atexit.o) (__register_exitproc)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__call_atexit.o)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__atexit.o) (__call_exitprocs)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
/usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__atexit.o) (__retarget_lock_acquire_recursive)
Allocating common symbols
Common symbol size file
__lock___atexit_recursive_mutex
0x1 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
__lock___arc4random_mutex
0x1 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
__lock___env_recursive_mutex
0x1 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
__lock___sinit_recursive_mutex
0x1 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
__lock___malloc_recursive_mutex
0x1 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
__lock___at_quick_exit_mutex
0x1 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
__lock___dd_hash_mutex
0x1 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
__lock___tz_mutex 0x1 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
__lock___sfp_recursive_mutex
0x1 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
Discarded input sections
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crti.o
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crti.o
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crti.o
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
.data.__dso_handle
0x0000000000000000 0x4 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
.text 0x0000000000000000 0x74 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/crt0.o
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/crt0.o
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/crt0.o
.ARM.extab 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/crt0.o
.ARM.exidx 0x0000000000000000 0x10 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/crt0.o
.ARM.attributes
0x0000000000000000 0x1b /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/crt0.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/startup_samd21.o
.text 0x0000000000000000 0x0 ESF/mcu/src/startup_samd21.o
.data 0x0000000000000000 0x0 ESF/mcu/src/startup_samd21.o
.bss 0x0000000000000000 0x0 ESF/mcu/src/startup_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc ESF/mcu/src/system_samd21.o
.text 0x0000000000000000 0x0 ESF/mcu/src/system_samd21.o
.data 0x0000000000000000 0x4 ESF/mcu/src/system_samd21.o
.bss 0x0000000000000000 0x0 ESF/mcu/src/system_samd21.o
.text.SystemInit
0x0000000000000000 0x10 ESF/mcu/src/system_samd21.o
.text.SystemCoreClockUpdate
0x0000000000000000 0x10 ESF/mcu/src/system_samd21.o
.debug_info 0x0000000000000000 0xc2 ESF/mcu/src/system_samd21.o
.debug_abbrev 0x0000000000000000 0x92 ESF/mcu/src/system_samd21.o
.debug_aranges
0x0000000000000000 0x20 ESF/mcu/src/system_samd21.o
.debug_ranges 0x0000000000000000 0x10 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x30c ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xa4e ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x22 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x8e ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x51 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x103 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x6a ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x1df ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x3a ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x1c ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x22 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xaf ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x3ad ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x681 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x8b5 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x230 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xd60 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x4cb ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x9f8 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x82b ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x455 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x5e ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x8fd ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x21c ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x95b ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x5e ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x667 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x3af ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xc7a ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x1092 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xc4a ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x6ba ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x1bbf ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x1440 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x344 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x7c ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xa0 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x4c ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xca ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x94 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x58 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x37d ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x82 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x18d ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xb8 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xa0 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xb8 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x1c ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x1c ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x1c ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x82 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x15a ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xdc ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x128 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x128 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x128 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x128 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x128 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x128 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x124 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xe2 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xe2 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xe2 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xe2 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xe2 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x130 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x106 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0xfa ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x40f ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x40 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x37d ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x1e52 ESF/mcu/src/system_samd21.o
.debug_macro 0x0000000000000000 0x6d ESF/mcu/src/system_samd21.o
.debug_line 0x0000000000000000 0x47c ESF/mcu/src/system_samd21.o
.debug_str 0x0000000000000000 0x6e2c4 ESF/mcu/src/system_samd21.o
.comment 0x0000000000000000 0x1f ESF/mcu/src/system_samd21.o
.debug_frame 0x0000000000000000 0x30 ESF/mcu/src/system_samd21.o
.ARM.attributes
0x0000000000000000 0x2c ESF/mcu/src/system_samd21.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.group 0x0000000000000000 0xc src/main.o
.text 0x0000000000000000 0x0 src/main.o
.data 0x0000000000000000 0x0 src/main.o
.bss 0x0000000000000000 0x0 src/main.o
.debug_macro 0x0000000000000000 0xa4e src/main.o
.debug_macro 0x0000000000000000 0x22 src/main.o
.debug_macro 0x0000000000000000 0x8e src/main.o
.debug_macro 0x0000000000000000 0x51 src/main.o
.debug_macro 0x0000000000000000 0x103 src/main.o
.debug_macro 0x0000000000000000 0x6a src/main.o
.debug_macro 0x0000000000000000 0x1df src/main.o
.debug_macro 0x0000000000000000 0x3a src/main.o
.debug_macro 0x0000000000000000 0x1c src/main.o
.debug_macro 0x0000000000000000 0x22 src/main.o
.debug_macro 0x0000000000000000 0xaf src/main.o
.debug_macro 0x0000000000000000 0x3ad src/main.o
.debug_macro 0x0000000000000000 0x681 src/main.o
.debug_macro 0x0000000000000000 0x8b5 src/main.o
.debug_macro 0x0000000000000000 0x230 src/main.o
.debug_macro 0x0000000000000000 0xd60 src/main.o
.debug_macro 0x0000000000000000 0x4cb src/main.o
.debug_macro 0x0000000000000000 0x9f8 src/main.o
.debug_macro 0x0000000000000000 0x82b src/main.o
.debug_macro 0x0000000000000000 0x455 src/main.o
.debug_macro 0x0000000000000000 0x5e src/main.o
.debug_macro 0x0000000000000000 0x8fd src/main.o
.debug_macro 0x0000000000000000 0x21c src/main.o
.debug_macro 0x0000000000000000 0x95b src/main.o
.debug_macro 0x0000000000000000 0x5e src/main.o
.debug_macro 0x0000000000000000 0x667 src/main.o
.debug_macro 0x0000000000000000 0x3af src/main.o
.debug_macro 0x0000000000000000 0xc7a src/main.o
.debug_macro 0x0000000000000000 0x1092 src/main.o
.debug_macro 0x0000000000000000 0xc4a src/main.o
.debug_macro 0x0000000000000000 0x6ba src/main.o
.debug_macro 0x0000000000000000 0x1bbf src/main.o
.debug_macro 0x0000000000000000 0x1440 src/main.o
.debug_macro 0x0000000000000000 0x344 src/main.o
.debug_macro 0x0000000000000000 0x7c src/main.o
.debug_macro 0x0000000000000000 0xa0 src/main.o
.debug_macro 0x0000000000000000 0x4c src/main.o
.debug_macro 0x0000000000000000 0xca src/main.o
.debug_macro 0x0000000000000000 0x94 src/main.o
.debug_macro 0x0000000000000000 0x58 src/main.o
.debug_macro 0x0000000000000000 0x37d src/main.o
.debug_macro 0x0000000000000000 0x82 src/main.o
.debug_macro 0x0000000000000000 0x18d src/main.o
.debug_macro 0x0000000000000000 0xb8 src/main.o
.debug_macro 0x0000000000000000 0xa0 src/main.o
.debug_macro 0x0000000000000000 0xb8 src/main.o
.debug_macro 0x0000000000000000 0x1c src/main.o
.debug_macro 0x0000000000000000 0x1c src/main.o
.debug_macro 0x0000000000000000 0x1c src/main.o
.debug_macro 0x0000000000000000 0x82 src/main.o
.debug_macro 0x0000000000000000 0x15a src/main.o
.debug_macro 0x0000000000000000 0xdc src/main.o
.debug_macro 0x0000000000000000 0x128 src/main.o
.debug_macro 0x0000000000000000 0x128 src/main.o
.debug_macro 0x0000000000000000 0x128 src/main.o
.debug_macro 0x0000000000000000 0x128 src/main.o
.debug_macro 0x0000000000000000 0x128 src/main.o
.debug_macro 0x0000000000000000 0x128 src/main.o
.debug_macro 0x0000000000000000 0x124 src/main.o
.debug_macro 0x0000000000000000 0xe2 src/main.o
.debug_macro 0x0000000000000000 0xe2 src/main.o
.debug_macro 0x0000000000000000 0xe2 src/main.o
.debug_macro 0x0000000000000000 0xe2 src/main.o
.debug_macro 0x0000000000000000 0xe2 src/main.o
.debug_macro 0x0000000000000000 0x130 src/main.o
.debug_macro 0x0000000000000000 0x106 src/main.o
.debug_macro 0x0000000000000000 0xfa src/main.o
.debug_macro 0x0000000000000000 0x40f src/main.o
.debug_macro 0x0000000000000000 0x40 src/main.o
.debug_macro 0x0000000000000000 0x37d src/main.o
.debug_macro 0x0000000000000000 0x1e52 src/main.o
.debug_macro 0x0000000000000000 0x6d src/main.o
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-atexit.o)
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-atexit.o)
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-atexit.o)
.text.atexit 0x0000000000000000 0x10 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-atexit.o)
.debug_frame 0x0000000000000000 0x28 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-atexit.o)
.ARM.attributes
0x0000000000000000 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-atexit.o)
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-exit.o)
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-exit.o)
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-exit.o)
.text.exit 0x0000000000000000 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-exit.o)
.debug_frame 0x0000000000000000 0x28 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-exit.o)
.ARM.attributes
0x0000000000000000 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-exit.o)
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-fini.o)
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-fini.o)
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-fini.o)
.text.__libc_fini_array
0x0000000000000000 0x28 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-fini.o)
.debug_frame 0x0000000000000000 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-fini.o)
.ARM.attributes
0x0000000000000000 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-fini.o)
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-impure.o)
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-impure.o)
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-impure.o)
.data._impure_ptr
0x0000000000000000 0x4 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-impure.o)
.data.impure_data
0x0000000000000000 0x60 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-impure.o)
.rodata._global_impure_ptr
0x0000000000000000 0x4 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-impure.o)
.ARM.attributes
0x0000000000000000 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-impure.o)
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-init.o)
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-init.o)
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-init.o)
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memcpy-stub.o)
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memcpy-stub.o)
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memcpy-stub.o)
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memset.o)
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memset.o)
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memset.o)
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__atexit.o)
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__atexit.o)
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__atexit.o)
.text.__register_exitproc
0x0000000000000000 0xcc /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__atexit.o)
.bss._global_atexit0
0x0000000000000000 0x8c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__atexit.o)
.data.__atexit_dummy
0x0000000000000000 0x4 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__atexit.o)
.debug_frame 0x0000000000000000 0x30 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__atexit.o)
.ARM.attributes
0x0000000000000000 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__atexit.o)
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__call_atexit.o)
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__call_atexit.o)
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__call_atexit.o)
.text.__call_exitprocs
0x0000000000000000 0xb0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__call_atexit.o)
.bss._global_atexit
0x0000000000000000 0x4 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__call_atexit.o)
.data.__atexit_recursive_mutex
0x0000000000000000 0x4 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__call_atexit.o)
.debug_frame 0x0000000000000000 0x34 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__call_atexit.o)
.ARM.attributes
0x0000000000000000 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-__call_atexit.o)
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.text.__retarget_lock_init
0x0000000000000000 0x2 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.text.__retarget_lock_init_recursive
0x0000000000000000 0x2 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.text.__retarget_lock_close
0x0000000000000000 0x2 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.text.__retarget_lock_close_recursive
0x0000000000000000 0x2 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.text.__retarget_lock_acquire
0x0000000000000000 0x2 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.text.__retarget_lock_acquire_recursive
0x0000000000000000 0x2 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.text.__retarget_lock_try_acquire
0x0000000000000000 0x4 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.text.__retarget_lock_try_acquire_recursive
0x0000000000000000 0x4 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.text.__retarget_lock_release
0x0000000000000000 0x2 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.text.__retarget_lock_release_recursive
0x0000000000000000 0x2 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.debug_frame 0x0000000000000000 0xb0 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.ARM.attributes
0x0000000000000000 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
COMMON 0x0000000000000000 0x9 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-lock.o)
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtend.o
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtend.o
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtend.o
.eh_frame 0x0000000000000000 0x4 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtend.o
.ARM.attributes
0x0000000000000000 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtend.o
.text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtn.o
.data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtn.o
.bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtn.o
Memory Configuration
Name Origin Length Attributes
rom 0x0000000000000000 0x0000000000040000 xr
ram 0x0000000020000000 0x0000000000008000 xrw
*default* 0x0000000000000000 0xffffffffffffffff
Linker script and memory map
LOAD /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crti.o
LOAD /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
LOAD /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/crt0.o
LOAD ESF/mcu/src/startup_samd21.o
LOAD ESF/mcu/src/system_samd21.o
LOAD src/main.o
START GROUP
LOAD /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libm.a
END GROUP
START GROUP
LOAD /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/libgcc.a
LOAD /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a
END GROUP
START GROUP
LOAD /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/libgcc.a
LOAD /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a
END GROUP
LOAD /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtend.o
LOAD /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtn.o
0x0000000000002000 STACK_SIZE = DEFINED (STACK_SIZE)?STACK_SIZE:DEFINED (__stack_size__)?__stack_size__:0x2000
.text 0x0000000000000000 0x2c0
0x0000000000000000 . = ALIGN (0x4)
0x0000000000000000 _sfixed = .
*(.vectors .vectors.*)
.vectors 0x0000000000000000 0xb4 ESF/mcu/src/startup_samd21.o
0x0000000000000000 exception_table
*(.text .text.* .gnu.linkonce.t.*)
.text.__do_global_dtors_aux
0x00000000000000b4 0x28 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
.text.frame_dummy
0x00000000000000dc 0x20 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
.text.Dummy_Handler
0x00000000000000fc 0x2 ESF/mcu/src/startup_samd21.o
0x00000000000000fc DMAC_Handler
0x00000000000000fc HardFault_Handler
0x00000000000000fc AC_Handler
0x00000000000000fc SysTick_Handler
0x00000000000000fc PendSV_Handler
0x00000000000000fc NMI_Handler
0x00000000000000fc TC7_Handler
0x00000000000000fc SERCOM1_Handler
0x00000000000000fc ADC_Handler
0x00000000000000fc TCC1_Handler
0x00000000000000fc SERCOM2_Handler
0x00000000000000fc TCC0_Handler
0x00000000000000fc RTC_Handler
0x00000000000000fc EIC_Handler
0x00000000000000fc TC6_Handler
0x00000000000000fc WDT_Handler
0x00000000000000fc TC4_Handler
0x00000000000000fc USB_Handler
0x00000000000000fc TC3_Handler
0x00000000000000fc Dummy_Handler
0x00000000000000fc PM_Handler
0x00000000000000fc SERCOM5_Handler
0x00000000000000fc SVC_Handler
0x00000000000000fc TCC2_Handler
0x00000000000000fc EVSYS_Handler
0x00000000000000fc SERCOM3_Handler
0x00000000000000fc SERCOM4_Handler
0x00000000000000fc I2S_Handler
0x00000000000000fc NVMCTRL_Handler
0x00000000000000fc SERCOM0_Handler
0x00000000000000fc DAC_Handler
0x00000000000000fc PTC_Handler
0x00000000000000fc TC5_Handler
0x00000000000000fc SYSCTRL_Handler
*fill* 0x00000000000000fe 0x2
.text.Reset_Handler
0x0000000000000100 0xd4 ESF/mcu/src/startup_samd21.o
0x0000000000000100 Reset_Handler
.text.startup.main
0x00000000000001d4 0x60 src/main.o
0x00000000000001d4 main
.text.__libc_init_array
0x0000000000000234 0x48 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-init.o)
0x0000000000000234 __libc_init_array
.text.memcpy 0x000000000000027c 0x12 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memcpy-stub.o)
0x000000000000027c memcpy
.text.memset 0x000000000000028e 0x10 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memset.o)
0x000000000000028e memset
*(.glue_7t)
.glue_7t 0x000000000000029e 0x0 linker stubs
*(.glue_7)
.glue_7 0x000000000000029e 0x0 linker stubs
*(.rodata .rodata* .gnu.linkonce.r.*)
*(.ARM.extab* .gnu.linkonce.armextab.*)
0x00000000000002a0 . = ALIGN (0x4)
*fill* 0x000000000000029e 0x2
*(.init)
.init 0x00000000000002a0 0x4 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crti.o
0x00000000000002a0 _init
.init 0x00000000000002a4 0x8 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtn.o
0x00000000000002ac . = ALIGN (0x4)
0x00000000000002ac __preinit_array_start = .
*(.preinit_array)
0x00000000000002ac __preinit_array_end = .
0x00000000000002ac . = ALIGN (0x4)
0x00000000000002ac __init_array_start = .
*(SORT_BY_NAME(.init_array.*))
*(.init_array)
.init_array 0x00000000000002ac 0x4 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
0x00000000000002b0 __init_array_end = .
0x00000000000002b0 . = ALIGN (0x4)
*crtbegin.o(.ctors)
*(EXCLUDE_FILE(*crtend.o) .ctors)
*(SORT_BY_NAME(.ctors.*))
*crtend.o(.ctors)
0x00000000000002b0 . = ALIGN (0x4)
*(.fini)
.fini 0x00000000000002b0 0x4 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crti.o
0x00000000000002b0 _fini
.fini 0x00000000000002b4 0x8 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtn.o
0x00000000000002bc . = ALIGN (0x4)
0x00000000000002bc __fini_array_start = .
*(.fini_array)
.fini_array 0x00000000000002bc 0x4 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
*(SORT_BY_NAME(.fini_array.*))
0x00000000000002c0 __fini_array_end = .
*crtbegin.o(.dtors)
*(EXCLUDE_FILE(*crtend.o) .dtors)
*(SORT_BY_NAME(.dtors.*))
*crtend.o(.dtors)
0x00000000000002c0 . = ALIGN (0x4)
0x00000000000002c0 _efixed = .
[!provide] PROVIDE (__exidx_start = .)
.vfp11_veneer 0x00000000000002c0 0x0
.vfp11_veneer 0x00000000000002c0 0x0 linker stubs
.v4_bx 0x00000000000002c0 0x0
.v4_bx 0x00000000000002c0 0x0 linker stubs
.iplt 0x00000000000002c0 0x0
.iplt 0x00000000000002c0 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
.igot.plt 0x00000000000002c0 0x0
.igot.plt 0x00000000000002c0 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
.eh_frame 0x00000000000002c0 0x0
.eh_frame 0x00000000000002c0 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
.rel.dyn 0x00000000000002c0 0x0
.rel.iplt 0x00000000000002c0 0x0 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
.ARM.exidx
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
[!provide] PROVIDE (__exidx_end = .)
0x00000000000002c0 . = ALIGN (0x4)
0x00000000000002c0 _etext = .
.relocate 0x0000000020000000 0x0 load address 0x00000000000002c0
0x0000000020000000 . = ALIGN (0x4)
0x0000000020000000 _srelocate = .
*(.ramfunc .ramfunc.*)
*(.data .data.*)
0x0000000020000000 . = ALIGN (0x4)
0x0000000020000000 _erelocate = .
.bss 0x0000000020000000 0x1c
0x0000000020000000 . = ALIGN (0x4)
0x0000000020000000 _sbss = .
0x0000000020000000 _szero = .
*(.bss .bss.*)
.bss.completed.1
0x0000000020000000 0x1 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
*fill* 0x0000000020000001 0x3
.bss.object.0 0x0000000020000004 0x18 /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
*(COMMON)
0x000000002000001c . = ALIGN (0x4)
0x000000002000001c _ebss = .
0x000000002000001c _ezero = .
.stack 0x000000002000001c 0x2004
0x0000000020000020 . = ALIGN (0x8)
*fill* 0x000000002000001c 0x4
0x0000000020000020 _sstack = .
0x0000000020002020 . = (. + STACK_SIZE)
*fill* 0x0000000020000020 0x2000
0x0000000020002020 . = ALIGN (0x8)
0x0000000020002020 _estack = .
0x0000000020002020 . = ALIGN (0x4)
0x0000000020002020 _end = .
OUTPUT(testdir.elf elf32-littlearm)
LOAD linker stubs
.ARM.attributes
0x0000000000000000 0x28
.ARM.attributes
0x0000000000000000 0x1e /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crti.o
.ARM.attributes
0x000000000000001e 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtbegin.o
.ARM.attributes
0x000000000000004a 0x2c ESF/mcu/src/startup_samd21.o
.ARM.attributes
0x0000000000000076 0x2c src/main.o
.ARM.attributes
0x00000000000000a2 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-init.o)
.ARM.attributes
0x00000000000000ce 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memcpy-stub.o)
.ARM.attributes
0x00000000000000fa 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memset.o)
.ARM.attributes
0x0000000000000126 0x1e /usr/lib/gcc/arm-none-eabi/10.2.0/thumb/v6-m/nofp/crtn.o
.comment 0x0000000000000000 0x1e
.comment 0x0000000000000000 0x1e ESF/mcu/src/startup_samd21.o
0x1f (size before relaxing)
.comment 0x000000000000001e 0x1f src/main.o
.debug_info 0x0000000000000000 0x3d0a
.debug_info 0x0000000000000000 0x39b7 ESF/mcu/src/startup_samd21.o
.debug_info 0x00000000000039b7 0x353 src/main.o
.debug_abbrev 0x0000000000000000 0x3d9
.debug_abbrev 0x0000000000000000 0x2b7 ESF/mcu/src/startup_samd21.o
.debug_abbrev 0x00000000000002b7 0x122 src/main.o
.debug_aranges 0x0000000000000000 0x48
.debug_aranges
0x0000000000000000 0x28 ESF/mcu/src/startup_samd21.o
.debug_aranges
0x0000000000000028 0x20 src/main.o
.debug_ranges 0x0000000000000000 0xf0
.debug_ranges 0x0000000000000000 0x18 ESF/mcu/src/startup_samd21.o
.debug_ranges 0x0000000000000018 0xd8 src/main.o
.debug_macro 0x0000000000000000 0x11a5c
.debug_macro 0x0000000000000000 0x306 ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000000306 0xa4e ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000000d54 0x22 ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000000d76 0x8e ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000000e04 0x51 ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000000e55 0x103 ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000000f58 0x6a ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000000fc2 0x1df ESF/mcu/src/startup_samd21.o
.debug_macro 0x00000000000011a1 0x3a ESF/mcu/src/startup_samd21.o
.debug_macro 0x00000000000011db 0x1c ESF/mcu/src/startup_samd21.o
.debug_macro 0x00000000000011f7 0x22 ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000001219 0xaf ESF/mcu/src/startup_samd21.o
.debug_macro 0x00000000000012c8 0x3ad ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000001675 0x681 ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000001cf6 0x8b5 ESF/mcu/src/startup_samd21.o
.debug_macro 0x00000000000025ab 0x230 ESF/mcu/src/startup_samd21.o
.debug_macro 0x00000000000027db 0xd60 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000353b 0x4cb ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000003a06 0x9f8 ESF/mcu/src/startup_samd21.o
.debug_macro 0x00000000000043fe 0x82b ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000004c29 0x455 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000507e 0x5e ESF/mcu/src/startup_samd21.o
.debug_macro 0x00000000000050dc 0x8fd ESF/mcu/src/startup_samd21.o
.debug_macro 0x00000000000059d9 0x21c ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000005bf5 0x95b ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000006550 0x5e ESF/mcu/src/startup_samd21.o
.debug_macro 0x00000000000065ae 0x667 ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000006c15 0x3af ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000006fc4 0xc7a ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000007c3e 0x1092 ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000008cd0 0xc4a ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000991a 0x6ba ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000009fd4 0x1bbf ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000bb93 0x1440 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000cfd3 0x344 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000d317 0x7c ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000d393 0xa0 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000d433 0x4c ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000d47f 0xca ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000d549 0x94 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000d5dd 0x58 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000d635 0x37d ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000d9b2 0x82 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000da34 0x18d ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000dbc1 0xb8 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000dc79 0xa0 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000dd19 0xb8 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000ddd1 0x1c ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000dded 0x1c ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000de09 0x1c ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000de25 0x82 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000dea7 0x15a ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000e001 0xdc ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000e0dd 0x128 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000e205 0x128 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000e32d 0x128 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000e455 0x128 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000e57d 0x128 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000e6a5 0x128 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000e7cd 0x124 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000e8f1 0xe2 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000e9d3 0xe2 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000eab5 0xe2 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000eb97 0xe2 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000ec79 0xe2 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000ed5b 0x130 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000ee8b 0x106 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000ef91 0xfa ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000f08b 0x40f ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000f49a 0x40 ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000f4da 0x37d ESF/mcu/src/startup_samd21.o
.debug_macro 0x000000000000f857 0x1e52 ESF/mcu/src/startup_samd21.o
.debug_macro 0x00000000000116a9 0x6d ESF/mcu/src/startup_samd21.o
.debug_macro 0x0000000000011716 0x346 src/main.o
.debug_line 0x0000000000000000 0xb0b
.debug_line 0x0000000000000000 0x52a ESF/mcu/src/startup_samd21.o
.debug_line 0x000000000000052a 0x5e1 src/main.o
.debug_str 0x0000000000000000 0x6ed4e
.debug_str 0x0000000000000000 0x6ec5b ESF/mcu/src/startup_samd21.o
0x6f44d (size before relaxing)
.debug_str 0x000000000006ec5b 0xf3 src/main.o
0x6e353 (size before relaxing)
.debug_frame 0x0000000000000000 0xdc
.debug_frame 0x0000000000000000 0x3c ESF/mcu/src/startup_samd21.o
.debug_frame 0x000000000000003c 0x2c src/main.o
.debug_frame 0x0000000000000068 0x2c /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-init.o)
.debug_frame 0x0000000000000094 0x28 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memcpy-stub.o)
.debug_frame 0x00000000000000bc 0x20 /usr/lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/lib/thumb/v6-m/nofp/libc_nano.a(lib_a-memset.o)
.debug_loc 0x0000000000000000 0x27c
.debug_loc 0x0000000000000000 0x27c src/main.o

@ -0,0 +1 @@
/storage/Shared/Documents/Projects/ePenguin/ePenguin-Software-Framework/arch/arm/common

@ -1 +0,0 @@
/storage/Shared/Documents/Projects/ePenguin/ePenguin-Software-Framework/arch/arm/SAM_D2X/inc

@ -0,0 +1,143 @@
/**
* \file
*
* \brief Linker script for running in internal FLASH on the SAMD21J18A
*
* Copyright (c) 2018 Microchip Technology Inc.
*
* \asf_license_start
*
* \page License
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the Licence at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* \asf_license_stop
*
*/
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
SEARCH_DIR(.)
/* Memory Spaces Definitions */
MEMORY
{
rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00040000
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
}
/* The stack size used by the application. NOTE: you need to adjust according to your application. */
STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x2000;
/* Section Definitions */
SECTIONS
{
.text :
{
. = ALIGN(4);
_sfixed = .;
KEEP(*(.vectors .vectors.*))
*(.text .text.* .gnu.linkonce.t.*)
*(.glue_7t) *(.glue_7)
*(.rodata .rodata* .gnu.linkonce.r.*)
*(.ARM.extab* .gnu.linkonce.armextab.*)
/* Support C constructors, and C destructors in both user code
and the C library. This also provides support for C++ code. */
. = ALIGN(4);
KEEP(*(.init))
. = ALIGN(4);
__preinit_array_start = .;
KEEP (*(.preinit_array))
__preinit_array_end = .;
. = ALIGN(4);
__init_array_start = .;
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array))
__init_array_end = .;
. = ALIGN(4);
KEEP (*crtbegin.o(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*crtend.o(.ctors))
. = ALIGN(4);
KEEP(*(.fini))
. = ALIGN(4);
__fini_array_start = .;
KEEP (*(.fini_array))
KEEP (*(SORT(.fini_array.*)))
__fini_array_end = .;
KEEP (*crtbegin.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*crtend.o(.dtors))
. = ALIGN(4);
_efixed = .; /* End of text section */
} > rom
/* .ARM.exidx is sorted, so has to go in its own output section. */
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > rom
PROVIDE_HIDDEN (__exidx_end = .);
. = ALIGN(4);
_etext = .;
.relocate : AT (_etext)
{
. = ALIGN(4);
_srelocate = .;
*(.ramfunc .ramfunc.*);
*(.data .data.*);
. = ALIGN(4);
_erelocate = .;
} > ram
/* .bss section which is used for uninitialized data */
.bss (NOLOAD) :
{
. = ALIGN(4);
_sbss = . ;
_szero = .;
*(.bss .bss.*)
*(COMMON)
. = ALIGN(4);
_ebss = . ;
_ezero = .;
} > ram
/* stack section */
.stack (NOLOAD):
{
. = ALIGN(8);
_sstack = .;
. = . + STACK_SIZE;
. = ALIGN(8);
_estack = .;
} > ram
. = ALIGN(4);
_end = . ;
}

@ -0,0 +1,142 @@
/**
* \file
*
* \brief Linker script for running in internal SRAM on the SAMD21J18A
*
* Copyright (c) 2018 Microchip Technology Inc.
*
* \asf_license_start
*
* \page License
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the Licence at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* \asf_license_stop
*
*/
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
SEARCH_DIR(.)
/* Memory Spaces Definitions */
MEMORY
{
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
}
/* The stack size used by the application. NOTE: you need to adjust according to your application. */
STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x2000;
/* Section Definitions */
SECTIONS
{
.text :
{
. = ALIGN(4);
_sfixed = .;
KEEP(*(.vectors .vectors.*))
*(.text .text.* .gnu.linkonce.t.*)
*(.glue_7t) *(.glue_7)
*(.rodata .rodata* .gnu.linkonce.r.*)
*(.ARM.extab* .gnu.linkonce.armextab.*)
/* Support C constructors, and C destructors in both user code
and the C library. This also provides support for C++ code. */
. = ALIGN(4);
KEEP(*(.init))
. = ALIGN(4);
__preinit_array_start = .;
KEEP (*(.preinit_array))
__preinit_array_end = .;
. = ALIGN(4);
__init_array_start = .;
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array))
__init_array_end = .;
. = ALIGN(4);
KEEP (*crtbegin.o(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*crtend.o(.ctors))
. = ALIGN(4);
KEEP(*(.fini))
. = ALIGN(4);
__fini_array_start = .;
KEEP (*(.fini_array))
KEEP (*(SORT(.fini_array.*)))
__fini_array_end = .;
KEEP (*crtbegin.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*crtend.o(.dtors))
. = ALIGN(4);
_efixed = .; /* End of text section */
} > ram
/* .ARM.exidx is sorted, so has to go in its own output section. */
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > ram
PROVIDE_HIDDEN (__exidx_end = .);
. = ALIGN(4);
_etext = .;
.relocate : AT (_etext)
{
. = ALIGN(4);
_srelocate = .;
*(.ramfunc .ramfunc.*);
*(.data .data.*);
. = ALIGN(4);
_erelocate = .;
} > ram
/* .bss section which is used for uninitialized data */
.bss (NOLOAD) :
{
. = ALIGN(4);
_sbss = . ;
_szero = .;
*(.bss .bss.*)
*(COMMON)
. = ALIGN(4);
_ebss = . ;
_ezero = .;
} > ram
/* stack section */
.stack (NOLOAD):
{
. = ALIGN(8);
_sstack = .;
. = . + STACK_SIZE;
. = ALIGN(8);
_estack = .;
} > ram
. = ALIGN(4);
_end = . ;
}

@ -0,0 +1 @@
/storage/Shared/Documents/Projects/ePenguin/ePenguin-Software-Framework/arch/arm/SAM_D2X/mcu

@ -1 +0,0 @@
/storage/Shared/Documents/Projects/ePenguin/ePenguin-Software-Framework/arch/arm/SAM_D2X/src

@ -0,0 +1 @@
#include <samd21.h>

@ -0,0 +1,78 @@
#include "igloo.h"
#define PORT_ADDR (0x41004400)
#define PORT_GROUP_SIZE (0x80)
#define PORT_A_OFF (0x00)
#define PORT_B_OFF (0x80)
#define PORT_DIR_OFF (0x00)
#define PORT_OUT_OFF (0x10)
// LED 0: PA09
// LED 1: PB01
#define LED0_PORT (1)
#define LED0_PIN (30)
#define LED1_PORT (1)
#define LED1_PIN (1)
static void init_pin(int port, int pin);
static void set_pin(int port, int pin);
static void clr_pin(int port, int pin);
static void delay(int n)
{
int i;
for(;n>0;n--)
{
for(i=0;i<100;i++)
{
asm volatile("nop");
}
}
}
int main()
{
init_pin(LED0_PORT, LED0_PIN);
init_pin(LED1_PORT, LED1_PIN);
for(;;)
{
set_pin(LED0_PORT, LED0_PIN);
clr_pin(LED1_PORT, LED1_PIN);
delay(500);
clr_pin(LED0_PORT, LED0_PIN);
set_pin(LED1_PORT, LED1_PIN);
delay(500);
}
return 0;
}
// port 0: A
// port 1: B
void init_pin(int port, int pin)
{
uint32_t* dir_reg = (uint32_t*)((PORT_ADDR | (port * PORT_GROUP_SIZE) | PORT_DIR_OFF));
*dir_reg |= (1 << pin);
}
void set_pin(int port, int pin)
{
uint32_t* out_reg = (uint32_t*)((PORT_ADDR | (port * PORT_GROUP_SIZE) | PORT_OUT_OFF));
*out_reg |= (1 << pin);
}
void clr_pin(int port, int pin)
{
uint32_t* out_reg = (uint32_t*)((PORT_ADDR | (port * PORT_GROUP_SIZE) | PORT_OUT_OFF));
*out_reg &= ~(1 << pin);
}
Loading…
Cancel
Save