From 4a238002e71ec018723229f8669363a5ffb7302e Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 18 Nov 1999 21:22:58 +0000 Subject: Patch from "John M. Mills" with subsequent cleanup from Ralf Corsepius that adds initial Hitachi SH-2 support to RTEMS. Ralf's comments are: Changes: ------ 1. SH-Port: * Many files renamed. * CONSOLE_DEVNAME and MHZ defines removed from libcpu. * console.c moved to libbsp/sh/shared, build in libbsp/sh//console applying VPATH. * CONSOLE_DEVNAME made BSP-specific, replacement is defined in bsp.h * MHZ define replaced with HZ (extendent resolution) in custom/*.cfg * -DHZ=HZ used in bspstart.c, only * Makefile variable HZ used in bsp-dependent directories only. 2. SH1-Port * clock-driver rewritten to provide better resolution for odd CPU frequencies. This driver is only partially tested on hardware, ie. sightly experimental, but I don't expect severe problems with it. * Polling SCI-driver added. This driver is experimental and completly untested yet. Therefore it is not yet used for the console (/dev/console is still pointing to /dev/null, cf. gensh1/bsp.h). * minor changes to the timer driver * SH1 specific delay()/CPU_delay() now is implemented as a function 3. SH2-Port * Merged * IMO, the code is still in its infancy. Therefore I have interspersed comments (FIXME) it for items which I think John should look after. * sci and console drivers partially rewritten and extended (John, I hope you don't mind). * Copyright notices are not yet adapted --- make/custom/gensh1.cfg | 16 ++++------ make/custom/gensh2.cfg | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 9 deletions(-) create mode 100644 make/custom/gensh2.cfg (limited to 'make/custom') diff --git a/make/custom/gensh1.cfg b/make/custom/gensh1.cfg index b5d98630e2..5dc58d8e82 100644 --- a/make/custom/gensh1.cfg +++ b/make/custom/gensh1.cfg @@ -8,7 +8,7 @@ # $Id$ # -MHZ=20 +HZ=20000000 include $(RTEMS_ROOT)/make/custom/default.cfg @@ -20,19 +20,17 @@ RTEMS_BSP_FAMILY=gensh1 # BSP specific preprocessor flags. # These should only be used in BSP dependent directories. -BSP_CPPFLAGS=-DMHZ=$(MHZ) +BSP_CPPFLAGS=-DHZ=$(HZ) # # This contains the compiler options necessary to select the CPU model # and (hopefully) optimize for it. # -# HACK: We have to append BSP_CPPFLAGS to CPU_CFLAGS, because -# per BSP and per CPU CPPFLAGS are not (yet?) supported -CPU_CFLAGS=-m1 $(BSP_CPPFLAGS) -# CPU_CFLAGS=-m1 +CPU_CFLAGS=-m1 # debug flags: typically none, but we use -O1 as it produces better code -CFLAGS_DEBUG_V = -O1 +# CFLAGS_DEBUG_V = -O1 +CFLAGS_DEBUG_V = # optimize flag: typically -0, could use -O4 or -fast # -O4 is ok for RTEMS @@ -75,8 +73,8 @@ define make-exe endef else define make-exe - $(CC) $(CPPFLAGS) -Wl,-Map,$(basename $@).map \ - $(CFLAGS) $(CFLAGS_LD) -o $(basename $@).exe \ + $(LINK.c) -Wl,-Map,$(basename $@).map \ + $(LDLIBS) -o $(basename $@).exe \ $(LINK_OBJS) $(LINK_LIBS) $(NM) -n $(basename $@).exe > $(basename $@).num $(SIZE) $(basename $@).exe diff --git a/make/custom/gensh2.cfg b/make/custom/gensh2.cfg new file mode 100644 index 0000000000..a03f7a950c --- /dev/null +++ b/make/custom/gensh2.cfg @@ -0,0 +1,86 @@ +# +# gensh2.cfg +# +# default configuration for Hitachi sh1 processors +# +# Authors: Ralf Corsepius (corsepiu@faw.uni-ulm.de) +# +# $Id$ +# + +HZ:=29491200 + +include $(RTEMS_ROOT)/make/custom/default.cfg + +RTEMS_CPU=sh +RTEMS_CPU_MODEL=sh7045 + +# This is the actual bsp directory used during the build process. +RTEMS_BSP_FAMILY=gensh2 + +# BSP specific preprocessor flags. +# These should only be used in BSP dependent directories. +BSP_CPPFLAGS=-DHZ=$(HZ) + +# +# This contains the compiler options necessary to select the CPU model +# and (hopefully) optimize for it. +# +CPU_CFLAGS= -m2 + +# debug flags: typically none, but we use -O1 as it produces better code +CFLAGS_DEBUG_V = -O1 + +# optimize flag: typically -0, could use -O4 or -fast +# -O4 is ok for RTEMS +CFLAGS_OPTIMIZE_V = -O4 + +# 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. +# +# STANDALONE_EVB +# This switch compiles code to jump-start from FLASH, without a monitor +# + +define make-target-options + @echo "/* #define NDEBUG 1 */ " >>$@ + @echo "#define RTEMS_TEST_NO_PAUSE 1" >>$@ + @echo "#define RTEMS_TEST_IO_STREAM 1" >>$@ + @echo "/* #define STANDALONE_EVB 1 */" >>$@ + @echo "/* #define RTEMS_DEBUG 1 */" >>$@ +endef + + +# 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) +define make-exe + $(LD) $(LDFLAGS) -N -e _start \ + -T$(PROJECT_RELEASE)/lib/linkcmds\ + -o $(basename $@).exe \ + $(START_FILE) $(LINK_OBJS) --start-group $(LINK_LIBS) --end-group + $(NM) -n $(basename $@).exe > $(basename $@).num + $(SIZE) $(basename $@).exe +endef +else +define make-exe + $(LINK.c) -Wl,-Map,$(basename $@).map \ + $(LDLIBS) -o $(basename $@).exe \ + $(LINK_OBJS) $(LINK_LIBS) + $(NM) -n $(basename $@).exe > $(basename $@).num + $(SIZE) $(basename $@).exe +endef +endif + +# Miscellaneous additions go here -- cgit v1.2.3