uc: Makefile clean-up, silence make output commands, include fuse programming, use system avrdude

This commit is contained in:
Bart Van Der Meerssche 2010-04-09 10:30:42 +00:00
parent 48860d6508
commit 933654eb9c
1 changed files with 30 additions and 34 deletions

View File

@ -38,11 +38,25 @@
############################################################################### ###############################################################################
# #
# project specific settings: WEE! # project specific settings:
# #
TARGET = main TARGET = main
ARDUINO_VERSION = 0011 #
INSTALL_DIR = /home/icarus75/arduino/arduino-$(ARDUINO_VERSION) # Predefine the TYPE and SENSORx C macros in main.h via this Makefile.
# Override the defaults on the command line by typing:
# make TYPE=xxxx SENSOR0=yyyy ...
#
DBG = 0
#
TYPE = 2300501
METERCONST= 5508
#
SENSOR0 = 0123456789abcdef0123456789abcde0
SENSOR1 = 0123456789abcdef0123456789abcde1
SENSOR2 = 0123456789abcdef0123456789abcde2
SENSOR3 = 0123456789abcdef0123456789abcde3
#
CEXTRA = -D DBG=$(DBG) -D TYPE=$(TYPE) -D METERCONST=$(METERCONST) -D 'SENSOR0="$(SENSOR0)"' -D 'SENSOR1="$(SENSOR1)"' -D 'SENSOR2="$(SENSOR2)"' -D 'SENSOR3="$(SENSOR3)"'
############################################################################### ###############################################################################
@ -80,21 +94,6 @@ AVRDUDE_PROGRAMMER = usbtiny
# #
MCU = atmega48 MCU = atmega48
F_CPU = 1000000 F_CPU = 1000000
#
# Predefine the TYPE and SENSORx C macros in main.h via this Makefile.
# Override the defaults on the command line by typing:
# make TYPE=xxxx SENSOR0=yyyy ...
#
DBG = 0
#
TYPE = 2300501
#
SENSOR0 = 0123456789abcdef0123456789abcde0
SENSOR1 = 0123456789abcdef0123456789abcde1
SENSOR2 = 0123456789abcdef0123456789abcde2
SENSOR3 = 0123456789abcdef0123456789abcde3
#
CEXTRA = -D DBG=$(DBG) -D TYPE=$(TYPE) -D 'SENSOR0="$(SENSOR0)"' -D 'SENSOR1="$(SENSOR1)"' -D 'SENSOR2="$(SENSOR2)"' -D 'SENSOR3="$(SENSOR3)"'
##################################################################################### #####################################################################################
##################################################################################### #####################################################################################
@ -140,6 +139,7 @@ LDFLAGS = -lm
# Programming support using avrdude. Settings and variables. # Programming support using avrdude. Settings and variables.
AVRDUDE_PORT = $(PORT) AVRDUDE_PORT = $(PORT)
AVRDUDE_WRITE_FUSES= -U lfuse:w:0x6E:m -U hfuse:w:0xD6:m -U efuse:w:0x1:m
AVRDUDE_WRITE_FLASH = -U flash:w:bin/$(TARGET).hex AVRDUDE_WRITE_FLASH = -U flash:w:bin/$(TARGET).hex
AVRDUDE_WRITE_EEPROM = -U eeprom:w:bin/$(TARGET).eep AVRDUDE_WRITE_EEPROM = -U eeprom:w:bin/$(TARGET).eep
AVRDUDE_FLAGS = -p $(MCU) -c $(AVRDUDE_PROGRAMMER) -b $(UPLOAD_RATE) AVRDUDE_FLAGS = -p $(MCU) -c $(AVRDUDE_PROGRAMMER) -b $(UPLOAD_RATE)
@ -152,7 +152,7 @@ OBJDUMP = $(AVR_TOOLS_PATH)/avr-objdump
AR = $(AVR_TOOLS_PATH)/avr-ar AR = $(AVR_TOOLS_PATH)/avr-ar
SIZE = $(AVR_TOOLS_PATH)/avr-size SIZE = $(AVR_TOOLS_PATH)/avr-size
NM = $(AVR_TOOLS_PATH)/avr-nm NM = $(AVR_TOOLS_PATH)/avr-nm
AVRDUDE = $(INSTALL_DIR)/hardware/tools/avrdude AVRDUDE = avrdude
REMOVE = rm -f REMOVE = rm -f
MV = mv -f MV = mv -f
@ -175,8 +175,8 @@ all: bin_files build sizeafter
build: elf hex eep build: elf hex eep
bin_files: $(TARGET).c bin_files: $(TARGET).c
test -d bin || mkdir bin @test -d bin || mkdir bin
cp $(TARGET).c bin/$(TARGET).c @cp $(TARGET).c bin/$(TARGET).c
elf: bin/$(TARGET).elf elf: bin/$(TARGET).elf
hex: bin/$(TARGET).hex hex: bin/$(TARGET).hex
@ -186,11 +186,9 @@ sym: bin/$(TARGET).sym
# Program the device. # Program the device.
upload: bin/$(TARGET).hex upload: bin/$(TARGET).hex
sudo $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) @$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FUSES) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
# sudo $(AVRDUDE) -c usbtiny -p atmega168 -b $(UPLOAD_RATE) -U lock:w:0x0F:m
# Display size of file.
# Display size of file.
HEXSIZE = $(SIZE) --target=$(FORMAT) bin/$(TARGET).hex HEXSIZE = $(SIZE) --target=$(FORMAT) bin/$(TARGET).hex
ELFSIZE = $(SIZE) bin/$(TARGET).elf ELFSIZE = $(SIZE) bin/$(TARGET).elf
sizebefore: sizebefore:
@ -218,10 +216,10 @@ extcoff: $(TARGET).elf
.SUFFIXES: .elf .hex .eep .lss .sym .SUFFIXES: .elf .hex .eep .lss .sym
.elf.hex: .elf.hex:
$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ @$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
.elf.eep: .elf.eep:
$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ @$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O $(FORMAT) $< $@ --change-section-lma .eeprom=0 -O $(FORMAT) $< $@
# Create extended listing file from ELF output file. # Create extended listing file from ELF output file.
@ -234,20 +232,18 @@ extcoff: $(TARGET).elf
# Link: create ELF output file from library. # Link: create ELF output file from library.
bin/$(TARGET).elf: $(TARGET).c bin/core.a bin/$(TARGET).elf: $(TARGET).c bin/core.a
$(CC) $(ALL_CFLAGS) -o $@ bin/$(TARGET).c -L. bin/core.a $(LDFLAGS) @$(CC) $(ALL_CFLAGS) -o $@ bin/$(TARGET).c -L. bin/core.a $(LDFLAGS)
bin/core.a: $(OBJ) bin/core.a: $(OBJ)
@for i in $(OBJ); do echo $(AR) rcs bin/core.a $$i; $(AR) rcs bin/core.a $$i; done @for i in $(OBJ); do $(AR) rcs bin/core.a $$i; done
# Compile: create object files from C++ source files. # Compile: create object files from C++ source files.
.cpp.o: .cpp.o:
$(CXX) -c $(ALL_CXXFLAGS) $< -o $@ @$(CXX) -c $(ALL_CXXFLAGS) $< -o $@
# Compile: create object files from C source files. # Compile: create object files from C source files.
.c.o: .c.o:
$(CC) -c $(ALL_CFLAGS) $< -o $@ @$(CC) -c $(ALL_CFLAGS) $< -o $@
# Compile: create assembler files from C source files. # Compile: create assembler files from C source files.