Version 13 (modified by JoelSherrill, on Dec 16, 2008 at 12:24:03 AM) (diff)

/* API Changes */ Add API change for rtems_initialize_data_structures.

4.10 Release Notes

{| border="0" cellpadding="5" cellspacing="0" align="right"

! style="background:#efefef;" | |}

Open Ideas are are: RTEMS410Ideas?

This page lists the changes and improvements that are planned and/or have been made to the RTEMS development source since the 4.9 release branch was made. As usual, there will be submissions that are not expected and incorporated as ready into the 4.10 releases. In keeping with project history, the feature set of the 4.10 release series will be largely be driven by user submissions and requests.

<blockquote> Any snapshots made during this development effort are numbered 4.9.99.x. </blockquote>

<blockquote> The RTEMS project provides built tools sets that are available for download. For Linux the RPM package formater is support and avaliable from the APT/Yum Repository. For Windows MinGW Executable Installers are available. </blockquote>

If any changes or enhancements are missing in this list, feel free to add them. After all, that's why this is a Wiki.

Tool Improvements

  • TBD
  • Thanks again to Ralf, it is possible to provide target specific versions of the development tools. This is important when GCC drops support for an old architecture or we are avoiding target specific bugs in a particular tool version. Nominally, most RTEMS targets will use the same tools and they have been upgraded to the following versions:
    • autoconf 2.63
    • automake 1.10.1
    • binutils 2.19 (expected)
    • gcc 4.4.x (expected) for C/C++ with newlib 1.16.0
    • gdb 6.8

The latest patch for each tools is in rtems/contrib/crossrpms/patches.

RTEMS Improvements

In this section, we discuss public API level changes as well as improvements to the implementation of those API routines.

Public API changes usually fall into one of the following categories:

  • Addition of new methods
  • Modifications to prototypes
  • Deletion of obsoleted methods

Implementation improvements usually fall into one of the following categories:

  • Algorithm improvements in execution time or memory usage
  • Critical section reduction

API Changes

  • A number of RTEMS specific types have been deprecated which are no longer necessary based upon the types provided by C99. user is encouraged to use C99 types. If you have application that uses these types, you can defined (RTEMS_DEPRECATED_TYPES when building your application to enabled them. They will be removed completely in a future release series and this is intended to be a transition release. The following types have been deprecated:
    • boolean, rtems_boolean (use bool, instead)
    • single_precision, rtems_single (use float, instead)
    • double_precision, rtems_double (use double, instead)
  • rtems_initialize_data_structures() now takes no arguments. This should impact no application or BSP as this was only referenced in shared framework code.

API Additions

  • Wei Shen submitted an implementation of POSIX pipes.
  • JoelSherrill submitted an implementation of getrusage().

API Implementation Improvements

  • TBD

Configuration Changes

  • The capability to have RTEMS operate with the RTEMS Workspace and C Program Heap as a combined pool. Historically, RTEMS has had separate memory pools for the RTEMS Workspace and C Program Heap. Having separate pools does have some advantages in the event a task blows a stack or writes outside its memory area. However, in low memory systems the overhead of the two pools plus the potential for unused memory in either pool is very undesirable. Similarly, in high memory environments, this is desirable when you want to use the RTEMS "unlimited" objects option. You will be able to create objects until you run out of all available memory rather then just until you run out of RTEMS Workspace. Define CONFIGURE_UNIFIED_WORK_AREAS to enable this configuration.
  • Filesystem support can be controlled by the user. By default, filesystem infrastructure is included, define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM to disable filesystem support.
  • RTEMS now has a device-only filesystem which is smaller in size than miniIMFS and IMFS, define CONFIGURE_USE_DEVFS_AS_BASE_FILESYTEM to enable this configuration.
  • The Configuration Table has had the pointers to the Classic, POSIX, and ITRON API Configuration Tables removed. RTEMS now directly references the configuration information using variables which are assumed to have the names generated by confdefs.h. This resulted in a small reduction in data space and about 4.5% off the code space for minimum and hello on the SPARC with lesser reductions on the Thumb.
  • TBD

RTEMS Shell Improvements

The following improvements were made to the RTEMS Shell:

  • TBD


  • TBD

BSPs and Device Drivers

  • General
    • Consolidation of various bsp_cleanup() implementations and a general push for as many BSPs as possible to use shared implementations. [Effort underway]
  • All BSPs have been modified to use the BSP Framework to allocate memory to RTEMS and the C Program Heap. It is now assumed that each BSP will provide an implementation of bsp_get_work_area() and it is HIGHLY encouraged that you use the shared one in libbsp/shared.
  • With the move to have more BSPs provide bsp_get_work_area() and use more of the BSP Framework, some BSPs no longer required BSP specific actions in bsp_start(). Now there is a stub implementation of this method for BSPs not requiring it.
  • Similarly, with the move to have more BSPs use more of the BSP Frameowrk, most BSPs no longer require a BSP specific implementation of bsp_pretasking_hook() and can use the shared stub implementation.
  • New BSPs
    • TBD
  • Significant updates to existing BSPs
    • TBD
  • Removal of obsoleted BSPs
    • TBD

Test Suites

  • TBD


This section covers the API changes between the 4.9 and 4.10 release series which are expected to have an impact on application source code. This section does NOT cover additions to the API.

  • TBD

=Changes Per Point Release=

==Release 4.10.0 Changes==

When this happens, you will be the first to know. :)