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

📄 makefile

📁 用UCOS系统实现的MIPS平台源码
💻
字号:
#**************************************************************************
#                                                                         *
#   PROJECT     : MIPS port for UCOS-II                                   *
#                                                                         *
#   MODULE      : MakeFile                                                *
#                                                                         *
#   AUTHOR      : Michael Anburaj                                         *
#                 URL  : http://geocities.com/michaelanburaj/             *
#                 EMAIL: michaelanburaj@hotmail.com                       *
#                                                                         *
#   PROCESSOR   : MIPS 4Kc (32 bit RISC) - ATLAS board                    *
#                                                                         *
#   Tool-chain  : SDE & Cygnus                                            *
#                                                                         *
#   DESCRIPTION :                                                         *
#   Makefile used for building application.                               *
#                                                                         *
#   The default target (all) builds application in two formats :          *
#   *.elf : Image in ELF format.                                          *
#   *.rec : Image in S-record format.                                     *
#                                                                         *
#   The linker also generates a MAP file "*.map".                         *
#                                                                         *
#   Other targets are :                                                   *
#   clean :    Deletes all files generated by makefile.                   *
#   depend :   Builds dependency file.                                    *
#                                                                         *
#*************************************************************************/

TOOLCHAIN = cygnus

ifeq ($(TOOLCHAIN),cygnus)
CC        = mipsisa32-elf-gcc
LD        = mipsisa32-elf-ld
OBJCOPY   = mipsisa32-elf-objcopy
OBJDUMP   = mipsisa32-elf-objdump
endif

ifeq ($(TOOLCHAIN),sde)
CC        = sde-gcc
LD        = sde-ld
OBJCOPY   = sde-objcopy
OBJDUMP   = sde-objdump
endif

CONVERT = c:\estii\convert

# **********************************************
# Endianness
# **********************************************

ENDIAN  = EL

ifeq ($(ENDIAN),EL)
OFORMAT = elf32-littlemips
else
OFORMAT = elf32-bigmips
endif

# **********************************************
# Name of application
# **********************************************

IMAGENAME = ex1

# **********************************************
# Directories
# **********************************************

ROOT      = ./../
UCOSROOT  = ./../../
LIBROOT   = $(UCOSROOT)/MIPS_UCOS/lib
MUP_COMMONROOT = $(UCOSROOT)/MIPS_UCOS/common
MUP_ATLASROOT  = $(UCOSROOT)/MIPS_UCOS/Atlas
SRCDIR    = $(ROOT)/src $(MUP_COMMONROOT)/src $(MUP_ATLASROOT)/src $(LIBROOT)/src
INCDIR    = $(ROOT)/inc
BINDIR    = $(ROOT)/bin
LINKDIR   = $(BINDIR)/link
LIBINCDIR = $(LIBROOT)/inc

VPATH     = $(SRCDIR)


# **********************************************
# Image file names and map file
# **********************************************

IMAGE_ELF = $(IMAGENAME).elf
IMAGE_REC = $(IMAGENAME).rec
MAP       = $(IMAGENAME).map

# **********************************************
# Compiler and linker options
# **********************************************

INCLUDE   = -I$(INCDIR) -I$(MUP_COMMONROOT)/inc -I$(MUP_ATLASROOT)/inc -I$(UCOSROOT)/Source -I$(LIBINCDIR)

W_OPTS    = -Wimplicit -Wformat
#CC_OPTS   = -g -c -O2 -$(ENDIAN) $(INCLUDE) -D$(ENDIAN) -mips32 $(W_OPTS) 
CC_OPTS   = -g -c -O2 -$(ENDIAN) $(INCLUDE) -D$(ENDIAN) -mips32 -fno-builtin $(W_OPTS)

ifeq ($(TOOLCHAIN),sde)
CC_OPTS_A = $(CC_OPTS) -D_ASSEMBLER_ -D_SDE_
else
CC_OPTS_A = $(CC_OPTS) -D_ASSEMBLER_
endif

LD_SCRIPT = $(ROOT)/bin/link/link.xn
LD_OPTS   = -g -T $(LD_SCRIPT) -o $(IMAGE_ELF) -Map $(MAP) -oformat $(OFORMAT)

# **********************************************
# Files to be compiled
# **********************************************

SRC_C  = $(foreach dir, $(SRCDIR), $(wildcard $(dir)/*.c))
SRC_S  = $(foreach dir, $(SRCDIR), $(wildcard $(dir)/*.S))
SRC    = $(SRC_C) $(SRC_S)

OBJ_C  = $(notdir $(patsubst %.c, %.o, $(SRC_C)))
OBJ_S  = $(notdir $(patsubst %.S, %.o, $(SRC_S)))
OBJ    = $(OBJ_C) $(OBJ_S)

# **********************************************
# Rules
# **********************************************

.PHONY : all
all : $(IMAGE_REC)

$(IMAGE_REC) : $(IMAGE_ELF)
	$(OBJCOPY) -O srec $(IMAGE_ELF) $(IMAGE_REC)
#	cp $(IMAGE_REC) /tftpboot

$(IMAGE_ELF) : $(OBJ)
	$(LD) $(LD_OPTS) $(OBJ)

$(OBJ_C) : %.o : %.c 
	$(CC) $(CC_OPTS) -o $@ $<

$(OBJ_S) : %.o : %.S
	$(CC) $(CC_OPTS_A) -o $@ $<

$(IMAGE_ELF) : $(LD_SCRIPT)
$(OBJ) : ./makefile

.PHONY : clean depend

clean :
	del *.o
	del *.map
	del *.elf
	del *.rec

#	rm -f $(BINDIR)/*.o $(BINDIR)/$(IMAGENAME).* $(BINDIR)/depend.mk

depend :
	$(CC) $(INCLUDE) -M $(SRC) > depend.mk


-include depend.mk

⌨️ 快捷键说明

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