wiki:Release/4.9

Version 13 (modified by JoelSherrill, on Jan 28, 2008 at 11:08:26 PM) (diff)

/* RTEMS Improvements */ Added some Object Manager services

4.9 Release Notes

Open Ideas are are: RTEMS49Ideas?

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

<blockquote> Snapshots from this development effort are numbered 4.8.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

  • Ralf Corsepius is continuing on his effort to improve the build infratructure and eventually support the CPU and BSP Kits in released version. This is both an RTEMS and a Tool Improvement as Ralf's goal is to be able to release CPU Kits in binary RPM form. In late May 2007, he made his first cpukits available for testing.
  • 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.61
    • automake 1.10
    • binutils 2.18
    • gcc 4.2.2 for C/C++ with newlib 1.16.0
    • gdb 6.7.1

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

RTEMS Improvements

  • API Improvements
    • Added readv() and writev(). Implemented by JoelSherrill
    • Added rtems_task_self(). Implemented by JoelSherrill
    • Added posix_memalign(). Implemented by JoelSherrill
    • Added Object Manager including documentation. Includes many new helper services related to object classes, Ids, and names and renamed some existing but unofficially available and undocumented services. Implemented by JoelSherrill. Changes include:
      • Added rtems_build_name() - build object name from characters
      • Added rtems_object_get_classic_name() - lookup name from id
      • Added rtems_object_get_name() - obtain object name as string
      • Added rtems_object_set_name() - set object name
      • Renamed rtems_get_node() to rtems_object_id_get_node()
      • Renamed rtems_get_api() to rtems_object_id_get_api()
      • Renamed rtems_get_class() to rtems_object_id_get_class()
      • Renamed rtems_get_index() to rtems_object_id_get_index()
  • telnetd overhaul submitted by Till Straumann.
  • The region directives were restructured in order to produce simpler assembly code and allow for complete test coverage. Changes included:
    • move the OBJECTS_LOCAL case to the top of the switch statement,
    • use a single exit with one call to _RTEMS_Unlock_allocator,
    • eliminate the fall-through return of RTEMS_INTERNAL_ERROR.
  • Code Space Reduced - Much work has gone on and continues to go on in this area. Some of the improvements are:
    • Configure time control over inlining of some RTEMS internal routines.
    • OBJECT_REMOTE is now defined only in multiprocessor configuration. Having this constant led to the generation of code which could not be reached in single processor configurations.
    • More files with multiple methods were split including the Malloc Family, POSIX timers, and many of the POSIX stubs for routines RTEMS does not support.
  • Addition of configure constants in confdefs.h:
    • CONFIGURE_MALLOC_XXX
  • Promotion of libmisc components to "first class citizens". This involves changing the name of routines to reflect RTEMS naming standards, adding documentation to the Users Guide and where appropriate integrating them more tightly with the RTEMS SuperCore? or API implementations.
    • Components left TBD
  • Malloc Family refactoring and improvements. Previously, these routines were in only a couple of files. Now they are in multiple files. In addition, the malloc() features that were previously now conditionally compiled can be enabled at run-time. This includes statistics and setting all malloc'ed memory to 0xc5c5c5c5 to ease debugging.
  • RTEMS Shell has many improvements.
    • Can run scripts from a file
    • New commands:
      • malloc [info|stats]
      • wkspace
      • XXX
  • New BSPs
    • TBD
  • Significant updates to existing BSPs
    • TBD
  • Removal of obsoleted BSPs
    • TBD
  • New Tests

In addition to adding new tests to the psxtests and sptests for new functionality, existing tests were enhanced and new tests added to improve coverage.

  • The Ada tests were updated so that they would compile and run without errors. Tests that were no longer valid using the current binding were removed.

RTEMS API Changes

  • TBD

=Changes Per Point Release=

Release 4.9.0 Changes

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