wiki:Release/4.7

Version 3 (modified by JoelSherrill, on 06/06/07 at 02:46:21) (diff)

Added RTEMS API changes

4.7 Release Notes

This page lists the changes and improvements that were made to the RTEMS development source between the 4.6 and 4.7 release branches. As usual, there were submissions that were not expected and incorporated into the 4.7 release. User submissions are highly valued by the RTEMS Project. Please note that if we forgot to include anyone's work in this release information, it is an accident. Please email and we will add the information.

The second release from the 4.7 release series is 4.7.1. This version may be found in ftp://ftp.rtems.com/pub/rtems/4.7.1 or http://www.rtems.com/ftp/pub/rtems/4.7.1.

Tool Improvements

Thanks 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.60
  • automake 1.10
  • binutils 2.17
  • gcc 4.1.1 for C/C++ with newlib 1.15.0
  • gdb 6.5

RTEMS Improvements

  • A significant reworking of the Makefile and configure infratructure to meet a number of goals including higher compliance with GNU standards and eventual shipping of binaries for a RTEMS CPU Kit. The most visible results of this are that some source did move and that a LOT (> 1000) of Makefile.am's disappeared. Ralf Corsepius explained the changes in this post (http://www.rtems.org/rtems-4.7/%3Cget-var%20BACKPATH%3Eml/rtems-users/2004/february/msg00034.html) to the RTEMS Users mailing list. The following list is a more detailed perspective:
  • Movement to a single Makefile.am at the same level as each component's configure.ac. This eliminated > 1000 Makefile.am's.
  • A cleanup of the header file installation directories to allow for eventually being able to ship CPU Kit binaries.
  • Source code dependency tracking added to the build process.
  • Upgrade to latest auto* tools.
  • Project Infrastructure Upgrades
    • rtems.org server is new and significantly better
    • Yum/APT Repository for distribution of GNU/Linux RPMs
    • Switched to GNU mailman for mail lists
    • Switched to Bugzilla from GNATS.
    • RTEMS Wiki Established
  • Conversion of SuperCore? comments to Doxygen has been initiated.
  • Trailing spaces removed from files.
  • Large speedup in FAT filesystem performance by Thomas Doerfler
  • Addition of object ID to name lookup service -- rtems_object_id_to_name()
  • Addition of service that iterates over all threads and tasks in the system calling a user supplied function -- rtems_iterate_over_all_threads()
  • Upgrade of GoAhead? Webserver.
  • Addition of the following system calls from the Open Group Single UNIX Specification, Version 2:
    • sync() - schedule filesystem updates
    • ualarm() - set the interval alarm
    • usleep() - suspend execution for an interval
  • Addition of new BSPs
    • Motorola MPC5200 support with multiple BSPs by Thomas Doerfler
    • MIPS rbtx4925 and rbtx4938 BSPs for the corresponding Toshiba reference boards from Bruce Robinson of PMC Corporation. He also submitted the MIPS Hurricane BSP for the corresponding PMC-Sierra board.
    • Arcturus Networks BSP (ColdFire? uC5282) from Eric Norum of Argonne Labs
    • Intec Automation SS555 BSP written by David Querbach of Real-Time Systems Inc. This work was sponsored by the Defence Research and Development Canada - Suffield. He notes that the BSP is largely based on the mbx8xx ports, with some floating-point code from the mpc8260 port.
    • Jay Monkman has submitted a number of BSPs for Cogent boards. RTEMS now supports the ARM-based CSB336 and CSB337, the MC68360-based CSB360, and the MIPS-based (AMD Au1100) CSB350.
    • Motorola MVME2100 sponsored by Argonne National Laboratory.
    • Motorola MVME5500 BSP written by Kate Feng of Brookhaven National Laboratory.
    • Radstone EmPower EP1A which also supports the Radsone Empower PMCQ1 high speed serial and MIL-STD-1553 PMC.
    • GP32 BSP for the GamePark? handheld device submitted by Philippe Simons
  • Significant updates to existing BSPs
    • Support for MIP32 and R4000 targets and alignment fixes in the IP stack for all MIPS targets.
    • Added parameter to IRQ handlers in the powerpc and the i386 targets.
    • Converted powerpc score603e to new exception model.
  • Removal of obsoleted target CPUs and accompanying BSPs:
    • AMD a29k - no longer in production or active use.
    • Intel i960 - no longer supported by GNU tools.
    • MIPS64ORION - Now covered by mips port.
    • OR32 - Not well supported by GNU tools.
  • Removal of obsoleted BSPs:
    • arm/arm_bare_bsp - Example BSP no longer of use.
    • arm/vegaplus - Early ARM BSP without interrupt support.
    • m68k/efi68k - No longer available or in use.
    • m68k/efi332 - No longer available or in use.
    • powerpc/dmv177 - No longer available or in use.
    • powerpc/ppcn_60x - No longer available or in use.

Changes Per Point Release

Release 4.7.1 Changes

Signficant changes between 4.7.0 and 4.7.1 include the following:

  • Issues with Problems Report Numbers
    • 1226/cpukit - CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE spelled wrong
    • 1227/bsps - mbx8xx booting problems
    • 1230/tests - minimum should not include console driver
    • 1231/cpukit - POSIX API Files Unnecessarily Including assert.h
    • 1232/bsps - Fatal error in bsppost if /dev/console not present
    • 1233/bsps - erc32 printk use forces include of console driver
    • 1234/cpukit - Add assert based upon printk
    • 1235/bsps - mvme5500/pci/pci.c: PCI_DEBUG/PCI_PRINT
  • Issues Without Problems Report Numbers
    • Smaller executables. This was a of small changes which together shrunk minimum.exe on sparc/erc32 by approximately 1/3. Results vary by BSP and each BSP may have unnecessary dependencies or file structuring issues that need to be addressed. For example, on the erc32, the debug IO support was "ld -r" with the console driver wihch in turn resulted termios support being linked in to any application which used debug IO. There are still places in RTEMS itself where code and data space can be reduced but you must always start by examining the BSP for issues.
    • Stack Checker now bounds checks the actual stack pointer in addition to checking the end of stack memory. A user application had a 4K unused buffer on a task stack and the stack checked missed this.
    • PR1234 comments: Provided RTEMS specific implementation of assert which uses printk. This reduced executable size by 12K on applications not requiring printf() support. It also ensured that one should be able to assert from RTEMS critical sections and interrupts.
    • Stack Checker converted to use printk so there is a higher probability
    • of getting a failure message. Added dummy printk support to multiple BSPs so all tests will link.
    • ITRON rsm_tsk error code
    • MIPS Little and .sdata (aka R_MIPS_GPREL16 problem)
    • printk %p support added
    • Unnecessary include of assert.h removed.
    • BSD code updates and cleanup.
    • assoc.c: Dead code removed. Warnings fixed.
    • RTEMS Classic API Ada bindings updated.
    • License URL updated in many files.
    • m68k/mvme162: No longer build tools that are specific to Solaris VMEBus hosts.
    • Multiple BSPs had bsp_specs cleaned up.

RTEMS API Changes

  • Multiple .h files which were RTEMS specific are now installed under an rtems subdirectory.
    /* Before 4.6 */ #include <confdefs.h>
    /* After 4.6 */  #include <rtems/confdefs.h>
    
  • Format of Region Manager Statistics changed.
  • PCI API modified in attempt to provide same API across ports.
  • TBD - if something is missing add it here.= Release 4.7.0 Changes =

This was the first release in the 4.7 Release Series and first to have all the major improvements listed at the top of this page.