RTEMS Logo

RTEMS 4.7.2 On-Line Library


Directory Structure CPU Kit Directory

PREV UP NEXT Bookshelf RTEMS Development Environment Guide

2.2: CPU Kit Directory

The cpukit/ directory contains a set of subdirectories which contains the source files comprising the executive portion of the RTEMS development environment as well as portable support libraries such as support for the C Library and filesystems. The API specific and "SuperCore" (e.g. score/ directory) source code files are separated into distinct directory trees.

The following is a description of each of the subdirectories under cpukit/:

${RTEMS_ROOT}/cpukit/aclocal/
This directory contains the custom M4 macros which are available to the various GNU autoconf configure.ac scripts throughout the CPU Kit portion of the RTEMS source tree. GNU autoconf interprets configure.ac files to produce the configure files used to tailor RTEMS build for a particular host and target environment. The contents of this directory will not be discussed further in this document.
${RTEMS_ROOT}/cpukit/automake/
This directory contains files which are "Makefile fragments." They are included as required by the various Makefile.am files throughout the CPU Kit portion of the RTEMS source tree.
${RTEMS_ROOT}/cpukit/ftpd/
This directory contains the RTEMS ftpd server.
${RTEMS_ROOT}/cpukit/httpd/
This directory contains the port of the GoAhead web server to RTEMS.
${RTEMS_ROOT}/cpukit/include/
This directory contains header files which are private to RTEMS and not considered to be owned by any other component in the CPU Kit.
${RTEMS_ROOT}/cpukit/itron/
This directory contains the implementation of the ITRON API.
${RTEMS_ROOT}/cpukit/libblock/
This directory contains support code for using Block Devices such as hard drives, floppies, and CD-ROMs. It includes the generic IO primitives for block device drivers, disk caching support, and a RAM disk block device driver.
${RTEMS_ROOT}/cpukit/libcsupport/
This directory contains the RTEMS specific support routines for the Newlib C Library. This includes what are referred to as system calls and found in section 2 of the traditional UNIX manual. In addition, it contains a thread-safe implementation of the Malloc family of routines as well as BSD and POSIX services not found in Newlib.
${RTEMS_ROOT}/cpukit/libfs/
This directory contains the various non-networked filesystem implementations for RTEMS. It includes the In-Memory FileSystem (IMFS), the mini-IMFS, and FAT filesystems.
${RTEMS_ROOT}/cpukit/libi2c/
This directory contains the RTEMS I2C framework.
${RTEMS_ROOT}/cpukit/libmisc/
This directory contains support facilities which are RTEMS specific but otherwise unclassified. In general, they do not adhere to a standard API. Among the support facilities in this directory are a /dev/null device driver, the Stack Overflow Checker, a mini-shell, the CPU and rate monotonic period usage monitoring libraries, and a utility to "dump a buffer" in a nicely formatted way similar to many ROM monitors.
${RTEMS_ROOT}/cpukit/libnetworking/
This directory contains the port of the FreeBSD TCP/IP stack to RTEMS.
${RTEMS_ROOT}/cpukit/librpc/
This directory contains the port of the FreeBSD RPC/XDR source to RTEMS.
${RTEMS_ROOT}/cpukit/posix/
This directory contains the RTEMS implementation of the threading portions of the POSIX API.
${RTEMS_ROOT}/cpukit/pppd/
This directory contains a port of the free implementation of the PPPD network protocol.
${RTEMS_ROOT}/cpukit/rtems/
This directory contains the implementation of the Classic API.
${RTEMS_ROOT}/cpukit/sapi/
This directory contains the implementation of RTEMS services which are required but beyond the realm of any standardization efforts. It includes initialization, shutdown, and IO services.
${RTEMS_ROOT}/cpukit/score/
This directory contains the "SuperCore" of RTEMS. All APIs are implemented in terms of SuperCore services. For example, Classic API tasks, POSIX threads, and ITRON tasks are all implemented in terms of SuperCore threads. This provides a common infrastructure and a high degree of interoperability between the APIs. For example, services from all APIs may be used by any task/thread independent of the API used to create it.

Within the score/ directory the CPU dependent modules are found. The score/cpu/ subdirectory contains a subdirectory for each target CPU supported by this release of the RTEMS executive. Each processor directory contains the CPU dependent code necessary to host RTEMS. The no_cpu directory provides a starting point for developing a new port to an unsupported processor. The files contained within the no_cpu directory may also be used as a reference for the other ports to specific processors.

${RTEMS_ROOT}/cpukit/telnetd/
This directory contains the RTEMS telnetd server.
${RTEMS_ROOT}/cpukit/wrapup/
This directory is responsible for taking the individual libraries and objects built in each of the components in the RTEMS CPU Kit source tree and bundling them together to form the single RTEMS library librtemscpu.a. This library contains all BSP and CPU model specific software.
${RTEMS_ROOT}/cpukit/zlib/
This directory contains a port of the GNU Zlib compression library to RTEMS.


PREV UP NEXT Bookshelf RTEMS Development Environment Guide

Copyright © 1988-2004 OAR Corporation