Patch rtems-rc-19991011-3.diff from Ralf Corsepius.

This commit is contained in:
Joel Sherrill
1999-10-28 16:01:41 +00:00
parent e90c5a1e76
commit 7046cddb1b
7 changed files with 46 additions and 56 deletions

View File

@@ -148,31 +148,6 @@ static inline unsigned int sh_swap_u16(
#define CPU_swap_u32( value ) sh_swap_u32( value )
#define CPU_swap_u16( value ) sh_swap_u16( value )
/*
* Simple spin delay in microsecond units for device drivers.
* This is very dependent on the clock speed of the target.
*
* Since we don't have a real time clock, this is a very rough
* approximation, assuming that each cycle of the delay loop takes
* approx. 4 machine cycles.
*
* e.g.: MHZ = 20 => 5e-8 secs per instruction
* => 4 * 5e-8 secs per delay loop
*/
#define sh_delay( microseconds ) \
{ register unsigned int _delay = (microseconds) * (MHZ / 4 ); \
asm volatile ( \
"0: add #-1,%0\n \
nop\n \
cmp/pl %0\n \
bt 0b\
nop" \
:: "r" (_delay) ); \
}
#define CPU_delay( microseconds ) sh_delay( microseconds )
extern unsigned int sh_set_irq_priority(
unsigned int irq,
unsigned int prio );

View File

@@ -68,8 +68,39 @@ extern "C" {
#define Lower_tm27_intr()
/* Constants */
#ifndef MHZ
#error Missing MHZ
#endif
#define MHZ 20
/*
* Simple spin delay in microsecond units for device drivers.
* This is very dependent on the clock speed of the target.
*
* Since we don't have a real time clock, this is a very rough
* approximation, assuming that each cycle of the delay loop takes
* approx. 4 machine cycles.
*
* e.g.: MHZ = 20 => 5e-8 secs per instruction
* => 4 * 5e-8 secs per delay loop
*/
#define delay( microseconds ) \
{ register unsigned int _delay = (microseconds) * (MHZ / 4 ); \
asm volatile ( \
"0: add #-1,%0\n \
nop\n \
cmp/pl %0\n \
bt 0b\
nop" \
:: "r" (_delay) ); \
}
/*
* For backward compatibility only.
* Do not rely on them being present in future
*/
#define CPU_delay( microseconds ) delay( microseconds )
#define sh_deley( microseconds ) delay( microseconds )
/*
* Defined in the linker script 'linkcmds'

View File

@@ -47,7 +47,7 @@ $(INSTALLDIRS):
#
DEFINES +=
CPPFLAGS +=
CPPFLAGS += $(BSP_CPPFLAGS)
CFLAGS +=
LD_PATHS +=

View File

@@ -40,7 +40,7 @@ INSTALL_CHANGE = @INSTALL_CHANGE@
#
DEFINES +=
CPPFLAGS +=
CPPFLAGS += -DMHZ=$(MHZ)
CFLAGS += $(CFLAGS_OS_V)
LD_PATHS +=

View File

@@ -40,7 +40,7 @@ INSTALL_CHANGE = @INSTALL_CHANGE@
#
DEFINES +=
CPPFLAGS +=
CPPFLAGS += -DMHZ=$(MHZ)
CFLAGS +=
LD_PATHS +=

View File

@@ -148,31 +148,6 @@ static inline unsigned int sh_swap_u16(
#define CPU_swap_u32( value ) sh_swap_u32( value )
#define CPU_swap_u16( value ) sh_swap_u16( value )
/*
* Simple spin delay in microsecond units for device drivers.
* This is very dependent on the clock speed of the target.
*
* Since we don't have a real time clock, this is a very rough
* approximation, assuming that each cycle of the delay loop takes
* approx. 4 machine cycles.
*
* e.g.: MHZ = 20 => 5e-8 secs per instruction
* => 4 * 5e-8 secs per delay loop
*/
#define sh_delay( microseconds ) \
{ register unsigned int _delay = (microseconds) * (MHZ / 4 ); \
asm volatile ( \
"0: add #-1,%0\n \
nop\n \
cmp/pl %0\n \
bt 0b\
nop" \
:: "r" (_delay) ); \
}
#define CPU_delay( microseconds ) sh_delay( microseconds )
extern unsigned int sh_set_irq_priority(
unsigned int irq,
unsigned int prio );

View File

@@ -8,7 +8,7 @@
# $Id$
#
MHZ:=20
MHZ=20
include $(RTEMS_ROOT)/make/custom/default.cfg
@@ -18,11 +18,18 @@ RTEMS_CPU_MODEL=sh7032
# This is the actual bsp directory used during the build process.
RTEMS_BSP_FAMILY=gensh1
# BSP specific preprocessor flags.
# These should only be used in BSP dependent directories.
BSP_CPPFLAGS=-DMHZ=$(MHZ)
#
# This contains the compiler options necessary to select the CPU model
# and (hopefully) optimize for it.
#
CPU_CFLAGS=-m1
# 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
# debug flags: typically none, but we use -O1 as it produces better code
CFLAGS_DEBUG_V = -O1
@@ -31,6 +38,8 @@ CFLAGS_DEBUG_V = -O1
# -O4 is ok for RTEMS
CFLAGS_OPTIMIZE_V = -O4
CPPFLAGS+=$(BSP_CPPFLAGS)
# This section makes the target dependent options file.
# NDEBUG (C library)