Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # http://www.google.com/codesearch/p?hl=de#thaXon_DSGU/trunk/hardware/cores/arduino/Makefile&q=Makefile%20package:http://arduino%5C.googlecode%5C.com&sa=N&cd=8&ct=rc
- MCU = atmega1280
- F_CPU = 16000000 # 16 MHz
- AVRDUDE_PROGRAMMER = arduino
- AVRDUDE_PORT = /dev/ttyUSB0 # programmer connected to serial port
- FORMAT = ihex # create a .hex file
- OPT = 3 # assembly-level optimization
- # Optional compiler flags.
- # -g: generate debugging information (for GDB, or for COFF conversion)
- # -O*: optimization level
- # -f...: tuning, see gcc manual and avr-libc documentation
- # -Wall...: warning level
- # -Wa,...: tell GCC to pass this to the assembler.
- # -ahlms: create assembler listing
- CFLAGS = -g -O$(OPT) \
- -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums \
- -Wall \
- -DF_CPU=$(F_CPU) \
- -Wa,-adhlns=$(<:.cpp=.lst) \
- $(patsubst %,-I%,$(EXTRAINCDIRS)) \
- -mmcu=$(MCU)
- # Optional assembler flags.
- # -Wa,...: tell GCC to pass this to the assembler.
- # -ahlms: create listing
- # -gstabs: have the assembler create line number information; note that
- # for use in COFF files, additional information about filenames
- # and function names needs to be present in the assembler source
- # files -- see avr-libc docs [FIXME: not yet described there]
- ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs
- # Optional linker flags.
- # -Wl,...: tell GCC to pass this to linker.
- # -Map: create map file
- # --cref: add cross reference to map file
- LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
- # ---------------------------------------------------------------------------
- # Programming support using avrdude.
- AVRDUDE = /usr/local/bin/avrdude
- # Programming support using avrdude. Settings and variables.
- AVRDUDE_WRITE_FLASH = -U flash:w:
- UPLOAD_RATE = 57600
- #AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
- AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) \
- -b $(UPLOAD_RATE) -q -D
- # ---------------------------------------------------------------------------
- # Define directories, if needed.
- #DIRAVR = c:/progra~1/winavr
- #DIRAVRBIN = $(DIRAVR)/bin
- #DIRAVRUTILS = $(DIRAVR)/utils/bin
- #DIRINC = .
- #DIRLIB = $(DIRAVR)/avr/lib
- # Define programs and commands.
- SHELL = sh
- CC = avr-gcc
- OBJCOPY = avr-objcopy
- OBJDUMP = avr-objdump
- SIZE = avr-size
- REMOVE = rm -f
- COPY = cp
- # Define Messages
- # English
- MSG_ERRORS_NONE = Errors: none
- MSG_BEGIN = -------- begin --------
- MSG_END = -------- end --------
- MSG_SIZE_BEFORE = Size before:
- MSG_SIZE_AFTER = Size after:
- MSG_FLASHING = Flashing:
- MSG_PACKING = Creating load file for Flash:
- MSG_EXTENDED_LISTING = Creating Extended Listing:
- MSG_SYMBOL_TABLE = Creating Symbol Table:
- MSG_LINKING = Linking:
- MSG_COMPILING = Compiling:
- MSG_ASSEMBLING = Assembling:
- MSG_ASSEMBLING2 = Create assembler files from C source files for:
- MSG_CLEANING = Cleaning project:
- # Define all object files.
- OBJ = $(SRC:.c=.o) $(ASRC:.S=.o)
- # Define all listing files.
- LST = $(ASRC:.S=.lst) $(SRC:.c=.lst)
- # Combine all necessary flags and optional flags.
- # Add target processor to flags.
- ALL_CFLAGS = -I. $(CFLAGS)
- ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
- # Eye candy.
- # AVR Studio 3.x does not check make's exit code but relies on
- # the following magic strings to be generated by the compile job.
- begin:
- @echo
- @echo $(MSG_BEGIN)
- finished:
- @echo $(MSG_ERRORS_NONE)
- end:
- @echo $(MSG_END)
- @echo
- # Display compiler version information.
- gccversion :
- @$(CC) --version
- # Default target.
- all: begin gccversion flash-main finished end
- # this is necessary if you're burning the AVR for the first time...
- # sets the proper fuse for external clock with no clk div
- burn-fuse:
- $(AVRDUDE) $(AVRDUDE_FLAGS) -u -U lfuse:w:0xE0:m
- %: begin flash-% finished end
- # this programs the dependant hex file using our default avrdude flags
- flash-%: %.hex
- @echo
- @echo $(MSG_FLASHING) $@
- #stty -F /dev/ttyUSB0 hupcl
- @echo $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH)$<
- $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH)$<
- # stty -F /dev/ttyUSB0 hupcl
- bootloader:
- @echo
- @echo $(MSG_FLASHING) $@
- $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH)bootload.hex
- # Create final output files (.hex) from ELF output file.
- %.hex: %.elf
- @echo
- @echo $(MSG_PACKING) $@
- $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
- # Link: create ELF output file from object files.
- .SECONDARY : $(TARGET).elf
- .PRECIOUS : $(OBJ)
- %.elf: %.o
- @echo
- @echo $(MSG_LINKING) $@
- $(CC) $(ALL_CFLAGS) $< --output $@ $(LDFLAGS)
- # Compile: create object files from C source files.
- %.o : %.cpp
- @echo
- @echo $(MSG_COMPILING) $<
- $(CC) -c $(ALL_CFLAGS) $< -o $@
- # Compile: create assembler files from C source files.
- %.s : %.cpp
- @echo
- @echo $(MSG_ASSEMBLING2) $<
- $(CC) -S $(ALL_CFLAGS) $< -o $@
- # Assemble: create object files from assembler source files.
- %.o : %.S
- @echo
- @echo $(MSG_ASSEMBLING) $<
- $(CC) -c $(ALL_ASFLAGS) $< -o $@
- # Target: clean project.
- clean: begin clean_list finished end
- clean_list :
- @echo
- @echo $(MSG_CLEANING)
- $(REMOVE) *.hex
- $(REMOVE) *.lst
- $(REMOVE) *.obj
- $(REMOVE) *.elf
- $(REMOVE) *.o
- # Listing of phony targets.
- .PHONY : all begin finish end \
- clean clean_list program
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement