diff options
Diffstat (limited to 'bootloaders/optiboot/Makefile')
-rw-r--r-- | bootloaders/optiboot/Makefile | 450 |
1 files changed, 0 insertions, 450 deletions
diff --git a/bootloaders/optiboot/Makefile b/bootloaders/optiboot/Makefile deleted file mode 100644 index f8d137d..0000000 --- a/bootloaders/optiboot/Makefile +++ /dev/null @@ -1,450 +0,0 @@ -# Makefile for ATmegaBOOT -# E.Lins, 18.7.2005 -# -# Instructions -# -# To make bootloader .hex file: -# make diecimila -# make lilypad -# make ng -# etc... -# -# To burn bootloader .hex file: -# make diecimila_isp -# make lilypad_isp -# make ng_isp -# etc... - -# program name should not be changed... -PROGRAM = optiboot - -# The default behavior is to build using tools that are in the users -# current path variables, but we can also build using an installed -# Arduino user IDE setup, or the Arduino source tree. -# Uncomment this next lines to build within the arduino environment, -# using the arduino-included avrgcc toolset (mac and pc) -# ENV ?= arduino -# ENV ?= arduinodev -# OS ?= macosx -# OS ?= windows - - -# enter the parameters for the avrdude isp tool -ISPTOOL = stk500v2 -ISPPORT = usb -ISPSPEED = -b 115200 - -MCU_TARGET = atmega168 -LDSECTIONS = -Wl,--section-start=.text=0x3e00 -Wl,--section-start=.version=0x3ffe - -# Build environments -# Start of some ugly makefile-isms to allow optiboot to be built -# in several different environments. See the README.TXT file for -# details. - -# default -fixpath = $(1) - -ifeq ($(ENV), arduino) -# For Arduino, we assume that we're connected to the optiboot directory -# included with the arduino distribution, which means that the full set -# of avr-tools are "right up there" in standard places. -TOOLROOT = ../../../tools -GCCROOT = $(TOOLROOT)/avr/bin/ -AVRDUDE_CONF = -C$(TOOLROOT)/avr/etc/avrdude.conf - -ifeq ($(OS), windows) -# On windows, SOME of the tool paths will need to have backslashes instead -# of forward slashes (because they use windows cmd.exe for execution instead -# of a unix/mingw shell?) We also have to ensure that a consistent shell -# is used even if a unix shell is installed (ie as part of WINAVR) -fixpath = $(subst /,\,$1) -SHELL = cmd.exe -endif - -else ifeq ($(ENV), arduinodev) -# Arduino IDE source code environment. Use the unpacked compilers created -# by the build (you'll need to do "ant build" first.) -ifeq ($(OS), macosx) -TOOLROOT = ../../../../build/macosx/work/Arduino.app/Contents/Resources/Java/hardware/tools -endif -ifeq ($(OS), windows) -TOOLROOT = ../../../../build/windows/work/hardware/tools -endif - -GCCROOT = $(TOOLROOT)/avr/bin/ -AVRDUDE_CONF = -C$(TOOLROOT)/avr/etc/avrdude.conf - -else -GCCROOT = -AVRDUDE_CONF = -endif -# -# End of build environment code. - - -# the efuse should really be 0xf8; since, however, only the lower -# three bits of that byte are used on the atmega168, avrdude gets -# confused if you specify 1's for the higher bits, see: -# http://tinker.it/now/2007/02/24/the-tale-of-avrdude-atmega168-and-extended-bits-fuses/ -# -# similarly, the lock bits should be 0xff instead of 0x3f (to -# unlock the bootloader section) and 0xcf instead of 0x2f (to -# lock it), but since the high two bits of the lock byte are -# unused, avrdude would get confused. - -ISPFUSES = $(GCCROOT)avrdude $(AVRDUDE_CONF) -c $(ISPTOOL) \ - -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ - -e -u -U lock:w:0x3f:m -U efuse:w:0x$(EFUSE):m \ - -U hfuse:w:0x$(HFUSE):m -U lfuse:w:0x$(LFUSE):m -ISPFLASH = $(GCCROOT)avrdude $(AVRDUDE_CONF) -c $(ISPTOOL) \ - -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ - -U flash:w:$(PROGRAM)_$(TARGET).hex -U lock:w:0x2f:m - -STK500 = "C:\Program Files\Atmel\AVR Tools\STK500\Stk500.exe" -STK500-1 = $(STK500) -e -d$(MCU_TARGET) -pf -vf -if$(PROGRAM)_$(TARGET).hex \ --lFF -LFF -f$(HFUSE)$(LFUSE) -EF8 -ms -q -cUSB -I200kHz -s -wt -STK500-2 = $(STK500) -d$(MCU_TARGET) -ms -q -lCF -LCF -cUSB -I200kHz -s -wt - -OBJ = $(PROGRAM).o -OPTIMIZE = -Os -fno-inline-small-functions -fno-split-wide-types -mshort-calls - -DEFS = -LIBS = - -CC = $(GCCROOT)avr-gcc - -# Override is only needed by avr-lib build system. - -override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -DF_CPU=$(AVR_FREQ) $(DEFS) -override LDFLAGS = $(LDSECTIONS) -Wl,--relax -Wl,--gc-sections -nostartfiles -nostdlib - -OBJCOPY = $(GCCROOT)avr-objcopy -OBJDUMP = $(call fixpath,$(GCCROOT)avr-objdump) - -SIZE = $(GCCROOT)avr-size - -# Test platforms -# Virtual boot block test -virboot328: TARGET = atmega328 -virboot328: MCU_TARGET = atmega328p -virboot328: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' '-DVIRTUAL_BOOT' -virboot328: AVR_FREQ = 16000000L -virboot328: LDSECTIONS = -Wl,--section-start=.text=0x7e00 -Wl,--section-start=.version=0x7ffe -virboot328: $(PROGRAM)_atmega328.hex -virboot328: $(PROGRAM)_atmega328.lst - -# 20MHz clocked platforms -# -# These are capable of 230400 baud, or 115200 baud on PC (Arduino Avrdude issue) -# - -pro20: TARGET = pro_20mhz -pro20: MCU_TARGET = atmega168 -pro20: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -pro20: AVR_FREQ = 20000000L -pro20: $(PROGRAM)_pro_20mhz.hex -pro20: $(PROGRAM)_pro_20mhz.lst - -pro20_isp: pro20 -pro20_isp: TARGET = pro_20mhz -# 2.7V brownout -pro20_isp: HFUSE = DD -# Full swing xtal (20MHz) 258CK/14CK+4.1ms -pro20_isp: LFUSE = C6 -# 512 byte boot -pro20_isp: EFUSE = 04 -pro20_isp: isp - -# 16MHz clocked platforms -# -# These are capable of 230400 baud, or 115200 baud on PC (Arduino Avrdude issue) -# - -pro16: TARGET = pro_16MHz -pro16: MCU_TARGET = atmega168 -pro16: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -pro16: AVR_FREQ = 16000000L -pro16: $(PROGRAM)_pro_16MHz.hex -pro16: $(PROGRAM)_pro_16MHz.lst - -pro16_isp: pro16 -pro16_isp: TARGET = pro_16MHz -# 2.7V brownout -pro16_isp: HFUSE = DD -# Full swing xtal (20MHz) 258CK/14CK+4.1ms -pro16_isp: LFUSE = C6 -# 512 byte boot -pro16_isp: EFUSE = 04 -pro16_isp: isp - -# Diecimila, Duemilanove with m168, and NG use identical bootloaders -# Call it "atmega168" for generality and clarity, keep "diecimila" for -# backward compatibility of makefile -# -atmega168: TARGET = atmega168 -atmega168: MCU_TARGET = atmega168 -atmega168: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -atmega168: AVR_FREQ = 16000000L -atmega168: $(PROGRAM)_atmega168.hex -atmega168: $(PROGRAM)_atmega168.lst - -atmega168_isp: atmega168 -atmega168_isp: TARGET = atmega168 -# 2.7V brownout -atmega168_isp: HFUSE = DD -# Low power xtal (16MHz) 16KCK/14CK+65ms -atmega168_isp: LFUSE = FF -# 512 byte boot -atmega168_isp: EFUSE = 04 -atmega168_isp: isp - -diecimila: TARGET = diecimila -diecimila: MCU_TARGET = atmega168 -diecimila: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -diecimila: AVR_FREQ = 16000000L -diecimila: $(PROGRAM)_diecimila.hex -diecimila: $(PROGRAM)_diecimila.lst - -diecimila_isp: diecimila -diecimila_isp: TARGET = diecimila -# 2.7V brownout -diecimila_isp: HFUSE = DD -# Low power xtal (16MHz) 16KCK/14CK+65ms -diecimila_isp: LFUSE = FF -# 512 byte boot -diecimila_isp: EFUSE = 04 -diecimila_isp: isp - -atmega328: TARGET = atmega328 -atmega328: MCU_TARGET = atmega328p -atmega328: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -atmega328: AVR_FREQ = 16000000L -atmega328: LDSECTIONS = -Wl,--section-start=.text=0x7e00 -Wl,--section-start=.version=0x7ffe -atmega328: $(PROGRAM)_atmega328.hex -atmega328: $(PROGRAM)_atmega328.lst - -atmega328_isp: atmega328 -atmega328_isp: TARGET = atmega328 -atmega328_isp: MCU_TARGET = atmega328p -# 512 byte boot, SPIEN -atmega328_isp: HFUSE = DE -# Low power xtal (16MHz) 16KCK/14CK+65ms -atmega328_isp: LFUSE = FF -# 2.7V brownout -atmega328_isp: EFUSE = 05 -atmega328_isp: isp - -# Sanguino has a minimum boot size of 1024 bytes, so enable extra functions -# -sanguino: TARGET = atmega644p -sanguino: MCU_TARGET = atmega644p -sanguino: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' '-DBIGBOOT' -sanguino: AVR_FREQ = 16000000L -sanguino: LDSECTIONS = -Wl,--section-start=.text=0xfc00 -sanguino: $(PROGRAM)_atmega644p.hex -sanguino: $(PROGRAM)_atmega644p.lst - -sanguino_isp: sanguino -sanguino_isp: TARGET = atmega644p -sanguino_isp: MCU_TARGET = atmega644p -# 1024 byte boot -sanguino_isp: HFUSE = DE -# Low power xtal (16MHz) 16KCK/14CK+65ms -sanguino_isp: LFUSE = FF -# 2.7V brownout -sanguino_isp: EFUSE = 05 -sanguino_isp: isp - -# Mega has a minimum boot size of 1024 bytes, so enable extra functions -#mega: TARGET = atmega1280 -mega: MCU_TARGET = atmega1280 -mega: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' '-DBIGBOOT' -mega: AVR_FREQ = 16000000L -mega: LDSECTIONS = -Wl,--section-start=.text=0x1fc00 -mega: $(PROGRAM)_atmega1280.hex -mega: $(PROGRAM)_atmega1280.lst - -mega_isp: mega -mega_isp: TARGET = atmega1280 -mega_isp: MCU_TARGET = atmega1280 -# 1024 byte boot -mega_isp: HFUSE = DE -# Low power xtal (16MHz) 16KCK/14CK+65ms -mega_isp: LFUSE = FF -# 2.7V brownout -mega_isp: EFUSE = 05 -mega_isp: isp - -# ATmega8 -# -atmega8: TARGET = atmega8 -atmega8: MCU_TARGET = atmega8 -atmega8: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -atmega8: AVR_FREQ = 16000000L -atmega8: LDSECTIONS = -Wl,--section-start=.text=0x1e00 -Wl,--section-start=.version=0x1ffe -atmega8: $(PROGRAM)_atmega8.hex -atmega8: $(PROGRAM)_atmega8.lst - -atmega8_isp: atmega8 -atmega8_isp: TARGET = atmega8 -atmega8_isp: MCU_TARGET = atmega8 -# SPIEN, CKOPT, Bootsize=512B -atmega8_isp: HFUSE = CC -# 2.7V brownout, Low power xtal (16MHz) 16KCK/14CK+65ms -atmega8_isp: LFUSE = BF -atmega8_isp: isp - -# ATmega88 -# -atmega88: TARGET = atmega88 -atmega88: MCU_TARGET = atmega88 -atmega88: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -atmega88: AVR_FREQ = 16000000L -atmega88: LDSECTIONS = -Wl,--section-start=.text=0x1e00 -Wl,--section-start=.version=0x1ffe -atmega88: $(PROGRAM)_atmega88.hex -atmega88: $(PROGRAM)_atmega88.lst - -atmega88_isp: atmega88 -atmega88_isp: TARGET = atmega88 -atmega88_isp: MCU_TARGET = atmega88 -# 2.7V brownout -atmega88_isp: HFUSE = DD -# Low power xtal (16MHz) 16KCK/14CK+65ms -atemga88_isp: LFUSE = FF -# 512 byte boot -atmega88_isp: EFUSE = 04 -atmega88_isp: isp - - -# 8MHz clocked platforms -# -# These are capable of 115200 baud -# - -lilypad: TARGET = lilypad -lilypad: MCU_TARGET = atmega168 -lilypad: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -lilypad: AVR_FREQ = 8000000L -lilypad: $(PROGRAM)_lilypad.hex -lilypad: $(PROGRAM)_lilypad.lst - -lilypad_isp: lilypad -lilypad_isp: TARGET = lilypad -# 2.7V brownout -lilypad_isp: HFUSE = DD -# Internal 8MHz osc (8MHz) Slow rising power -lilypad_isp: LFUSE = E2 -# 512 byte boot -lilypad_isp: EFUSE = 04 -lilypad_isp: isp - -lilypad_resonator: TARGET = lilypad_resonator -lilypad_resonator: MCU_TARGET = atmega168 -lilypad_resonator: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -lilypad_resonator: AVR_FREQ = 8000000L -lilypad_resonator: $(PROGRAM)_lilypad_resonator.hex -lilypad_resonator: $(PROGRAM)_lilypad_resonator.lst - -lilypad_resonator_isp: lilypad_resonator -lilypad_resonator_isp: TARGET = lilypad_resonator -# 2.7V brownout -lilypad_resonator_isp: HFUSE = DD -# Full swing xtal (20MHz) 258CK/14CK+4.1ms -lilypad_resonator_isp: LFUSE = C6 -# 512 byte boot -lilypad_resonator_isp: EFUSE = 04 -lilypad_resonator_isp: isp - -pro8: TARGET = pro_8MHz -pro8: MCU_TARGET = atmega168 -pro8: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -pro8: AVR_FREQ = 8000000L -pro8: $(PROGRAM)_pro_8MHz.hex -pro8: $(PROGRAM)_pro_8MHz.lst - -pro8_isp: pro8 -pro8_isp: TARGET = pro_8MHz -# 2.7V brownout -pro8_isp: HFUSE = DD -# Full swing xtal (20MHz) 258CK/14CK+4.1ms -pro8_isp: LFUSE = C6 -# 512 byte boot -pro8_isp: EFUSE = 04 -pro8_isp: isp - -atmega328_pro8: TARGET = atmega328_pro_8MHz -atmega328_pro8: MCU_TARGET = atmega328p -atmega328_pro8: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200' -atmega328_pro8: AVR_FREQ = 8000000L -atmega328_pro8: LDSECTIONS = -Wl,--section-start=.text=0x7e00 -Wl,--section-start=.version=0x7ffe -atmega328_pro8: $(PROGRAM)_atmega328_pro_8MHz.hex -atmega328_pro8: $(PROGRAM)_atmega328_pro_8MHz.lst - -atmega328_pro8_isp: atmega328_pro8 -atmega328_pro8_isp: TARGET = atmega328_pro_8MHz -atmega328_pro8_isp: MCU_TARGET = atmega328p -# 512 byte boot, SPIEN -atmega328_pro8_isp: HFUSE = DE -# Low power xtal (16MHz) 16KCK/14CK+65ms -atmega328_pro8_isp: LFUSE = FF -# 2.7V brownout -atmega328_pro8_isp: EFUSE = 05 -atmega328_pro8_isp: isp - -# 1MHz clocked platforms -# -# These are capable of 9600 baud -# - -luminet: TARGET = luminet -luminet: MCU_TARGET = attiny84 -luminet: CFLAGS += '-DLED_START_FLASHES=3' '-DSOFT_UART' '-DBAUD_RATE=9600' -luminet: CFLAGS += '-DVIRTUAL_BOOT_PARTITION' -luminet: AVR_FREQ = 1000000L -luminet: LDSECTIONS = -Wl,--section-start=.text=0x1d00 -Wl,--section-start=.version=0x1efe -luminet: $(PROGRAM)_luminet.hex -luminet: $(PROGRAM)_luminet.lst - -luminet_isp: luminet -luminet_isp: TARGET = luminet -luminet_isp: MCU_TARGET = attiny84 -# Brownout disabled -luminet_isp: HFUSE = DF -# 1MHz internal oscillator, slowly rising power -luminet_isp: LFUSE = 62 -# Self-programming enable -luminet_isp: EFUSE = FE -luminet_isp: isp - -# -# Generic build instructions -# -# - -isp: $(TARGET) - $(ISPFUSES) - $(ISPFLASH) - -isp-stk500: $(PROGRAM)_$(TARGET).hex - $(STK500-1) - $(STK500-2) - -%.elf: $(OBJ) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - $(SIZE) $@ - -clean: - rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex - -%.lst: %.elf - $(OBJDUMP) -h -S $< > $@ - -%.hex: %.elf - $(OBJCOPY) -j .text -j .data -j .version --set-section-flags .version=alloc,load -O ihex $< $@ - -%.srec: %.elf - $(OBJCOPY) -j .text -j .data -j .version --set-section-flags .version=alloc,load -O srec $< $@ - -%.bin: %.elf - $(OBJCOPY) -j .text -j .data -j .version --set-section-flags .version=alloc,load -O binary $< $@ |