📄 makefile
字号:
###############################################################################
#
# 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 + -