forked from Imagelibrary/rtems
2000-12-19 Joel Sherrill <joel@OARcorp.com>
* Makefile.am: Added tools subdirectory and removed commented out line. * configure.in: Added tools subdirectory. * tools: New subdirectory. * tools/.cvsignore, tools/Makefile.am, tools/configure.in, tools/runtest: New files -- based on powerpc/psim. * clock/clockdrv.c: Guessed new value for clock tick. Need to add fast idle support. * include/bsp.h: tm27 support initiated. * start/start.S: Fixed frame/endframe problems on _sys_exit. * startup/bspstart.c: Increased Workspace size to 4 MBYTES! * linkcmds: Increased Workspace size to 4 MBYTES! * Most tests appear to run correctly!
This commit is contained in:
@@ -1,3 +1,15 @@
|
|||||||
|
2000-12-19 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* Makefile.am: Added tools subdirectory and removed commented out line.
|
||||||
|
* configure.in: Added tools subdirectory.
|
||||||
|
* tools: New subdirectory.
|
||||||
|
* tools/.cvsignore, tools/Makefile.am, tools/configure.in,
|
||||||
|
tools/runtest: New files -- based on powerpc/psim.
|
||||||
|
* clock/clockdrv.c: Guessed new value for clock tick. Need to
|
||||||
|
add fast idle support.
|
||||||
|
* include/bsp.h: tm27 support initiated.
|
||||||
|
* Most tests appear to run correctly!
|
||||||
|
|
||||||
2000-12-13 Joel Sherrill <joel@OARcorp.com>
|
2000-12-13 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
* README: Updated. We are now vectoring a clock tick ISR handler.
|
* README: Updated. We are now vectoring a clock tick ISR handler.
|
||||||
|
|||||||
@@ -7,8 +7,7 @@ ACLOCAL_AMFLAGS = -I ../../../../../../aclocal
|
|||||||
|
|
||||||
# wrapup is the one that actually builds and installs the library
|
# wrapup is the one that actually builds and installs the library
|
||||||
# from the individual .rel files built in other directories
|
# from the individual .rel files built in other directories
|
||||||
#SUBDIRS = include start startup clock console timer wrapup
|
SUBDIRS = include start startup clock console timer wrapup tools
|
||||||
SUBDIRS = include start startup clock console wrapup
|
|
||||||
|
|
||||||
include $(top_srcdir)/../../bsp.am
|
include $(top_srcdir)/../../bsp.am
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
#define Clock_driver_support_at_tick()
|
#define Clock_driver_support_at_tick()
|
||||||
|
|
||||||
/* XXX */
|
/* XXX */
|
||||||
#define CLICKS 10000
|
#define CLICKS 5000
|
||||||
#define Clock_driver_support_install_isr( _new, _old ) \
|
#define Clock_driver_support_install_isr( _new, _old ) \
|
||||||
do { \
|
do { \
|
||||||
unsigned32 _clicks = CLICKS; \
|
unsigned32 _clicks = CLICKS; \
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
|
|||||||
RTEMS_CHECK_BSP_CACHE(RTEMS_BSP)
|
RTEMS_CHECK_BSP_CACHE(RTEMS_BSP)
|
||||||
RTEMS_CANONICAL_HOST
|
RTEMS_CANONICAL_HOST
|
||||||
|
|
||||||
|
RTEMS_CONFIG_BUILD_SUBDIRS(tools)
|
||||||
|
|
||||||
RTEMS_PROJECT_ROOT
|
RTEMS_PROJECT_ROOT
|
||||||
|
|
||||||
# Explicitly list all Makefiles here
|
# Explicitly list all Makefiles here
|
||||||
@@ -29,4 +31,7 @@ console/Makefile
|
|||||||
include/Makefile
|
include/Makefile
|
||||||
start/Makefile
|
start/Makefile
|
||||||
startup/Makefile
|
startup/Makefile
|
||||||
|
timer/Makefile
|
||||||
wrapup/Makefile)
|
wrapup/Makefile)
|
||||||
|
|
||||||
|
RTEMS_OUTPUT_BUILD_SUBDIRS(RTEMS_BUILD_SUBDIRS)
|
||||||
|
|||||||
@@ -21,9 +21,6 @@
|
|||||||
|
|
||||||
/* external prototypes for monitor interface routines */
|
/* external prototypes for monitor interface routines */
|
||||||
|
|
||||||
void outbyte( char );
|
|
||||||
char inbyte( void );
|
|
||||||
|
|
||||||
#define READ_UINT8( _register_, _value_ ) \
|
#define READ_UINT8( _register_, _value_ ) \
|
||||||
((_value_) = *((volatile unsigned char *)(_register_)))
|
((_value_) = *((volatile unsigned char *)(_register_)))
|
||||||
|
|
||||||
|
|||||||
@@ -46,9 +46,10 @@ extern "C" {
|
|||||||
|
|
||||||
#define MUST_WAIT_FOR_INTERRUPT 0
|
#define MUST_WAIT_FOR_INTERRUPT 0
|
||||||
|
|
||||||
#define Install_tm27_vector( handler )
|
#define Install_tm27_vector( handler ) \
|
||||||
|
(void) set_vector( handler, TX3904_IRQ_SOFTWARE_1, 1 ); \
|
||||||
|
|
||||||
#define Cause_tm27_intr()
|
#define Cause_tm27_intr() \
|
||||||
|
|
||||||
#define Clear_tm27_intr()
|
#define Clear_tm27_intr()
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
.set nomips16
|
.set nomips16
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <asm.h>
|
||||||
#include "regs.S"
|
#include "regs.S"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -206,16 +207,15 @@ init:
|
|||||||
.end init
|
.end init
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* _exit -- Exit from the application. Normally we cause a user trap
|
* Exit from the application. Normally we cause a user trap
|
||||||
* to return to the ROM monitor for another run. NOTE: This is
|
* to return to the ROM monitor for another run. NOTE: This is
|
||||||
* the only other routine we provide in the crt0.o object, since
|
* the only other routine we provide in the crt0.o object, since
|
||||||
* it may be tied to the "_start" routine. It also allows
|
* it may be tied to the "_start" routine. It also allows
|
||||||
* executables that contain a complete world to be linked with
|
* executables that contain a complete world to be linked with
|
||||||
* just the crt0.o object.
|
* just the crt0.o object.
|
||||||
*/
|
*/
|
||||||
.globl _sys_exit
|
|
||||||
.ent _sys_exit
|
FRAME(_sys_exit,sp,0,ra)
|
||||||
_sys_exit:
|
|
||||||
7:
|
7:
|
||||||
#ifdef GCRT0
|
#ifdef GCRT0
|
||||||
jal _mcleanup
|
jal _mcleanup
|
||||||
@@ -226,6 +226,6 @@ _sys_exit:
|
|||||||
nop
|
nop
|
||||||
b 7b # but loop back just in-case
|
b 7b # but loop back just in-case
|
||||||
nop
|
nop
|
||||||
.end _exit
|
ENDFRAME(_sys_exit)
|
||||||
|
|
||||||
/* EOF crt0.S */
|
/* EOF crt0.S */
|
||||||
|
|||||||
@@ -86,7 +86,8 @@ void bsp_start( void )
|
|||||||
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
||||||
Cpu_table.interrupt_stack_size = 4096;
|
Cpu_table.interrupt_stack_size = 4096;
|
||||||
|
|
||||||
if ( BSP_Configuration.work_space_size >(512*1024) )
|
/* HACK -- tied to value linkcmds */
|
||||||
|
if ( BSP_Configuration.work_space_size >(4096*1024) )
|
||||||
_sys_exit( 1 );
|
_sys_exit( 1 );
|
||||||
|
|
||||||
BSP_Configuration.work_space_start = (void *) &WorkspaceBase;
|
BSP_Configuration.work_space_start = (void *) &WorkspaceBase;
|
||||||
|
|||||||
@@ -110,7 +110,8 @@ SECTIONS
|
|||||||
_stack_init = .;
|
_stack_init = .;
|
||||||
_clear_end = .;
|
_clear_end = .;
|
||||||
WorkspaceBase = .;
|
WorkspaceBase = .;
|
||||||
. += 512K; /* reserve some memory for workspace */
|
/* HACK -- tied to value bspstart */
|
||||||
|
. += 4096K; /* reserve some memory for workspace */
|
||||||
HeapBase = .;
|
HeapBase = .;
|
||||||
. += HeapSize; /* reserve some memory for heap */
|
. += HeapSize; /* reserve some memory for heap */
|
||||||
}
|
}
|
||||||
|
|||||||
13
c/src/lib/libbsp/mips/jmr3904/tools/.cvsignore
Normal file
13
c/src/lib/libbsp/mips/jmr3904/tools/.cvsignore
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
aclocal.m4
|
||||||
|
config.cache
|
||||||
|
config.guess
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
config.sub
|
||||||
|
configure
|
||||||
|
depcomp
|
||||||
|
install-sh
|
||||||
|
missing
|
||||||
|
mkinstalldirs
|
||||||
22
c/src/lib/libbsp/mips/jmr3904/tools/Makefile.am
Normal file
22
c/src/lib/libbsp/mips/jmr3904/tools/Makefile.am
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
##
|
||||||
|
## $Id$
|
||||||
|
##
|
||||||
|
|
||||||
|
AUTOMAKE_OPTIONS = foreign 1.4
|
||||||
|
ACLOCAL_AMFLAGS = -I ../../../../../../../aclocal
|
||||||
|
|
||||||
|
noinst_SCRIPTS = runtest
|
||||||
|
|
||||||
|
TMPINSTALL_FILES += $(PROJECT_ROOT)/jmr3904/tests \
|
||||||
|
$(PROJECT_ROOT)/jmr3904/tests/runtest
|
||||||
|
|
||||||
|
$(PROJECT_ROOT)/jmr3904/tests:
|
||||||
|
$(mkinstalldirs) $@
|
||||||
|
|
||||||
|
$(PROJECT_ROOT)/jmr3904/tests/runtest: runtest
|
||||||
|
$(INSTALL_SCRIPT) $< $@
|
||||||
|
|
||||||
|
## HACK: install to build-tree
|
||||||
|
all-local: $(TMPINSTALL_FILES)
|
||||||
|
|
||||||
|
include $(top_srcdir)/../../../../../../../automake/host.am
|
||||||
19
c/src/lib/libbsp/mips/jmr3904/tools/configure.in
Normal file
19
c/src/lib/libbsp/mips/jmr3904/tools/configure.in
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
dnl
|
||||||
|
dnl $Id$
|
||||||
|
|
||||||
|
AC_INIT(runtest)
|
||||||
|
RTEMS_TOP(../../../../../../..)
|
||||||
|
AC_CONFIG_AUX_DIR(../../../../../../..)
|
||||||
|
|
||||||
|
RTEMS_CANONICAL_TARGET_CPU
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE(rtems-c-src-lib-libbsp-mips-jmr3904-tools,$RTEMS_VERSION,no)
|
||||||
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
RTEMS_PROJECT_ROOT
|
||||||
|
RTEMS_TOOLPATHS
|
||||||
|
|
||||||
|
# Explicitly list all Makefiles here
|
||||||
|
AC_OUTPUT(
|
||||||
|
Makefile)
|
||||||
261
c/src/lib/libbsp/mips/jmr3904/tools/runtest
Executable file
261
c/src/lib/libbsp/mips/jmr3904/tools/runtest
Executable file
@@ -0,0 +1,261 @@
|
|||||||
|
#!/bin/sh -p
|
||||||
|
#
|
||||||
|
# Run rtems tests on the powerpc simulator
|
||||||
|
# This program generates a simulator script to run each test
|
||||||
|
# Typically the test is then run, although it can be generated
|
||||||
|
# and left as a file using -s
|
||||||
|
#
|
||||||
|
# COPYRIGHT (c) 1989-1999.
|
||||||
|
# On-Line Applications Research Corporation (OAR).
|
||||||
|
#
|
||||||
|
# The license and distribution terms for this file may be
|
||||||
|
# found in found in the file LICENSE in this distribution or at
|
||||||
|
# http://www.OARcorp.com/rtems/license.html.
|
||||||
|
#
|
||||||
|
# $Id$
|
||||||
|
#
|
||||||
|
|
||||||
|
# progname=`basename $0`
|
||||||
|
progname=${0##*/} # fast basename hack for ksh, bash
|
||||||
|
|
||||||
|
USAGE=\
|
||||||
|
"usage: $progname [ -opts ] test [ test ... ]
|
||||||
|
-o options -- specify options to be passed to simulator
|
||||||
|
-v -- verbose
|
||||||
|
-d -- generate device tree file (as 'test'.device) and exit
|
||||||
|
-l logdir -- specify log directory (default is 'logdir')
|
||||||
|
|
||||||
|
Specify test as 'test' or 'test.exe'.
|
||||||
|
All multiprocessing tests *must* be specified simply as 'mp01', etc.
|
||||||
|
"
|
||||||
|
|
||||||
|
# export everything
|
||||||
|
set -a
|
||||||
|
|
||||||
|
# log an error to stderr
|
||||||
|
prerr()
|
||||||
|
{
|
||||||
|
echo "$*" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
fatal() {
|
||||||
|
[ "$1" ] && prerr $*
|
||||||
|
prerr "$USAGE"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
warn() {
|
||||||
|
[ "$1" ] && prerr $*
|
||||||
|
}
|
||||||
|
|
||||||
|
# print args, 1 per line
|
||||||
|
ml_echo()
|
||||||
|
{
|
||||||
|
for l
|
||||||
|
do
|
||||||
|
echo "$l"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# run at normal and signalled exit
|
||||||
|
test_exit()
|
||||||
|
{
|
||||||
|
exit_code=$1
|
||||||
|
|
||||||
|
rm -f ${logfile}.tmp*
|
||||||
|
[ "$sim_pid" ] && kill -9 $sim_pid
|
||||||
|
|
||||||
|
exit $exit_code
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# process the options
|
||||||
|
#
|
||||||
|
# defaults for getopt vars
|
||||||
|
#
|
||||||
|
# max_run_time is defaulted to 5 minutes
|
||||||
|
#
|
||||||
|
|
||||||
|
verbose=""
|
||||||
|
extra_options=""
|
||||||
|
device_and_exit=""
|
||||||
|
stdio_setup="yes"
|
||||||
|
run_to_completion="yes"
|
||||||
|
logdir=log
|
||||||
|
update_on_tick="no"
|
||||||
|
max_run_time=$((5 * 60))
|
||||||
|
using_print_buffer="yes"
|
||||||
|
simulator=mipstx39-rtems-run
|
||||||
|
|
||||||
|
while getopts vdl:o:s: OPT
|
||||||
|
do
|
||||||
|
case "$OPT" in
|
||||||
|
v)
|
||||||
|
verbose="yes";;
|
||||||
|
d)
|
||||||
|
device_and_exit="yes"
|
||||||
|
run_to_completion="no"
|
||||||
|
stdio_setup="no";;
|
||||||
|
l)
|
||||||
|
logdir="$OPTARG";;
|
||||||
|
o)
|
||||||
|
extra_options="$OPTARG";;
|
||||||
|
s)
|
||||||
|
simulator="$OPTARG";;
|
||||||
|
*)
|
||||||
|
fatal;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
let $((shiftcount = $OPTIND - 1))
|
||||||
|
shift $shiftcount
|
||||||
|
|
||||||
|
args=$*
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check some parameters
|
||||||
|
#
|
||||||
|
|
||||||
|
# JRS CHANGE
|
||||||
|
# if [ ! -x ${simulator} ] ; then
|
||||||
|
# fatal "${simulator} is not executable"
|
||||||
|
# fi;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Run the tests
|
||||||
|
#
|
||||||
|
|
||||||
|
tests="$args"
|
||||||
|
if [ ! "$tests" ]
|
||||||
|
then
|
||||||
|
set -- `echo *.exe`
|
||||||
|
tests="$*"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ -d $logdir ] ||
|
||||||
|
mkdir $logdir || fatal "could not create log directory ($logdir)"
|
||||||
|
|
||||||
|
# where the tmp files go
|
||||||
|
trap "test_exit" 1 2 3 13 14 15
|
||||||
|
|
||||||
|
for tfile in $tests
|
||||||
|
do
|
||||||
|
|
||||||
|
tname=`basename $tfile .exe`
|
||||||
|
cpus="1"
|
||||||
|
TEST_TYPE="single"
|
||||||
|
|
||||||
|
case $tname in
|
||||||
|
# size is no longer interactive.
|
||||||
|
monitor*| termios*)
|
||||||
|
if [ $run_to_completion = "yes" ]
|
||||||
|
then
|
||||||
|
warn "Skipping $tname; it is interactive"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*-node2*)
|
||||||
|
warn "Skipping $tname; 'runtest' runs both nodes when for *-node1"
|
||||||
|
continue;;
|
||||||
|
*-node1*)
|
||||||
|
warn "Running both nodes associated with $tname"
|
||||||
|
variant=`echo $tname | sed 's/.*-node[12]//' | sed 's/\.exe//'`
|
||||||
|
tname=`echo $tname | sed 's/-node.*//'`
|
||||||
|
TEST_TYPE="mp"
|
||||||
|
;;
|
||||||
|
minimum*|stackchk*|spfatal*|termio*)
|
||||||
|
continue
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ $TEST_TYPE = "mp" ]
|
||||||
|
then
|
||||||
|
cpus="1 2"
|
||||||
|
|
||||||
|
logfile1=$logdir/${tname}_1${variant}
|
||||||
|
logfile2=$logdir/${tname}_2${variant}
|
||||||
|
infofile1=$logfile1.info
|
||||||
|
infofile2=$logfile2.info
|
||||||
|
|
||||||
|
rm -f ${logfile1} ${logfile2}
|
||||||
|
|
||||||
|
date=`date`
|
||||||
|
echo "Starting $tname at $date"
|
||||||
|
|
||||||
|
${simulator} --board=jmr3904 ${tname}-node1${variant}.exe | \
|
||||||
|
sed -e 's/
|
||||||
|
//' -e '/^$/d' > ${logfile1} &
|
||||||
|
|
||||||
|
${simulator} --board=jmr3904 ${tname}-node2${variant}.exe | \
|
||||||
|
sed -e 's/
|
||||||
|
//' -e '/^$/d' > ${logfile2} &
|
||||||
|
|
||||||
|
wait
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $TEST_TYPE = "single" ]
|
||||||
|
then
|
||||||
|
logfile=$logdir/${tname}_1
|
||||||
|
infofile=$logfile.info
|
||||||
|
|
||||||
|
rm -f ${logfile}.tmp*
|
||||||
|
|
||||||
|
date=`date`
|
||||||
|
echo "Starting $tname at $date"
|
||||||
|
|
||||||
|
# Generate a device file to get the work done.
|
||||||
|
# The device file must do the following:
|
||||||
|
#
|
||||||
|
# arrange for more memory (2 Mb)
|
||||||
|
|
||||||
|
if [ "$device_and_exit" = "yes" ]
|
||||||
|
then
|
||||||
|
fatal "Cannot currently generate device files"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Spin off the simulator in the background
|
||||||
|
# -c sets an instruction limit
|
||||||
|
|
||||||
|
# XXX need to make sure it won't run forever...
|
||||||
|
|
||||||
|
${simulator} --board=jmr3904 $tfile | \
|
||||||
|
sed -e 's/
|
||||||
|
//' -e '/^$/d' > ${logfile}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create the info files
|
||||||
|
for cpu in $cpus
|
||||||
|
do
|
||||||
|
{
|
||||||
|
echo "$date"
|
||||||
|
echo "Test run on: `uname -n`"
|
||||||
|
echo "Host Information:"
|
||||||
|
echo `uname -a`
|
||||||
|
echo
|
||||||
|
|
||||||
|
#sed -e 's/
|
||||||
|
//' < ${logdir}/${tname}_${cpu}
|
||||||
|
cat ${logdir}/${tname}_${cpu}
|
||||||
|
|
||||||
|
if [ "$ran_too_long" = "yes" ]
|
||||||
|
then
|
||||||
|
echo "Test did NOT finish normally; killed after $max_run_time seconds"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
date;
|
||||||
|
} > ${logdir}/${tname}_${cpu}.info
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$cpus" = "1" ]
|
||||||
|
then
|
||||||
|
mv ${infofile} $logdir/${tname}.info
|
||||||
|
mv ${logfile} $logdir/${tname}
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Tests completed at " `date`
|
||||||
|
test_exit 0
|
||||||
|
|
||||||
Reference in New Issue
Block a user