- including adjustments to library header files to allow usage across C (bootloader) and C++ (firmware sketches) - including definition of new message types for firmware config and firmware code
67 lines
1.8 KiB
Makefile
67 lines
1.8 KiB
Makefile
PROJECT = MyOtaBootloader
|
|
INCLUDES = ../libraries/MySensors
|
|
|
|
MCU = atmega328p
|
|
CLK = 16000000L
|
|
|
|
ISP_PORT = com5
|
|
ISP_SPEED = 115200
|
|
ISP_PROTOCOL = stk500v2
|
|
ISP_MCU = m328p
|
|
# HFUSE = D8 - 4096 byte boot
|
|
ISP_HFUSE = D8
|
|
# LFUSE = 4E - Low power resonator (16MHz), fast start, clkdiv/8
|
|
ISP_LFUSE = FF
|
|
# EFUSE = 06 - 1.8V brownout
|
|
ISP_EFUSE = 06
|
|
ISP_ARGS = -c$(ISP_PROTOCOL) -P$(ISP_PORT) -b$(ISP_SPEED) -p$(ISP_MCU)
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
BINPATH = C:/Program Files (x86)/Arduino/hardware/tools/avr/bin/
|
|
JAVAPATH = C:/Program Files/Java/jdk1.7.0_40/bin/
|
|
JAVAC = $(JAVAPATH)javac.exe
|
|
JAVA = $(JAVAPATH)java.exe
|
|
else
|
|
UNAME_S := $(shell uname -s)
|
|
UNAME_P := $(shell uname -p)
|
|
UNAME_M := $(shell uname -m)
|
|
ifeq ($(UNAME_S),Linux)
|
|
ifeq ($(UNAME_P),x86_64)
|
|
BINPATH = ../arduino/bin-linux64/bin/
|
|
else ifneq ($(filter %86,$(UNAME_P)),)
|
|
BINPATH = ../arduino/bin-linux32/bin/
|
|
else ifneq ($(filter arm%,$(UNAME_M)),)
|
|
BINPATH = /usr/bin/
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
CFLAGS = -c -g -Os -fno-inline-small-functions -fno-split-wide-types -mshort-calls -Wall -mmcu=$(MCU) -DF_CPU=$(CLK) -std=gnu99
|
|
LDFLAGS = -Os -Wl,--section-start=.text=0x7000 -nostartfiles -mmcu=$(MCU)
|
|
|
|
all: clean out
|
|
|
|
clean:
|
|
- rm *.o
|
|
- rm *.elf
|
|
- rm *.hex
|
|
|
|
$(PROJECT).o: $(PROJECT).c
|
|
"$(BINPATH)avr-gcc" $(CFLAGS) -I$(INCLUDES) $< -o $@
|
|
|
|
$(PROJECT).elf: $(PROJECT).o
|
|
"$(BINPATH)avr-gcc" $(LDFLAGS) -o $@ $< -lm
|
|
|
|
$(PROJECT).hex: $(PROJECT).elf
|
|
"$(BINPATH)avr-objcopy" -O ihex -R .eeprom $< $@
|
|
|
|
out: $(PROJECT).hex
|
|
"$(BINPATH)avr-size" $(PROJECT).elf
|
|
|
|
load: clean out isp
|
|
|
|
isp: $(PROJECT).hex
|
|
"$(BINPATH)avrdude" $(ISP_ARGS) -e -u -Ulock:w:0x3f:m -qq -Uefuse:w:0x$(ISP_EFUSE):m -Uhfuse:w:0x$(ISP_HFUSE):m -Ulfuse:w:0x$(ISP_LFUSE):m -Ulock:w:0x0f:m
|
|
"$(BINPATH)avrdude" $(ISP_ARGS) -V -q -s -Uflash:w:$(PROJECT).hex
|
|
"$(BINPATH)avrdude" $(ISP_ARGS)
|