wiki:Release/4.9

Version 215 (modified by Chris Johns, on 11/23/14 at 07:23:48) (diff)

--

4.9 Release Notes

Table of Contents

    Error: Page TBR/UserManual/4.9_Release_Notes does not exist

The 4.9 branch was cut on 10 September 2008 and 4.9.5 was released on 9 February 2011. This is the sixth release from the 4.9 Release Series and is expected to be the last. Please help by reporting success and updating the list at the bottom of this page.

Latest: http://ftp.rtems.org/pub/rtems/4.9.5/

4.9.3 was the first RTEMS release to include test coverage data. We have been running coverage reports on the head and have generated some historical data but this is the first time the reports accompany a release.

4.9.5 Coverage Reports: http://ftp.rtems.org/pub/rtems/4.9.5/coverage/index.html

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 were submissions that were not expected and incorporated when submitted into the 4.9 release. In keeping with project history, the feature set of the 4.9 release series was largely be driven by user submissions and requests.

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

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 infrastructure 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.62
    • automake 1.10.1
    • binutils 2.19 after RTEMS 4.9.1 was released, binutils 2.18 before
    • gcc 4.3.2 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

  • 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
    • rtems_object_id_api_minimum() - obtain minimum API value
    • rtems_object_id_api_maximum() - obtain maximum API value
    • rtems_object_id_api_minimum_class() - obtain minimum class value
    • rtems_object_id_api_maximum_class() - obtain maximum class value
    • rtems_object_get_api_name() - obtain API name
    • rtems_object_get_api_class_name() - obtain class name
    • rtems_object_get_class_information() - obtain class information
    • 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()
  • rtems_clock_get() is an overloaded routine which takes an enumerated value to indicate that format of the time related information that will be returned through the void * pointer. This particular method is certainly not an example of strong typing. Moreover, since its generality results in the inclusion of code which is almost certainly unused in any particular application. For example, it can return the current time of day in three formats. In this light, a set of new, smaller methods were refactored from rtems_clock_get() and the new version of rtems_clock_get() is implemented as subroutine calls to the new routines. These new routines should be simpler and easier to use. They are:
    • rtems_clock_get_tod() - Obtain TOD in Classic API structure
    • rtems_clock_get_tod_timeval() - Obtain TOD in struct timeval
    • rtems_clock_get_seconds_since_epoch() - Obtain TOD as seconds since 1988
    • rtems_clock_get_ticks_since_boot() - Obtain ticks since boot
    • rtems_clock_get_ticks_per_second() - Obtain ticks per second
  • The score chains code is now available via the documented chains API. Check the C User documentation for details. Implemented by ChrisJohns?.

API Implementation Improvements

  • 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.
    • When a set of initialization tasks or threads is not configured for a particular API, those task/thread creation routines are no longer required in the minimum executable. For examnple, in 4.8 and older, the code to create POSIX initialization threads was always present when POSIX was enabled and thus pthread_create() was included in the executable.
  • Each object class no longer allocates a name table. The name information is always stored directly with the object. This was an improvement in memory usage.

Configuration Changes

  • Addition of configure constants in confdefs.h:
    • CONFIGURE_MALLOC_DIRTY - enable dirtying of memory returned by malloc().
    • CONFIGURE_MALLOC_STATISTICS - enable more detailed statistics gathering.
    • CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY - By default, RTEMS does not zero the RTEMS Work Space or C Program Heap. The BSP can change the default to zeroing this memory. Further even if the BSP does not require this zeroing, the application can use this constant to specify that it requires it.
    • CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK - defined by BSP which wants to be able to extend the C Program Heap at run-time.
    • CONFIGURE_TASK_STACK_ALLOCATOR and CONFIGURE_TASK_STACK_DEALLOCATOR - allow the application to define their own task stack allocation routines.
    • CONFIGURE_BSP_PREQUISITE_DRIVERS and CONFIGURE_APPLICATION_PREQUISITE_DRIVERS which allows the BSP and application to add drivers to the beginning of the static driver table.
    • CONFIGURE_APPLICATION_EXTRA_DRIVERS which allows the application to add drivers to the end of the static driver table.
  • Addition of network stack configuration parameters to control default buffer sizes for sockets. This addresses the issue that was described in http://lists.rtems.org/pipermail/users/2004-February/009517.html in which the default socket buffer tend to be large in comparison to the amount of memory users configure for mbufs. This leads to a starvation and TCP/IP "freeze". This scenario can be created with just a handful of sockets and fairly light traffic and is worsened by use of UDP sockets which default to larger buffering than TCP sockets. See the Network Supplement for more details on each of the following parameters:
    • sb_efficiency - buffering factor or multiplier
    • udp_tx_buf_size - default size of transmit buffers for UDP sockets
    • udp_rx_buf_size - default size of receive buffers for UDP sockets
    • tcp_tx_buf_size - default size of transmit buffers for TCP sockets
    • tcp_rx_buf_size - default size of receive buffers for TCP sockets
  • Addition of error checks for the following common application configuration mistakes:
    • Configuring POSIX objects or a POSIX initialization thread without POSIX being configured
    • Configuring ITRON objects or a POSIX initialization task without ITRON being configured
    • Add CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER configuration parameter so the application has to explicitly configure the Clock driver in or out if the Timer driver is not configured.
    • Configuring a multiprocessor application when RTEMS was configured for multiprocessing.

RTEMS Shell Improvements

The RTEMS Shell has many improvements.

  • Can run scripts from a file.
  • Can configure set of commands available in application.
  • Commands not tied to shell implementation so you can use them in your own "maintenance shell".
  • Many new commands:
    • malloc [info|stats]
    • cpuuse - [-r] print or reset per thread cpu usage
    • stackuse - print per thread stack usage
    • perioduse - [-r] print or reset per period usage
    • wkspace - Report on RTEMS Executive Workspace
    • ifconfig
    • route
    • ls, rm, cp, mv, ln from NetBSD
    • mount

General

  • telnetd overhaul submitted by Till Straumann.
  • Flash filesystem support from Chris Johns
  • Non-volatile filesystem support from Chris Johns
  • 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.
  • DHCP client changes from Arnout Vandecappelle? and Maarten Van Es to allow a DHCP request to be request when the interface detects valid media.
  • M68K CPU Coldfire clean up. The Coldfire is now built based on the instruction set of the Coldfire. The BSP's configuration files now use the -mcpu=* option to select the Coldfire. Support for small memory Coldfire's has been added.
  • Coldfire FPU support has been added. Testing feedback to ChrisJohns? would be welcome.
  • Updated bdbuf file system cache by Chris Johns. The new code does not disable pre-emption in the cache code or in the standard drivers in RTEMS such as the ATA driver. The updated code added configuration parameters to confdefs.h to change the number of read ahead buffers and the number of write buffers. The swap out task has a configurable sample period and modified buffers to be written have a configurable hold time before being committed to disk. The code has been tested on a mvf5235 with the RAM, FLASH and NV disks and on the PC with the ATA, RAM and NV disks.
    • <b>Warning</b> There are API changes in libblock. The code has had the interfaces moved to under rtems_*. Drivers need to be updated. Another warning is buffers are <b>not continuous</b> when writing by default unless the driver adds a new <tt>ioctl</tt> call. See the ATA driver in libchip for an example. The buffers each have a block number and that should be used if not requiring continuous buffers.

BSPs and Device Drivers

  • All methods and public variables in the Benchmark Timer Driver used only by the tmtests were renamed to be "benchmark_timer_xxx". The former naming scheme was very inconsistent. In addition, a common method was moved to a shared location.
  • Coldfire Mcf52235 small memory BSP from Matthew Riek
  • Coldfire Mcf5329? - New BSP from Matthew Riek
  • Coldfire genmcf548x - New BSP for MCF548x from Peter Rasmussen of Embedded Brains.
  • powerpc/gen83xx - New BSP for MPC83xx from Thomas Doerfler of Embedded Brains.
  • powerpc/haleakela - New BSP from Michael Hamel
  • powerpc/gen55xx - New BSP for MPC55xx from Sebastian Huber of Embedded Brains.
  • powerpc/tqm8xx - New BSP to support boards based on TQ Component TQM8xx modules
  • powerpc/mvme3100 - New BSP (and 8540 CPU support) from Till Straumann (SLAC)
  • Significant updates to existing BSPs
    • i386/pc386 - Clock driver now supports nanoseconds per tick
    • powerpc/gen5200 - Now supports Freescale IceCube? board variant
    • powerpc/psim - shared memory now works, scripts rewritten, RTC and Flash devices mapped into address space
  • Removal of obsoleted BSPs
    • powerpc/gen405 - remaining powerpc "old" exception BSPs removed
    • powerpc/helas403 - remaining powerpc "old" exception BSPs removed

Test Suites

  • 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.
  • The Ada example programs received a considerable amount of cleanup and saw the addition of a few new tests.
    • cpuuse to demonstrate long names for POSIX threads via Ada by JoelSherrill
    • test_exception to demonstrate Ada exceptions by Laurent Guerby?
    • dumpwebpage from web to demonstrate GNAT sockets
    • delay_until from web to demonstrate stability of RTEMS timing
    • pingpong is from web to demonstrate GNAT sockets
    • stack_check to demonstrate GNAT Ada task stack checking is functional by JoelSherrill
    • task_priority to show how Ada priorities map onto SuperCore? priorities by JoelSherrill

RTEMS API Changes

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

  • As part of adding the new set of Object Services, some existing undocumented routines that previously existed were renamed as follows:
    • 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()

Changes Per Point Release

Release 4.9.7 Changes

If cut, this release will be the eighth in the 4.9 series and has not been cut yet. This section describes changes on the 4.9 CVS branch made AFTER 4.9.6 was released.

Significant changes between 4.9.6 and 4.9.7 include the following:

Issues With Problems Report Numbers

  • 2001/shell - medit command argument parsing correction
  • 1984/doc - Change CONFIGURE_MINIMUM_STACK_SIZE to CONFIGURE_MINIMUM_TASK_STACK_SIZE.
  • 1961/cpukit - Use buffer list not pending count to close windows in message queue
  • 1957/cpukit - Add missing parentheses on a couple of macro uses for protection
  • 1952/cpukit - Add missing return code to untar.c
  • 1934/bsps - libchip ns16650 driver needed to use unsigned type
  • 1890/cpukit - mq_receive and variants should allow NULL for msg_prio.
  • 1867/cpukit - Support the case where a thread is joinable but calls pthread_exit() before a thread has attempted to join.
  • 1864/doc Add missing documentation for CONFIGURE_MAXIMUM_POSIX_BARRIERS , CONFIGURE_MAXIMUM_POSIX_SPINLOCKS, CONFIGURE_MAXIMUM_POSIX_RWLOCKS.
  • 1855/cpukit - Correct processing of signals during a blocking pthread_join().
  • 1851/doc - Fix typo in CONFIGURE_MESSAGE_BUFFER_MEMORY example.

Issues Without Problems Report Numbers

  • TBD

Release 4.9.6 Changes

This release is the seventh release in the 4.9 series and was cut on 22 July 2011. This section describes changes which are in the 4.9.6 release.

Significant changes between 4.9.5 and 4.9.6 include the following:

  • 1839/filesystem - multiple system calls return incorrect status or incorrectly check permission
  • 1838/filesystem - fchmod() does not need a writeable file descriptor.
  • 1837/bsps - Add mvme2400 board with 750 CPU to list of supported motorola boards
  • 1833/bsps - pc386 ne2000 driver had broadcast reception disabled by previous multicast patch. Also includes support for use on big endian CPUs.
  • 1812/filesystem - IMFS did not set st_blksize.
  • 1783/bsps - SPARC BSPs - Remove prototypes that do not have bodies
  • 1778/bsps - mvme5500 BSP: VME uses shared ISR
  • 1766/bsps - SPARC BSPs get nanoseconds correction
  • 1772/bsps - mrm332 BSP console default baud rate does not match ROM monitor
  • 1768/bsps - Add cld to i386 ISR processing before calling C code.
  • 1760/misc - CPP setting in c/make/compilers/gcc-target-default.cfg is broken
  • 1759/cpukit - Some POSIX routines not allowing IDs from Classic API Tasks
  • 1756/bsps - PC386 Timer calibration failure needs retries
  • 1751/bsps - ep1a start code has typo
  • 1749/filesystem - mknod allows more than one file type in the mode flags
  • 1748/bsps - SPARC BSPs nanoseconds skipping back when counter wraps during get TOD or uptime call
  • 1722/networking - Support spaces in FTPD commands and filenames.
  • 1381/networking - Multicast sendto() fails unless a reachable gateway is specified

Issues Without Problems Report Numbers

  • c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/vectors.h was missing extern "C"
  • powerpc/mpc5566evb BSP includes timer driver and coverhd.h stubs so it can compile link all tests.

Release 4.9.5 Changes

This release is the sixth release in the 4.9 series and was cut on 9 February 2011. This section describes changes which are in the 4.9.5 release.

Significant changes between 4.9.4 and 4.9.5 include the following:

  • NONE

Issues With Problems Report Numbers

  • 1718/cpukit - confdefs.h under accounted for POSIX thread stack memory
  • 1717/cpukit - gxx_wrappers.c: memory leak on key create when error
  • 1716/doc - print_name example in concepts chapter has bug
  • 1714/doc - rtems_status_code was missing a description
  • 1693/filesystem - IMFS_memfile_get_block_pointer() was checking incorrect pointer and thus had dead code.
  • 1692/filesystem - rtems_is_valid_perms() was incorrectly implemented and evaluated to true all the time.
  • 1689/bsps - wait_adc_int_with_timeout
  • 1570/cpukit - sem_timedwait() returns error code instead of assigning errno and returning -1
  • 1568/doc - Services Callable from ISR Broken in Previous Edit
  • 1554/cpukit - libi2c.c: Fix Memory Leak
  • 1520/doc - partition_create description mentions returning number of buffers

Issues Without Problems Report Numbers

  • NONE

Release 4.9.4 Changes

This release is the fifth in the 4.9 series and was cut on 18 March 2010.

Significant changes between 4.9.3 and 4.9.4 include the following:

Issues With Problems Report Numbers

  • 1495/bsp - calling rtems_clock_get_uptime in a tight loop on pc386/QEMU leads to backwards time travel
  • 1477/cpukit - _Objects_Set_name does not ensure NULL terminated string
  • 1480/cpukit - Missed period statistics are wrong in 4.9.3 (right in 4.9.2)
  • 1481/cpukit - Check for partial period performed too early when updating period statistics
  • 1482/cpukit - POSIX timer_settime has path which does not exit dispatching critical section
  • 1490/doc - rtems_clock_get_ticks_per_second wrong prototype (typo)
  • 1497/bsp - gen5200 should not enable interrupts while waiting for reset

Issues Without Problems Report Numbers

  • Fixed the MSDOS node create to have the correct time.
  • libcpu m68k/mcf5282 - MCF5282_FEC_EMRBR_R_BUF_SIZE and MCF5282_CFM_CFMCMD_CMD were missing hexadecimal prefixes

Release 4.9.3 Changes

This release is the fourth in the 4.9 series and was cut on 16 November 2009.

This section describes changes which are in the 4.9.3 release.

Significant changes between 4.9.2 and 4.9.3 include the following:

Issues With Problems Report Numbers

  • 1395/bsps - MVME5500 BSP Bug fixes and performance upgrade
  • 1378/filesystem - seek device file system handler returns 0 not offset
  • 1409/bsps - GDB Stub Shared Code Does Not Print Object Names Correctly
  • 1411/cpukit - rtems_workspace_XXX routines enhanced (NOTE: these were new in 4.9 and unlikely to be used.)
  • 1412/cpukit - Missing brackets in coremutex.c
  • 1413/cpukit - anomalous behavior of timer server scheduling when rescheduling timers from the TSR
  • 1415/cpukit - Semaphore obtain with invalid priority ceiling
  • 1420/bsps - m68k/uC5282: turn off buffered writes. MCF5282 chip errata -- Buffered Write May Be Executed Twice
  • 1438/bsps - inline assembly for STOP instruction clobbers CCR
  • 1451/bsps - bsdnet watchdog on mvme3100 leaks mbufs
  • 1462/cpukit - fix bug in rate monotonic statistics
  • 1468/cpukit - Math overflow in timespecdividebyinteger.c
  • 1469/cpukit - Wrong exception handler prologues for exceptions >= 16 (i386)
  • 1471/cpukit - CPU Usage report Math overflow with ticks statistics

Issues Without Problems Report Numbers

  • Multiple tool updates including move to gdb 7.0.
  • i386 BSPs - Backport shared IRQ support from head. This is needed for Till's libbsdport kit of new NIC drivers to build.
  • network demos - Fixed Makefiles and moved configuration so you can use libbsdport kit with them.

Release 4.9.2 Changes

This release is the third in the 4.9 series and was cut on 12 March 2009.

This section describes changes which are in the 4.9.2 release.

Significant changes between 4.9.1 and 4.9.2 include the following:

Issues With Problems Report Numbers

  • 1349/bsps - PowerPC Haleakala BSP UART initialisation is faulty. Missing volatiles.
  • 1350/bsps - arm/csb336/network/lan91c11x.c: array subscript is above array bounds
  • 1351/cpukit - confdefs.h does not clear unlimited bit in memory calculations
  • 1352/bsps - include support for mvme2600 and mvme2700 in motorola_shared BSP
  • 1354/bsps - AV5282 Network driver can put empty mbuf on descriptor chain
  • 1355/filesystem - SD card code rejects MMC and random blocks written sequentially
  • 1357/cpukit - creating task with RTEMS_NO_ASR has no effect
  • 1358/bsps - Fix time-access bug in uc5282 BSP
  • 1359/cpukit - rtems_libio_allocate: rtems_libio_iop_freelist incorrectly zeroed on semaphore error
  • 1362/bsps - Fix BSP reset on mvme2300 - mvme2700
  • 1363/filesystem - Fix issue where 32 bit values are not written correctly in FAT f/s data.
  • 1364/cpukit - gxx_wrappers.c won't compile with diagnostics enabled
  • 1369/bsps - Fix name clashes when using MC68040 fpsp floating-point emulation
  • 1370/bsps - mvme167 console driver 'BSP_output_char' fails to convert '\n' -> '\n\r'
  • 1371/bsps - mvme167 needs to convert ELF -> pure binary RALF
  • 1372/bsps - mvme167 network driver buggy
  • 1374/misc - Fix printk formatting string.
  • 1375/bsps - uC5282 BSP rtems_cpu_usage_report/bsp_clock_nanoseconds_since_last_tick reports negative times
  • 1376/filesystem - lseek filesystem internal handlers should return off_t
  • 1377/shell - netstats shell command does nothing
  • 1380/bsps - Unreadable comments in c/src/lib/libbsp/arm/rtl22xx/include/bsp.h
  • 1385/cpukit - Conversion to bool, alignment changes and assembler code
  • 1386/bsps - SPARC start.S incorrectly initializes stack pointer
  • 1387/doc - Add Interrupt Manager services to set callable from ISR
  • 1388/cpukit - Classic Semaphores allow both priority inherit and ceiling attributes to be set
  • 1390/bsps - SPARC linkcmds wrong for C++ ctors/dtors
  • 1391/bsps - sparc BSPs spurious handler printk format error
  • 1392/bsps - SPI Memory driver, writes over multiple pages results in extra data being written
  • 1393/cpukit - posix mutex does not include CORE_MUTEX_RELEASE_NOT_ORDER

Issues Without Problems Report Numbers

  • BSP Howto - Termios description enhanced by Sebastian Huber
  • ftpd.h - add extern C for safe inclusion in C++ programs
  • mvme3100 BSP issues fixed and it now runs

Release 4.9.1 Changes

This release is the second in the 4.9 series and was cut on 12 December 2008.

Significant changes between 4.9.0 and 4.9.1 include the following:

Issues With Problems Report Numbers

  • 1316/cpukit - message queue broadcast truncated messages that were too long and should have return an error per the documentation
  • 1324/bsps - aclocal/check-bsps.m4: icecube is missing
  • 1328/cpukit - fix printing of > 256 characters in shell commands mdump and wdump (Gene Smith)
  • 1329/bsps - gen5200 network driver used boolean and did not compile
  • 1330/cpukit - free.c: Print of wrong address in error message
  • 1331/networking - clean up telnetd initialization parameter explanation.
  • 1332/bsps - reopening (already open) console corrupts driver (i386, powerpc)
  • 1333/cpukit - typo in termiostypes.h uses major instead of minor
  • 1334/doc - Misc Documentation Typos and Object ID correction
  • 1335/bsps - introduction of sbrk helpers broke sbrk implementation by ppc/shared BSPs
  • 1336/cpukit - Add prepend and append unprotected to chain.h
  • 1337/bsps - Stripping .rodata section produces unusable executables for the i386-rtems target.
  • 1339/Ada - Re-add IO Manager to Classic API Ada binding
  • 1340/cpukit - Add initialize with nodes to chain.h
  • 1341/cpukit - confdefs.h missing some "allocated from workspace" wrappers
  • 1344/bsps - pc386 BSP can now use TSC when available for nanosecond timing.
  • 1345/Ada - Ada binding has wrong type for boolean
  • 1346/cpukit - Rate monotonic statistics nanoseconds/ticks granularity conditional logic backwards
  • 1347/cpukit - Rework Timer Server to ensure that the context allows for blocking, allocating memory, and acquiring semaphores and mutexes.
  • 1348/cpukit - Resetting CPU usage information while a period is running results in a negative minimum cpu time used being reported.

Issues Without Problems Report Numbers

  • Revert change to NTP client to let stack assign port. (Eric Norum)
  • Update tool versions and patches in Getting Started (reported by Steven Grunza)
  • powerpc/score603e BSP updated and tested (Jennifer Averett)
  • ttyname_r() prototype corrected so third parameter is size_t
  • Shell code that uses getopt_r() defines conditional enabling newlib getopt.h extensions
  • psim scripts now support option to force configuration of System V IPC devices even when executable does not appear to be multiprocessing test.
  • libblock/src/bdbuf.c: Fix typo that crept in during boolean -> bool transition that negative impacted performance.
  • Update all bsp_specs to move "-e START_SYMBOL" so a warning is not generated with binutils 2.19
  • In Classic API User's Guide Remove reference that realloc() is implemented in terms of Region Manager. No longer true after 4.7

Release 4.9.0 Changes

This release is the first in the 4.9 series and was cut on 24 September 2008.

BSPs Reported to Work

One of the challenges of RTEMS is that it includes so many Board Support Packages and no single person has access to the breadth of hardware RTEMS supports. We rely on users like you to report that you have or have not successfully run RTEMS 4.9 on a particular board. Please add to this list so we know what works, what doesn't and what BSPs may no longer be in use.

NOTE: Pre-built ticker.exe files for all BSPs are provided for 4.9.0 and 4.9.1. If you spot a BSP that does not have a ticker.exe, please report it on the mailing list. If ticker.exe runs as built, report it here. If it doesn't run correctly, report that and try to fix it -- we want all BSPs to work out of the box.

  • arm/csb337 - JoelSherrill reports ticker runs on SkyEye
  • arm/gba - JoelSherrill reports ticker runs on BoyCott? Advance/SDL simulator
  • arm/gba - AlanCudmore? reports ticker runs on real hardware
  • arm/nds - JoelSherrill reports ticker runs on Desmume simulator
  • arm/nds - Someone reports ticker runs on real Nintendo DS hardware, Please. :)
  • arm/edb7312 - JoelSherrill reports ticker runs on SkyEye
  • arm/rtl22xx - JoelSherrill reports ticker runs on SkyEye
  • arm/smdk2410 - JoelSherrill reports ticker runs on SkyEye
  • m68k/mcf5235 - AlanCudmore? reports ticker runs and CEXP works.
  • m68k/uC5282 - EricNorum? reports EPICS runs
  • powerpc/mvme2100 - EricNorum? reports EPICS runs
  • powerpc/mvme3100 - EricNorum? reports EPICS runs
  • mips/jmr3904 - JoelSherrill report ticker runs on simulator
  • powerpc/gen83xx - ThomasDoerfler? report ticker runs on hsc_cm01, mpc8349eamds and mpc8313erdb
  • powerpc/hsc_cm01 - ThomasDoerfler? report ticker runs
  • powerpc/icecube - JoelSherrill report ticker runs on Freescale MPC5200 Eval baord and Embedded Planets EP5200
  • powerpc/mpc8313erdb - JoelSherrill report ticker runs on Freescale MPC8313E RDB
  • powerpc/mpc8349eamds - ThomasDoerfler? report ticker runs Freescale MPC8349E MDS
  • powerpc/psim - JoelSherrill report ticker runs on psim
  • powerpc/score603e - JenniferAverett? sent patches against 4.9.0 and reports runs ticker now
  • powerpc/virtex - BobGrimes? reports: My application runs (uses serial, Ethernet, clock, SPI, other stuff)
  • i386/pc386 - EricNorum? reports EPICS runs MSouth? reports: works, but slows context switches to a crawl. See discussion on this page.
  • sparc/erc32 - JoelSherrill report ticker runs on tsim
  • sparc/leon2 - JoelSherrill report ticker runs on tsim
  • sparc/leon3 - JoelSherrill report ticker runs on tsim
  • sparc/sis - JoelSherrill report ticker runs on sis