diff options
Diffstat (limited to 'bootloaders/diskloader/Makefile')
| -rw-r--r-- | bootloaders/diskloader/Makefile | 200 | 
1 files changed, 101 insertions, 99 deletions
| diff --git a/bootloaders/diskloader/Makefile b/bootloaders/diskloader/Makefile index 8eec350..6ac3db3 100644 --- a/bootloaders/diskloader/Makefile +++ b/bootloaders/diskloader/Makefile @@ -1,103 +1,105 @@ -###############################################################################
 -# Makefile for DiskLoader
 -###############################################################################
 -
 -## General Flags
 -PROJECT = DiskLoader
 -TARGET = DiskLoader.elf
 -CC = avr-gcc
 -
 -# BOARD2
 -MCU = atmega32u4
 -AVR_FREQ   = 16000000L
 -
 +############################################################################### +# Makefile for DiskLoader +############################################################################### + +## General Flags +PROJECT = DiskLoader +TARGET = DiskLoader.elf +CC = avr-gcc + +# BOARD2 +MCU = atmega32u4 +AVR_FREQ   = 16000000L +  # Specify the Arduino model using the assigned PID.  This is used by Descriptors.c
  #   to set PID and product descriptor string
  # Arduino Leonardo PID
 -ARDUINO_MODEL_PID = 0x0032
 +ARDUINO_MODEL_PID = 0x0034
  # Arduino Micro PID
 -#ARDUINO_MODEL_PID = 0x0033
 -
 -# Change if your programmer is different
 -AVRDUDE_PROGRAMMER = avrispmkII
 -AVRDUDE_PORT = usb	   
 -
 -# program name should not be changed...
 -PROGRAM    = DiskLoader
 -
 -AVRDUDE = avrdude
 -AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -p $(MCU)
 -
 -## Options common to compile, link and assembly rules
 -COMMON = -mmcu=$(MCU)
 -
 -override CFLAGS = -g -Wall -Os -mmcu=$(MCU) -DF_CPU=$(AVR_FREQ) -DARDUINO_MODEL_PID=$(ARDUINO_MODEL_PID) $(DEFS) -ffunction-sections -gdwarf-2 -fdata-sections -fno-split-wide-types
 -
 -## Assembly specific flags
 -ASMFLAGS = $(COMMON)
 -ASMFLAGS += $(CFLAGS)
 -ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2
 -
 -## Linker flags
 -LDFLAGS = $(COMMON)
 -LDFLAGS += -Wl,-gc-sections,-Map=DiskLoader.map,--section-start=.text=0x7000,--relax
 -
 -## Intel Hex file production flags
 -HEX_EEPROM_FLAGS = -j .eeprom
 -HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
 -HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings
 -
 -## Objects explicitly added by the user
 -LINKONLYOBJECTS = 
 -
 -MODULES   := .
 -SRC_DIR   := $(addprefix src/,$(MODULES))
 -BUILD_DIR := $(addprefix build/,$(MODULES))
 -
 -SRC       := $(foreach sdir,$(SRC_DIR),$(wildcard $(sdir)/*.cpp))
 -OBJ       := $(patsubst src/%.cpp,build/%.o,$(SRC))
 -DEP		  := $(OBJ:%.o=%.d)
 -INCLUDES  := $(addprefix -I,$(SRC_DIR))
 -
 -vpath %.cpp $(SRC_DIR)
 -
 -.PHONY: all checkdirs clean
 -
 -all: checkdirs $(TARGET) DiskLoader.hex DiskLoader.lss size
 -
 --include $(DEP)
 -
 -checkdirs: $(BUILD_DIR)
 -
 -$(BUILD_DIR):
 -	@mkdir -p $@
 -
 -clean:
 -	@rm -rf build/
 -	@rm -f *.hex
 -	@rm -f *.elf
 -	@rm -f *.lss
 -	@rm -f *.map
 -
 -define make-goal
 -$1/%.o: %.cpp
 -	$(CC) $(INCLUDES) $(CFLAGS) -c $$< -MD -o $$@
 -endef
 -
 -$(foreach bdir,$(BUILD_DIR),$(eval $(call make-goal,$(bdir))))
 -
 -$(TARGET): $(OBJ)
 -	$(CC) $(LDFLAGS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) $^ -o $@
 -
 -%.hex: $(TARGET)
 -	avr-objcopy -O ihex $(HEX_FLASH_FLAGS)  $< $@
 -	
 -%.lss: $(TARGET)
 -	avr-objdump -h -S $< > $@
 -
 -size: $(TARGET)
 -	@echo
 -#	@avr-size -C --mcu=${MCU} ${TARGET}.elf
 -
 -program: $(TARGET).hex
 -	$(AVRDUDE) $(AVRDUDE_FLAGS) -B 1 -u -U flash:w:$(TARGET).hex
 +#ARDUINO_MODEL_PID = 0x0035 + +# Change if your programmer is different +AVRDUDE_PROGRAMMER = avrispmkII +AVRDUDE_PORT = usb	    + +# program name should not be changed... +PROGRAM    = DiskLoader + +AVRDUDE = avrdude +AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -p $(MCU) + +## Options common to compile, link and assembly rules +COMMON = -mmcu=$(MCU) + +override CFLAGS = -g -Wall -Os -mmcu=$(MCU) -DF_CPU=$(AVR_FREQ) -DARDUINO_MODEL_PID=$(ARDUINO_MODEL_PID) $(DEFS) -ffunction-sections -gdwarf-2 -fdata-sections -fno-split-wide-types + +## Assembly specific flags +ASMFLAGS = $(COMMON) +ASMFLAGS += $(CFLAGS) +ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2 + +## Linker flags +LDFLAGS = $(COMMON) +LDFLAGS += -Wl,-gc-sections,-Map=DiskLoader.map,--section-start=.text=0x7800,--relax +LDFLAGS += -nodefaultlibs -nostartfiles + + +## Intel Hex file production flags +HEX_EEPROM_FLAGS = -j .eeprom +HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load" +HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings + +## Objects explicitly added by the user +LINKONLYOBJECTS =  + +MODULES   := . +SRC_DIR   := $(addprefix src/,$(MODULES)) +BUILD_DIR := $(addprefix build/,$(MODULES)) + +SRC       := $(foreach sdir,$(SRC_DIR),$(wildcard $(sdir)/*.cpp)) +OBJ       := $(patsubst src/%.cpp,build/%.o,$(SRC)) +DEP		  := $(OBJ:%.o=%.d) +INCLUDES  := $(addprefix -I,$(SRC_DIR)) + +vpath %.cpp $(SRC_DIR) + +.PHONY: all checkdirs clean + +all: checkdirs $(TARGET) DiskLoader.hex DiskLoader.lss size + +-include $(DEP) + +checkdirs: $(BUILD_DIR) + +$(BUILD_DIR): +	@mkdir -p $@ + +clean: +	@rm -rf build/ +	@rm -f *.hex +	@rm -f *.elf +	@rm -f *.lss +	@rm -f *.map + +define make-goal +$1/%.o: %.cpp +	$(CC) $(INCLUDES) $(CFLAGS) -c $$< -MD -o $$@ +endef + +$(foreach bdir,$(BUILD_DIR),$(eval $(call make-goal,$(bdir)))) + +$(TARGET): $(OBJ) +	$(CC) $(LDFLAGS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) $^ -o $@ + +%.hex: $(TARGET) +	avr-objcopy -O ihex $(HEX_FLASH_FLAGS)  $< $@ +	 +%.lss: $(TARGET) +	avr-objdump -h -S $< > $@ + +size: $(TARGET) +	@echo +#	@avr-size -C --mcu=${MCU} ${TARGET}.elf + +program: $(TARGET).hex +	$(AVRDUDE) $(AVRDUDE_FLAGS) -B 5 -u -U flash:w:$(TARGET).hex
\ No newline at end of file | 
