2 # Project: USBaspLoader
3 # Author: Christian Starkjohann
4 # Creation Date: 2007-12-10
5 # Author: Stephan Bärwolf
6 # Improvement Date: 2012-07-31
8 # Copyright: (c) 2007 by OBJECTIVE DEVELOPMENT Software GmbH
9 # License: GNU GPL v2 (see License.txt)
11 ###############################################################################
12 # Configure the following variables according to your AVR.
13 # Program the device with
14 # make fuse # to set the clock generator, boot section size etc.
15 # make flash # to load the boot loader into flash
16 # make lock # to protect the boot loader from overwriting
18 include ..
/Makefile.inc
21 DEFINES
= #-DDEBUG_LEVEL=2
22 # Remove the -fno-* options when you use gcc 3, it does not understand them
23 CFLAGS
= -Wall
-Os
-fno-move-loop-invariants
-fno-tree-scev-cprop
-fno-inline-small-functions
-I.
-mmcu
=$(DEVICE
) -DBOOTLOADER_ADDRESS
=$(BOOTLOADER_ADDRESS
) -DF_CPU
=$(F_CPU
) $(DEFINES
)
24 LDFLAGS
= -Wl
,--relax
,--gc-sections
-Wl
,--section-start
=.text
=$(BOOTLOADER_ADDRESS
)
26 OBJECTS
= usbdrv
/usbdrvasm.o usbdrv
/oddebug.o main.o
32 $(CC
) $(CFLAGS
) -c
$< -o
$@
35 $(CC
) $(CFLAGS
) -x assembler-with-cpp
-c
$< -o
$@
36 # "-x assembler-with-cpp" should not be necessary since this is the default
37 # file type for the .S (with capital S) extension. However, upper case
38 # characters are not always preserved on Windows. To ensure WinAVR
39 # compatibility define the file type manually.
42 $(CC
) $(CFLAGS
) -S
$< -o
$@
45 $(AVRDUDE
) -U flash
:w
:main.hex
:i
48 $(AVRDUDE
) -U flash
:r
:read.hex
:i
63 $(RM
) main.hex main.bin
*.o usbdrv
/*.o main.s usbdrv
/oddebug.s usbdrv
/usbdrv.s
67 $(CC
) $(CFLAGS
) -o main.bin
$(OBJECTS
) $(LDFLAGS
)
70 $(RM
) main.hex main.eep.hex
71 $(OBC
) -j .text
-j .data
-O ihex main.bin main.hex
78 $(CC
) $(CFLAGS
) -E main.c