⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 lcd driver for 8051 and other controllers
💻
字号:
#########  AVR Project Makefile Template   ###############                                        ############    Copyright (C) 2003, Pat Deegan,     ############            Psychogenic Inc             ############          All Rights Reserved           ############                                        ############ You are free to use this code as part  ############ of your own applications provided      ############ you keep this copyright notice intact  ############ and acknowledge its authorship with    ############ the words:                             ############                                        ############ "Contains software by Pat Deegan of    ############ Psychogenic Inc (www.psychogenic.com)" ############                                        ############ If you use it as part of a web site    ############ please include a link to our site,     ############ http://electrons.psychogenic.com  or   ############ http://www.psychogenic.com             ############                                        ############################################################### This Makefile will make compiling Atmel AVR ##### micro controller projects simple with Linux ##### or other Unix workstations and the AVR-GCC ##### tools.########## It supports C, C++ and Assembly source files.########## Customize the values as indicated below and :##### make##### make disasm ##### make stats ##### make hex##### make writeflash##### make gdbinit##### or make clean########## See the http://electrons.psychogenic.com/ ##### website for detailed instructions#########################################################                                          ##########              Configuration               ##########                                          ########## Customize the values in this section for ########## your project. MCU, PROJECTNAME and       ########## PRJSRC must be setup for all projects,   ########## the remaining variables are only         ########## relevant to those needing additional     ########## include dirs or libraries and those      ########## who wish to use the avrdude programmer   ##########                                          ########## See http://electrons.psychogenic.com/    ########## for further details.                     ##########                                          ##############################################################         Target Specific Details          ##########     Customize these for your project     ###### Name of target controller # (e.g. 'at90s8515', see the available avr-gcc mmcu # options for possible values)MCU=atmega8515# Name of our project# (use a single word, e.g. 'myproject')PROJECTNAME=lcd_test# Source files# List C/C++/Assembly source files:# (list all files to compile, e.g. 'a.c b.cpp as.S'):# Use .cc, .cpp or .C suffix for C++ files, use .S # (NOT .s !!!) for assembly source code files.PRJSRC=lcd_driver_KS0107.c lcd_graphics.c test_lcd_main.c# additional includes (e.g. -I/path/to/mydir)INC=-I/usr/local/avr/include# libraries to link in (e.g. -lmylib)LIBS=-L/usr/local/avr/lib# Optimization level, # use s (size opt), 1, 2, 3 or 0 (off)OPTLEVEL=s#####      AVR Dude 'writeflash' options       ##########  If you are using the avrdude program#####  (http://www.bsdhome.com/avrdude/) to write#####  to the MCU, you can set the following config#####  options and use 'make writeflash' to program#####  the device.# programmer id--check the avrdude for complete list# of available opts.  These should include stk500,# avr910, avrisp, bsd, pony and more.  Set this to# one of the valid "-c PROGRAMMER-ID" values # described in the avrdude info page.# AVRDUDE_PROGRAMMERID=stk500v2PROGRAMMER_MCU=atmega8535# port--serial or parallel port to which your # hardware programmer is attached#AVRDUDE_PORT=/dev/ttyS1#########################################################                Config Done               ##########                                          ########## You shouldn't need to edit anything      ########## below to use the makefile but may wish   ########## to override a few of the flags           ########## nonetheless                              ##########                                          ############################################################## Flags ##### HEXFORMAT -- format for .hex file outputHEXFORMAT=ihex# compilerCFLAGS=-I. $(INC) -g -mmcu=$(MCU) -O$(OPTLEVEL) \	-fpack-struct -fshort-enums             \	-funsigned-bitfields -funsigned-char    \	-Wall -Wstrict-prototypes               \	-Wa,-ahlms=$(firstword                  \	$(filter %.lst, $(<:.c=.lst)))# c++ specific flagsCPPFLAGS=-fno-exceptions               \	-Wa,-ahlms=$(firstword         \	$(filter %.lst, $(<:.cpp=.lst))\	$(filter %.lst, $(<:.cc=.lst)) \	$(filter %.lst, $(<:.C=.lst)))# assemblerASMFLAGS =-I. $(INC) -mmcu=$(MCU)        \	-x assembler-with-cpp            \	-Wa,-gstabs,-ahlms=$(firstword   \		$(<:.S=.lst) $(<.s=.lst))# linkerLDFLAGS=-Wl,-Map,$(TRG).map -mmcu=$(MCU) \	-lm $(LIBS)##### executables ####CC=avr-gccOBJCOPY=avr-objcopyOBJDUMP=avr-objdumpSIZE=avr-sizeAVRDUDE=avrdudeREMOVE=rm -f##### automatic target names ####TRG=$(PROJECTNAME).outDUMPTRG=$(PROJECTNAME).sHEXROMTRG=$(PROJECTNAME).hex HEXTRG=$(HEXROMTRG) $(PROJECTNAME).ee.hexGDBINITFILE=gdbinit-$(PROJECTNAME)# Define all object files.# Start by splitting source files by type#  C++CPPFILES=$(filter %.cpp, $(PRJSRC))CCFILES=$(filter %.cc, $(PRJSRC))BIGCFILES=$(filter %.C, $(PRJSRC))#  CCFILES=$(filter %.c, $(PRJSRC))#  AssemblyASMFILES=$(filter %.S, $(PRJSRC))# List all object files we need to createOBJDEPS=$(CFILES:.c=.o)    \	$(CPPFILES:.cpp=.o)\	$(BIGCFILES:.C=.o) \	$(CCFILES:.cc=.o)  \	$(ASMFILES:.S=.o)# Define all lst files.LST=$(filter %.lst, $(OBJDEPS:.o=.lst))# All the possible generated assembly # files (.s files)GENASMFILES=$(filter %.s, $(OBJDEPS:.o=.s)) .SUFFIXES : .c .cc .cpp .C .o .out .s .S \	.hex .ee.hex .h .hh .hpp.PHONY: writeflash clean stats gdbinit stats# Make targets:# all, disasm, stats, hex, writeflash/install, cleanall: $(TRG)disasm: $(DUMPTRG) statsstats: $(TRG)	$(OBJDUMP) -h $(TRG)	$(SIZE) $(TRG) hex: $(HEXTRG)writeflash: hex	$(AVRDUDE) -c $(AVRDUDE_PROGRAMMERID)   \	 -p $(MCU) -P $(AVRDUDE_PORT) -e        \	 -U flash:w:$(HEXROMTRG)install: writeflash$(DUMPTRG): $(TRG) 	$(OBJDUMP) -S  $< > $@$(TRG): $(OBJDEPS) 	$(CC) $(LDFLAGS) -o $(TRG) $(OBJDEPS)#### Generating assembly ##### asm from C%.s: %.c	$(CC) -S $(CFLAGS) $< -o $@# asm from (hand coded) asm%.s: %.S	$(CC) -S $(ASMFLAGS) $< > $@# asm from C++.cpp.s .cc.s .C.s :	$(CC) -S $(CFLAGS) $(CPPFLAGS) $< -o $@#### Generating object files ##### object from C.c.o: 	$(CC) $(CFLAGS) -c $<# object from C++ (.cc, .cpp, .C files).cc.o .cpp.o .C.o :	$(CC) $(CFLAGS) $(CPPFLAGS) -c $<# object from asm.S.o :	$(CC) $(ASMFLAGS) -c $< -o $@#### Generating hex files ##### hex files from elf#####  Generating a gdb initialisation file    #####.out.hex:	$(OBJCOPY) -j .text                    \		-j .data                       \		-O $(HEXFORMAT) $< $@.out.ee.hex:	$(OBJCOPY) -j .eeprom                  \		--change-section-lma .eeprom=0 \		-O $(HEXFORMAT) $< $@#####  Generating a gdb initialisation file    ########## Use by launching simulavr and avr-gdb:   ##########   avr-gdb -x gdbinit-myproject           #####gdbinit: $(GDBINITFILE)$(GDBINITFILE): $(TRG)	@echo "file $(TRG)" > $(GDBINITFILE)	@echo "target remote localhost:1212" \	>> $(GDBINITFILE)	@echo "load"        >> $(GDBINITFILE) 	@echo "break main"  >> $(GDBINITFILE)	@echo "continue"    >> $(GDBINITFILE)	@echo	@echo "Use 'avr-gdb -x $(GDBINITFILE)'"#### Cleanup ####clean:	$(REMOVE) $(TRG) $(TRG).map $(DUMPTRG)	$(REMOVE) $(OBJDEPS)	$(REMOVE) $(LST) $(GDBINITFILE)	$(REMOVE) $(GENASMFILES)	$(REMOVE) $(HEXTRG)	$(REMOVE) *~#####                    EOF                   #####

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -