forked from Imagelibrary/rtems
to update the mvme167 BSP and account for the fact that RAM base does not have to start at 0.
103 lines
3.3 KiB
INI
103 lines
3.3 KiB
INI
#
|
|
# Config file for the mvme167 BSP
|
|
#
|
|
# $Id$
|
|
#
|
|
|
|
# THIS BSP USES ELF IMAGES. IT WILL NOT WORK WITH COFF UNLESS CHANGES
|
|
# ARE MADE TO THE LINKCMDS FILE.
|
|
|
|
RTEMS_CPU=m68k
|
|
RTEMS_CPU_MODEL=m68040
|
|
|
|
include $(RTEMS_ROOT)/make/custom/default.cfg
|
|
|
|
# This is the actual bsp directory used during the build process.
|
|
RTEMS_BSP_FAMILY=mvme167
|
|
|
|
#
|
|
# This contains the compiler options necessary to select the CPU model
|
|
# and (hopefully) optimize for it. We also specify the BSP during compilation.
|
|
# This should really get its own flag, but it works here.
|
|
#
|
|
|
|
CPU_CFLAGS = -m68040 -DRTEMS_BSP=$(RTEMS_BSP)
|
|
CFLAGS_DEBUG_V += -ggdb
|
|
|
|
# optimize flag: typically -O, could use -O4 or -fast
|
|
# -O4 is ok for RTEMS
|
|
CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer
|
|
|
|
# This section makes the target dependent options file.
|
|
# NDEBUG (C library)
|
|
# if defined asserts do not generate code. This is commonly used
|
|
# as a command line option.
|
|
#
|
|
# RTEMS_TEST_NO_PAUSE (RTEMS tests)
|
|
# do not pause between screens of output in the rtems tests
|
|
#
|
|
# RTEMS_DEBUG (RTEMS)
|
|
# If defined, debug checks in RTEMS and support library code are enabled.
|
|
#
|
|
# CD2401_INT_LEVEL
|
|
# Interrupt level for the CD2401.
|
|
#
|
|
# CD2401_POLLED_IO
|
|
# 0 for interrupt-driven, 1 for polled I/O.
|
|
|
|
define make-target-options
|
|
@echo "/* #define NDEBUG 1 */ " >>$@
|
|
@echo "#define RTEMS_TEST_NO_PAUSE 1" >>$@
|
|
@echo "/* #define RTEMS_DEBUG 1 */" >>$@
|
|
@echo "#define CD2401_INT_LEVEL 1" >>$@
|
|
@echo "#define CD2401_POLLED_IO 1" >>$@
|
|
|
|
|
|
endef
|
|
|
|
# Here is the rule to actually build a $(ARCH)/foo.exe
|
|
# It also builds $(ARCH)/foo.nm
|
|
# Usage ref: src/tests/sptest/sp1/Makefile
|
|
#
|
|
# We use TFTP to transfer files to the MVME167. We generate binary files
|
|
# rather than S-records. We skip the header during downloads.
|
|
|
|
# The following are definitions of make-exe which will work using ld as
|
|
# is currently required. It is expected that as of gcc 2.8, the end user
|
|
# will be able to override parts of the compilers specs and link using gcc.
|
|
|
|
ifeq ($(RTEMS_USE_GCC272),yes)
|
|
|
|
# The MC68040 does not implement all MC68881/MC68882 instructions, so use
|
|
# either the gcc floating-point software support (msoft-float libraries), or
|
|
# use the Motorola FPSP floating-point emulator in
|
|
# rtems/c/src/lib/libcpu/m68k/m68040/fpsp
|
|
# The default is to use the FPSP.
|
|
# To use the msoft-float libraries, uncomment the three lines below.
|
|
# You then should comment the M68KFPSPInstallExceptionHandlers() statement
|
|
# in rtems/c/src/lib/libbsp/m68k/mvme167/startup/bststart.c in bsp_start().
|
|
# Floating-point support will then be limited. See the mvme167 README file
|
|
# for more details.
|
|
|
|
# LIBC_LIBC = $(RTEMS_LIBC_DIR)/lib/msoft-float/libc.a
|
|
# LIBC_LIBM = $(RTEMS_LIBC_DIR)/lib/msoft-float/libm.a
|
|
# LIBGCC = $(shell $(CC) -msoft-float -print-libgcc-file-name)
|
|
|
|
define make-exe
|
|
$(LD) $(LDFLAGS) -N -T $(LINKCMDS) -o $(basename $@).exe \
|
|
$(START_FILE) $(LINK_OBJS) --start-group $(LINK_LIBS) --end-group
|
|
$(NM) -g -n $(basename $@).exe > $(basename $@).num
|
|
$(SIZE) $(basename $@).exe
|
|
endef
|
|
else
|
|
define make-exe
|
|
$(LINK.c) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ \
|
|
$(LINK_OBJS) $(LINK_LIBS)
|
|
$(NM) -g -n $@ > $(basename $@).nm
|
|
$(STRIP) -o $(basename $@) $@
|
|
$(SIZE) $(basename $@).exe
|
|
endef
|
|
endif
|
|
|
|
# Miscellaneous additions go here
|