forked from Imagelibrary/rtems
baa6f32c93a73998ab934441915af91af3078dff
* shared/cache/cache.c (m68030): fix prototype mismatch of _CPU_cache_flush_entire_data. 2003-09-04 Joel Sherrill <joel@OARcorp.com> * shared/misc/m68kidle.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/. * m68040/Makefile.am: Reflect having moved automake/. * m68040/fpsp/Makefile.am: Reflect having moved automake/. * shared/Makefile.am: Reflect having moved automake/. * shared/cache/Makefile.am: Reflect having moved automake/. * shared/misc/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-01-15 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * m68040/fpsp/Makefile.am: Don't include @RTEMS_BSP@.cfg. Eliminate *_O_FILES. * shared/cache/Makefile.am: Ditto. * shared/misc/Makefile.am: Ditto. 2002-12-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * configure.ac: Remove RTEMS_CHECK_BSP_CACHE. 2002-12-01 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * configure.ac: Add RTEMS_PROG_CCAS. 2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * .cvsignore: Reformat. Add autom4te*cache. Remove autom4te.cache. 2002-08-21 Joel Sherrill <joel@OARcorp.com> * configure.ac, shared/misc/Makefile.am: PR217 required that the idle task be moved to libcpu so it could be more acutely aware of the CPU model. This file was modified to pick up the idle task from there. * shared/misc/m68kidle.c: New file. 2002-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * m68040/fpsp/Makefile.am: Use .$(OBJEXT) instead of .o. * mcf5206/clock/Makefile.am: Use .$(OBJEXT) instead of .o. * mcf5206/console/Makefile.am: Use .$(OBJEXT) instead of .o. * mcf5206/mbus/Makefile.am: Use .$(OBJEXT) instead of .o. * mcf5206/timer/Makefile.am: Use .$(OBJEXT) instead of .o. * shared/cache/Makefile.am: Use .$(OBJEXT) instead of .o. * shared/misc/Makefile.am: Use .$(OBJEXT) instead of .o. 2002-08-06 Joel Sherrill <joel@OARcorp.com> * configure.ac: Be more specific about looking at CPU32 and CPU32+ CPU model names so we can turn on the best compile of memcpy.c. 2002-08-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * configure.ac: Replace mcpu32 by mcpu32p conditional. * share/misc/Makefile.am: Fix AM_CPPFLAGS bug. 2002-08-05 Joel Sherrill <joel@OARcorp.com> * Per PR260 eliminate use of make-target-options. This impacted RTEMS allowing a distinction between the CPU32 and CPU32+ in the SuperCore and required that the m68k optimized memcpy be moved to libcpu. * shared/misc/memcpy.c: Moved from score/cpu/m68k. * configure.ac, shared/Makefile.am: Modified to reflect new directory. * shared/misc/.cvsignore, shared/misc/Makefile.am: New file. 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]). * m68040/fpsp/Makefile.am: Remove AUTOMAKE_OPTIONS. * m68040/Makefile.am: Remove AUTOMAKE_OPTIONS. * Makefile.am: Remove AUTOMAKE_OPTIONS. * shared/cache/Makefile.am: Remove AUTOMAKE_OPTIONS. * shared/Makefile.am: Remove AUTOMAKE_OPTIONS. 2001-10-26 Joel Sherrill <joel@OARcorp.com> * Makefile.am, configure.ac: New libcpu support for mcf5206e. 2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * .cvsignore: Add autom4te.cache for autoconf > 2.52. * configure.in: Remove. * configure.ac: New file, generated from configure.in by autoupdate. 2001-09-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * shared/cache/Makefile.am: Use 'PREINSTALL_FILES ='. * shared/cache/Makefile.am: Use 'CLEANFILES ='. 2001-03-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * m68040/fpsp/Makefile.am, shared/cache/Makefile.am: Apply include_*HEADERS instead of H_FILES. 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-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros. Switch to GNU canonicalization. 2000-09-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * m68040/fpsp/Makefile.am, shared/cache/Makefile.am: Include compile.am 2000-08-10 Joel Sherrill <joel@OARcorp.com> * ChangeLog: New file.
#
# $Id$
#
Building RTEMS
==============
See the file README.configure.
Directory Overview
==================
This is the top level of the RTEMS directory structure. The following
is a description of the files and directories in this directory:
INSTALL
Rudimentary installation instructions. For more detailed
information please see the Release Notes. The Postscript
version of this manual can be found in the file
c_or_ada/doc/relnotes.tgz.
LICENSE
Required legalese.
README
This file.
c
This directory contains the source code for the C
implementation of RTEMS as well as the test suites, sample
applications, Board Support Packages, Device Drivers, and
support libraries.
doc
This directory contains the PDL for the RTEMS executive.
Ada versus C
============
There are two implementations of RTEMS in this source tree --
in Ada and in C. These two implementations are functionally
and structurally equivalent. The C implementation follows
the packaging conventions and hierarchical nature of the Ada
implementation. In addition, a style has been followed which
allows one to easily find the corresponding Ada and C
implementations.
File names in C and code placement was carefully designed to insure
a close mapping to the Ada implementation. The following file name
extensions are used:
.adb - Ada body
.ads - Ada specification
.adp - Ada body requiring preprocessing
.inc - include file for .adp files
.c - C body (non-inlined routines)
.inl - C body (inlined routines)
.h - C specification
In the executive source, XYZ.c and XYZ.inl correspond directly to a
single XYZ.adb or XYZ.adp file. A .h file corresponds directly to
the .ads file. There are only a handful of .inc files in the
Ada source and these are used to insure that the desired simple
inline textual expansion is performed. This avoids scoping and
calling convention side-effects in carefully constructed tests
which usually test context switch behavior.
In addition, in Ada code and data name references are always fully
qualified as PACKAGE.NAME. In C, this convention is followed
by having the package name as part of the name itself and using a
capital letter to indicate the presence of a "." level. So we have
PACKAGE.NAME in Ada and _Package_Name in C. The leading "_" in C
is used to avoid naming conflicts between RTEMS and user variables.
By using these conventions, one can easily compare the C and Ada
implementations.
The most noticeable difference between the C and Ada83 code is
the inability to easily obtain a "typed pointer" in Ada83.
Using the "&" operator in C yields a pointer with a specific type.
The 'Address attribute is the closest feature in Ada83. This
returns a System.Address and this must be coerced via Unchecked_Conversion
into an access type of the desired type. It is easy to view
System.Address as similar to a "void *" in C, but this is not the case.
A "void *" can be assigned to any other pointer type without an
explicit conversion.
The solution adopted to this problem was to provide two routines for
each access type in the Ada implementation -- one to convert from
System.Address to the access type and another to go the opposite
direction. This results in code which accomplishes the same thing
as the corresponding C but it is easier to get lost in the clutter
of the apparent subprogram invocations than the "less bulky"
C equivalent.
A related difference is the types which are only in Ada which are used
for pointers to arrays. These types do not exist and are not needed
in the C implementation.
Description
RTEMS is a real-time executive in use by embedded systems applications around the world and beyond
Languages
C
93.9%
Assembly
3.4%
Ada
1.4%
Python
0.3%
HTML
0.3%
Other
0.4%