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

📄 makefile

📁 完整的Bell实验室的嵌入式文件系统TFS
💻
字号:
###############################################################################
#
# Makefile for building a monitor for the MPC860FADS Evaluation Board
# Note that this can be used to build a monitor destined for the boot flash
# (make) or a monitor destined for DRAM (make ram).  The DRAM version of the
# monitor is intended for use with the Macraigor BBMPC SingleStep BlackBird
# MPC interface and the startup50.mac script.
#
# If starting with a virgin FADS860 board, follow these steps:
#  1. Run "make ram" to generate the monppc.s19 file
#  2. Connect the wiggler.
#  3. Apply power to wiggler.
#  4. Start up the OCD_Commander tool.
#  5. In OCD_Commander, run the startup50.mac script.
#     This will load a ram-based monitor and start it up.
#  6. Run "make" to build the monppc.bin for flash.
#  7. With either TFTP or XMODEM transfer monppc.bin to boot flash.
#     For TFTP, just use the newmon tool.
#     For XMODEM, connect hyperterm to the bottom port (57600) and
#	  run xmodem -B; then transfer the monppc.bin file.
#
# At this point, the wiggler can be disconnected and the monitor should
# be programmed into the boot flash.
#
FLASH		= 29f040
TGTDIR		= fads860
MONBASE		= ../../..
COMCPU		= $(COMBASE)/cpu
ZLIB		= $(COMBASE)/zlib
COMBASE		= $(MONBASE)/common
COMMON		= $(COMBASE)/monitor
FLASHDIR	= $(COMBASE)/flash/$(FLASH)
TGTBASE		= $(MONBASE)/targets/$(TGTDIR)

TARGET		= ppc-elf
include		$(COMMON)/tools.make

CFLAGS		= -c -Wno-format -O -fno-for-scope -mcpu=860 \
			  -mno-sdata -msoft-float -nostdinc -fno-builtin -g -o $@ \
			  -I. -I$(COMMON) -I$(COMCPU) -I$(FLASHDIR)
ASMCPP		= cpp -D ASSEMBLY_ONLY -I$(COMCPU) -I$(COMMON)
ASFLAGS		= -mbig -o $@
AOUT		= monppc
LIBS		= libz.a $(LIBGCC)

OBJS=obj/cpuio.o obj/start.o obj/chario.o obj/except_860.o \
obj/vectors_860.o obj/cache.o obj/moncom.o obj/flash.o \
obj/mprintf.o obj/docmd.o obj/at.o obj/cmdtbl.o obj/genlib.o obj/ee.o \
obj/dis_ppc.o obj/dld.o obj/env.o obj/edit.o obj/symtbl.o \
obj/cast.o obj/strace_ppc.o obj/flashdev.o obj/flashpic.o \
obj/pio_ppc860.o obj/go.o obj/memcmds.o obj/monprof.o obj/bbc.o \
obj/mstat.o obj/reg_cache.o obj/tfs.o obj/unpack.o obj/memtrace.o \
obj/tfsapi.o obj/tfslog.o obj/tfscli.o obj/tfsloader.o obj/tfsclean1.o \
obj/sbrk.o obj/malloc.o obj/xmodem.o obj/ethernet.o obj/etherdev.o \
obj/tftp.o obj/tcpstuff.o obj/if.o obj/arp.o obj/icmp.o obj/lineedit.o \
obj/crypt.o obj/password.o obj/misc.o obj/misccmds.o obj/dhcp_00.o \
obj/asm_ppc.o obj/redirect.o obj/dhcpboot.o obj/main.o

ZOBJS=obj/adler32.o obj/zcrc32.o obj/gzio.o obj/uncompr.o \
obj/trees.o obj/zutil.o obj/inflate.o obj/infblock.o \
obj/inftrees.o obj/infcodes.o obj/infutil.o obj/inffast.o

###############################################################################
#
# Top level target: all
#
all:	rom

rom: info libz.a $(OBJS) resetrom obj/monlib.o makefile
	$(LD) -e coldstart -o $(AOUT) -T $(AOUT).lnk obj/reset.o $(OBJS) $(LIBS)
	rm -f tags $(AOUT).s19
	ctags -n -L cscope.files
	elf -m $(AOUT)
	elf -B $(AOUT).bin $(AOUT)
	ls -l $(AOUT).bin
	$(NM) --numeric-sort $(AOUT) > $(AOUT).sym
	monsym -Sx -p0x -d1 -s3 $(AOUT).sym >symtbl
	cat info.h

ram: info libz.a $(OBJS) resetram obj/monlib.o makefile
	$(LD) -e coldstart -o $(AOUT) -T RAM.lnk obj/reset.o $(OBJS) $(LIBS)
	rm -f tags
	ctags -n -L cscope.files
	elf -m $(AOUT)
	elf -B $(AOUT).bin $(AOUT)
	ls -l $(AOUT).bin
	$(NM) --numeric-sort $(AOUT) > $(AOUT).sym
	monsym -Sx -p0x -d1 -s3 $(AOUT).sym >symtbl
	bin2srec -b 0x100000 $(AOUT).bin >$(AOUT).s19
#	grep TRACEVAL monppc.sym | awk '{printf "long %s 1\n",$$1}' >trace.mac

libz.a:	$(ZOBJS)
	$(AR) rc libz.a $(ZOBJS)

info:
	mkdir -p obj
	defdate -f %H:%M:%S BUILDTIME >info.h
	defdate -f %m/%d/%Y BUILDDATE >>info.h
	defdate -w WHATBUILD >>info.h

###############################################################################
#
# Individual objects:
#
include $(COMMON)/common.make
include $(ZLIB)/zlib.make

obj/cpuio.o:	cpuio.c cpu.h cpuio.h config.h $(COMCPU)/mpc860.h
	$(CC) $(CFLAGS) cpuio.c

obj/etherdev.o:	etherdev.c cpuio.h $(COMMON)/ether.h $(COMCPU)/mpc860.h config.h
	$(CC) $(CFLAGS) etherdev.c

obj/except_860.o:	$(COMCPU)/except_860.c cpu.h config.h
	$(CC) $(CFLAGS) $(COMCPU)/except_860.c

obj/flashdev.o:	$(FLASHDIR)/flashdev.c $(COMMON)/flash.h \
	$(FLASHDIR)/flashdev.h config.h
	$(CC) $(CFLAGS) $(FLASHDIR)/flashdev.c

obj/flashpic.o:	$(FLASHDIR)/flashpic.c $(FLASHDIR)/flashdev.h \
	$(COMMON)/flash.h $(FLASHDIR)/flashdev.h config.h
	$(CC) $(CFLAGS) $(FLASHDIR)/flashpic.c

obj/pio_ppc860.o: $(COMCPU)/pio_ppc860.c config.h \
	$(COMMON)/tfs.h $(COMMON)/ctype.h $(COMMON)/genlib.h
	$(CC) $(CFLAGS) $(COMCPU)/pio_ppc860.c

obj/strace_ppc.o: $(COMCPU)/strace_ppc.c config.h \
	cpuio.h $(COMMON)/ctype.h $(COMMON)/genlib.h $(COMCPU)/mpc860.h
	$(CC) $(CFLAGS) $(COMCPU)/strace_ppc.c

obj/main.o:	main.c cpu.h monapp.h config.h
	$(CC) $(CFLAGS) main.c

obj/dis_ppc.o:	$(COMCPU)/dis_ppc.c config.h $(COMMON)/genlib.h
	$(CC) $(CFLAGS) $(COMCPU)/dis_ppc.c

obj/mstat.o:	mstat.c cpu.h config.h
	$(CC) $(CFLAGS) mstat.c

obj/x.o:	x.c
	$(CC) $(CFLAGS) x.c

resetram:
	$(ASMCPP) -D BUILD_FOR_RAM reset.s >tmpreset.s
	$(ASM) $(ASFLAGS) tmpreset.s -mbig -o obj/reset.o
	rm tmpreset.s

resetrom:
	$(ASMCPP) -D BUILD_FOR_ROM reset.s >tmpreset.s
	$(ASM) $(ASFLAGS) tmpreset.s -mbig -o obj/reset.o
	rm tmpreset.s

obj/vectors_860.o:	$(COMCPU)/vectors_860.s
	$(ASMCPP) $(COMCPU)/vectors_860.s >tmpvectors.s
	$(ASM) $(ASFLAGS) tmpvectors.s
	rm tmpvectors.s

obj/asm_ppc.o: $(COMCPU)/asm_ppc.s 
	$(ASMCPP) $(COMCPU)/asm_ppc.s >tmp.s
	$(ASM) $(ASFLAGS) tmp.s
	rm tmp.s


###############################################################################
#
# Miscellaneous utilities:
#
clobber1:
	rm -f *.s19 *.str

cscope1:
	echo $(common)/cpu/arch_ppc.h >cscope.files
	echo $(common)/cpu/mpc860.h >>cscope.files
	echo $(common)/cpu/masks860.h >>cscope.files
	echo $(common)/cpu/netcomm.h >>cscope.files

⌨️ 快捷键说明

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