2002-08-21 Joel Sherrill <joel@OARcorp.com>

* configure.ac, shared/misc/Makefile.am: PR217 required that the
	idle task be moved to libcpu so it could be more acutely aware of
	the CPU model.  This file was modified to pick up the idle task
	from there.
	* shared/misc/m68kidle.c: New file.
This commit is contained in:
Joel Sherrill
2002-08-21 17:43:48 +00:00
parent 0308c80540
commit 06a27bbf32
4 changed files with 63 additions and 19 deletions

View File

@@ -1,3 +1,11 @@
2002-08-21 Joel Sherrill <joel@OARcorp.com>
* configure.ac, shared/misc/Makefile.am: PR217 required that the
idle task be moved to libcpu so it could be more acutely aware of
the CPU model. This file was modified to pick up the idle task
from there.
* shared/misc/m68kidle.c: New file.
2002-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* m68040/fpsp/Makefile.am: Use .$(OBJEXT) instead of .o.

View File

@@ -27,21 +27,8 @@ RTEMS_CANONICALIZE_TOOLS
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
RTEMS_CHECK_BSP_CACHE(RTEMS_BSP)
AM_CONDITIONAL(shared, test "$RTEMS_CPU_MODEL" = "m68020" \
|| test "$RTEMS_CPU_MODEL" = "m68020" \
|| test "$RTEMS_CPU_MODEL" = "m68030" \
|| test "$RTEMS_CPU_MODEL" = "m68lc040" \
|| test "$RTEMS_CPU_MODEL" = "m68040" \
|| test "$RTEMS_CPU_MODEL" = "m68ec040" \
|| test "$RTEMS_CPU_MODEL" = "m68lc040" \
|| test "$RTEMS_CPU_MODEL" = "m68060" \
|| test "$RTEMS_CPU_MODEL" = "m68340" \
|| test "$RTEMS_CPU_MODEL" = "m68360" \
|| test "$RTEMS_CPU_MODEL" = "m68331" \
|| test "$RTEMS_CPU_MODEL" = "m68332" \
|| test "$RTEMS_CPU_MODEL" = "mcpu32" \
|| test "$RTEMS_CPU_MODEL" = "mcpu32p" \
)
# At this time all models should use the shared directory so do this
AM_CONDITIONAL(shared, true)
AM_CONDITIONAL(m68040, test "$RTEMS_CPU_MODEL" = "m68040")
@@ -59,6 +46,8 @@ AM_CONDITIONAL(mcpu32p, test "$RTEMS_CPU_MODEL" = "m68360" \
|| test "$RTEMS_CPU_MODEL" = "mcpu32p" \
)
AM_CONDITIONAL(mcf5272, test "$RTEMS_CPU_MODEL" = "mcf5272" )
case "$RTEMS_CPU_MODEL" in
mcf5206 ) AC_CONFIG_SUBDIRS([mcf5206]);;
*) ;;

View File

@@ -3,7 +3,7 @@
##
C_FILES = memcpy.c
C_FILES = memcpy.c m68kidle.c
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
OBJS = $(C_O_FILES)
@@ -14,13 +14,17 @@ include $(top_srcdir)/../../../../../automake/lib.am
# gcc doesn't recognize difference between the cpu32 and cpu32+ so we have to
if mcpu32p
MCPU32P_CPPFLAGS = -D__mcpu32p__
M68K_CPPFLAGS = -D__mcpu32p__
endif
AM_CPPFLAGS += $(MCPU32P_CPPFLAGS)
if mcf5272
M68K_CPPFLAGS = -Dmcf5272
endif
AM_CPPFLAGS += $(M68K_CPPFLAGS)
all-local: $(ARCH) $(OBJS)
EXTRA_DIST = memcpy.c
EXTRA_DIST = memcpy.c m68kidle.c
include $(top_srcdir)/../../../../../automake/local.am

View File

@@ -0,0 +1,43 @@
/*
* Motorola MC68xxx Dependent Idle Body Source
*
* COPYRIGHT (c) 1989-2002.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.OARcorp.com/rtems/license.html.
*
* $Id$
*/
#include <rtems/system.h>
#include <rtems/score/thread.h>
/*PAGE
*
* _Thread_Idle_body
*
* This kernel routine is the idle thread. The idle thread runs any time
* no other thread is ready to run. This thread loops forever with
* interrupts enabled.
*
* Input parameters:
* ignored - this parameter is ignored
*
* Output parameters: NONE
*/
void _CPU_Thread_Idle_body( void )
{
#if defined(mcf5272)
for( ; ; ) {
asm volatile( "nop" );
asm volatile( "nop" );
}
#else
for( ; ; )
asm volatile( "stop #0x3000" ); /* supervisor mode, all interrupts on */
#endif
}