Remove (unsupported, no toolchain).

This commit is contained in:
Ralf Corsepius
2010-06-09 05:01:18 +00:00
parent 94735680de
commit f575b19252
31 changed files with 0 additions and 4018 deletions

View File

@@ -1,8 +0,0 @@
aclocal.m4
autom4te*.cache
config.cache
config.log
config.status
configure
Makefile
Makefile.in

View File

@@ -1,125 +0,0 @@
2006-12-02 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: New BUG-REPORT address.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Require autoconf-2.60. Require automake-1.10.
2006-09-11 Chris Johns <chrisj@rtems.org>
* nios2_iss/start/crtnn.s: Remove extra CRLF.
2006-08-10 Joel Sherrill <joel@OARcorp.com>
* .cvsignore: New file.
2006-08-09 Kolja Waschk <waschk@telos.de>
* ChangeLog, Makefile.am, README, acinclude.m4, configure.ac,
nios2_iss/ChangeLog, nios2_iss/Makefile.am, nios2_iss/bsp_specs,
nios2_iss/configure.ac, nios2_iss/nios2_iss.ptf,
nios2_iss/nios2_iss.sh, nios2_iss/times, nios2_iss/console/console.c,
nios2_iss/include/bsp.h, nios2_iss/include/bspopts.h.in,
nios2_iss/include/coverhd.h, nios2_iss/include/tm27.h,
nios2_iss/shmsupp/addrconv.c, nios2_iss/shmsupp/getcfg.c,
nios2_iss/shmsupp/lock.c, nios2_iss/shmsupp/mpisr.c,
nios2_iss/start/crtnn.s, nios2_iss/start/start.S,
nios2_iss/startup/bspclean.c, nios2_iss/startup/bspstart.c,
nios2_iss/startup/linkcmds, nios2_iss/startup/main.c,
nios2_iss/startup/setvec.c, nios2_iss/timer/timer.c: New files.
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-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]).
* Makefile.am: Remove AUTOMAKE_OPTIONS.
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-10-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* acinclude.m4: New file.
* configure.in: Use RTEMS_BSP_SUBDIR.
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-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
Switch to GNU canonicalization.
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog: New file.

View File

@@ -1,11 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../aclocal
# Descend into the @RTEMS_BSP_FAMILY@ directory
SUBDIRS = @RTEMS_BSP_FAMILY@
include $(top_srcdir)/../../../automake/subdirs.am
include $(top_srcdir)/../../../automake/local.am

View File

@@ -1,79 +0,0 @@
#
# $Id$
#
# Goal is to have BSPs build almost completely automatically from a template
# and information that comes from SOPC Builder as a .PTF file. Most of the
# code will go to a shared/ BSP directory.
#
# Ideally, updates to the PTF shouldn't cause any pain for the maintainer
# of a specific BSP (possibly with enhancements not covered by the
# automatic BSP creation).
#
# Some first steps toward utilizing SOPC Builder PTF output can be found
# in top level /tools/cpu/nios2. Also see the README there.
#
# Implemented (in shared/ subdirectory)
# Clock driver
# Timer driver
# Console via JTAG UART
#
# Todo;
# Support more peripherals. My priorities:
# - (improve) Altera Avalon JTAG UART
# - Altera Avalon UART
# - OpenCores.org I2C Master
# - Altera SPI Core / EPCS Configuration Device
# - OpenCores.org 10/100 Ethernet MAC (use existing driver)
# - (more) Altera Avalon Timer
#
# Put all drivers aside in a shared/ subdirectory.
# Update the "times" file for NIOS2 with and without icache.
#
# Missing (although it looks like it's there)
# Data cache handling (for now, don't use the "fast" NIOS2)
# SHM support (just taken over the code from no_cpu/no_bsp)
#
# Kolja Waschk, 6/2006
#
BSP NAME: nios2_eb2_1
BOARD: Altera Instruction Set Simulator Default plus second timer
BUS: Avalon
CPU FAMILY: nios2
CPU: small
COPROCESSORS: none
MODE: 32 bit mode
DEBUG MONITOR: none
PERIPHERALS
===========
TIMERS: Altera Avalon Timer
RESOLUTION: .0001 microseconds
SERIAL PORTS: Altera Avalon JTAG UART
REAL-TIME CLOCK: none
DMA: none
VIDEO: none
SCSI: none
NETWORKING: none
DRIVER INFORMATION
==================
CLOCK DRIVER: Altera Avalon Timer
IOSUPP DRIVER: none
SHMSUPP: polled
TIMER DRIVER: Altera Avalon Timer
TTY DRIVER: none
STDIO
=====
PORT: Console port 0
ELECTRICAL: JTAG
BAUD: 115200
BITS PER CHARACTER: 8
PARITY: None
STOP BITS: 1
NOTES
=====

View File

@@ -1,10 +0,0 @@
# RTEMS_CHECK_BSPDIR(RTEMS_BSP_FAMILY)
AC_DEFUN([RTEMS_CHECK_BSPDIR],
[
case "$1" in
nios2_iss )
AC_CONFIG_SUBDIRS([nios2_iss]);;
*)
AC_MSG_ERROR([Invalid BSP]);;
esac
])

View File

@@ -1,21 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.60)
AC_INIT([rtems-c-src-lib-libbsp-nios2],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla])
AC_CONFIG_SRCDIR([nios2_iss])
RTEMS_TOP(../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define foreign 1.10])
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

View File

@@ -1,8 +0,0 @@
aclocal.m4
autom4te*.cache
config.cache
config.log
config.status
configure
Makefile
Makefile.in

View File

@@ -1,245 +0,0 @@
2009-10-21 Ralf Corsépius <ralf.corsepius@rtems.org>
* make/custom/nios2_iss.cfg: Remove RTEMS_BSP_FAMILY.
2009-10-20 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Don't add -ansi -fasm to CFLAGS.
2009-10-15 Ralf Corsépius <ralf.corsepius@rtems.org>
* make/custom/nios2_iss.cfg: New (relocated from /make/custom).
2009-09-15 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Remove RTEMS_BSP_BOOTCARD_OPTIONS.
2009-07-16 Joel Sherrill <joel.sherrill@oarcorp.com>
* configure.ac: Rename BSP_BOOTCARD_OPTIONS to
RTEMS_BSP_BOOTCARD_OPTIONS. Add RTEMS_BSP_CLEANUP_OPTIONS so all BSPs
have the same options.
2009-04-06 Joel Sherrill <joel.sherrill@oarcorp.com>
* startup/linkcmds: Move stack so it does not overlap workarea.
2009-03-26 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, console/console.c, startup/linkcmds: Now links but
clearly the starting stack overlaps regular memory and needs to be
moved.
2009-03-02 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, console/console.c: Use shared polled console framework.
2009-03-02 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, preinstall.am, include/bsp.h, startup/setvec.c: Now
compiles again but applications do not link.
2008-12-04 Joel Sherrill <joel.sherrill@oarcorp.com>
* bsp_specs: Move -e start from *link to *startfile to avoid warning
for undefined entry symbol when linking relocatables with binutils
2.19.
2008-10-02 Joel Sherrill <joel.sherrill@OARcorp.com>
* Makefile.am, preinstall.am: Use shared tm27.h stub.
* include/tm27.h: Removed.
2008-10-02 Joel Sherrill <joel.sherrill@OARcorp.com>
* Makefile.am, preinstall.am: Use shared stub coverhd.h
* include/coverhd.h: Removed.
2008-09-30 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Eliminate bsp.am. Build startup files as side-effect
of building libbspstart.a, using automake-rules.
2008-09-30 Ralf Corsépius <ralf.corsepius@rtems.org>
* clock/clock.c: include "../../../shared/clockdrv_shell.h".
* Makefile.am: Reflect changes above.
2008-09-29 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Eliminate *_SOURCES.
2008-09-29 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Move noinst_LIBRARIES = libbsp.a before its
components.
2008-09-29 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Remove noinst_PROGRAMS (Unused).
2008-09-24 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Cosmetics.
2008-09-23 Joel Sherrill <joel.sherrill@oarcorp.com>
* configure.ac: Make letting boot_card() handle work area allocation
mandatory. Rename RTEMS_BSP_BOOTCARD_HANDLES_RAM_ALLOCATION to
BSP_BOOTCARD_OPTIONS.
2008-09-23 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, configure.ac: BSP specific bsp_cleanup() is a dupe of a
shared one.
* startup/bspclean.c: Removed.
2008-09-18 Joel Sherrill <joel.sherrill@oarcorp.com>
* include/bsp.h: Remove unnecessary boilerplate comments.
2008-09-16 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, include/bsp.h, startup/linkcmds: Use top level shared
bsp_get_work_area() implementation.
* startup/bspgetworkarea.c: Removed.
2008-09-14 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, startup/bspstart.c: Create bsp_get_work_area() into its
own file and use BSP Framework to perform more initialization.
* startup/bspgetworkarea.c: New file.
2008-09-10 Joel Sherrill <joel.sherrill@oarcorp.com>
* include/bsp.h: Review of all bsp_cleanup() implementations. In this
phase, all prototypes were removed from bsp.h and empty
implementations were removed and made to use the shared stub.
2008-09-05 Ralf Corsépius <ralf.corsepius@rtems.org>
* console/console.c, timer/timer.c: Convert to "bool".
2008-08-31 Joel Sherrill <joel.sherrill@oarcorp.com>
* timer/timer.c: Eliminate empty function from every benchmark timer
driver. Fix spelling.
2008-08-31 Joel Sherrill <joel.sherrill@oarcorp.com>
* timer/timer.c: Rename timer driver methods to follow RTEMS
programming conventions.
2008-05-15 Joel Sherrill <joel.sherrill@OARcorp.com>
* startup/bspstart.c: Add capability for bootcard.c BSP Initialization
Framework to ask the BSP where it has memory for the RTEMS Workspace
and C Program Heap. These collectively are referred to as work area.
If the BSP supports this, then it does not have to include code to
split the available memory between the two areas. This reduces the
amount of code in the BSP specific bspstart.c file. Additionally, the
shared framework can initialize the C Library, call
rtems_debug_enable(), and dirty the work area memory. Until most/all
BSPs support this new capability, if the BSP supports this, it should
call RTEMS_BSP_BOOTCARD_HANDLES_RAM_ALLOCATION from its configure.ac.
When the transition is complete, this autoconf macro can be removed.
2008-05-14 Joel Sherrill <joel.sherrill@OARcorp.com>
* Makefile.am: Rework to avoid .rel files.
2008-05-12 Joel Sherrill <joel.sherrill@OARcorp.com>
* startup/bspstart.c: Refactored and renamed initialization routines to
rtems_initialize_data_structures, rtems_initialize_before_drivers,
rtems_initialize_device_drivers, and
rtems_initialize_start_multitasking. This opened the sequence up so
that bootcard() could provide a more robust and flexible framework
which is easier to explain and understand. This also lays the
groundwork for sharing the division of available memory between the
RTEMS workspace and heap and the C library initialization across all
BSPs.
2008-03-03 Joel Sherrill <joel.sherrill@OARcorp.com>
* startup/linkcmds: Add wildcard to gcc_except_table section so
programs compiled with gcc 4.3.x can link.
2007-12-11 Joel Sherrill <joel.sherrill@OARcorp.com>
* clock/clock.c, include/bsp.h, startup/bspstart.c: Eliminate copies of
the Configuration Table. Use the RTEMS provided accessor macros to
obtain configuration fields.
2007-12-04 Joel Sherrill <joel.sherrill@OARcorp.com>
* console/console.c, include/bsp.h, startup/bspstart.c: Move
interrupt_stack_size field from CPU Table to Configuration Table.
Eliminate CPU Table from all ports. Delete references to CPU Table in
all forms.
2007-12-03 Joel Sherrill <joel.sherrill@OARcorp.com>
* console/console.c, startup/bspstart.c: Moved most of the remaining
CPU Table fields to the Configuration Table. This included
pretasking_hook, predriver_hook, postdriver_hook, idle_task,
do_zero_of_workspace, extra_mpci_receive_server_stack,
stack_allocate_hook, and stack_free_hook. As a side-effect of this
effort some multiprocessing code was made conditional and some style
clean up occurred.
2007-09-12 Joel Sherrill <joel.sherrill@OARcorp.com>
PR 1257/bsps
* startup/bspclean.c: Code outside of cpukit should use the public API
for rtems_interrupt_disable/rtems_interrupt_enable. By bypassing the
public API and directly accessing _CPU_ISR_Disable and
_CPU_ISR_Enable, they were bypassing the compiler memory barrier
directive which could lead to problems. This patch also changes the
type of the variable passed into these routines and addresses minor
style issues.
2007-04-12 Ralf Corsépius <ralf.corsepius@rtems.org>
* bsp_specs: Remove qrtems_debug.
Remove *cpp:.
2007-03-12 Joel Sherrill <joel@OARcorp.com>
* include/coverhd.h: Correct license URL and/or fix mistake in
copyright notice. Both of these mistakes appear to be from code
submitted after these changes were made previously.
2007-01-08 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Use preinstall.am.
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-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-08-10 Joel Sherrill <joel@OARcorp.com>
* .cvsignore: New file.
2006-08-09 Kolja Waschk <waschk@telos.de>
* clock/clock.c: New file.
2005-12-12 Kolja Waschk
* derived from no_cpu BSP

View File

@@ -1,52 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../../aclocal
include $(top_srcdir)/../../../../automake/compile.am
dist_project_lib_DATA = bsp_specs
include_bspdir = $(includedir)/bsp
include_HEADERS = include/bsp.h
include_HEADERS += ../../shared/include/tm27.h
nodist_include_HEADERS = include/bspopts.h
nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
DISTCLEANFILES = include/bspopts.h
include_HEADERS += ../../shared/include/coverhd.h
EXTRA_DIST = times
noinst_LIBRARIES = libbspstart.a
libbspstart_a_SOURCES = start/crtnn.s
libbspstart_a_SOURCES += start/start.S
project_lib_DATA = start.$(OBJEXT) crtnn.$(OBJEXT)
dist_project_lib_DATA += startup/linkcmds
noinst_LIBRARIES += libbsp.a
libbsp_a_SOURCES =
# startup
libbsp_a_SOURCES += ../../shared/bspclean.c ../../shared/bsplibc.c \
../../shared/bspreset_loop.c ../../shared/bsppost.c startup/bspstart.c \
../../shared/bsppretaskinghook.c ../../shared/bspgetworkarea.c \
../../shared/bootcard.c ../../shared/sbrk.c startup/setvec.c \
../../shared/gnatinstallhandler.c ../../shared/bsppredriverhook.c
# clock
libbsp_a_SOURCES += clock/clock.c ../../../shared/clockdrv_shell.h
# console
libbsp_a_SOURCES += console/console.c ../../shared/console-polled.c
# timer
libbsp_a_SOURCES += timer/timer.c
if HAS_MP
# shmsupp
libbsp_a_SOURCES += shmsupp/addrconv.c shmsupp/getcfg.c shmsupp/lock.c \
shmsupp/mpisr.c
endif
include $(srcdir)/preinstall.am
include $(top_srcdir)/../../../../automake/local.am

View File

@@ -1,19 +0,0 @@
%rename lib old_lib
%rename endfile old_endfile
%rename startfile old_startfile
%rename link old_link
*lib:
%{!qrtems: %(old_lib)} \
%{!nostdlib: %{qrtems: --start-group -lrtemsbsp -lrtemscpu -lc -lgcc --end-group \
%{!qnolinkcmds: -T linkcmds%s}}}
*startfile:
%{!qrtems: %(old_startfile)} \
%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e start}}
*link:
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}
*endfile:
%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s crtnn.o%s}

View File

@@ -1,54 +0,0 @@
/*
* Use SYS_CLK as system clock
*
* Copyright (c) 2005-2006 Kolja Waschk, rtemsdev/ixo.de
*
* $Id$
*/
#include <rtems.h>
#include <bsp.h>
#define CLOCK_REGS ((altera_avalon_timer_regs*)NIOS2_IO_BASE(CLOCK_BASE))
/*
* Periodic interval timer interrupt handler
*/
#define Clock_driver_support_at_tick() \
do { CLOCK_REGS->status = 0; } while(0)
/*
* Attach clock interrupt handler
*/
#define Clock_driver_support_install_isr(_new, _old) \
do { _old = (rtems_isr_entry)set_vector(_new, CLOCK_VECTOR, 1); } while(0)
/*
* Turn off the clock
*/
#define Clock_driver_support_shutdown_hardware() \
do { CLOCK_REGS->control = ALTERA_AVALON_TIMER_CONTROL_STOP_MSK; } while(0)
/*
* Set up the clock hardware
*/
void Clock_driver_support_initialize_hardware(void)
{
uint32_t period;
CLOCK_REGS->control = ALTERA_AVALON_TIMER_CONTROL_STOP_MSK;
period = (CLOCK_FREQ/1000000L)*rtems_configuration_get_microseconds_per_tick() - 1;
CLOCK_REGS->period_hi = period >> 16;
CLOCK_REGS->period_lo = period & 0xFFFF;
CLOCK_REGS->control = ALTERA_AVALON_TIMER_CONTROL_ITO_MSK |
ALTERA_AVALON_TIMER_CONTROL_CONT_MSK |
ALTERA_AVALON_TIMER_CONTROL_START_MSK;
NIOS2_IENABLE(1 << CLOCK_VECTOR);
}
#include "../../../shared/clockdrv_shell.h"

View File

@@ -1,22 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.60)
AC_INIT([rtems-c-src-lib-libbsp-nios2-nios2_iss],[_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
RTEMS_CANONICALIZE_TOOLS
RTEMS_PROG_CCAS
RTEMS_BSP_CLEANUP_OPTIONS(0, 1)
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

View File

@@ -1,122 +0,0 @@
/*
* This file implements simple console IO via JTAG UART.
*
* Based on no_cpu/console.c
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* Altera-specific code is
* COPYRIGHT (c) 2005-2006 Kolja Waschk, rtemsdev/ixo.de
*
* 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$
*/
#define NO_BSP_INIT
#include <bsp.h>
#include <rtems/libio.h>
/* #define JTAG_UART_REGS ((altera_avalon_jtag_uart_regs*)NIOS2_IO_BASE(JTAG_UART_BASE)) */
/* is_character_ready
*
* If a character is available, this routine reads it and stores
* it in
* reads the character and stores
*
* Input parameters: NONE
*
* Output parameters: NONE
*
* Return values:
*/
bool is_character_ready(
char *ch
)
{
altera_avalon_jtag_uart_regs *ajur = NIOS2_IO_BASE(JTAG_UART_BASE);
unsigned int data = ajur->data;
if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK)
{
*ch = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK)
>> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST;
return true;
};
return false;
}
void console_initialize_hardware(void)
{
}
/*
* This routine reads a character from the SOURCE.
*
* Input parameters: NONE
*
* Output parameters: NONE
*
* Return values:
* character read from SOURCE
*/
int console_inbyte_nonblocking(
int port
)
{
char ch;
/*
* Wait until a character is available.
*/
if (is_character_ready(&ch))
return ch;
return -1;
}
/*
* This routine transmits a character out the SOURCE. It may support
* XON/XOFF flow control.
*
* Input parameters:
* ch - character to be transmitted
*
* Output parameters: NONE
*/
void console_outbyte_polled(
int port,
char ch
)
{
altera_avalon_jtag_uart_regs *ajur = NIOS2_IO_BASE(JTAG_UART_BASE);
/*
* Wait for the transmitter to be ready.
* Check for flow control requests and process.
* Then output the character.
*/
while ((ajur->control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) == 0);
ajur->data = ch;
}
/*
* * To support printk
* */
#include <rtems/bspIo.h>
ISS_output_char(char c) { console_outbyte_polled( 0, c ); }
BSP_output_char_function_type BSP_output_char = ISS_output_char;
BSP_polling_getchar_function_type BSP_poll_char = NULL;

View File

@@ -1,4 +0,0 @@
stamp-h
stamp-h.in
bspopts.h
bspopts.h.in

View File

@@ -1,143 +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 _BSP_H
#define _BSP_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <bspopts.h>
#include <rtems.h>
#include <rtems/console.h>
#include <rtems/clockdrv.h>
/*
* Simple spin delay in microsecond units for device drivers.
* This is very dependent on the clock speed of the target.
*/
#define rtems_bsp_delay( microseconds ) \
{ \
}
/* ============================================ */
/* SOPC-specific Constants */
#define SYSTEM_BUS_WIDTH 32
#define JTAG_UART_BASE 0x08000000
#define JTAG_UART_IRQ 2
#define CLOCK_BASE 0x08001000
#define CLOCK_FREQ 50000000
#define CLOCK_VECTOR 1
#define TIMER_BASE 0x08002000
#define TIMER_FREQ 50000000
#define TIMER_VECTOR 3
/* ============================================ */
#define NIOS2_BYPASS_CACHE ((uint32_t)0x80000000ul)
#define NIOS2_IO_BASE(x) ( (void*) ((uint32_t)x | NIOS2_BYPASS_CACHE ) )
#define NIOS2_IENABLE(x) do{ __builtin_wrctl(3,__builtin_rdctl(3)|x);}while(0)
#define NIOS2_IRQ_ENABLE(x) do {__builtin_wrctl(3,__builtin_rdctl(3)|x);} while(0)
/* ============================================ */
/* TODO: Put this in an external header file */
#ifndef SYSTEM_BUS_WIDTH
#error SYSTEM_BUS_WIDTH is undefined
#endif
#if SYSTEM_BUS_WIDTH != 32
#error Only SYSTEM_BUS_WIDTH 32 is supported
#endif
typedef struct
{
volatile uint32_t status;
volatile uint32_t control;
volatile uint32_t period_lo;
volatile uint32_t period_hi;
volatile uint32_t snap_lo;
volatile uint32_t snap_hi;
}
altera_avalon_timer_regs;
#define ALTERA_AVALON_TIMER_STATUS_TO_MSK (0x1)
#define ALTERA_AVALON_TIMER_STATUS_TO_OFST (0)
#define ALTERA_AVALON_TIMER_STATUS_RUN_MSK (0x2)
#define ALTERA_AVALON_TIMER_STATUS_RUN_OFST (1)
#define ALTERA_AVALON_TIMER_CONTROL_ITO_MSK (0x1)
#define ALTERA_AVALON_TIMER_CONTROL_ITO_OFST (0)
#define ALTERA_AVALON_TIMER_CONTROL_CONT_MSK (0x2)
#define ALTERA_AVALON_TIMER_CONTROL_CONT_OFST (1)
#define ALTERA_AVALON_TIMER_CONTROL_START_MSK (0x4)
#define ALTERA_AVALON_TIMER_CONTROL_START_OFST (2)
#define ALTERA_AVALON_TIMER_CONTROL_STOP_MSK (0x8)
#define ALTERA_AVALON_TIMER_CONTROL_STOP_OFST (3)
typedef struct
{
volatile uint32_t data;
volatile uint32_t control;
}
altera_avalon_jtag_uart_regs;
#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FFu)
#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0)
#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000u)
#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15)
#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000u)
#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16)
#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001u)
#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0)
#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002u)
#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1)
#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100u)
#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8)
#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200u)
#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9)
#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400u)
#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10)
#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000u)
#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16)
/* ============================================ */
/* functions */
rtems_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 */

View File

@@ -1,27 +0,0 @@
#
# Config file for the NIOS2_EB2_1 BSP
#
# Choices for CPU_MODEL:
# tiny (no cache)
# standard (instruction cache)
# fast (instruction and data cache)
RTEMS_CPU = nios2
RTEMS_CPU_MODEL = economy
include $(RTEMS_ROOT)/make/custom/default.cfg
# This contains the compiler options necessary to select the CPU model
# and (hopefully) optimize for it.
CPU_CFLAGS = -mno-hw-mul -mno-hw-div
# optimize flag: typically -O2
# ATM, doesn't work with optimization levels > 0
CFLAGS_OPTIMIZE_V = -O0 -g
define bsp-post-link
$(OBJCOPY) -O binary --strip-all $(basename $@).exe \
-R entry -R exceptions $(basename $@)$(DOWNEXT)
$(default-bsp-post-link)
endef

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +0,0 @@
#!/bin/sh
IOD=jtag_uart_0
PTF=nios2_iss.ptf
EXE="$1"
# e.g. hello.nxe
nios2-iss -c --stdin=${IOD} --stdout=${IOD} --stderr=${IOD} -f "${EXE}" -p "${PTF}"

View File

@@ -1,71 +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/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)/bsp
@: > $(PROJECT_INCLUDE)/bsp/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(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: ../../shared/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)/bsp/bootcard.h: ../../shared/include/bootcard.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/bootcard.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/bootcard.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)/crtnn.$(OBJEXT): crtnn.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/crtnn.$(OBJEXT)
TMPINSTALL_FILES += $(PROJECT_LIB)/crtnn.$(OBJEXT)
$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds

View File

@@ -1,30 +0,0 @@
/* Shm_Convert_address
*
* No address range conversion is required.
*
* Input parameters:
* address - address to convert
*
* Output parameters:
* returns - converted address
*
* 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>
#include <shm_driver.h>
void *Shm_Convert_address(
void *address
)
{
return ( address );
}

View File

@@ -1,75 +0,0 @@
/* void Shm_Get_configuration( localnode, &shmcfg )
*
* This routine initializes, if necessary, and returns a pointer
* to the Shared Memory Configuration Table for the XXX target.
*
* INPUT PARAMETERS:
* localnode - local node number
* shmcfg - address of pointer to SHM Config Table
*
* OUTPUT PARAMETERS:
* *shmcfg - pointer to SHM Config Table
*
XXX: FIX THE COMMENTS BELOW WHEN THE CPU IS KNOWN
* NOTES: The XYZ does not have an interprocessor interrupt.
*
* The following table illustrates the configuration limitations:
*
* BUS MAX
* MODE ENDIAN NODES
* ========= ====== =======
* POLLED BIG 2+
* INTERRUPT **** NOT SUPPORTED ****
*
* 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>
#include <shm_driver.h>
/*
* configured if currently polling of interrupt driven
*/
#define INTERRUPT 0 /* XXX: */
#define POLLING 1 /* XXX: fix me -- is polling ONLY!!! */
shm_config_table BSP_shm_cfgtbl;
void Shm_Get_configuration(
uint32_t localnode,
shm_config_table **shmcfg
)
{
BSP_shm_cfgtbl.base = 0x0;
BSP_shm_cfgtbl.length = 1 * MEGABYTE;
BSP_shm_cfgtbl.format = SHM_BIG;
/*
* Override cause_intr or shm_isr if your target has
* special requirements.
*/
BSP_shm_cfgtbl.cause_intr = Shm_Cause_interrupt;
#ifdef NEUTRAL_BIG
BSP_shm_cfgtbl.convert = NULL_CONVERT;
#else
BSP_shm_cfgtbl.convert = CPU_swap_u32;
#endif
BSP_shm_cfgtbl.poll_intr = POLLED_MODE;
BSP_shm_cfgtbl.Intr.address = NO_INTERRUPT;
BSP_shm_cfgtbl.Intr.value = NO_INTERRUPT;
BSP_shm_cfgtbl.Intr.length = NO_INTERRUPT;
*shmcfg = &BSP_shm_cfgtbl;
}

View File

@@ -1,84 +0,0 @@
/* Shared Memory Lock Routines
*
* This shared memory locked queue support routine need to be
* able to lock the specified locked queue. Interrupts are
* disabled while the queue is locked to prevent preemption
* and deadlock when two tasks poll for the same lock.
* previous level.
*
* 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>
#include <shm_driver.h>
/*
* Shm_Initialize_lock
*
* Initialize the lock for the specified locked queue.
*/
void Shm_Initialize_lock(
Shm_Locked_queue_Control *lq_cb
)
{
lq_cb->lock = LQ_UNLOCKED;
}
/* void _Shm_Lock( &lq_cb )
*
* This shared memory locked queue support routine locks the
* specified locked queue. It disables interrupts to prevent
* a deadlock condition.
*/
void Shm_Lock(
Shm_Locked_queue_Control *lq_cb
)
{
uint32_t isr_level;
uint32_t *lockptr = (uint32_t*) &lq_cb->lock;
uint32_t lock_value;
lock_value = 0x80000000;
rtems_interrupt_disable( isr_level );
Shm_isrstat = isr_level;
while ( lock_value ) {
asm volatile( ""
: "=r" (lockptr), "=r" (lock_value)
: "0" (lockptr), "1" (lock_value)
);
/*
* If not available, then may want to delay to reduce load on lock.
*/
if ( lock_value )
rtems_bsp_delay( 10 ); /* approximately 10 microseconds */
}
}
/*
* Shm_Unlock
*
* Unlock the lock for the specified locked queue.
*/
void Shm_Unlock(
Shm_Locked_queue_Control *lq_cb
)
{
uint32_t isr_level;
lq_cb->lock = SHM_UNLOCK_VALUE;
isr_level = Shm_isrstat;
rtems_interrupt_enable( isr_level );
}

View File

@@ -1,46 +0,0 @@
/* Shm_isr_nobsp()
*
* 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>
#include <shm_driver.h>
rtems_isr Shm_isr_nobsp( void )
{
/*
* If this routine has to do anything other than the mpisr.c
* found in the generic driver, then copy the contents of the generic
* mpisr.c and augment it to satisfy this particular board. Typically,
* you need to have a board specific mpisr.c when the interrupt
* must be cleared.
*
* If the generic mpisr.c satisifies your requirements, then
* remove this routine from your target's shmsupp/mpisb.c file.
* Then simply install the generic Shm_isr in the Shm_setvec
* routine below.
*/
}
/* Shm_setvec
*
* This driver routine sets the SHM interrupt vector to point to the
* driver's SHM interrupt service routine.
*
* Input parameters: NONE
*
* Output parameters: NONE
*/
void Shm_setvec( void )
{
/* XXX: FIX ME!!! */
}

View File

@@ -1,45 +0,0 @@
/* NIOS2 crtn.asm fix
*
* COPYRIGHT (c) 2005-2006 Kolja Waschk rtemsdev/ixo.de
*
* 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$
*/
/* Can't use the original crtn.asm from Altera because it doesn't
restore the stack pointer correctly (in 5.1b73, the stack pointer
is further decreased by 48 instead of increased). This is named
differently (crtnn instead crtn) to make sure it can be picked up
using custom gcc specs instead of gcc's crtn. - kawk */
.section .init
ldw ra, 44(sp)
ldw r23, 40(sp)
ldw r22, 36(sp)
ldw r21, 32(sp)
ldw r20, 28(sp)
ldw r19, 24(sp)
ldw r18, 20(sp)
ldw r17, 16(sp)
ldw r16, 12(sp)
ldw fp, 8(sp)
addi sp, sp, 48
ret
.section .fini
ldw ra, 44(sp)
ldw r23, 40(sp)
ldw r22, 36(sp)
ldw r21, 32(sp)
ldw r20, 28(sp)
ldw r19, 24(sp)
ldw r18, 20(sp)
ldw r17, 16(sp)
ldw r16, 12(sp)
ldw fp, 8(sp)
addi sp, sp, 48
ret

View File

@@ -1,124 +0,0 @@
/* NIOS2 startup code
*
* This is the entry point on reset and when loading the
* executive from a bootloader.
*
* COPYRIGHT (c) 2005-2006 Kolja Waschk rtemsdev/ixo.de
*
* 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$
*/
.section .entry
.align 3
movhi et, %hiadj(start)
addi et, et, %lo(start)
jmp et
.section .irq
.align 3
movhi et, %hiadj(_exception_vector)
addi et, et, %lo(_exception_vector)
jmp et
.section .text
.align 3
.globl start
.type start,@function
.extern _exception_vector
start:
#------------------------------------------------------
# disable interrupts
wrctl status, zero
wrctl ienable, zero
#------------------------------------------------------
# invalidate instruction cache
mov r2, r0
movhi r3, %hi(__nios2_icache_size)
ori r3, r3, %lo(__nios2_icache_size)
icache_init_loop:
initi r2
addi r2, r2, __nios2_icache_line_size
bltu r2, r3, icache_init_loop
#------------------------------------------------------
# invalidate data cache
mov r2, r0
movhi r3, %hi(__nios2_dcache_size)
ori r3, r3, %lo(__nios2_dcache_size)
dcache_init_loop:
initd 0(r2)
addi r2, r2, __nios2_dcache_line_size
bltu r2, r3, dcache_init_loop
#------------------------------------------------------
# initialize stack pointer
movhi sp, %hiadj(__alt_stack_pointer - 4)
addi sp, sp, %lo(__alt_stack_pointer - 4)
# initialize global pointer
movhi gp, %hiadj(_gp)
addi gp, gp, %lo(_gp)
# initialize exception tmp register
movhi et, %hiadj(_end)
addi et, et, %lo(_end)
#------------------------------------------------------
# TODO: copy data from flash to RAM, if not there already
# For now its save to assume it is there already when we're
# loading code though JTAG into RAM-only system
# at least copy exception code to right place
movhi r2, %hiadj(__ram_exceptions_start)
addi r2, r2, %lo(__ram_exceptions_start)
movhi r3, %hiadj(brto_ev)
addi r3, r3, %lo(brto_ev)
ldw r4, 0(r3)
stw r4, 0(r2)
ldw r4, 4(r3)
stw r4, 4(r2)
ldw r4, 8(r3)
stw r4, 8(r2)
ldw r4, 12(r3)
stw r4, 12(r2)
#------------------------------------------------------
# clear bss
movhi r2, %hiadj(__bss_start)
addi r2, r2, %lo(__bss_start)
movhi r3, %hiadj(__bss_end)
addi r3, r3, %lo(__bss_end)
beq r2, r3, 1f
0:
stw zero, (r2)
addi r2, r2, 4
bltu r2, r3, 0b
1:
#------------------------------------------------------
# jump to (shared) boot_card (never comes back)
mov r4, zero
mov r5, zero
mov r6, zero
call boot_card
# but just in case it does come back, stick here.
_stuck_in_start:
br _stuck_in_start
#------------------------------------------------------
# code to be placed at exception address
brto_ev:
movhi et, %hiadj(_exception_vector)
addi et, et, %lo(_exception_vector)
jmp et

View File

@@ -1,31 +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) 2005-2006 Kolja Waschk rtemsdev/ixo.de
* Derived from no_cpu/no_bsp/startup/bspstart.c 1.23.
* 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>
/*
* bsp_start
*
* This routine does the bulk of the system initialization.
*/
void bsp_start( void )
{
}

View File

@@ -1,340 +0,0 @@
/* generated.x
*
* Machine generated for a CPU named "cpu_0" as defined in:
* D:\eb2_nios2\kawkos.ptf
*
* Generated: 2005-07-10 11:52:46.899
*
*/
/*
DO NOT MODIFY THIS FILE
Changing this file will have subtle consequences
which will almost certainly lead to a nonfunctioning
system. If you do modify this file, be aware that your
changes will be overwritten and lost when this file
is generated again.
DO NOT MODIFY THIS FILE
*/
RamBase = DEFINED(RamBase) ? RamBase : 0x00000000;
RamSize = DEFINED(RamSize) ? RamSize : 0x00800000;
HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
StackSize = DEFINED(StackSize) ? HeapSize : 1024;
MEMORY
{
reset : ORIGIN = 0x00000000, LENGTH = 0x00000600
exceptions : ORIGIN = 0x00000600, LENGTH = 0x00000A00
onchip_memory_0 : ORIGIN = 0x00001000, LENGTH = 0x007FF000
}
/* Define symbols for each memory base-address */
__alt_mem_onchip_memory_0 = 0x00000000 ;
__nios2_icache_size = 4096 ;
__nios2_icache_line_size = 32 ;
__nios2_dcache_size = 0 ;
__nios2_dcache_line_size = 4 ;
OUTPUT_FORMAT( "elf32-littlenios2",
"elf32-littlenios2",
"elf32-littlenios2" )
OUTPUT_ARCH( nios2 )
ENTRY( _start )
/* Do we need any of these for elf?
__DYNAMIC = 0;
*/
SECTIONS
{
.entry :
{
KEEP (*(.entry))
} > reset
.exceptions :
{
PROVIDE (__ram_exceptions_start = ABSOLUTE(.));
. = ALIGN(0x20);
*(.irq)
KEEP (*(.exceptions.entry.label));
KEEP (*(.exceptions.entry.user));
KEEP (*(.exceptions.entry));
KEEP (*(.exceptions.irqtest.user));
KEEP (*(.exceptions.irqtest));
KEEP (*(.exceptions.irqhandler.user));
KEEP (*(.exceptions.irqhandler));
KEEP (*(.exceptions.irqreturn.user));
KEEP (*(.exceptions.irqreturn));
KEEP (*(.exceptions.notirq.label));
KEEP (*(.exceptions.notirq.user));
KEEP (*(.exceptions.notirq));
KEEP (*(.exceptions.soft.user));
KEEP (*(.exceptions.soft));
KEEP (*(.exceptions.unknown.user));
KEEP (*(.exceptions.unknown));
KEEP (*(.exceptions.exit.label));
KEEP (*(.exceptions.exit.user));
KEEP (*(.exceptions.exit));
KEEP (*(.exceptions));
PROVIDE (__ram_exceptions_end = ABSOLUTE(.));
} > exceptions
PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions));
.text :
{
/*
* All code sections are merged into the text output section, along with
* the read only data sections.
*
*/
PROVIDE (stext = ABSOLUTE(.));
*(.interp)
*(.hash)
*(.dynsym)
*(.dynstr)
*(.gnu.version)
*(.gnu.version_d)
*(.gnu.version_r)
*(.rel.init)
*(.rela.init)
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
*(.rel.fini)
*(.rela.fini)
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
*(.rel.ctors)
*(.rela.ctors)
*(.rel.dtors)
*(.rela.dtors)
*(.rel.got)
*(.rela.got)
*(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
*(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
*(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
*(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
*(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
*(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
*(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
*(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
*(.rel.plt)
*(.rela.plt)
KEEP (*(.init))
*(.plt)
*(.text .stub .text.* .gnu.linkonce.t.*)
/* Special FreeBSD sysctl sections. */
. = ALIGN (16);
__start_set_sysctl_set = .;
*(set_sysctl_*);
__stop_set_sysctl_set = ABSOLUTE(.);
*(set_domain_*);
*(set_pseudo_*);
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning.*)
KEEP (*(.fini))
PROVIDE (__etext = ABSOLUTE(.));
PROVIDE (_etext = ABSOLUTE(.));
PROVIDE (etext = ABSOLUTE(.));
*(.eh_frame_hdr)
/* Ensure the __preinit_array_start label is properly aligned. We
could instead move the label definition inside the section, but
the linker would then create the section even if it turns out to
be empty, which isn't pretty. */
. = ALIGN(32 / 8);
PROVIDE (__preinit_array_start = ABSOLUTE(.));
*(.preinit_array)
PROVIDE (__preinit_array_end = ABSOLUTE(.));
PROVIDE (__init_array_start = ABSOLUTE(.));
*(.init_array)
PROVIDE (__init_array_end = ABSOLUTE(.));
PROVIDE (__fini_array_start = ABSOLUTE(.));
*(.fini_array)
PROVIDE (__fini_array_end = ABSOLUTE(.));
SORT(CONSTRUCTORS)
KEEP (*(.eh_frame))
*(.gcc_except_table*)
*(.dynamic)
PROVIDE (__CTOR_LIST__ = ABSOLUTE(.));
KEEP (*(.ctors))
KEEP (*(SORT(.ctors.*)))
PROVIDE (__CTOR_END__ = ABSOLUTE(.));
PROVIDE (__DTOR_LIST__ = ABSOLUTE(.));
KEEP (*(.dtors))
KEEP (*(SORT(.dtors.*)))
PROVIDE (__DTOR_END__ = ABSOLUTE(.));
KEEP (*(.jcr))
. = ALIGN(32 / 8);
} > onchip_memory_0 = 0x3a880100 /* NOP on Nios2 (big endian) */
.rodata :
{
PROVIDE (__ram_rodata_start = ABSOLUTE(.));
. = ALIGN(32 / 8);
*(.rodata .rodata.* .gnu.linkonce.r.*)
*(.rodata1)
. = ALIGN(32 / 8);
PROVIDE (__ram_rodata_end = ABSOLUTE(.));
} > onchip_memory_0
PROVIDE (__flash_rodata_start = LOADADDR(.rodata));
.rwdata :
{
PROVIDE (__ram_rwdata_start = ABSOLUTE(.));
. = ALIGN(32 / 8);
*(.got.plt) *(.got)
*(.data1)
*(.data .data.* .gnu.linkonce.d.*)
_gp = ABSOLUTE(. + 0x8000);
PROVIDE(gp = _gp);
*(.sdata .sdata.* .gnu.linkonce.s.*)
*(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
. = ALIGN(32 / 8);
_edata = ABSOLUTE(.);
PROVIDE (edata = ABSOLUTE(.));
PROVIDE (__ram_rwdata_end = ABSOLUTE(.));
} > onchip_memory_0
PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata));
.bss :
{
__bss_start = ABSOLUTE(.);
PROVIDE (__sbss_start = ABSOLUTE(.));
PROVIDE (___sbss_start = ABSOLUTE(.));
*(.dynsbss)
*(.sbss .sbss.* .gnu.linkonce.sb.*)
*(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
*(.scommon)
PROVIDE (__sbss_end = ABSOLUTE(.));
PROVIDE (___sbss_end = ABSOLUTE(.));
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
*(COMMON)
. = ALIGN(32 / 8);
__bss_end = ABSOLUTE(.);
_stack_low = ABSOLUTE(.);
. += StackSize;
_stack_high = ABSOLUTE(.);
WorkAreaBase = .;
} > onchip_memory_0
/*
* One output section for each of the available partitions. These are not
* used by default, but can be used by users applications using the .section
* directive.
*
* The memory partition used for the heap is treated in special way, i.e. a
* symbol is added to point to the heap start.
*
* Note that when running from flash, these sections are not loaded by the
* HAL.
*
*/
.onchip_memory_0 :
{
PROVIDE (_alt_partition_onchip_memory_0_start = ABSOLUTE(.));
*(.onchip_memory_0 .onchip_memory_0.*)
. = ALIGN(32 / 8);
PROVIDE (_alt_partition_onchip_memory_0_end = ABSOLUTE(.));
_end = ABSOLUTE(.);
end = ABSOLUTE(.);
} > onchip_memory_0
PROVIDE (_alt_partition_onchip_memory_0_load_addr = LOADADDR(.onchip_memory_0));
/*
* Stabs debugging sections.
*
*/
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* 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 .gnu.linkonce.wi.*) }
.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) }
/* Altera debug extensions */
.debug_alt_sim_info 0 : { *(.debug_alt_sim_info) }
}
/* provide a pointer for the stack */
/*
* Don't override this, override the __alt_stack_* symbols instead.
*/
__alt_data_end = 0x00800000;
/*
* The next two symbols define the location of the default stack. You can
* override them to move the stack to a different memory.
*/
PROVIDE( __alt_stack_pointer = _stack_high );
PROVIDE( __alt_stack_limit = _stack_low );
/*
* This symbol controls where the start of the heap is. If the stack is
* contiguous with the heap then the stack will contract as memory is
* allocated to the heap.
* Override this symbol to put the heap in a different memory.
*/
PROVIDE( __alt_heap_start = end );

View File

@@ -1,39 +0,0 @@
/* main()
*
* This is the entry point for the application. It calls
* the bsp_start routine to the actual dirty work.
*
* COPYRIGHT (c) 2005-2006 Kolja Waschk rtemsdev/ixo.de
* Derived from no_cpu/no_bsp/startup/main.c 1.9,
* 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>
int main(
int argc,
char **argv,
char **environp
)
{
extern void bsp_start( int, char**, char ** );
bsp_start( argc, argv, environp );
/*
* May be able to return to the "crt/start.s" code but also
* may not be able to. Do something here which is board dependent.
*/
rtems_fatal_error_occurred( 0 );
return 0; /* just to satisfy the native compiler */
}

View File

@@ -1,44 +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) 2005-2006 Kolja Waschk rtemsdev/ixo.de
* Derived from no_cpu/no_bsp/startup/setvec.c 1.8,
* 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>
rtems_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 */
)
{
rtems_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;
}

View File

@@ -1,139 +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
* benchmark_timer_initialize() and benchmark_timer_read(). benchmark_timer_read() usually returns
* the number of microseconds since benchmark_timer_initialize() exitted.
*
* NOTE: It is important that the timer start/stop overhead be
* determined when porting or modifying this code.
*
* COPYRIGHT (c) 2005-2006 Kolja Waschk rtemsdev/ixo.de
* Derived from no_cpu/no_bsp/timer/timer.c 1.9,
* 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$
*/
#define TIMER_WRAPS_AFTER_1MS 0
#include <rtems.h>
#include <rtems/score/cpu.h>
#include <bsp.h>
volatile uint32_t Timer_interrupts;
bool benchmark_timer_find_average_overhead;
#define TIMER_REGS ((altera_avalon_timer_regs*)NIOS2_IO_BASE(TIMER_BASE))
void timerisr( void )
{
TIMER_REGS->status = 0;
Timer_interrupts++;
}
void benchmark_timer_initialize( void )
{
uint32_t old_ie;
/* Disable timer interrupt, stop timer */
TIMER_REGS->control = ALTERA_AVALON_TIMER_CONTROL_STOP_MSK;
set_vector((nios2_isr_entry *)timerisr, TIMER_VECTOR, 1);
/* Enable interrupt processing */
NIOS2_IENABLE(1 << TIMER_VECTOR);
#if TIMER_WRAPS_AFTER_1MS
/* Writing to periodl/h resets the counter and eventually
stops it. If the timer hasn't been configured with fixed
period, set it to 1 ms now */
TIMER_REGS->period_hi = (TIMER_FREQ/1000)>>16;
TIMER_REGS->period_lo = (TIMER_FREQ/1000)&0xFFFF;
#else
/* Writing to periodl/h resets the counter and eventually
stops it. Set max period */
TIMER_REGS->period_hi = 0xFFFF;
TIMER_REGS->period_lo = 0xFFFF;
#endif
/* For timers that can be stopped, writing to periodl/h
also stopped the timer and we have to manually start it. */
TIMER_REGS->control = ALTERA_AVALON_TIMER_CONTROL_ITO_MSK |
ALTERA_AVALON_TIMER_CONTROL_CONT_MSK |
ALTERA_AVALON_TIMER_CONTROL_START_MSK;
/* This is the most safe place for resetting the overflow
counter - just _after_ we reset the timer. Depending
on the SOPC configuration, the counter may not be
stoppable and it doesn't make sense to assume that
there is any "safe" period before resetting. */
Timer_interrupts = 0;
}
/*
* The following controls the behavior of benchmark_timer_read().
*
* 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 2 /* It typically takes 2 microseconds */
/* to start/stop the timer. */
#define LEAST_VALID AVG_OVERHEAD /* Don't trust a value lower than this */
int benchmark_timer_read( void )
{
uint32_t timer_wraps;
uint32_t timer_snap;
uint32_t timer_ticks;
uint32_t total;
uint32_t old_ie;
/* Hold timer */
TIMER_REGS->control = ALTERA_AVALON_TIMER_CONTROL_STOP_MSK;
/* Write to request snapshot of timer value */
TIMER_REGS->snap_lo = 0;
/* Get snapshot */
timer_snap = ((TIMER_REGS->snap_hi)<<16) | TIMER_REGS->snap_lo;
timer_wraps = Timer_interrupts;
/* Restart timer */
TIMER_REGS->control = ALTERA_AVALON_TIMER_CONTROL_START_MSK;
#if TIMER_WRAPS_AFTER_1MS
timer_ticks = (TIMER_FREQ / 1000) - 1 - timer_snap;
total = timer_wraps * 1000;
#else
timer_ticks = 0xFFFFFFFF - timer_snap;
total = timer_wraps * 0x80000000 / (TIMER_FREQ / 2000000L);
#endif
total += timer_ticks / (TIMER_FREQ / 1000000L);
if(total < LEAST_VALID) return 0;
if(benchmark_timer_find_average_overhead != TRUE) total-= AVG_OVERHEAD;
return total;
}
void benchmark_timer_disable_subtracting_average_overhead(bool find_flag)
{
benchmark_timer_find_average_overhead = find_flag;
}

View File

@@ -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