mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-08-31 21:02:02 +08:00
Remove.
This commit is contained in:
@@ -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
|
||||
@@ -1,92 +0,0 @@
|
||||
2005-05-07 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||
|
||||
* Makefile.am, configure.ac, acinclude.m4: Remove.
|
||||
|
||||
2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||
|
||||
* configure.ac: Require automake > 1.9.
|
||||
|
||||
2004-02-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* acinclude.m4: Regenerate.
|
||||
|
||||
2004-02-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: RTEMS_CHECK_BSPDIR([$RTEMS_BSP_FAMILY]).
|
||||
|
||||
2004-01-13 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Use @RTEMS_BSP_FAMILY@ instead of
|
||||
$(RTEMS_BSP_FAMILY).
|
||||
|
||||
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Require automake >= 1.8, autoconf >= 2.59.
|
||||
|
||||
2003-10-20 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* acinclude.m4: Reflect changes to bootstrap.
|
||||
* configure.ac: Remove RTEMS_CHECK_CUSTON_BSP.
|
||||
|
||||
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/.
|
||||
|
||||
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
|
||||
|
||||
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).
|
||||
|
||||
2002-12-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove RTEMS_CHECK_BSP_CACHE.
|
||||
|
||||
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Reformat.
|
||||
Add autom4te*cache.
|
||||
Remove autom4te.cache.
|
||||
|
||||
2002-08-07 Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
* acinclude.m4, configure.ac: Bender BSP renamed to OpenRisc
|
||||
Reference Platform or ORP.
|
||||
|
||||
2002-08-06 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* acinclude.m4, configure.ac: Go back to name bender for
|
||||
the or32/or1200 BSP.
|
||||
|
||||
2002-08-06 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* acinclude.m4, configure.ac: Update and fix minor things so this
|
||||
BSP compiles and almost completely links.
|
||||
|
||||
2002-08-06 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* .cvsignore: New file.
|
||||
|
||||
2002-08-06 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* Makefile.am: New file.
|
||||
|
||||
2002-08-06 Chris Ziomkowski <chris@asics.ws>
|
||||
|
||||
* ChangeLog, acinclude.m4, configure.ac: New files added as part
|
||||
of merge from OpenCores repository.
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
ACLOCAL_AMFLAGS = -I ../../../aclocal
|
||||
|
||||
## Descend into the @RTEMS_BSP_FAMILY@ directory
|
||||
## Currently, the shared directory is not explicitly
|
||||
## added but it is present in the source tree.
|
||||
## Currently no shared
|
||||
SUBDIRS = @RTEMS_BSP_FAMILY@
|
||||
|
||||
include $(top_srcdir)/../../../automake/subdirs.am
|
||||
include $(top_srcdir)/../../../automake/local.am
|
||||
@@ -1,10 +0,0 @@
|
||||
# RTEMS_CHECK_BSPDIR(RTEMS_BSP_FAMILY)
|
||||
AC_DEFUN([RTEMS_CHECK_BSPDIR],
|
||||
[
|
||||
case "$1" in
|
||||
orp )
|
||||
AC_CONFIG_SUBDIRS([orp]);;
|
||||
*)
|
||||
AC_MSG_ERROR([Invalid BSP]);;
|
||||
esac
|
||||
])
|
||||
@@ -1,21 +0,0 @@
|
||||
## Process this file with autoconf to produce a configure script.
|
||||
##
|
||||
## $Id$
|
||||
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT([rtems-c-src-lib-libbsp-or32],[_RTEMS_VERSION],[rtems-bugs@rtems.com])
|
||||
AC_CONFIG_SRCDIR([orp])
|
||||
RTEMS_TOP(../../../../..)
|
||||
|
||||
RTEMS_CANONICAL_TARGET_CPU
|
||||
AM_INIT_AUTOMAKE([no-define foreign 1.9])
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
RTEMS_ENV_RTEMSBSP
|
||||
|
||||
RTEMS_PROJECT_ROOT
|
||||
RTEMS_CHECK_BSPDIR([$RTEMS_BSP_FAMILY])
|
||||
|
||||
# Explicitly list all Makefiles here
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_OUTPUT
|
||||
@@ -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
|
||||
@@ -1,287 +0,0 @@
|
||||
2005-05-07 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* bsp_specs, clock/clockdrv.c, configure.ac,
|
||||
console/console.c, console/console.h, include/bsp.h,
|
||||
include/tm27.h, Makefile.am, README, start/start.S,
|
||||
startup/bspclean.c, startup/bspstart.c, startup/linkcmds,
|
||||
startup/setvec.c, timer/timer.c, timer/timerisr.c, times: Remove.
|
||||
|
||||
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-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||
|
||||
* configure.ac: Require automake > 1.9.
|
||||
|
||||
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-02 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||
|
||||
* start/start.S: Include <rtems/asm.h> instead of <asm.h>.
|
||||
|
||||
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>.
|
||||
|
||||
2004-03-31 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||
|
||||
* clock/clockdrv.c, console/console.c, startup/bspstart.c,
|
||||
timer/timer.c, timer/timerisr.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-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Cosmetics.
|
||||
|
||||
2004-01-30 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-28 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Add nostdinc to AUTOMAKE_OPTIONS.
|
||||
Add RTEMS_PROG_CCAS.
|
||||
|
||||
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>
|
||||
|
||||
* Makefile.am: Re-add dirstamps to PRE/TMPINSTALL_FILES.
|
||||
Add PRE/TMPINSTALL_FILES to CLEANFILES.
|
||||
* start/Makefile.am: Ditto.
|
||||
* 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-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* wrapup/Makefile.am: Cosmetics.
|
||||
|
||||
2003-12-11 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-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* startup/Makefile.am: Remove S_FILES. Cosmetics.
|
||||
|
||||
2003-12-02 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-08 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* bsp_specs: Remove *lib:.
|
||||
|
||||
2003-09-04 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* clock/clockdrv.c, console/console.c, console/console.h,
|
||||
include/bsp.h, start/start.S, startup/bspclean.c, startup/bspstart.c,
|
||||
startup/linkcmds, startup/setvec.c, timer/timer.c, timer/timerisr.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.
|
||||
|
||||
2002-12-17 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-10-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Add autom4te.cache.
|
||||
|
||||
2002-09-14 Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
* include/bsp.h, startup/Makefile.am, startup/bspclean.c:
|
||||
Cleanup so the BSP works.
|
||||
|
||||
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-08-07 Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
* configure.ac: Bender BSP renamed to OpenRisc Reference Platform
|
||||
for ORP.
|
||||
|
||||
2002-08-07 Ivan Guzvinec <ivang@opencores.org>
|
||||
|
||||
* include/bsp.h, start/start.S, startup/linkcmds: Patches which
|
||||
were required to make the BSP run.
|
||||
|
||||
2002-08-06 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* configure.ac: GO back to name bender for the or32/or1200 BSP.
|
||||
|
||||
2002-08-06 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* bsp_specs, configure.ac, startup/bspstart.c: Update and fix
|
||||
minor things so this BSP compiles and almost completely links.
|
||||
* startup/Makefile.am: New file.
|
||||
|
||||
2002-08-06 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* include/.cvsignore: Updated to account for more files.
|
||||
|
||||
2002-08-06 Chris Ziomkowski <chris@asics.ws>
|
||||
|
||||
* .cvsignore, Makefile.am, README, bsp_specs, configure.ac, times,
|
||||
clock/.cvsignore, clock/Makefile.am, clock/clockdrv.c,
|
||||
console/.cvsignore, console/Makefile.am, console/console.c,
|
||||
console/console.h, include/.cvsignore, include/Makefile.am,
|
||||
include/bsp.h, start/.cvsignore, start/Makefile.am, start/start.S,
|
||||
startup/.cvsignore, startup/bspclean.c, startup/bspstart.c,
|
||||
startup/linkcmds, startup/main.c, startup/setvec.c, timer/.cvsignore,
|
||||
timer/Makefile.am, timer/timer.c, timer/timerisr.c,
|
||||
wrapup/.cvsignore, wrapup/Makefile.am, ChangeLog: New files added
|
||||
as part of merge from OpenCores repository.
|
||||
@@ -1,104 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
ACLOCAL_AMFLAGS = -I ../../../../aclocal
|
||||
|
||||
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
|
||||
|
||||
noinst_PROGRAMS =
|
||||
|
||||
include_HEADERS += include/coverhd.h
|
||||
|
||||
EXTRA_DIST = start.S
|
||||
start.$(OBJEXT): start/start.S
|
||||
$(CPPASCOMPILE) -DASM -o $@ -c $<
|
||||
project_lib_DATA = start.$(OBJEXT)
|
||||
|
||||
dist_project_lib_DATA += startup/linkcmds
|
||||
|
||||
noinst_PROGRAMS += startup.rel
|
||||
startup_rel_SOURCES = ../../shared/bsplibc.c ../../shared/bsppost.c \
|
||||
startup/bspstart.c startup/bspclean.c ../../shared/bootcard.c \
|
||||
../../shared/main.c ../../shared/sbrk.c \
|
||||
../../shared/gnatinstallhandler.c startup/setvec.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.c console/console.h
|
||||
console_rel_CPPFLAGS = $(AM_CPPFLAGS)
|
||||
console_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
|
||||
|
||||
noinst_PROGRAMS += timer.rel
|
||||
timer_rel_SOURCES = timer/timer.c timer/timerisr.c
|
||||
timer_rel_CPPFLAGS = $(AM_CPPFLAGS)
|
||||
timer_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
|
||||
|
||||
noinst_LIBRARIES = libbsp.a
|
||||
libbsp_a_SOURCES =
|
||||
libbsp_a_LIBADD = startup.rel clock.rel console.rel timer.rel
|
||||
|
||||
all-local: $(PREINSTALL_FILES) $(TMPINSTALL_FILES)
|
||||
|
||||
PREINSTALL_DIRS =
|
||||
PREINSTALL_FILES =
|
||||
TMPINSTALL_FILES =
|
||||
|
||||
$(PROJECT_INCLUDE)/$(dirstamp):
|
||||
@$(mkdir_p) $(PROJECT_INCLUDE)
|
||||
@: > $(PROJECT_INCLUDE)/$(dirstamp)
|
||||
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
|
||||
|
||||
$(PROJECT_LIB)/$(dirstamp):
|
||||
@$(mkdir_p) $(PROJECT_LIB)
|
||||
@: > $(PROJECT_LIB)/$(dirstamp)
|
||||
PREINSTALL_DIRS += $(PROJECT_LIB)/$(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: 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
|
||||
|
||||
CLEANFILES = $(PREINSTALL_FILES)
|
||||
DISTCLEANFILES += $(PREINSTALL_DIRS)
|
||||
CLEANFILES += $(TMPINSTALL_FILES)
|
||||
|
||||
include $(top_srcdir)/../../../../automake/local.am
|
||||
@@ -1,69 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# This is a sample hardware description file for a BSP. This comment
|
||||
# block does not have to appear in a real one. The intention of this
|
||||
# file is to provide a central place to look when searching for
|
||||
# information about a board when starting a new BSP. For example,
|
||||
# you may want to find an existing timer driver for the chip you are
|
||||
# using on your board. It is easier to grep for the chip name in
|
||||
# all of the HARDWARE files than to peruse the source tree. Hopefully,
|
||||
# making the HARDDWARE files accurate will also alleviate the common
|
||||
# problem of not knowing anything about a board based on its BSP
|
||||
# name.
|
||||
#
|
||||
# NOTE: If you have a class of peripheral chip on board which
|
||||
# is not in this list please add it to this file so
|
||||
# others will also use the same name.
|
||||
#
|
||||
# Timer resolution is the way it is configured in this BSP.
|
||||
# On a counting timer, this is the length of time which
|
||||
# corresponds to 1 count.
|
||||
#
|
||||
|
||||
BSP NAME: fastsbc1
|
||||
BOARD: Fasssst Computers, Fast SBC-1
|
||||
BUS: SchoolBus
|
||||
CPU FAMILY: i386
|
||||
CPU: Intel Hexium
|
||||
COPROCESSORS: Witch Hex87
|
||||
MODE: 32 bit mode
|
||||
|
||||
DEBUG MONITOR: HexBug
|
||||
|
||||
PERIPHERALS
|
||||
===========
|
||||
TIMERS: Intel i8254
|
||||
RESOLUTION: .0001 microseconds
|
||||
SERIAL PORTS: Zilog Z8530 (with 2 ports)
|
||||
REAL-TIME CLOCK: RTC-4
|
||||
DMA: Intel i8259
|
||||
VIDEO: none
|
||||
SCSI: none
|
||||
NETWORKING: none
|
||||
|
||||
DRIVER INFORMATION
|
||||
==================
|
||||
CLOCK DRIVER: RTC-4
|
||||
IOSUPP DRIVER: Zilog Z8530 port A
|
||||
SHMSUPP: polled and interrupts
|
||||
TIMER DRIVER: Intel i8254
|
||||
TTY DRIVER: stub only
|
||||
|
||||
STDIO
|
||||
=====
|
||||
PORT: Console port 0
|
||||
ELECTRICAL: RS-232
|
||||
BAUD: 9600
|
||||
BITS PER CHARACTER: 8
|
||||
PARITY: None
|
||||
STOP BITS: 1
|
||||
|
||||
NOTES
|
||||
=====
|
||||
|
||||
(1) 900 Mhz and 950 Mhz versions.
|
||||
|
||||
(2) 1 Gb or 2 Gb RAM.
|
||||
|
||||
(3) PC compatible if HexBug not enabled.
|
||||
@@ -1,12 +0,0 @@
|
||||
%rename endfile old_endfile
|
||||
%rename startfile old_startfile
|
||||
%rename link old_link
|
||||
|
||||
*startfile:
|
||||
%{!qrtems: %(old_startfile)} %{!nostdlib: %{qrtems: \
|
||||
%{!qrtems_debug: start.o%s} \
|
||||
%{qrtems_debug: start_g.o%s}}}
|
||||
|
||||
*link:
|
||||
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N -e _start}
|
||||
|
||||
@@ -1,225 +0,0 @@
|
||||
/* ckinit.c
|
||||
*
|
||||
* This file provides a template for the clock device driver initialization.
|
||||
*
|
||||
* 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 <stdlib.h>
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/libio.h>
|
||||
#include <bsp.h>
|
||||
static void (*old_handler)(unsigned int,unsigned int,unsigned int,unsigned int);
|
||||
|
||||
void Clock_exit( void );
|
||||
void Clock_isr( rtems_vector_number vector,unsigned int pc,
|
||||
unsigned int address, unsigned int sr);
|
||||
|
||||
/*
|
||||
* The interrupt vector number associated with the clock tick device
|
||||
* driver.
|
||||
*/
|
||||
|
||||
#define CLOCK_VECTOR 8
|
||||
|
||||
/*
|
||||
* Clock_driver_ticks is a monotonically increasing counter of the
|
||||
* number of clock ticks since the driver was initialized.
|
||||
*/
|
||||
|
||||
volatile uint32_t Clock_driver_ticks;
|
||||
|
||||
/*
|
||||
* Clock_isrs is the number of clock ISRs until the next invocation of
|
||||
* the RTEMS clock tick routine. The clock tick device driver
|
||||
* gets an interrupt once a millisecond and counts down until the
|
||||
* length of time between the user configured microseconds per tick
|
||||
* has passed.
|
||||
*/
|
||||
|
||||
uint32_t Clock_isrs; /* ISRs until next tick */
|
||||
|
||||
/*
|
||||
* These are set by clock driver during its init
|
||||
*/
|
||||
|
||||
rtems_device_major_number rtems_clock_major = ~0;
|
||||
rtems_device_minor_number rtems_clock_minor;
|
||||
|
||||
void Clock_exit( void );
|
||||
|
||||
/* Write this to restart the Timer. Sets mode = 01,
|
||||
interrupts enabled, interrupt not pending, report
|
||||
at 200,000 (1 msec on 200 MHz CPU) */
|
||||
static const unsigned int TTMR_RESET = 0x60030D40;
|
||||
|
||||
/*
|
||||
* Isr Handler
|
||||
*/
|
||||
|
||||
void Clock_isr(uint32_t vector,
|
||||
uint32_t pc,
|
||||
uint32_t ear,
|
||||
uint32_t sr)
|
||||
{
|
||||
register int pending;
|
||||
register int value = 0x60002710;
|
||||
|
||||
/* Was it us? */
|
||||
asm volatile ("l.mfspr %0,r0,0x4802 \n\t" /* Read the PIC status */
|
||||
"l.andi %0,%0,0x8 \n\t" : "=r" (pending));
|
||||
|
||||
if(pending)
|
||||
{
|
||||
rtems_clock_tick();
|
||||
asm ("l.mtspr r0,%0,0x5000 \n\t" :: "r" (value));
|
||||
}
|
||||
|
||||
if(old_handler)
|
||||
(*old_handler)(vector,pc,ear,sr);
|
||||
}
|
||||
|
||||
/*
|
||||
* Install_clock
|
||||
*
|
||||
* Install a clock tick handler and reprograms the chip. This
|
||||
* is used to initially establish the clock tick.
|
||||
*/
|
||||
|
||||
void Install_clock()
|
||||
{
|
||||
uint32_t tmp,sr,ttmr,ttcr;
|
||||
extern uint32_t Or1k_Interrupt_Vectors[16];
|
||||
|
||||
ttmr = TTMR_RESET; /* Reset value */
|
||||
ttcr = 0; /* Start at 0 */
|
||||
|
||||
/*
|
||||
* Initialize the clock tick device driver variables
|
||||
*/
|
||||
|
||||
/* Make sure the Timer (interrupt 3) is enabled and
|
||||
reports a high prority interrupt */
|
||||
|
||||
asm volatile ("l.mfspr %0,r0,0x4800 \n\t" /* Get the PIC mask */
|
||||
"l.ori %0,%0,0x8 \n\t" /* Enable int 3 */
|
||||
"l.mtspr r0,%0,0x4800 \n\t" /* Write back mask */
|
||||
"l.mfspr %0,r0,0x4801 \n\t" /* Get priority mask */
|
||||
"l.ori %0,%0,0x8 \n\t" /* Set us to high */
|
||||
"l.mtspr r0,%0,0x4801 \n\t" /* Write back to PICPR */
|
||||
: "=r" (tmp));
|
||||
|
||||
/* Generate a 1 kHz interrupt */
|
||||
asm volatile ("l.mfspr %0,r0,0x11 \n\t" /* Get the current setting */
|
||||
"l.addi %1,r0,-5 \n\t"
|
||||
"l.and %1,%1,%0 \n\t" /* Turn off interrupts */
|
||||
"l.mtspr r0,%1,0x11 \n\t" /* Set it in SR */
|
||||
"l.mtspr r0,%2,0x5000\n\t" /* Set TTMR */
|
||||
"l.mtspr r0,%3,0x5100\n\t" /* Set TTCR */
|
||||
: "=&r" (sr), "=&r" (tmp) : "r" (ttmr), "r" (ttcr));
|
||||
|
||||
old_handler = (void(*)(unsigned int,unsigned int,unsigned int,unsigned int))
|
||||
Or1k_Interrupt_Vectors[8];
|
||||
Or1k_Interrupt_Vectors[8] = (uint32_t)Clock_isr;
|
||||
|
||||
asm volatile ("l.mtspr r0,%0,0x11\n\t":: "r" (sr));
|
||||
|
||||
Clock_driver_ticks = 0;
|
||||
|
||||
/*
|
||||
* Schedule the clock cleanup routine to execute if the application exits.
|
||||
*/
|
||||
|
||||
atexit( Clock_exit );
|
||||
}
|
||||
|
||||
/*
|
||||
* Clean up before the application exits
|
||||
*/
|
||||
|
||||
void Clock_exit( void )
|
||||
{
|
||||
register int temp1;
|
||||
register int temp2;
|
||||
|
||||
/* In the case of a fatal error, we should shut down
|
||||
all the interrupts so we don't get woken up again. */
|
||||
/* First, turn off the clock in the PIC */
|
||||
|
||||
asm volatile ("l.mfspr %0,r0,0x4800 \n\t" /* Get the PIC mask */
|
||||
"l.addi %1,%1,-9 \n\t" /* Create a mask to disable */
|
||||
"l.and %0,%1,%0 \n\t" /* Mask us out */
|
||||
"l.mtspr r0,%0,0x4800 \n\t" /* Write back mask */
|
||||
"l.mfspr %0,r0,0x4801 \n\t" /* Get priority mask */
|
||||
"l.and %0,%1,%0 \n\t" /* Set us to low */
|
||||
"l.mtspr r0,%0,0x4801 \n\t" /* Write back to PICPR */
|
||||
: "=r" (temp1), "=r" (temp2));
|
||||
|
||||
/* Now turn off the clock at the timer */
|
||||
asm volatile ("l.mtspr r0,r0,0x5000\n\t" /* Clear TTMR */
|
||||
"l.mtspr r0,r0,0x5100\n\t"); /* Clear TTCR */
|
||||
}
|
||||
|
||||
/*
|
||||
* Clock_initialize
|
||||
*
|
||||
* Device driver entry point for clock tick driver initialization.
|
||||
*/
|
||||
|
||||
rtems_device_driver Clock_initialize(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void *pargp
|
||||
)
|
||||
{
|
||||
Install_clock();
|
||||
|
||||
/*
|
||||
* make major/minor avail to others such as shared memory driver
|
||||
*/
|
||||
|
||||
rtems_clock_major = major;
|
||||
rtems_clock_minor = minor;
|
||||
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
rtems_device_driver Clock_control(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void *pargp
|
||||
)
|
||||
{
|
||||
uint32_t isrlevel;
|
||||
rtems_libio_ioctl_args_t *args = pargp;
|
||||
|
||||
if (args == 0)
|
||||
goto done;
|
||||
|
||||
/*
|
||||
* This is hokey, but until we get a defined interface
|
||||
* to do this, it will just be this simple...
|
||||
*/
|
||||
|
||||
if (args->command == rtems_build_name('I', 'S', 'R', ' '))
|
||||
{
|
||||
Clock_isr(CLOCK_VECTOR,0,0,0);
|
||||
}
|
||||
else if (args->command == rtems_build_name('N', 'E', 'W', ' '))
|
||||
{
|
||||
rtems_interrupt_disable( isrlevel );
|
||||
(void) set_vector( args->buffer, CLOCK_VECTOR, 1 );
|
||||
rtems_interrupt_enable( isrlevel );
|
||||
}
|
||||
|
||||
done:
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
## Process this file with autoconf to produce a configure script.
|
||||
##
|
||||
## $Id$
|
||||
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT([rtems-c-src-lib-libbsp-or32-orp],[_RTEMS_VERSION],[rtems-bugs@rtems.com])
|
||||
AC_CONFIG_SRCDIR([bsp_specs])
|
||||
RTEMS_TOP(../../../../../..)
|
||||
|
||||
RTEMS_CANONICAL_TARGET_CPU
|
||||
AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.9])
|
||||
RTEMS_BSP_CONFIGURE
|
||||
|
||||
RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm])
|
||||
RTEMS_CANONICALIZE_TOOLS
|
||||
RTEMS_PROG_CCAS
|
||||
|
||||
# Explicitly list all Makefiles here
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_OUTPUT
|
||||
@@ -1,374 +0,0 @@
|
||||
/*
|
||||
* This file contains the template for a console IO package.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This file adapted from no_bsp board library of the RTEMS distribution.
|
||||
* The body has been modified for the Bender Or1k implementation by
|
||||
* Chris Ziomkowski. <chris@asics.ws>
|
||||
*/
|
||||
|
||||
#define BENDER_INIT
|
||||
|
||||
#include <bsp.h>
|
||||
#include <rtems/libio.h>
|
||||
#include "console.h"
|
||||
|
||||
static int localEcho;
|
||||
static UART_16450* uart = (UART_16450*)0x80000000; /* This is where the simulator puts it */
|
||||
|
||||
/* console_initialize
|
||||
*
|
||||
* This routine initializes the console IO driver.
|
||||
*
|
||||
* Input parameters: NONE
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* Return values:
|
||||
*/
|
||||
|
||||
void (*old_handler)(unsigned int,unsigned int,unsigned int,unsigned int);
|
||||
|
||||
void console_interrupt(unsigned int vector,unsigned int pc,
|
||||
unsigned int effective_addr, unsigned int status)
|
||||
{
|
||||
int reason;
|
||||
register int pending;
|
||||
|
||||
/* First thing's first...is this for us? */
|
||||
asm volatile ("l.mfspr %0,r0,0x4802 \n\t" /* Read the PIC status */
|
||||
"l.andi %0,%0,0x4 \n\t" : "=r" (pending));
|
||||
|
||||
if(pending)
|
||||
{
|
||||
reason = uart->read.IIR;
|
||||
|
||||
switch(reason)
|
||||
{
|
||||
case 0: /* Interrupt because of modem status */
|
||||
break;
|
||||
case 2: /* Interrupt because Transmitter empty */
|
||||
break;
|
||||
case 4: /* Interrupt because Received data available */
|
||||
break;
|
||||
case 6: /* Interrupt because Status Register */
|
||||
break;
|
||||
case 12: /* Interrupt because of character timeout (16550 only) */
|
||||
break;
|
||||
default: /* No interrupt */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(old_handler)
|
||||
(*old_handler)(vector,pc,effective_addr,status);
|
||||
}
|
||||
|
||||
rtems_device_driver console_initialize(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void *arg
|
||||
)
|
||||
{
|
||||
rtems_status_code status;
|
||||
int tmp,tmp2;
|
||||
uint32_t sr;
|
||||
extern uint32_t Or1k_Interrupt_Vectors[16];
|
||||
|
||||
/* Make sure the UART (interrupt 2) is enabled and
|
||||
reports a low prority interrupt */
|
||||
asm volatile ("l.mfspr %0,r0,0x4800 \n\t" /* Get the PIC mask */
|
||||
"l.ori %0,%0,0x4 \n\t" /* Enable int 2 */
|
||||
"l.mtspr r0,%0,0x4800 \n\t" /* Write back mask */
|
||||
"l.mfspr %0,r0,0x4801 \n\t" /* Get priority mask */
|
||||
"l.addi %1,r0,-5 \n\t"
|
||||
"l.and %0,%0,%1 \n\t" /* Set us to low */
|
||||
"l.mtspr r0,%0,0x4801 \n\t" /* Write back to PICPR */
|
||||
: "=r" (tmp), "=r" (tmp2));
|
||||
|
||||
/* Install the interrupt handler */
|
||||
asm volatile ("l.mfspr %0,r0,0x11 \n\t"
|
||||
"l.addi %1,r0,-5 \n\t"
|
||||
"l.and %1,%1,%0 \n\t"
|
||||
"l.mtspr r0,%1,0x11 \n\t": "=&r" (sr) : "r" (tmp));
|
||||
|
||||
old_handler = (void(*)(unsigned int,unsigned int,unsigned int,unsigned int))
|
||||
Or1k_Interrupt_Vectors[5];
|
||||
Or1k_Interrupt_Vectors[5] = (uint32_t)console_interrupt;
|
||||
|
||||
asm volatile ("l.mtspr r0,%0,0x11\n\t":: "r" (sr));
|
||||
|
||||
/* Assume 1843.2/16 kHz clock */
|
||||
uart->latch.LCR = 0x80; /* Set the divisor latch bit */
|
||||
uart->latch.DLM = 2; /* 57,600 */
|
||||
uart->latch.DLL = 0;
|
||||
uart->write.LCR = 0x03; /* 8-N-1 */
|
||||
uart->write.MCR = 0x03; /* Assert RTS & DTR */
|
||||
/* uart->write.FCR = 0x00; */ /* Make sure we're in 16450 mode... Ignore for 16450 driver */
|
||||
uart->write.IER = 0x05; /* Don't worry about TEMT unless we need to. */
|
||||
|
||||
tmp = uart->read.LSR; /* Make sure interrupts are cleared */
|
||||
tmp = uart->read.RBR; /* Clear the input buffer */
|
||||
tmp = uart->read.MSR; /* Clear the modem status register */
|
||||
|
||||
localEcho = 1; /* Turn on local echo */
|
||||
|
||||
status = rtems_io_register_name(
|
||||
"/dev/console",
|
||||
major,
|
||||
(rtems_device_minor_number) 0
|
||||
);
|
||||
|
||||
if (status != RTEMS_SUCCESSFUL)
|
||||
rtems_fatal_error_occurred(status);
|
||||
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
/* is_character_ready
|
||||
*
|
||||
* This routine returns TRUE if a character is available.
|
||||
*
|
||||
* Input parameters: NONE
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* Return values:
|
||||
*/
|
||||
|
||||
rtems_boolean is_character_ready(
|
||||
char *ch
|
||||
)
|
||||
{
|
||||
*ch = '\0'; /* return NULL for no particular reason */
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
/* inbyte
|
||||
*
|
||||
* This routine reads a character from the SOURCE.
|
||||
*
|
||||
* Input parameters: NONE
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* Return values:
|
||||
* character read from SOURCE
|
||||
*/
|
||||
|
||||
char inbyte( void )
|
||||
{
|
||||
unsigned int stat;
|
||||
|
||||
stat = uart->read.LSR;
|
||||
while(!(stat & 0x01)) /* ! Data Ready */
|
||||
{
|
||||
rtems_task_wake_after( RTEMS_YIELD_PROCESSOR );
|
||||
stat = uart->read.LSR;
|
||||
}
|
||||
|
||||
return uart->read.RBR; /* Return the character */
|
||||
}
|
||||
|
||||
/* outbyte
|
||||
*
|
||||
* This routine transmits a character out the SOURCE. Flow
|
||||
* control is not currently enabled.
|
||||
*
|
||||
* Input parameters:
|
||||
* ch - character to be transmitted
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*/
|
||||
|
||||
void outbyte(char ch)
|
||||
{
|
||||
unsigned int stat;
|
||||
/*
|
||||
* Carriage Return/New line translation.
|
||||
*/
|
||||
|
||||
stat = uart->read.LSR;
|
||||
while(!(stat & 0x40)) /* ! TEMT */
|
||||
{
|
||||
rtems_task_wake_after( RTEMS_YIELD_PROCESSOR );
|
||||
stat = uart->read.LSR;
|
||||
}
|
||||
|
||||
uart->write.THR = ch;
|
||||
if ( ch == '\n' )
|
||||
outbyte( '\r' );
|
||||
}
|
||||
|
||||
/*
|
||||
* Open entry point
|
||||
*/
|
||||
|
||||
rtems_device_driver console_open(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
)
|
||||
{
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Close entry point
|
||||
*/
|
||||
|
||||
rtems_device_driver console_close(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
)
|
||||
{
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
/*
|
||||
* read bytes from the serial port. We only have stdin.
|
||||
*/
|
||||
|
||||
rtems_device_driver console_read(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
)
|
||||
{
|
||||
rtems_libio_rw_args_t *rw_args;
|
||||
char *buffer;
|
||||
int maximum;
|
||||
int count = 0;
|
||||
|
||||
rw_args = (rtems_libio_rw_args_t *) arg;
|
||||
|
||||
buffer = rw_args->buffer;
|
||||
maximum = rw_args->count;
|
||||
|
||||
for (count = 0; count < maximum; count++)
|
||||
{
|
||||
buffer[ count ] = inbyte();
|
||||
|
||||
if (buffer[ count ] == '\n' || buffer[ count ] == '\r')
|
||||
{
|
||||
buffer[ count++ ] = '\n';
|
||||
if(localEcho)
|
||||
outbyte('\n' ); /* newline */
|
||||
break; /* Return for a newline */
|
||||
}
|
||||
else if (buffer[ count ] == '\b' && count > 0 )
|
||||
{
|
||||
if(localEcho)
|
||||
{
|
||||
outbyte('\b' ); /* move back one space */
|
||||
outbyte(' ' ); /* erase the character */
|
||||
outbyte('\b' ); /* move back one space */
|
||||
}
|
||||
count-=2;
|
||||
}
|
||||
else if(localEcho)
|
||||
outbyte(buffer[ count ]); /* echo the character */
|
||||
}
|
||||
|
||||
rw_args->bytes_moved = count;
|
||||
return (count >= 0) ? RTEMS_SUCCESSFUL : RTEMS_UNSATISFIED;
|
||||
}
|
||||
|
||||
/*
|
||||
* write bytes to the serial port. Stdout and stderr are the same.
|
||||
*/
|
||||
|
||||
rtems_device_driver console_write(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
)
|
||||
{
|
||||
int count;
|
||||
int maximum;
|
||||
rtems_libio_rw_args_t *rw_args;
|
||||
char *buffer;
|
||||
|
||||
rw_args = (rtems_libio_rw_args_t *) arg;
|
||||
|
||||
buffer = rw_args->buffer;
|
||||
maximum = rw_args->count;
|
||||
|
||||
for (count = 0; count < maximum; count++) {
|
||||
if ( buffer[ count ] == '\n') {
|
||||
outbyte('\r');
|
||||
}
|
||||
outbyte( buffer[ count ] );
|
||||
}
|
||||
|
||||
rw_args->bytes_moved = maximum;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* IO Control entry point
|
||||
*/
|
||||
|
||||
rtems_device_driver console_control(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
)
|
||||
{
|
||||
int param,div;
|
||||
ConsoleIOCTLRequest* request = (ConsoleIOCTLRequest*)arg;
|
||||
|
||||
if (!arg)
|
||||
return RTEMS_INVALID_ADDRESS;
|
||||
|
||||
switch(request->command)
|
||||
{
|
||||
case TERM_LOCAL_ECHO:
|
||||
param = (int)(request->data);
|
||||
if(param < 0 || param > 1)
|
||||
return RTEMS_INVALID_NUMBER;
|
||||
localEcho = param;
|
||||
break;
|
||||
case TERM_BIT_RATE:
|
||||
param = (int)(request->data);
|
||||
switch(param)
|
||||
{
|
||||
case 50:
|
||||
case 150:
|
||||
case 300:
|
||||
case 600:
|
||||
case 1200:
|
||||
case 1800:
|
||||
case 2000:
|
||||
case 2400:
|
||||
case 3600:
|
||||
case 4800:
|
||||
case 7200:
|
||||
case 9600:
|
||||
case 19200:
|
||||
case 38400:
|
||||
case 57600:
|
||||
case 115200:
|
||||
div = 115200/param;
|
||||
uart->latch.LCR |= 0x80; /* Set the divisor latch bit */
|
||||
uart->latch.DLM = div & 0xFF;
|
||||
uart->latch.DLL = div >> 8;
|
||||
uart->write.LCR &= 0x7F; /* Clear the divisor latch bit */
|
||||
break;
|
||||
default:
|
||||
return RTEMS_INVALID_NUMBER;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
/* console.h -- console header file for the Bender board using the
|
||||
* Or1k architecture.
|
||||
*
|
||||
* Copyright (C) 2001 Chris Ziomkowski, chris@asics.ws
|
||||
*
|
||||
* This file is distributed as part of the RTEMS package from
|
||||
* OAR Corporation, and follows the licensing and distribution
|
||||
* terms as stated for RTEMS.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef _CONSOLE_H
|
||||
#define _CONSOLE_H
|
||||
|
||||
typedef enum {
|
||||
TERM_LOCAL_ECHO,
|
||||
TERM_BIT_RATE,
|
||||
} ConsoleIOCTLCommand;
|
||||
|
||||
typedef struct {
|
||||
ConsoleIOCTLCommand command;
|
||||
void* data;
|
||||
} ConsoleIOCTLRequest;
|
||||
|
||||
typedef struct {
|
||||
unsigned char RBR;
|
||||
unsigned char IER;
|
||||
unsigned char IIR;
|
||||
unsigned char LCR;
|
||||
unsigned char MCR;
|
||||
unsigned char LSR;
|
||||
unsigned char MSR;
|
||||
unsigned char SCR;
|
||||
} UART_16450_Read;
|
||||
|
||||
typedef struct {
|
||||
unsigned char THR;
|
||||
unsigned char IER;
|
||||
unsigned char IIR;
|
||||
unsigned char LCR;
|
||||
unsigned char MCR;
|
||||
unsigned char LSR;
|
||||
unsigned char MSR;
|
||||
unsigned char SCR;
|
||||
} UART_16450_Write;
|
||||
|
||||
typedef struct {
|
||||
unsigned char DLM;
|
||||
unsigned char DLL;
|
||||
unsigned char IIR;
|
||||
unsigned char LCR;
|
||||
unsigned char MCR;
|
||||
unsigned char LSR;
|
||||
unsigned char MSR;
|
||||
unsigned char SCR;
|
||||
} UART_16450_Latch;
|
||||
|
||||
typedef union {
|
||||
UART_16450_Read read;
|
||||
UART_16450_Write write;
|
||||
UART_16450_Latch latch;
|
||||
} UART_16450;
|
||||
|
||||
#endif
|
||||
@@ -1,5 +0,0 @@
|
||||
coverhd.h
|
||||
bspopts.h
|
||||
bspopts.h.in
|
||||
stamp-h
|
||||
stamp-h.in
|
||||
@@ -1,84 +0,0 @@
|
||||
/* bsp.h
|
||||
*
|
||||
* This include file contains all board IO definitions.
|
||||
*
|
||||
* XXX : put yours in here
|
||||
*
|
||||
* 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 __ORP_h
|
||||
#define __ORP_h
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <bspopts.h>
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/console.h>
|
||||
#include <rtems/clockdrv.h>
|
||||
|
||||
/*
|
||||
* confdefs.h overrides for this BSP:
|
||||
* - number of termios serial ports (defaults to 1)
|
||||
* - Interrupt stack space is not minimum if defined.
|
||||
*/
|
||||
|
||||
/* #define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 2 */
|
||||
#define CONFIGURE_INTERRUPT_STACK_MEMORY (4 * 1024)
|
||||
|
||||
/*
|
||||
* Simple spin delay in microsecond units for device drivers.
|
||||
* This is very dependent on the clock speed of the target.
|
||||
*/
|
||||
|
||||
#define delay( microseconds ) \
|
||||
{ \
|
||||
}
|
||||
|
||||
/* Constants */
|
||||
|
||||
#define RAM_START 0x10000000
|
||||
#define RAM_END 0x10800000
|
||||
|
||||
/* 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 );
|
||||
|
||||
no_cpu_isr_entry set_vector( /* returns old vector */
|
||||
rtems_isr_entry handler, /* isr routine */
|
||||
rtems_vector_number vector, /* vector number */
|
||||
int type /* RTEMS or RAW intr */
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,32 +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
|
||||
|
||||
/*
|
||||
* Stuff for Time Test 27
|
||||
*/
|
||||
|
||||
#define MUST_WAIT_FOR_INTERRUPT 0
|
||||
|
||||
#define Install_tm27_vector( handler ) set_vector( (handler), 0, 1 )
|
||||
|
||||
#define Cause_tm27_intr() /* empty */
|
||||
|
||||
#define Clear_tm27_intr() /* empty */
|
||||
|
||||
#define Lower_tm27_intr() /* empty */
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,26 +0,0 @@
|
||||
/* bsp_cleanup()
|
||||
*
|
||||
* This routine normally is part of start.s and usually returns
|
||||
* control to a monitor.
|
||||
*
|
||||
* INPUT: NONE
|
||||
*
|
||||
* OUTPUT: NONE
|
||||
*
|
||||
* 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 <rtems.h>
|
||||
#include <bsp.h>
|
||||
|
||||
void bsp_cleanup( void )
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
@@ -1,118 +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.
|
||||
*
|
||||
* This file adapted from no_bsp board library of the RTEMS distribution.
|
||||
* The body has been modified for the Bender Or1k implementation by
|
||||
* Chris Ziomkowski. <chris@asics.ws>
|
||||
*/
|
||||
|
||||
#include <bsp.h>
|
||||
#include <rtems/libio.h>
|
||||
|
||||
#include <rtems/libcsupport.h>
|
||||
|
||||
#include <string.h>
|
||||
extern int _mem_end;
|
||||
|
||||
/*
|
||||
* 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;
|
||||
|
||||
/*
|
||||
* 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)
|
||||
{
|
||||
uint32_t heap_start;
|
||||
|
||||
heap_start = (uint32_t) _mem_end;
|
||||
if (heap_start & (CPU_ALIGNMENT-1))
|
||||
heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1);
|
||||
|
||||
bsp_libc_init((void *) heap_start, 64 * 1024, 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 )
|
||||
{
|
||||
/*
|
||||
* Allocate the memory for the RTEMS Work Space. This can come from
|
||||
* a variety of places: hard coded address, malloc'ed from outside
|
||||
* RTEMS world (e.g. simulator or primitive memory manager), or (as
|
||||
* typically done by stock BSPs) by subtracting the required amount
|
||||
* of work space from the last physical address on the CPU board.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Need to "allocate" the memory for the RTEMS Workspace and
|
||||
* tell the RTEMS configuration where it is. This memory is
|
||||
* not malloc'ed. It is just "pulled from the air".
|
||||
*/
|
||||
|
||||
BSP_Configuration.work_space_start = _mem_end;
|
||||
_mem_end += BSP_Configuration.work_space_size + 512;
|
||||
( BSP_Configuration.work_space_size + 512 );
|
||||
|
||||
BSP_Configuration.work_space_start = (void *) ((unsigned int)((char *)BSP_Configuration.work_space_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1));
|
||||
|
||||
/*
|
||||
* initialize the CPU table for this BSP
|
||||
*/
|
||||
|
||||
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
|
||||
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
||||
Cpu_table.do_zero_of_workspace = FALSE;
|
||||
Cpu_table.interrupt_stack_size = CONFIGURE_INTERRUPT_STACK_MEMORY;
|
||||
|
||||
/*
|
||||
* Start RTEMS
|
||||
*/
|
||||
|
||||
rtems_initialize_executive( &BSP_Configuration, &Cpu_table );
|
||||
|
||||
bsp_cleanup();
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
/*
|
||||
* This file contains directives for the GNU linker which are specific
|
||||
* to the NO_CPU NO_BSP BOARD.
|
||||
*
|
||||
* 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$
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
flash : org = 0x00000000, l = 2M
|
||||
ram : org = 0x10000000, l = 32M
|
||||
}
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.text : AT (0x0) {
|
||||
text_start = . ;
|
||||
_text_start = . ;
|
||||
|
||||
*(.text)
|
||||
. = ALIGN (16);
|
||||
|
||||
/*
|
||||
* Special FreeBSD sysctl sections.
|
||||
*/
|
||||
. = ALIGN (16);
|
||||
__start_set_sysctl_set = .;
|
||||
*(set_sysctl_*);
|
||||
__stop_set_sysctl_set = ABSOLUTE(.);
|
||||
*(set_domain_*);
|
||||
*(set_pseudo_*);
|
||||
|
||||
*(.eh_fram)
|
||||
. = ALIGN (16);
|
||||
|
||||
/*
|
||||
* C++ constructors
|
||||
*/
|
||||
__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__ = .;
|
||||
_etext = ALIGN( 0x10 ) ;
|
||||
. = ALIGN( 0x10) ;
|
||||
} > flash
|
||||
|
||||
.data : AT ( ADDR(.text) + SIZEOF(.text) ) {
|
||||
data_start = . ;
|
||||
_data_start = . ;
|
||||
|
||||
*(.data)
|
||||
|
||||
_edata = ALIGN( 0x10 );
|
||||
. = ALIGN (0x10);
|
||||
} > ram
|
||||
|
||||
.bss : AT ( ADDR(.text) + SIZEOF(.text) + SIZEOF(.data) ) {
|
||||
bss_start = .;
|
||||
_bss_start = .;
|
||||
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
|
||||
end = ALIGN( 0x10 );
|
||||
__end = ALIGN( 0x10 );
|
||||
. = ALIGN (0x10);
|
||||
} > ram
|
||||
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
/* set_vector
|
||||
*
|
||||
* This routine installs an interrupt vector on the target Board/CPU.
|
||||
* This routine is allowed to be as board dependent as necessary.
|
||||
*
|
||||
* INPUT:
|
||||
* handler - interrupt handler entry point
|
||||
* vector - vector number
|
||||
* type - 0 indicates raw hardware connect
|
||||
* 1 indicates RTEMS interrupt connect
|
||||
*
|
||||
* RETURNS:
|
||||
* address of previous interrupt handler
|
||||
*
|
||||
* 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 <rtems.h>
|
||||
#include <bsp.h>
|
||||
|
||||
no_cpu_isr_entry set_vector( /* returns old vector */
|
||||
rtems_isr_entry handler, /* isr routine */
|
||||
rtems_vector_number vector, /* vector number */
|
||||
int type /* RTEMS or RAW intr */
|
||||
)
|
||||
{
|
||||
no_cpu_isr_entry previous_isr;
|
||||
|
||||
if ( type )
|
||||
rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr );
|
||||
else {
|
||||
/* XXX: install non-RTEMS ISR as "raw" interupt */
|
||||
}
|
||||
return previous_isr;
|
||||
}
|
||||
@@ -1,103 +0,0 @@
|
||||
/* timer.c
|
||||
*
|
||||
* This file manages the benchmark timer used by the RTEMS Timing Test
|
||||
* Suite. Each measured time period is demarcated by calls to
|
||||
* Timer_initialize() and Read_timer(). Read_timer() usually returns
|
||||
* the number of microseconds since Timer_initialize() exitted.
|
||||
*
|
||||
* NOTE: It is important that the timer start/stop overhead be
|
||||
* determined when porting or modifying this code.
|
||||
*
|
||||
* 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 <rtems.h>
|
||||
#include <bsp.h>
|
||||
|
||||
uint32_t Timer_interrupts;
|
||||
rtems_boolean Timer_driver_Find_average_overhead;
|
||||
|
||||
void Timer_initialize( void )
|
||||
{
|
||||
|
||||
/*
|
||||
* Timer has never overflowed. This may not be necessary on some
|
||||
* implemenations of timer but ....
|
||||
*/
|
||||
|
||||
Timer_interrupts = 0;
|
||||
|
||||
/*
|
||||
* Somehow start the timer
|
||||
*/
|
||||
}
|
||||
|
||||
/*
|
||||
* The following controls the behavior of Read_timer().
|
||||
*
|
||||
* AVG_OVEREHAD is the overhead for starting and stopping the timer. It
|
||||
* is usually deducted from the number returned.
|
||||
*
|
||||
* LEAST_VALID is the lowest number this routine should trust. Numbers
|
||||
* below this are "noise" and zero is returned.
|
||||
*/
|
||||
|
||||
#define AVG_OVERHEAD 0 /* It typically takes X.X microseconds */
|
||||
/* (Y countdowns) to start/stop the timer. */
|
||||
/* This value is in microseconds. */
|
||||
#define LEAST_VALID 1 /* Don't trust a clicks value lower than this */
|
||||
|
||||
int Read_timer( void )
|
||||
{
|
||||
uint32_t clicks;
|
||||
uint32_t total;
|
||||
|
||||
/*
|
||||
* Read the timer and see how many clicks it has been since we started.
|
||||
*/
|
||||
|
||||
clicks = 0; /* XXX: read some HW here */
|
||||
|
||||
/*
|
||||
* Total is calculated by taking into account the number of timer overflow
|
||||
* interrupts since the timer was initialized and clicks since the last
|
||||
* interrupts.
|
||||
*/
|
||||
|
||||
total = clicks * 0;
|
||||
|
||||
if ( Timer_driver_Find_average_overhead == 1 )
|
||||
return total; /* in XXX microsecond units */
|
||||
else {
|
||||
if ( total < LEAST_VALID )
|
||||
return 0; /* below timer resolution */
|
||||
/*
|
||||
* Somehow convert total into microseconds
|
||||
*/
|
||||
return (total - AVG_OVERHEAD);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Empty function call used in loops to measure basic cost of looping
|
||||
* in Timing Test Suite.
|
||||
*/
|
||||
|
||||
rtems_status_code Empty_function( void )
|
||||
{
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
void Set_find_average_overhead(
|
||||
rtems_boolean find_flag
|
||||
)
|
||||
{
|
||||
Timer_driver_Find_average_overhead = find_flag;
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
/* timerisr.s
|
||||
*
|
||||
* If required this ISR is used to bump a count of interval "overflow"
|
||||
* interrupts which have occurred since the timer was started. The
|
||||
* number of overflows is taken into account in the Read_timer()
|
||||
* routine if necessary.
|
||||
*
|
||||
* To reduce overhead this is best to be the "rawest" hardware interupt
|
||||
* handler you can write. This should be the only interrupt which can
|
||||
* occur during the measured time period.
|
||||
*
|
||||
* NOTE: This file is USUALLY in assembly and is LEAN AND MEAN.
|
||||
* Any code in this isr is pure overhead which can perturb
|
||||
* the accuracy of the Timing Test Suite.
|
||||
*
|
||||
* 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 <rtems.h>
|
||||
|
||||
extern uint32_t _Timer_interrupts;
|
||||
|
||||
void timerisr( void )
|
||||
{
|
||||
/*
|
||||
* _Timer_interrupts += TIMER_BETWEEN_OVERFLOWS (usually in microseconds)
|
||||
* return from interrupt
|
||||
*/
|
||||
}
|
||||
@@ -1,194 +0,0 @@
|
||||
#
|
||||
# Timing Test Suite Results for the NO_BSP
|
||||
#
|
||||
# NOTE: This is just a template. The times are irrelevant since this BSP
|
||||
# can only be compiled -- not executed.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
Board:
|
||||
CPU: include coprocessor if applicable
|
||||
Clock Speed:
|
||||
Memory Configuration: SRAM, DRAM, cache, etc
|
||||
Wait States:
|
||||
|
||||
Times Reported in: cycles, microseconds, etc
|
||||
Timer Source: Count Down Timer, on-CPU cycle counter, etc
|
||||
|
||||
Column X:
|
||||
Column Y:
|
||||
|
||||
# DESCRIPTION A B
|
||||
== ================================================================= ==== ====
|
||||
1 rtems_semaphore_create 20
|
||||
rtems_semaphore_delete 21
|
||||
rtems_semaphore_obtain: available 15
|
||||
rtems_semaphore_obtain: not available -- NO_WAIT 15
|
||||
rtems_semaphore_release: no waiting tasks 16
|
||||
|
||||
2 rtems_semaphore_obtain: not available -- caller blocks 62
|
||||
|
||||
3 rtems_semaphore_release: task readied -- preempts caller 55
|
||||
|
||||
4 rtems_task_restart: blocked task -- preempts caller 77
|
||||
rtems_task_restart: ready task -- preempts caller 70
|
||||
rtems_semaphore_release: task readied -- returns to caller 25
|
||||
rtems_task_create 57
|
||||
rtems_task_start 31
|
||||
rtems_task_restart: suspended task -- returns to caller 36
|
||||
rtems_task_delete: suspended task 47
|
||||
rtems_task_restart: ready task -- returns to caller 37
|
||||
rtems_task_restart: blocked task -- returns to caller 46
|
||||
rtems_task_delete: blocked task 50
|
||||
|
||||
5 rtems_task_suspend: calling task 51
|
||||
rtems_task_resume: task readied -- preempts caller 49
|
||||
|
||||
6 rtems_task_restart: calling task 59
|
||||
rtems_task_suspend: returns to caller 18
|
||||
rtems_task_resume: task readied -- returns to caller 19
|
||||
rtems_task_delete: ready task 50
|
||||
|
||||
7 rtems_task_restart: suspended task -- preempts caller 70
|
||||
|
||||
8 rtems_task_set_priority: obtain current priority 12
|
||||
rtems_task_set_priority: returns to caller 27
|
||||
rtems_task_mode: obtain current mode 5
|
||||
rtems_task_mode: no reschedule 5
|
||||
rtems_task_mode: reschedule -- returns to caller 8
|
||||
rtems_task_mode: reschedule -- preempts caller 39
|
||||
rtems_task_set_note 13
|
||||
rtems_task_get_note 13
|
||||
rtems_clock_set 33
|
||||
rtems_clock_get 3
|
||||
|
||||
9 rtems_message_queue_create 110
|
||||
rtems_message_queue_send: no waiting tasks 37
|
||||
rtems_message_queue_urgent: no waiting tasks 37
|
||||
rtems_message_queue_receive: available 31
|
||||
rtems_message_queue_flush: no messages flushed 12
|
||||
rtems_message_queue_flush: messages flushed 16
|
||||
rtems_message_queue_delete 26
|
||||
|
||||
10 rtems_message_queue_receive: not available -- NO_WAIT 15
|
||||
rtems_message_queue_receive: not available -- caller blocks 62
|
||||
|
||||
11 rtems_message_queue_send: task readied -- preempts caller 72
|
||||
|
||||
12 rtems_message_queue_send: task readied -- returns to caller 39
|
||||
|
||||
13 rtems_message_queue_urgent: task readied -- preempts caller 72
|
||||
|
||||
14 rtems_message_queue_urgent: task readied -- returns to caller 39
|
||||
|
||||
15 rtems_event_receive: obtain current events 1
|
||||
rtems_event_receive: not available -- NO_WAIT 12
|
||||
rtems_event_receive: not available -- caller blocks 56
|
||||
rtems_event_send: no task readied 12
|
||||
rtems_event_receive: available 12
|
||||
rtems_event_send: task readied -- returns to caller 24
|
||||
|
||||
16 rtems_event_send: task readied -- preempts caller 55
|
||||
|
||||
17 rtems_task_set_priority: preempts caller 62
|
||||
|
||||
18 rtems_task_delete: calling task 83
|
||||
|
||||
19 rtems_signal_catch 9
|
||||
rtems_signal_send: returns to caller 15
|
||||
rtems_signal_send: signal to self 18
|
||||
exit ASR overhead: returns to calling task 22
|
||||
exit ASR overhead: returns to preempting task 49
|
||||
|
||||
20 rtems_partition_create 35
|
||||
rtems_region_create 23
|
||||
rtems_partition_get_buffer: available 15
|
||||
rtems_partition_get_buffer: not available 13
|
||||
rtems_partition_return_buffer 18
|
||||
rtems_partition_delete 16
|
||||
rtems_region_get_segment: available 22
|
||||
rtems_region_get_segment: not available -- NO_WAIT 21
|
||||
rtems_region_return_segment: no waiting tasks 19
|
||||
rtems_region_get_segment: not available -- caller blocks 64
|
||||
rtems_region_return_segment: task readied -- preempts caller 74
|
||||
rtems_region_return_segment: task readied -- returns to caller 44
|
||||
rtems_region_delete 16
|
||||
rtems_io_initialize 2
|
||||
rtems_io_open 1
|
||||
rtems_io_close 1
|
||||
rtems_io_read 1
|
||||
rtems_io_write 1
|
||||
rtems_io_control 1
|
||||
|
||||
21 rtems_task_ident 149
|
||||
rtems_message_queue_ident 145
|
||||
rtems_semaphore_ident 156
|
||||
rtems_partition_ident 145
|
||||
rtems_region_ident 148
|
||||
rtems_port_ident 145
|
||||
rtems_timer_ident 145
|
||||
rtems_rate_monotonic_ident 145
|
||||
|
||||
22 rtems_message_queue_broadcast: task readied -- returns to caller 42
|
||||
rtems_message_queue_broadcast: no waiting tasks 17
|
||||
rtems_message_queue_broadcast: task readied -- preempts caller 78
|
||||
|
||||
23 rtems_timer_create 14
|
||||
rtems_timer_fire_after: inactive 22
|
||||
rtems_timer_fire_after: active 24
|
||||
rtems_timer_cancel: active 15
|
||||
rtems_timer_cancel: inactive 13
|
||||
rtems_timer_reset: inactive 21
|
||||
rtems_timer_reset: active 23
|
||||
rtems_timer_fire_when: inactive 34
|
||||
rtems_timer_fire_when: active 34
|
||||
rtems_timer_delete: active 19
|
||||
rtems_timer_delete: inactive 17
|
||||
rtems_task_wake_when 69
|
||||
|
||||
24 rtems_task_wake_after: yield -- returns to caller 9
|
||||
rtems_task_wake_after: yields -- preempts caller 45
|
||||
|
||||
25 rtems_clock_tick 4
|
||||
|
||||
26 _ISR_Disable 0
|
||||
_ISR_Flash 1
|
||||
_ISR_Enable 1
|
||||
_Thread_Disable_dispatch 0
|
||||
_Thread_Enable_dispatch 7
|
||||
_Thread_Set_state 11
|
||||
_Thread_Disptach (NO FP) 31
|
||||
context switch: no floating point contexts 21
|
||||
context switch: self 10
|
||||
context switch: to another task 10
|
||||
context switch: restore 1st FP task 25
|
||||
fp context switch: save idle, restore idle 31
|
||||
fp context switch: save idle, restore initialized 19
|
||||
fp context switch: save initialized, restore initialized 20
|
||||
_Thread_Resume 7
|
||||
_Thread_Unblock 7
|
||||
_Thread_Ready 9
|
||||
_Thread_Get 4
|
||||
_Semaphore_Get 2
|
||||
_Thread_Get: invalid id 0
|
||||
|
||||
27 interrupt entry overhead: returns to interrupted task 6
|
||||
interrupt exit overhead: returns to interrupted task 6
|
||||
interrupt entry overhead: returns to nested interrupt 6
|
||||
interrupt exit overhead: returns to nested interrupt 5
|
||||
interrupt entry overhead: returns to preempting task 7
|
||||
interrupt exit overhead: returns to preempting task 36
|
||||
|
||||
28 rtems_port_create 16
|
||||
rtems_port_external_to_internal 11
|
||||
rtems_port_internal_to_external 11
|
||||
rtems_port_delete 16
|
||||
|
||||
29 rtems_rate_monotonic_create 15
|
||||
rtems_rate_monotonic_period: initiate period -- returns to caller 21
|
||||
rtems_rate_monotonic_period: obtain status 13
|
||||
rtems_rate_monotonic_cancel 16
|
||||
rtems_rate_monotonic_delete: inactive 18
|
||||
rtems_rate_monotonic_delete: active 20
|
||||
rtems_rate_monotonic_period: conclude periods -- caller blocks 53
|
||||
Reference in New Issue
Block a user