2007-06-12 Joel Sherrill <joel.sherrill@OARcorp.com>

* armulator/.cvsignore, armulator/ChangeLog, armulator/Makefile.am,
	armulator/bsp_specs, armulator/configure.ac, armulator/preinstall.am,
	armulator/clock/clockdrv.c, armulator/console/console-io.c,
	armulator/console/mon-syscalls.S, armulator/include/.cvsignore,
	armulator/include/bsp.h, armulator/include/tm27.h,
	armulator/start/start.S, armulator/startup/bspstart.c,
	armulator/startup/libcfunc.c, armulator/startup/linkcmds,
	armulator/startup/swi.h, armulator/startup/syscalls.c,
	armulator/startup/trap.S: Removed.
This commit is contained in:
Joel Sherrill
2007-06-12 19:46:53 +00:00
parent 44a5bb783b
commit 85591ad7b2
20 changed files with 12 additions and 1678 deletions

View File

@@ -1,3 +1,15 @@
2007-06-12 Joel Sherrill <joel.sherrill@OARcorp.com>
* armulator/.cvsignore, armulator/ChangeLog, armulator/Makefile.am,
armulator/bsp_specs, armulator/configure.ac, armulator/preinstall.am,
armulator/clock/clockdrv.c, armulator/console/console-io.c,
armulator/console/mon-syscalls.S, armulator/include/.cvsignore,
armulator/include/bsp.h, armulator/include/tm27.h,
armulator/start/start.S, armulator/startup/bspstart.c,
armulator/startup/libcfunc.c, armulator/startup/linkcmds,
armulator/startup/swi.h, armulator/startup/syscalls.c,
armulator/startup/trap.S: Removed.
2007-05-15 Ray Xu <rayx@gmail.com>
* shared/abort/abort.c, shared/abort/simple_abort.c: New files.

View File

@@ -1,14 +0,0 @@
aclocal.m4
autom4te*.cache
config.cache
config.guess
config.log
config.status
config.sub
configure
depcomp
install-sh
Makefile
Makefile.in
missing
mkinstalldirs

View File

@@ -1,434 +0,0 @@
2007-05-15 Ray Xu <rayx@gmail.com>
* Makefile.am: Add abort.rel since it is now in the BSP shared source
-- not in score/cpu.
2007-05-03 Joel Sherrill <joel@OARcorp.com>
* startup/linkcmds: Add alignment between data and bss to avoid linking
errors when compiling with gcc 4.2.x
2007-04-12 Ralf Corsépius <ralf.corsepius@rtems.org>
* bsp_specs: Remove qrtems_debug.
2006-12-02 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: New BUG-REPORT address.
2006-11-15 Joel Sherrill <joel@OARcorp.com>
* Makefile.am: Merge c_rtems_main() into boot_card(). This eliminated a
file and simplified initialization.
2006-10-30 Joel Sherrill <joel@OARcorp.com>
* bsp_specs: Add crti, crtbegin, crtend, and crtn.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Remove superfluous -DASM.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Require autoconf-2.60. Require automake-1.10.
2006-01-11 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Add preinstall.am.
2005-05-26 Ralf Corsepius <ralf.corsepius@rtems.org>
* include/bsp.h: New header guard.
2005-01-07 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Eliminate CFLAGS_OPTIMIZE_V.
2005-01-02 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Remove build-variant support.
2004-11-05 Joel Sherrill <joel@OARcorp.com>
* startup/linkcmds: Add .gnu.linkonce.b section.
2004-09-29 Joel Sherrill <joel@OARcorp.com>
* include/tm27.h: i960 obsoleted and all references removed.
2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
* configure.ac: Require automake > 1.9.
2004-07-25 Joel Sherrill <joel@OARcorp.com>
* startup/linkcmds: Add gnu.linkonce.r sections.
2004-04-23 Ralf Corsepius <ralf_corsepius@rtems.org>
PR 610/bsps
* Makefile.am: Add include/tm27.h, Cosmetics.
* include/tm27.h: Final cosmetics.
2004-04-22 Ralf Corsepius <ralf_corsepius@rtems.org>
* include/bsp.h: Split out tmtest27 support.
* include/tm27.h: New.
2004-04-21 Ralf Corsepius <ralf_corsepius@rtems.org>
PR 613/bsps
* include/bsp.h: Remove MAX_LONG_TEST_DURATION.
2004-04-21 Ralf Corsepius <ralf_corsepius@rtems.org>
PR 614/bsps
* include/bsp.h: Remove MAX_SHORT_TEST_DURATION (Unused).
2004-04-01 Ralf Corsepius <ralf_corsepius@rtems.org>
* include/bsp.h: Include <rtems/clockdrv.h> instead of <clockdrv.h>.
* include/bsp.h: Include <rtems/console.h> instead of <console.h>.
* include/bsp.h: Include <rtems/iosupp.h> instead of <iosupp.h>.
2004-03-31 Ralf Corsepius <ralf_corsepius@rtems.org>
* startup/bspstart.c: Convert to using c99 fixed size types.
2004-02-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect changes to bsp.am.
Preinstall dist_project_lib*.
2004-02-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect changes to bsp.am.
2004-02-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use CPPASCOMPILE instead of CCASCOMPILE.
2004-01-28 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/start.S, startup/libcfunc.c, startup/syscalls.c:
Include bspopts.h for ARM_RDI_MONITOR.
2004-01-28 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Merge-in clock/Makefile.am, console/Makefile.am,
start/Makefile.am, startup/Makefile.am,
timer/Makefile.am, wrapup/Makefile.am. Use automake compilation rules.
* clock/Makefile.am, console/Makefile.am,
start/Makefile.am, startup/Makefile.am, timer/Makefile.am,
wrapup/Makefile.am: Remove.
* configure.ac: Reflect changes above.
2004-01-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Add PREINSTALL_DIRS.
2004-01-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Re-add dirstamps to PRE/TMPINSTALL_FILES.
Add PRE/TMPINSTALL_FILES to CLEANFILES.
* startup/Makefile.am: Ditto.
2004-01-05 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Eliminate $(LIB).
Use noinst_DATA to trigger building libbsp.a.
2003-12-13 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: s,${PROJECT_RELEASE}/lib,$(PROJECT_LIB),g.
* startup/Makefile.am: s,${PROJECT_RELEASE}/lib,$(PROJECT_LIB),g.
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Use mkdir_p. Remove dirs from PRE/TMPINSTALL_FILES.
* startup/Makefile.am: Use mkdir_p. Remove dirs from PRE/TMPINSTALL_FILES.
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Require automake >= 1.8, autoconf >= 2.59.
2003-12-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Misc cleanups and fixes.
* startup/Makefile.am: Misc cleanups and fixes.
* wrapup/Makefile.am: Misc cleanups and fixes.
2003-12-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Add preinstallation dirstamp support.
* clock/Makefile.am: Cosmetics.
* console/Makefile.am: Cosmetics.
* startup/Makefile.am: Cosmetics.
* timer/Makefile.am: Cosmetics.
* wrapup/Makefile.am: Cosmetics.
2003-12-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Remove all-local: $(ARCH).
* console/Makefile.am: Remove all-local: $(ARCH).
* start/Makefile.am: Remove all-local: $(ARCH).
* startup/Makefile.am: Remove all-local: $(ARCH).
* timer/Makefile.am: Remove all-local: $(ARCH).
* wrapup/Makefile.am: Remove all-local: $(ARCH).
2003-09-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Merge-in include/Makefile.am.
Reflect changes to bsp.am.
* include/Makefile.am: Remove.
* configure.ac: Reflect changes above.
2003-09-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* bsp_specs: Remove *lib:.
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* console/console-io.c, include/bsp.h, startup/bspstart.c: URL for
license changed.
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved aclocal/.
2003-08-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved automake/.
* clock/Makefile.am: Reflect having moved automake/.
* console/Makefile.am: Reflect having moved automake/.
* include/Makefile.am: Reflect having moved automake/.
* start/Makefile.am: Reflect having moved automake/.
* startup/Makefile.am: Reflect having moved automake/.
* timer/Makefile.am: Reflect having moved automake/.
* wrapup/Makefile.am: Reflect having moved automake/.
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
2003-08-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
PR 445/bsps
* bsp_specs: Remove -D__embedded__ -Asystem(embedded) from cpp.
Remove cpp, old_cpp (now unused).
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove AC_CONFIG_AUX_DIR.
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AC_PREREQ(2.57).
2003-01-20 Joel Sherrill <joel@OARcorp.com>
* startup/linkcmds: Add FreeBSD SYSCTL() sections for networking.
2002-12-13 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* console/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* start/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* startup/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* timer/Makefile.am: Don't include @RTEMS_BSP@.cfg.
2002-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Use install-data-local to install startfile.
2002-12-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Don't include @RTEMS_BSP@.cfg.
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Reformat.
Add autom4te*cache.
Remove autom4te.cache.
2002-08-21 Joel Sherrill <joel@OARcorp.com>
* bsp_specs: Added support for -nostdlibs.
2002-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Use .$(OBJEXT) instead of .o.
* console/Makefile.am: Use .$(OBJEXT) instead of .o.
* start/Makefile.am: Use .$(OBJEXT) instead of .o.
* startup/Makefile.am: Use .$(OBJEXT) instead of .o.
* timer/Makefile.am: Use .$(OBJEXT) instead of .o.
* wrapup/Makefile.am: Use .$(OBJEXT) instead of .o.
2002-07-30 Joel Sherrill <joel@OARcorp.com>
* startup/Makefile.am: Added -DARM_RDI_MONITOR.
2002-07-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am:
Add bsplib_DATA = $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o
(Didn't make it into cvs at 2002-07-20 :( )
2002-07-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Remove leftover from eliminating PGM.
2002-07-20 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Eliminate PGM.
Add bsplib_DATA = $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o.
2002-07-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* startup/Makefile.am: Add bsplib_DATA = linkcmds.
2002-07-17 Jay Monkman <jtm@smoothsmoothie.com>
* start/start.S: Added SWI_Handler.
2002-07-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Eliminate TMPINSTALL_FILES.
Remove $(OBJS) from all-local.
2002-07-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Add $(LIB) to all-local.
2002-06-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Remove preinstallation of libbsp.a,
2001-05-09 Joel Sherrill <joel@OARcorp.com>
* startup/linkcmds: In support of gcc 3.1, added one of more
of the sections .jcr, .rodata*, .data.*, .gnu.linkonce.s2.*,
.gnu.linkonce.sb2.*, and .gnu.linkonce.s.*. Spacing corrections
and direction of segments to memory regions may also have been
addressed. This was a sweep across all BSPs.
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac:
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
* clock/Makefile.am: Remove AUTOMAKE_OPTIONS.
* Makefile.am: Remove AUTOMAKE_OPTIONS.
* console/Makefile.am: Remove AUTOMAKE_OPTIONS.
* include/Makefile.am: Remove AUTOMAKE_OPTIONS.
* start/Makefile.am: Remove AUTOMAKE_OPTIONS.
* startup/Makefile.am: Remove AUTOMAKE_OPTIONS.
* timer/Makefile.am: Remove AUTOMAKE_OPTIONS.
* wrapup/Makefile.am: Remove AUTOMAKE_OPTIONS.
2002-01-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* console/console-io.c: Include rtems/bspIo.h instead of bspIo.h.
2001-12-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* bsp_specs: Replace -lrtemsall with -lrtemsbsp -lrtemscpu,
replace -lrtemsall_g with -lrtemsbsp_g -lrtemscpu_g.
2001-12-20 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Add RTEMS_BSPOPTS_*(ARM_RDP_MONITOR).
* startup/Makefile.am: Remove ARM_RDP_MONITOR, AM_CPPFLAGS.
2001-12-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Add RTEMS_BPSOPTS_* for ARM_RDI_MONITOR.
2001-11-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Introduce RTEMS_BSP_CONFIGURE.
2001-10-17 Joel Sherrill <joel@OARcorp.com>
* timer: New subdirectory.
* timer/Makefile.am: New file.
* timer/.cvsignore: New file.
* Makefile.am: Modified to reflect above.
* configure.ac: Ditto.
2001-10-12 Joel Sherrill <joel@OARcorp.com>
* console/console-io.c: Fixed typo.
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
* configure.in: Remove.
* configure.ac: New file, generated from configure.in by autoupdate.
2001-09-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/Makefile.am: Use 'CLEANFILES ='.
* include/Makefile.am: Use 'TMPINSTALL_FILES ='.
2001-05-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.in: Add include/bspopts.h.
* console/Makefile.am: Use *_HEADERS instead of *H_FILES.
* irq/Makefile.am: Use *_HEADER instead of *H_FILES.
* include/.cvsignore: Add bspopts.h*, coverhd.h, stamp-h*.
* include/Makefile.am: Add bspopts.h, Use *_HEADER instead of *H_FILES.
* include/bsp.h: Add bspopts.h.
2001-05-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.in: Use RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm]).
2001-01-03 Joel Sherrill <joel@OARcorp.com>
* console/console-io.c: Added console_initialize_hardware().
2000-12-06 Joel Sherrill <joel@OARcorp.com>
* startup/bspstart.c: Removed unused variables ramSpace and _end.
Added prototype for initialize_monitor_handles().
* startup/syscalls.c: Added casts and removed unused variables to
eliminate warnings.
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
2000-11-01 Joel Sherrill <joel@OARcorp.com>
* startup/bspstart.c: assoc.h, error.h, libio_.h, libio.h,
and libcsupport.h moved from libc to lib/include/rtems and
now must be referenced as <rtems/XXX.h>. Header file order
was cleaned up while doing this.
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
Switch to GNU canonicalization.
2000-09-13 Joel Sherrill <joel@OARcorp.com>
* bsp_specs, console/Makefile.am, include/Makefile.am: Clean up.
2000-09-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am, console/Makefile.am, start/Makefile.am,
startup/Makefile.am, wrapup/Makefile.am: Include compile.am
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog: New file.

View File

@@ -1,61 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../../aclocal
noinst_PROGRAMS =
include $(top_srcdir)/../../../../automake/compile.am
include $(top_srcdir)/../../bsp.am
dist_project_lib_DATA = bsp_specs
include_HEADERS = include/bsp.h
include_HEADERS += include/tm27.h
nodist_include_HEADERS = include/bspopts.h
DISTCLEANFILES = include/bspopts.h
nodist_include_HEADERS += ../../shared/include/coverhd.h
EXTRA_DIST = start/start.S
start.$(OBJEXT): start/start.S
$(CPPASCOMPILE) -o $@ -c $<
project_lib_DATA = start.$(OBJEXT)
dist_project_lib_DATA += startup/linkcmds
noinst_PROGRAMS += startup.rel
startup_rel_SOURCES = startup/trap.S ../../shared/bsplibc.c \
../../shared/bsppost.c startup/bspstart.c ../../shared/bootcard.c \
../../shared/sbrk.c \
../../shared/gnatinstallhandler.c startup/libcfunc.c startup/syscalls.c
startup_rel_CPPFLAGS = $(AM_CPPFLAGS)
startup_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_PROGRAMS += clock.rel
clock_rel_SOURCES = clock/clockdrv.c
clock_rel_CPPFLAGS = $(AM_CPPFLAGS)
clock_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_PROGRAMS += console.rel
console_rel_SOURCES = console/console-io.c ../../shared/console-polled.c
console_rel_CPPFLAGS = $(AM_CPPFLAGS)
console_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_PROGRAMS += timer.rel
timer_rel_SOURCES = ../../shared/timerstub.c
timer_rel_CPPFLAGS = $(AM_CPPFLAGS)
timer_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_PROGRAMS += abort.rel
abort_rel_SOURCES = ../shared/abort/abort.c
abort_rel_CPPFLAGS = $(AM_CPPFLAGS)
abort_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_LIBRARIES = libbsp.a
libbsp_a_SOURCES =
libbsp_a_LIBADD = startup.rel clock.rel console.rel timer.rel abort.rel
include $(srcdir)/preinstall.am
include $(top_srcdir)/../../../../automake/local.am

View File

@@ -1,13 +0,0 @@
%rename endfile old_endfile
%rename startfile old_startfile
%rename link old_link
*startfile:
%{!qrtems: %(old_startfile)} \
%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s}}
*link:
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N -e _start}
*endfile:
%{!qrtems: *(old_endfiles)} %{qrtems: crtend.o%s crtn.o%s }

View File

@@ -1,21 +0,0 @@
/*
* Instantiate the clock driver shell.
*
* Since there is no clock source on the simulator, all we do is
* make sure it will build.
*
* $Id$
*/
#define CLOCK_VECTOR 0
#define Clock_driver_support_at_tick()
#define Clock_driver_support_install_isr( _new, _old ) \
do { _old = 0; } while(0)
#define Clock_driver_support_initialize_hardware()
#define Clock_driver_support_shutdown_hardware()
#include "../../../shared/clockdrv_shell.c"

View File

@@ -1,35 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.60)
AC_INIT([rtems-c-src-lib-libbsp-arm-armulator],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla])
AC_CONFIG_SRCDIR([bsp_specs])
RTEMS_TOP(../../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.10])
RTEMS_BSP_CONFIGURE
RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm])
RTEMS_CANONICALIZE_TOOLS
RTEMS_PROG_CCAS
# From newlib
# Select which debug protocol is being used.
# ARM_RDP_MONITOR selects the Demon monitor.
# ARM_RDI_MONITOR selects the Angel monitor.
# If neither are defined, then hard coded defaults will be used
# to create the program's environment.
RTEMS_BSPOPTS_SET([ARM_RDI_MONITOR],[*],[1])
RTEMS_BSPOPTS_HELP([ARM_RDI_MONITOR],
[If defined enable Angel monitor support])
RTEMS_BSPOPTS_SET([ARM_RDP_MONITOR],[*],[])
RTEMS_BSPOPTS_HELP([ARM_RDP_MONITOR],
[If defined enable Demon monitor support])
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

View File

@@ -1,83 +0,0 @@
/*
* This file contains the hardware specific portions of the TTY driver
* for the serial ports on the erc32.
*
* COPYRIGHT (c) 1989-1997.
* 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.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/libio.h>
#include <stdlib.h>
#include <assert.h>
/* external prototypes for monitor interface routines */
extern int armulator_stdin;
extern int armulator_stdout;
extern int armulator_stderr;
/*
* console_initialize_hardware
*
* This routine initializes the console hardware.
*
*/
void console_initialize_hardware(void)
{
return;
}
/*
* console_outbyte_polled
*
* This routine transmits a character using polling.
*/
void console_outbyte_polled(
int port,
char ch
)
{
int nwritten;
int _swiwrite (int, char *, int);
nwritten = _swiwrite (armulator_stdout, &ch , 1);
/* error if (nwritten == -1 || nwritten == len) */
}
/*
* console_inbyte_nonblocking
*
* This routine polls for a character.
*/
int console_inbyte_nonblocking(
int port
)
{
int nread;
char c;
int _swiread (int, char *, int);
nread = _swiread (armulator_stdin, &c, 1);
if ( nread != 1 )
return -1;
return c;
}
#include <rtems/bspIo.h>
void Armulator_BSP_output_char(char c) { console_outbyte_polled( 0, c ); }
BSP_output_char_function_type BSP_output_char = Armulator_BSP_output_char;
BSP_polling_getchar_function_type BSP_poll_char = NULL;

View File

@@ -1,41 +0,0 @@
#ifdef __STDC__
# define _C_LABEL(x) _ ## x
#else
# define _C_LABEL(x) _/**/x
#endif
#define _ASM_LABEL(x) x
#define _ENTRY(name) \
.text; .align 4; .globl name; name:
#define ENTRY(name) \
_ENTRY(_C_LABEL(name))
ENTRY(_sys_exit)
lda 257,g13
calls g13
ENTRY(_sys_open)
lda 230,g13
calls g13
ret
ENTRY(_sys_read)
lda 231,g13
calls g13
ret
ENTRY(_sys_write)
lda 232,g13
calls g13
ret
ENTRY(_sys_lseek)
lda 233,g13
calls g13
ret
ENTRY(_sys_close)
lda 234,g13
calls g13
ret

View File

@@ -1,5 +0,0 @@
coverhd.h
bspopts.h
bspopts.h.in
stamp-h
stamp-h.in

View File

@@ -1,56 +0,0 @@
/* bsp.h
*
* This include file contains some definitions specific to the
* ARM simulator in gdb (the ARMulator).
*
* COPYRIGHT (c) 1989-1999.
* 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.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef _BSP_H
#define _BSP_H
#ifdef __cplusplus
extern "C" {
#endif
#include <bspopts.h>
#include <rtems.h>
#include <rtems/iosupp.h>
#include <rtems/console.h>
#include <rtems/clockdrv.h>
/* Constants */
/* miscellaneous stuff assumed to exist */
extern rtems_configuration_table BSP_Configuration;
/*
* Device Driver Table Entries
*/
/*
* NOTE: Use the standard Console driver entry
*/
/*
* NOTE: Use the standard Clock driver entry
*/
/* functions */
void bsp_cleanup( void );
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,35 +0,0 @@
/*
* tm27.h
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef _RTEMS_TMTEST27
#error "This is an RTEMS internal file you must not include directly."
#endif
#ifndef __tm27_h
#define __tm27_h
/*
* Define the interrupt mechanism for Time Test 27
*
* NOTE: Following are not defined and are board independent
*
*/
#define MUST_WAIT_FOR_INTERRUPT 0
#define Install_tm27_vector( handler ) /* set_vector( (handler), 6, 1 ) */
#define Cause_tm27_intr() /* XXX */
#define Clear_tm27_intr() /* XXX */
#define Lower_tm27_intr() /* empty */
#endif

View File

@@ -1,58 +0,0 @@
## Automatically generated by ampolish3 - Do not edit
if AMPOLISH3
$(srcdir)/preinstall.am: Makefile.am
$(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
endif
PREINSTALL_DIRS =
DISTCLEANFILES += $(PREINSTALL_DIRS)
all-local: $(TMPINSTALL_FILES)
TMPINSTALL_FILES =
CLEANFILES = $(TMPINSTALL_FILES)
all-am: $(PREINSTALL_FILES)
PREINSTALL_FILES =
CLEANFILES += $(PREINSTALL_FILES)
$(PROJECT_LIB)/$(dirstamp):
@$(MKDIR_P) $(PROJECT_LIB)
@: > $(PROJECT_LIB)/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp)
$(PROJECT_INCLUDE)/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)
@: > $(PROJECT_INCLUDE)/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
$(PROJECT_LIB)/bsp_specs: bsp_specs $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/bsp_specs
PREINSTALL_FILES += $(PROJECT_LIB)/bsp_specs
$(PROJECT_INCLUDE)/bsp.h: include/bsp.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
$(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
$(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
$(PROJECT_INCLUDE)/coverhd.h: ../../shared/include/coverhd.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/coverhd.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
$(PROJECT_LIB)/start.$(OBJEXT): start.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/start.$(OBJEXT)
TMPINSTALL_FILES += $(PROJECT_LIB)/start.$(OBJEXT)
$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds

View File

@@ -1,249 +0,0 @@
#include <bspopts.h>
#include "../startup/swi.h"
/* ANSI concatenation macros. */
#define CONCAT(a, b) CONCAT2(a, b)
#define CONCAT2(a, b) a ## b
#ifdef __USER_LABEL_PREFIX__
#define FUNCTION( name ) CONCAT (__USER_LABEL_PREFIX__, name)
#else
#error __USER_LABEL_PREFIX is not defined
#endif
/* .text is used instead of .section .text so it works with arm-aout too. */
.text
.code 32
.align 0
.global _mainCRTStartup
.global _start
.global start
start:
_start:
_mainCRTStartup:
/* Start by setting up a stack */
#ifdef ARM_RDP_MONITOR
/* Issue Demon SWI to read stack info */
swi SWI_GetEnv /* Returns command line in r0 */
mov sp,r1 /* and the highest memory address in r1 */
ldr sl, .LC2 /* stack limit is at end of data */
add sl, sl, #256 /* allow slop for stack overflow handling */
/* and small frames */
#else
#ifdef ARM_RDI_MONITOR
/* Issue Angel SWI to read stack info */
mov r0, #AngelSWI_Reason_HeapInfo
adr r1, .LC0 /* point at ptr to 4 words to receive data */
swi AngelSWI_ARM /* We are always in ARM mode for startup */
ldr r0, .LC0 /* point at values read */
ldr sp, [r0, #8]
ldr sl, [r0, #12]
add sl, sl, #256 /* allow slop for stack overflow handling */
/* and small frames */
#else
/* Set up the stack pointer to a fixed value */
ldr r3, .LC0
mov sp, r3
/* Setup a default stack-limit in-case the code has been
compiled with "-mapcs-stack-check". Hard-wiring this value
is not ideal, since there is currently no support for
checking that the heap and stack have not collided, or that
this default 64k is enough for the program being executed.
However, it ensures that this simple crt0 world will not
immediately cause an overflow event: */
sub sl, sp, #64 << 10 /* Still assumes 256bytes below sl */
#endif
#endif
mov a2, #0 /* Second arg: fill value */
mov fp, a2 /* Null frame pointer */
mov r7, a2 /* Null frame pointer for Thumb */
ldr a1, .LC1 /* First arg: start of memory block */
ldr a3, .LC2
sub a3, a3, a1 /* Third arg: length of block */
#ifdef __thumb__ /* Enter Thumb mode.... */
add a4, pc, #1 /* Get the address of the Thumb block */
bx a4 /* Go there and start Thumb decoding */
.code 16
.global __change_mode
.thumb_func
__change_mode:
#endif
bl FUNCTION (memset)
#if !defined (ARM_RDP_MONITOR) && !defined (ARM_RDI_MONITOR)
mov r0, #0 /* no arguments */
mov r1, #0 /* no argv either */
#else
/* Need to set up standard file handles */
bl FUNCTION (initialize_monitor_handles)
/* XXX for now let's just get the code up :) */
#if 0
#ifdef ARM_RDP_MONITOR
swi SWI_GetEnv /* sets r0 to point to the command line */
mov r1, r0
#else
mov r0, #AngelSWI_Reason_GetCmdLine
adr r1, .LC30 /* Space for command line */
swi AngelSWI
ldr r1, .LC30
#endif
/* Parse string at r1 */
mov r0, #0 /* count of arguments so far */
.LC10:
/* Skip leading blanks */
#ifdef __thumb__
ldrb r3, [r1]
add r1, #1
#else
ldrb r3, [r1], #1
#endif
cmp r3, #0
beq .LC12
cmp r3, #' '
beq .LC10
/* See whether we are scanning a string */
cmp r3, #'"'
#ifdef __thumb__
beq .LC20
cmp r3, #'\''
bne .LC21
.LC20:
mov r2, r3
b .LC22
.LC21:
mov r2, #' ' /* terminator type */
sub r1, r1, #1 /* adjust back to point at start char */
.LC22:
#else
cmpne r3, #'\''
moveq r2, r3
movne r2, #' ' /* terminator type */
subne r1, r1, #1 /* adjust back to point at start char */
#endif
/* Stack a pointer to the current argument */
#ifdef __thumb__
push {r1}
#else
stmfd sp!, {r1}
#endif
add r0, r0, #1
.LC11:
#ifdef __thumb__
ldrb r3, [r1]
add r1, #1
#else
ldrb r3, [r1], #1
#endif
cmp r3, #0
beq .LC12
cmp r2, r3 /* reached terminator? */
bne .LC11
mov r2, #0
sub r3, r1, #1
strb r2, [r3] /* terminate the arg string */
b .LC10
.LC12:
mov r1, sp /* point at stacked arg pointers */
/* We've now got the stacked args in order reverse the */
#ifdef __thumb__
mov r2, r0
lsl r2, #2
add r2, sp
mov r3, sp
.LC15: cmp r2, r3
bls .LC14
sub r2, #4
ldr r4, [r2]
ldr r5, [r3]
str r5, [r2]
str r4, [r3]
add r3, #4
b .LC15
.LC14:
#else
add r2, sp, r0, LSL #2 /* End of args */
mov r3, sp /* Start of args */
.LC13: cmp r2, r3
ldrhi r4,[r2, #-4] /* Reverse ends of list */
ldrhi r5, [r3]
strhi r5, [r2, #-4]!
strhi r4, [r3], #4
bhi .LC13
#endif
#endif
#endif
bl FUNCTION (boot_card)
bl FUNCTION (exit) /* Should not return */
#ifdef __thumb__
/* Come out of Thumb mode... This code should be redundant... */
mov a4, pc
bx a4
.code 32
.global change_back
change_back:
/* Halt the execution. This code should never be executed. */
/*
** With no debug monitor, this probably aborts (eventually).
** With a Demon debug monitor, this halts cleanly.
** With an Angel debug monitor, this will report 'Unknown SWI'.
*/
swi SWI_Exit
#endif
/* For Thumb, constants must be after the code since only
positive offsets are supported for PC relative addresses. */
.align 0
.LC0:
#ifdef ARM_RDI_MONITOR
.word HeapBase
#else
#ifndef ARM_RDP_MONITOR
#ifdef __pe__
.word 0x800000
#else
/* .word 0x80000 */ /* Top of RAM on the PIE board */
#endif
#endif
#endif
.LC1:
.word _clear_start
.LC2:
.word _clear_end
#ifdef ARM_RDI_MONITOR
.LC30: .word CommandLine
/* Workspace for Angel calls. */
.data
/* Data returned by monitor SWI */
HeapBase: .word 0
HeapLimit: .word 0
StackBase: .word 0
StackLimit: .word 0
CommandLine: .space 256,0 /* Maximum length of 255 chars handled */
#endif
.globl SWI_Handler
SWI_Handler:
B SWI_Handler
#ifdef __pe__
.section .idata$3
.long 0,0,0,0,0,0,0,0
#endif

View File

@@ -1,93 +0,0 @@
/*
* This routine starts the application. It includes application,
* board, and monitor specific initialization and configuration.
* The generic CPU dependent initialization has been performed
* before this routine is invoked.
*
* COPYRIGHT (c) 1989-1999.
* 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.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <string.h>
#include <bsp.h>
#include <rtems/libio.h>
#include <rtems/libcsupport.h>
/*
* The original table from the application and our copy of it with
* some changes.
*/
extern rtems_configuration_table Configuration;
rtems_configuration_table BSP_Configuration;
rtems_cpu_table Cpu_table;
char *rtems_progname;
/*
* Use the shared implementations of the following routines
*/
void bsp_postdriver_hook(void);
void bsp_libc_init( void *, uint32_t, int );
/*
* Function: bsp_pretasking_hook
* Created: 95/03/10
*
* Description:
* BSP pretasking hook. Called just before drivers are initialized.
* Used to setup libc and install any BSP extensions.
*
* NOTES:
* Must not use libc (to do io) from here, since drivers are
* not yet initialized.
*
*/
void bsp_pretasking_hook(void)
{
extern int HeapBase;
extern int HeapSize;
void *heapStart = &HeapBase;
unsigned long heapSize = (unsigned long)&HeapSize;
bsp_libc_init(heapStart, heapSize, 0);
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif
}
/*
* bsp_start
*
* This routine does the bulk of the system initialization.
*/
void bsp_start( void )
{
extern int WorkspaceBase;
void initialize_monitor_handles(void);
initialize_monitor_handles();
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
Cpu_table.postdriver_hook = bsp_postdriver_hook;
/*
if ( BSP_Configuration.work_space_size >(512*1024) )
abort_program( 1 );
*/
BSP_Configuration.work_space_start = (void *) &WorkspaceBase;
}

View File

@@ -1,42 +0,0 @@
/* Support files for GNU libc. Files in the C namespace go here.
Files in the system namespace (ie those that start with an underscore)
go in syscalls.c.
Note: These functions are in a seperate file so that OS providers can
overrride the system call stubs (defined in syscalls.c) without having
to provide libc funcitons as well. */
#include <bspopts.h>
#include "swi.h"
#ifdef ARM_RDI_MONITOR
static inline int
do_AngelSWI (int reason, void * arg)
{
int value;
asm volatile ("mov r0, %1; mov r1, %2; swi %a3; mov %0, r0"
: "=r" (value) /* Outputs */
: "r" (reason), "r" (arg), "i" (AngelSWI) /* Inputs */
: "r0", "r1", "lr"
/* Clobbers r0 and r1, and lr if in supervisor mode */);
return value;
}
#endif /* ARM_RDI_MONITOR */
void
abort_program (void)
{
#ifdef ARM_RDI_MONITOR
do_AngelSWI (AngelSWI_Reason_ReportException,
(void *) ADP_Stopped_RunTimeError);
#else
asm ("mov r0,#17\nswi %a0" :: "i" (SWI_Exit));
#endif
}
void
alarm (void)
{
}

View File

@@ -1,110 +0,0 @@
/*
* $Id$
*/
/*
* Declare some sizes.
*/
_RamBase = DEFINED(_RamBase) ? _RamBase : 0x0;
_RamSize = DEFINED(_RamSize) ? _RamSize : 1M;
_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x10000;
_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000;
SECTIONS
{
. = 0x8000;
.text :
{
CREATE_OBJECT_SYMBOLS
*(.text)
*(.rodata*)
*(.gnu.linkonce.r*)
/*
* Special FreeBSD sysctl sections.
*/
. = ALIGN (16);
__start_set_sysctl_set = .;
*(set_sysctl_*);
__stop_set_sysctl_set = ABSOLUTE(.);
*(set_domain_*);
*(set_pseudo_*);
_etext = .;
___CTOR_LIST__ = .;
LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)
*(.ctors)
LONG(0)
___CTOR_END__ = .;
___DTOR_LIST__ = .;
LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2)
*(.dtors)
LONG(0)
___DTOR_END__ = .;
}
. = ALIGN(256) + (. & (256 - 1));
.data :
{
*(.data)
*(.jcr)
*(.gnu.linkonce.d*)
CONSTRUCTORS
_edata = .;
}
. = ALIGN(256) + (. & (256 - 1));
.bss :
{
_bss_start = .;
_clear_start = .;
*(.bss)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (64);
_stack_init = .;
. += _StackSize;
_clear_end = .;
_WorkspaceBase = .;
. += 512K; /* reserve some memory for workspace */
_HeapBase = .;
. += _HeapSize; /* reserve some memory for heap */
_end = .;
__end = .;
}
/* XXX */
/* These are needed for ELF backends which have not yet been
converted to the new style linker. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* These must appear regardless of . */
}
HeapBase = _HeapBase;
HeapSize = _HeapSize;
WorkspaceBase = _WorkspaceBase;

View File

@@ -1,64 +0,0 @@
/***************************************************************************\
* SWI numbers *
\***************************************************************************/
/* SWI numbers for RDP (Demon) monitor */
#define SWI_WriteC 0x0
#define SWI_Write0 0x2
#define SWI_ReadC 0x4
#define SWI_CLI 0x5
#define SWI_GetEnv 0x10
#define SWI_Exit 0x11
#define SWI_EnterOS 0x16
#define SWI_GetErrno 0x60
#define SWI_Clock 0x61
#define SWI_Time 0x63
#define SWI_Remove 0x64
#define SWI_Rename 0x65
#define SWI_Open 0x66
#define SWI_Close 0x68
#define SWI_Write 0x69
#define SWI_Read 0x6a
#define SWI_Seek 0x6b
#define SWI_Flen 0x6c
#define SWI_IsTTY 0x6e
#define SWI_TmpNam 0x6f
#define SWI_InstallHandler 0x70
#define SWI_GenerateError 0x71
/* Now the SWI numbers and reason codes for RDI (Angel) monitors */
#define AngelSWI_ARM (0x123456)
#ifdef __thumb__
#define AngelSWI (0xAB)
#else
#define AngelSWI AngelSWI_ARM
#endif
/* The reason codes: */
#define AngelSWI_Reason_Open (0x01)
#define AngelSWI_Reason_Close (0x02)
#define AngelSWI_Reason_WriteC (0x03)
#define AngelSWI_Reason_Write0 (0x04)
#define AngelSWI_Reason_Write (0x05)
#define AngelSWI_Reason_Read (0x06)
#define AngelSWI_Reason_ReadC (0x07)
#define AngelSWI_Reason_IsTTY (0x09)
#define AngelSWI_Reason_Seek (0x0A)
#define AngelSWI_Reason_FLen (0x0C)
#define AngelSWI_Reason_TmpNam (0x0D)
#define AngelSWI_Reason_Remove (0x0E)
#define AngelSWI_Reason_Rename (0x0F)
#define AngelSWI_Reason_Clock (0x10)
#define AngelSWI_Reason_Time (0x11)
#define AngelSWI_Reason_System (0x12)
#define AngelSWI_Reason_Errno (0x13)
#define AngelSWI_Reason_GetCmdLine (0x15)
#define AngelSWI_Reason_HeapInfo (0x16)
#define AngelSWI_Reason_EnterSVC (0x17)
#define AngelSWI_Reason_ReportException (0x18)
#define ADP_Stopped_ApplicationExit ((2 << 16) + 38)
#define ADP_Stopped_RunTimeError ((2 << 16) + 34)

View File

@@ -1,171 +0,0 @@
/* Support files for newlib/GDB simulator.
* $Id$
*/
#include <_ansi.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/fcntl.h>
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
#include <sys/times.h>
#include <errno.h>
#include <reent.h>
#include "swi.h"
#include <bspopts.h>
int armulator_stdin;
int armulator_stdout;
int armulator_stderr;
#ifdef ARM_RDI_MONITOR
static inline int
do_AngelSWI (int reason, void * arg)
{
int value;
asm volatile ("mov r0, %1; mov r1, %2; swi %a3; mov %0, r0"
: "=r" (value) /* Outputs */
: "r" (reason), "r" (arg), "i" (AngelSWI) /* Inputs */
: "r0", "r1", "lr"
/* Clobbers r0 and r1, and lr if in supervisor mode */);
return value;
}
#endif /* ARM_RDI_MONITOR */
void
initialize_monitor_handles (void)
{
#ifdef ARM_RDI_MONITOR
int volatile block[3];
block[0] = (int) ":tt";
block[2] = 3; /* length of filename */
block[1] = 0; /* mode "r" */
armulator_stdin = do_AngelSWI (AngelSWI_Reason_Open, (void *)block);
block[0] = (int) ":tt";
block[2] = 3; /* length of filename */
block[1] = 4; /* mode "w" */
armulator_stdout = armulator_stderr = do_AngelSWI (AngelSWI_Reason_Open, (void *)block);
#else
int fh;
const char * name;
name = ":tt";
asm ("mov r0,%2; mov r1, #0; swi %a1; mov %0, r0"
: "=r"(fh)
: "i" (SWI_Open),"r"(name)
: "r0","r1");
armulator_stdin = fh;
name = ":tt";
asm ("mov r0,%2; mov r1, #4; swi %a1; mov %0, r0"
: "=r"(fh)
: "i" (SWI_Open),"r"(name)
: "r0","r1");
armulator_stdout = armulator_stderr = fh;
#endif
}
/* Returns # chars not! read */
int
_swiread (int file,
char * ptr,
int len)
{
int fh = file;
#ifdef ARM_RDI_MONITOR
int block[3];
block[0] = fh;
block[1] = (int) ptr;
block[2] = len;
return do_AngelSWI (AngelSWI_Reason_Read, block);
#else
asm ("mov r0, %1; mov r1, %2;mov r2, %3; swi %a0"
: /* No outputs */
: "i"(SWI_Read), "r"(fh), "r"(ptr), "r"(len)
: "r0","r1","r2");
#endif
}
/* Returns #chars not! written */
int
_swiwrite (
int file,
char * ptr,
int len)
{
int fh = file;
#ifdef ARM_RDI_MONITOR
int block[3];
block[0] = fh;
block[1] = (int) ptr;
block[2] = len;
return do_AngelSWI (AngelSWI_Reason_Write, block);
#else
asm ("mov r0, %1; mov r1, %2;mov r2, %3; swi %a0"
: /* No outputs */
: "i"(SWI_Write), "r"(fh), "r"(ptr), "r"(len)
: "r0","r1","r2");
#endif
}
/*
* Move me
*/
void
bsp_cleanup (void )
{
/* FIXME: return code is thrown away */
#ifdef ARM_RDI_MONITOR
do_AngelSWI (AngelSWI_Reason_ReportException,
(void *) ADP_Stopped_ApplicationExit);
#else
asm ("swi %a0" :: "i" (SWI_Exit));
#endif
}
/*
* Technically could use this as guts of a "real-time clock driver"
*/
#if 0
int
_gettimeofday (struct timeval * tp, struct timezone * tzp)
{
if (tp)
{
/* Ask the host for the seconds since the Unix epoch */
#ifdef ARM_RDI_MONITOR
tp->tv_sec = do_AngelSWI (AngelSWI_Reason_Time,NULL);
#else
{
int value;
asm ("swi %a1; mov %0, r0" : "=r" (value): "i" (SWI_Time) : "r0");
tp->tv_sec = value;
}
#endif
tp->tv_usec = 0;
}
/* Return fixed data for the timezone */
if (tzp)
{
tzp->tz_minuteswest = 0;
tzp->tz_dsttime = 0;
}
return 0;
}
#endif

View File

@@ -1,93 +0,0 @@
/* Run-time exception support */
#include "swi.h"
/* .text is used instead of .section .text so it works with arm-aout too. */
.text
.align 0
.global __rt_stkovf_split_big
.global __rt_stkovf_split_small
/* The following functions are provided for software stack checking.
If hardware stack-checking is being used then the code can be
compiled without the PCS entry checks, and simply rely on VM
management to extend the stack for a thread.
The stack extension event occurs when the PCS function entry code
would result in a stack-pointer beneath the stack-limit register
value. The system relies on the following map:
+-----------------------------------+ <-- end of stack block
| ... |
| ... |
| active stack |
| ... | <-- sp (stack-pointer) somewhere in here
| ... |
+-----------------------------------+ <-- sl (stack-limit)
| stack-extension handler workspace |
+-----------------------------------+ <-- base of stack block
The "stack-extension handler workspace" is an amount of memory in
which the stack overflow support code must execute. It must be
large enough to deal with the worst case path through the extension
code. At the moment the compiler expects this to be AT LEAST
256bytes. It uses this fact to code functions with small local
data usage within the overflow space.
In a true target environment We may need to increase the space
between sl and the true limit to allow for the stack extension
code, SWI handlers and for undefined instruction handlers of the
target environment. */
__rt_stkovf_split_small:
mov ip,sp @ Ensure we can calculate the stack required
@ and fall through to...
__rt_stkovf_split_big:
@ in: sp = current stack-pointer (beneath stack-limit)
@ sl = current stack-limit
@ ip = low stack point we require for the current function
@ lr = return address into the current function
@ fp = frame-pointer
@ original sp --> +----------------------------------+
@ | pc (12 ahead of PCS entry store) |
@ current fp ---> +----------------------------------+
@ | lr (on entry) pc (on exit) |
@ +----------------------------------+
@ | sp ("original sp" on entry) |
@ +----------------------------------+
@ | fp (on entry to function) |
@ +----------------------------------+
@ | |
@ | ..argument and work registers.. |
@ | |
@ current sp ---> +----------------------------------+
@
@ The "current sl" is somewhere between "original sp" and "current sp"
@ but above "true sl". The "current sl" should be at least 256bytes
@ above the "true sl". The 256byte stack guard should be large enough
@ to deal with the worst case function entry stacking (160bytes) plus
@ the stack overflow handler stacking requirements, plus the stack
@ required for the memory allocation routines.
@
@ Normal PCS entry (before stack overflow check) can stack 16
@ standard registers (64bytes) and 8 floating point registers
@ (96bytes). This gives a minimum stack guard of 160bytes (excluding
@ the stack required for the code). (Actually only a maximum of
@ 14standard registers are ever stacked on entry to a function).
@
@ NOTE: Structure returns are performed by the caller allocating a
@ dummy space on the stack and passing in a "phantom" arg1 into
@ the function. This means that we do not need to worry about
@ preserving the stack under "sp" even on function return.
@
@ Code should never poke values beneath sp. The sp register
@ should always be "dropped" first to cover the data. This
@ protects the data against any events that may try and use
@ the stack.
SUB ip, sp, ip @ extra stack required for function
@ Add stack extension code here. If desired a new stack chunk
@ can be allocated, and the register state updated suitably.
@ We now know how much extra stack the function requires.
@ Terminate the program for the moment:
swi SWI_Exit