Initial
This commit is contained in:
commit
69ea0a4518
21 changed files with 3090 additions and 0 deletions
72
makefile
Normal file
72
makefile
Normal file
|
@ -0,0 +1,72 @@
|
|||
PROJECT = main
|
||||
LOCAL_SOURCE_DIR = src
|
||||
BUILD_DIR = build
|
||||
|
||||
MCU = attiny2313
|
||||
# internal oscillator
|
||||
# LFUSE = 0xe4
|
||||
# crystal
|
||||
LFUSE = 0xff
|
||||
HFUSE = 0xdf
|
||||
EFUSE = 0xff
|
||||
|
||||
FORMAT = ihex
|
||||
|
||||
LOCAL_SOURCES = $(wildcard $(LOCAL_SOURCE_DIR)/*.c)
|
||||
|
||||
CFLAGS = -mmcu=$(MCU) -Wall -Wstrict-prototypes -gstabs -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Os -lm
|
||||
|
||||
RM = rm -f
|
||||
CC = avr-gcc
|
||||
NM = avr-nm
|
||||
AVRDUDE = avrdude
|
||||
OBJCOPY = avr-objcopy
|
||||
OBJDUMP = avr-objdump
|
||||
SIZE = avr-size
|
||||
|
||||
LOCAL_OBJECTS = $(patsubst $(LOCAL_SOURCE_DIR)/%.c, $(BUILD_DIR)/%.o, $(LOCAL_SOURCES))
|
||||
OBJECTS = $(LOCAL_OBJECTS)
|
||||
LOCAL_DEPENDS = $(patsubst $(LOCAL_SOURCE_DIR)/%.c, $(BUILD_DIR)/%.d, $(LOCAL_SOURCES))
|
||||
|
||||
.DEFAULT_GOAL = all
|
||||
.DELETE_ON_ERROR:
|
||||
|
||||
$(LOCAL_OBJECTS): $(BUILD_DIR)/%.o: $(LOCAL_SOURCE_DIR)/%.c
|
||||
$(CC) $^ -c -o $@ $(CFLAGS)
|
||||
|
||||
$(LOCAL_DEPENDS): $(BUILD_DIR)/%.d: $(LOCAL_SOURCE_DIR)/%.c
|
||||
@set -e; rm -f $@; $(CC) -MM $(CFLAGS) $< > $@.$$$$; sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; rm -f $@.$$$$
|
||||
|
||||
include $(LOCAL_DEPENDS)
|
||||
|
||||
$(BUILD_DIR)/$(PROJECT).elf: $(OBJECTS) | $(BUILD_DIR)
|
||||
$(CC) $(OBJECTS) $(CFLAGS) --output $@
|
||||
|
||||
$(BUILD_DIR)/$(PROJECT).hex: $(BUILD_DIR)/$(PROJECT).elf | $(BUILD_DIR)
|
||||
$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
|
||||
|
||||
$(BUILD_DIR)/$(PROJECT).eep: $(BUILD_DIR)/$(PROJECT).elf | $(BUILD_DIR)
|
||||
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O $(FORMAT) $< $@
|
||||
|
||||
$(BUILD_DIR)/$(PROJECT).lss: $(BUILD_DIR)/$(PROJECT).elf | $(BUILD_DIR)
|
||||
$(OBJDUMP) -h -S $< > $@
|
||||
|
||||
$(BUILD_DIR)/$(PROJECT).sym: $(BUILD_DIR)/$(PROJECT).elf | $(BUILD_DIR)
|
||||
$(NM) -n $< > $@
|
||||
|
||||
$(LOCAL_DEPENDS): | $(BUILD_DIR)
|
||||
$(BUILD_DIR):
|
||||
if [ ! -d "$(BUILD_DIR)" ]; then mkdir "$(BUILD_DIR)"; fi
|
||||
|
||||
.PHONY: all
|
||||
all: $(BUILD_DIR) $(OBJECTS) $(BUILD_DIR)/$(PROJECT).elf $(BUILD_DIR)/$(PROJECT).hex $(BUILD_DIR)/$(PROJECT).eep $(BUILD_DIR)/$(PROJECT).lss $(BUILD_DIR)/$(PROJECT).sym
|
||||
$(SIZE) $(BUILD_DIR)/$(PROJECT).elf
|
||||
|
||||
.PHONY: program
|
||||
program: $(BUILD_DIR)/$(PROJECT).hex
|
||||
avrdude -c usbasp -p $(MCU) -U flash:w:$(BUILD_DIR)/$(PROJECT).hex -U lfuse:w:$(LFUSE):m -U hfuse:w:$(HFUSE):m -U efuse:w:$(EFUSE):m
|
||||
# avrdude -c usbasp -p $(MCU) -U flash:w:$(BUILD_DIR)/$(PROJECT).hex -U eeprom:w:$(BUILD_DIR)/$(PROJECT).eep -U lfuse:w:$(LFUSE):m -U hfuse:w:$(HFUSE):m -U efuse:w:$(EFUSE):m
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
$(RM) $(BUILD_DIR)/*
|
Loading…
Add table
Add a link
Reference in a new issue