wiki:Release/4.8

Version 13 (modified by Daniel, on 09/10/07 at 18:27:48) (diff)

/* RTEMS Improvements */

4.8 Release Notes

Open Ideas are are: RTEMS48Ideas?

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

<blockquote> Snapshots from this development effort are numbered 4.7.99.x with the latest being 4.7.99.2. This snapshot may be found in ftp://ftp.rtems.com/pub/rtems/4.7.99.2 or http://www.rtems.com/ftp/pub/rtems/4.7.99.2. </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.1 for C/C++ with newlib 1.15.0
    • gdb 6.6

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

RTEMS Improvements

  • Modified behavior when changing priority of a thread which is blocked on a priority based thread queue. Previously, the thread remained enqueued based upon its original priority. Now the thread is requeued to reflect its new priority. This work was sponsored by Saab Space.
  • Nanosecond time of day and time stamp granularity now supported.
    • CPU Usage statistics can be at nanosecond granularity
    • Rate Monotonic Period Usage statistics can be at nanosecond granularity
  • Rate Monotonic Period Usage statistics are now always maintained as part of the manager.
  • Code Space Reduced
    • Optional Managers are more useful and now actually reduce the code size of your executable again.
    • The C Program Heap is now implemented directly in terms of the SuperCore? Heap Handler. This means that the Region Manager is no longer a required manager.
    • The newlib reentrancy user extension is now statically installed. This means that the User Extension Manager is no longer a required manager.
    • Much work has been done to split files which contained multiple functions into one function per filein the SuperCore?, Classic API, and SAPI. This reduces code space.
    • Much work as been done to instantiate global data on a per manager and per handler basisin the SuperCore?, Classic API, and SAPI. This reduces .data and .bss space.
  • 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. This impacts the CPU Usage, Stack Checker, and Rate Monotonic Usage support components.
  • Addition of new general object operations
    • object ID to uint32_t name service -- rtems_object_id_to_name()
    • object ID to stroing name service -- rtems_object_get_name()
  • Addition of rtems_iterate_over_all_threads() service that iterates over all threads and tasks in the system calling a user supplied function
  • Addition of new Ports
    • Altera NIOS II from Kolja Waschk.
    • Analog Devices Blackfin from Alain Schaefer.
  • The Skyeye and RTEMS communities have come together to make sure more BSPs run on the Skyeye simulator. The RTEMS tests hello.exe and ticker.exe are now included in the Skyeye testsuite for multiple BSPs. See SkyEye for details and status.
  • Addition of new BSPs
    • arm/rtl22xx
    • bfin/eZKit533
    • powerpc/gen5200
    • powerpc/mpc8349eads
    • powerpc/icecube
    • powerpc/virtex
  • Additional POSIX API support
    • Barriers added
    • Spinlocks added
    • RWLocks added
  • Additional Classic API support
    • Barriers added
  • Significant updates to existing BSPs
    • powerpc/gen5200 now supports more variants including Freescale LITE5200B
    • sparc/leon2 and leon3, AMBA scanning routines updated. Added a bunch of new drivers.
  • Removal of obsoleted BSPs
    • arm/armulator
    • m68k/dmv152

RTEMS API Changes

  • Most uses of rtems_unsignedXX and rtems_signedXX types should now use C99 uintXX_t and intXX_t types.
  • Classic API Barrier Manager added
  • Addition of object ID to name lookup services
    • rtems_object_id_to_name
    • rtems_object_get_name
  • Rate Monotonic Manager now implicitly maintains statistics and adds the following services:
    • rtems_rate_monotonic_get_statistics,
    • rtems_rate_monotonic_reset_statistics,
    • rtems_rate_monotonic_reset_all_statistics,
    • rtems_rate_monotonic_report_statistics
  • Clock Improvements
    • clock_get_uptime
    • rtems_clock_set_nanoseconds_extension
  • Rate Monotonic Period Reporting Additions
    • Functionality now integrated with Rate Monotonic Manager
    • All routines named rtems_XXX
    • Nanosecond granularity on times available
    • Uses printk
  • CPU Usage Reporting Changes
    • All routines named rtems_XXX
    • Nanosecond granularity on times available
    • Uses printk
  • Stack Checker Changes
    • All routines named rtems_XXX
    • Added method which is called by the user to check if the current task has blown its stack at this exact time.
    • Uses printk

Changes Per Point Release

Release 4.8.0 Changes

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