Changes between Version 8 and Version 9 of Release/4.11


Ignore:
Timestamp:
May 14, 2015, 6:09:14 PM (4 years ago)
Author:
Gedare Bloom
Comment:

Import manual notes.

Legend:

Unmodified
Added
Removed
Modified
  • Release/4.11

    v8 v9  
    66TODO for milestone:4.11
    77
    8 == Notes ==
    9 
    10 There are quite a few tasks that need to be documented before we release especially since the move to Git.
    11 
    12 * Move any valid content from this page  [wiki:TBR/UserManual/4.11_Release_Notes Old Manual 4.11 Release Notes] to here.
     8== Release Notes ==
     9
     10=== Tool Improvements
     11
     12 *  TBD
     13 *  New ARM tool chain configuration: [wiki:Developer/Architecures/ARM/ARM-EABI arm-rtems4.11]
     14 *  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:
     15  *  autoconf 2.69
     16  *  automake 1.12.6
     17  *  binutils 2.24
     18  *  gcc 4.8.2 or C/C++ with newlib 2.1.0
     19  *  gdb 7.5
     20
     21The latest patch for each tools is in rtems/contrib/crossrpms/patches.
     22=== RTEMS Improvements
     23
     24In this section, we discuss public API level changes as well as improvements to the implementation of those API routines. 
     25
     26Public API changes usually fall into one of the following categories:
     27
     28 *  Addition of new methods
     29 *  Modifications to prototypes
     30 *  Deletion of obsoleted methods
     31
     32Implementation improvements usually fall into one of the following categories:
     33
     34 *  Algorithm improvements in execution time or memory usage
     35 *  Critical section reduction
     36
     37=== API Changes
     38
     39 *  Score Chain API changed due to strict aliasing concerns.  In case you have a compiler error related to RTEMS chains, you should use the appropriate API function and do not access chain control members directly.
     40 *  The loop back interface of the network stack will be initialized now during the normal initialization via rtems_bsdnet_initialize_network().  The loop back interface configurations are now obsolete and must be removed.  You will notices this if you encounter a linker error of undefined references to rtems_bsdnet_loopattach().
     41 *  rtems_initialize_start_multitasking() was void and now returns the uint32_t passed to rtems_shutdown_executive().  This exit status is propagated by boot_card() to bsp_cleanup() and returned to the assembly initialization.
     42 *  RTEMS_offsetof() was removed.  This macro was not documented.  Use the standard offsetof() instead.   See https://www.rtems.org/PR1941
     43 *  The file system API has changed considerably.
     44  *  Commit: http://git.rtems.org/rtems/commit/?id=3b7c123c8d910eb60ab3b38dec6224e2de9847c9.
     45 *  The work area initialization (RTEMS work space and C program heap) changed.  Now a table based initialization is used.
     46  *  Commit: http://git.rtems.org/rtems/commit/?id=47a3cd8f73780bad3eff5135f0eb58e8c98af91d
     47 *  The block device transfer request API changed.
     48  *  Commit: http://git.rtems.org/rtems/commit/?id=9f0a68ce5afca9d21d34bab83d42fbe4bb0cf8ef
     49 *  The Termios interrupt write support invocation changed.
     50  *  Commit: http://git.rtems.org/rtems/commit/?id=fed92f5f67bcaeffa6cb6ceebf5ddfdbcaff7fb8
     51 *  rtems_panic() / rtems_error(RTEMS_ERROR_PANIC ...) no longer cause a halt of the local system, but a reset (assuming no application or BSP-specific fatal error extension intervenes)
     52 *  The Mongoose HTTP / web server has been updated to version 3.9, at the last point before the MIT -> GPL license change. Its API has changed considerably. In particular, please ensure you pass an initialised ''struct mg_callbacks'' as the first argument to ''mg_start()'', with all members set to ''NULL'' if you don't use callbacks
     53  *  Commit: http://git.rtems.org/rtems/commit/?id=b5d2d4a61ce91765e9cac1b02271a8f4b049c558
     54 *  POSIX keys and POSIX once are now available even if POSIX-API is not enabled.
     55 *  The shell now relies on POSIX keys instead of task variables. This means that enough keys and key-value-pairs have to be configured.
     56 *  C++ support now relies on POSIX keys instead of task variables. This means that enough keys and key-value-pairs have to be configured.
     57 *  Private environments are now relying on POSIX keys instead of task variables.
     58  *  There is one key automatically added to the configuration. The configuration hast to define one additional key-value-pairs for each thread that uses a private environment. If no private environment is used there is no need to change a existing configuration.
     59  *  Please note that the chroot() function uses a private environment. If chroot() an appropriate number of key-value pair is necessary.
     60  *  Please note that the ftp-server uses chroot() and therefore needs an appropriate number of key-value pairs.
     61 *  TBD
     62
     63=== API Additions
     64
     65 *  New red-black tree implementation with API.  In contrast to the RTEMS Chains this container offers no internal locking mechanisms.  The user must ensure that at most one thread at once can access a red-black tree instance.
     66 *  Constant Bandwidth Server (CBS) scheduler API added as an interface for communication with the scheduler.
     67 *  The IMFS allows now generic nodes:
     68  *  Commit: http://git.rtems.org/rtems/commit/?id=c5392ef924c0d6f024012f294f39fdb5c6ac2da8.
     69 *  System events and transient event:
     70  *  Commit: http://git.rtems.org/rtems/commit/?id=0edf263139088e8ac0ff1f0d52513f6fc85677d2.
     71  *  System events: http://www.rtems.org/onlinedocs/doxygen/cpukit/html/group__ClassicEventSystem.html
     72  *  Transient event: http://www.rtems.org/onlinedocs/doxygen/cpukit/html/group__ClassicEventTransient.html
     73 *  There are now additional fatal sources
     74  *  RTEMS_FATAL_SOURCE_BDBUF,
     75  *  RTEMS_FATAL_SOURCE_APPLICATION,
     76  *  RTEMS_FATAL_SOURCE_EXIT,
     77  *  RTEMS_FATAL_SOURCE_BSP_GENERIC,
     78  *  RTEMS_FATAL_SOURCE_BSP_SPECIFIC,
     79  *  RTEMS_FATAL_SOURCE_ASSERT, and
     80  *  RTEMS_FATAL_SOURCE_STACK_CHECKER.
     81 *  There is a new fatal error function rtems_fatal().
     82 *  TBD
     83
     84=== API Implementation Improvements
     85
     86 *  POSIX semaphores make now a copy of the name string (similar to POSIX message queues).  This allows dynamic creation of POSIX semaphore names.
     87 *  The fatal error handling changed considerable.  The function _Internal_error_Occurred() can now be called in nearly every system state.  The invocation of the fatal extension of an initial extension is guaranteed under the following conditions.  The initial extensions reside in read-only memory.  The following conditions must hold
     88  *  the stack pointer is valid,
     89  *  the code memory is valid,
     90  *  the read-only data is valid, and
     91  *  the read-write data is accessible.
     92 *  TBD
     93
     94= API Deprecations =
     95 * Notepads: rtems_task_set_note(), rtems_task_get_note(). Consider using POSIX keys instead.
     96 * Task Variables: rtems_task_variable_add(), rtems_task_variable_delete(). Consider using POSIX keys instead.
     97 * rtems_clock_get(). Use other clock methods instead.
     98
     99=== API Removals
     100 * TBD
     101
     102=== Configuration Changes
     103
     104 *  Possible to use new EDF scheduler (CONFIGURE_SCHEDULER_EDF) and new CBS scheduler (CONFIGURE_SCHEDULER_CBS).
     105 *  More accurate workspace size estimate.
     106 *  The stack space size estimate is now separate and not a part of the overall workspace size estimate.
     107 *  The root file system mount parameters can be now configured via rtems_filesystem_root_configuration.
     108 *  Add CONFIGURE_UNLIMITED_OBJECTS and CONFIGURE_UNLIMITED ALLOCATION_SIZE to auto-extend classic and posix objects whose resource limits are not otherwise defined.
     109 *  The Configuration is now read-only and must be statically initialized via confdefs.h or similar.
     110 *  BSPs can now register an initial extension via the BSP_INITIAL_EXTENSION define.
     111 *  TBD
     112
     113=== RTEMS Shell Improvements
     114
     115
     116The following improvements were made to the RTEMS Shell:
     117
     118 *  New command ''lsof'' to list all referenced file system locations.
     119 *  TBD
     120
     121=== General
     122
     123 *  Added support for the [http://moxielogic.org/wiki/index.php/Main_Page Moxie] open source processor architecture.
     124 *  Added support for the SPARC V9 (sparc64) CPU family, a 64-bit processor architecture.
     125 *  Added support for ARM Cortex-M (ARMv7-M).
     126 *  Added support for Journalling Flash File System, Version 2 (JFFS2) imported from Linux 3.11 and eCos.
     127 *  FTPFS will no longer use the BOOTP server address as default if no hostname was specified.  The FTP path must specify the hostname.  Applications can obtain the BOOTP server address and from the appropriate path.
     128 *  Added new two configurable single processor schedulers: Earliest Deadline First (EDF) and Constant Bandwidht Server (CBS).
     129 *  The '''exit()''', '''_exit()''' and '''abort()''' functions leads now to a fatal error.  The fatal source is '''RTEMS_FATAL_SOURCE_EXIT''' and the fatal code is the exit status.  The '''rtems_panic()''' and '''rtems_error()''' are also affected by this since they call one of these functions.  Depending on the fatal error extensions this may lead to a '''bsp_reset()'''.  A reset is the default provided by the BSP.
     130 *  [http://rtems.org/onlinedocs/doc-current/share/rtems/html/cpu_supplement/Port-Specific-Information-Thread_002dLocal-Storage.html#Port-Specific-Information-Thread_002dLocal-Storage Thread-local storage (TLS)]: Supported on ARM, m68k, PowerPC and SPARC.  Other architectures lack an implementation.
     131 *  TBD
     132
     133 *  Scheduler Refactoring Improvements
     134  *  TBD
     135
     136=== BSPs and Device Drivers
     137
     138 *  General
     139  *  TBD
     140 *  New BSPs
     141  *  BSPs for ARM
     142   *  lm3s69xx - ARM Cortex-Mx based BSP supports [http://www.ti.com/product/lm3s6965?qgpn=lm3s6965 Stellaris Microcontroller LM3S6965] (works only on Qemu), LM3S3749 and [http://www.ti.com/tool/EK-LM4F120XL LM4F120]
     143   *  lpc24xx - NXP LPC1700, LPC4000
     144   *  stm32f4xxxx - Discovery kit for STM32 F4 series - with STM32F407 MCU
     145   *  stm32f10xxx - STM32F105RC MCU
     146   *  Xilinx Zynq
     147   *  [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0440b/index.html RealView PBX] (works only on Qemu)
     148   *  raspberrypi - [http://www.raspberrypi.org/ Raspberry Pi]
     149  *  BSPs for bfin
     150   *  [wiki:TBR/BSP/TLL6527M TLL6527M]
     151  *  BSPs for moxie
     152   *  moxiesim
     153  *  BSPs for sparc64 cpu model
     154   *  [wiki:Niagara_  niagara: UltraSPARC T1]
     155   *  [wiki:Usiii_  usiii: UltraSPARC III]
     156  *  BSPs for PowerPC
     157   *  [wiki:TBR/BSP/Qemuprep qemuprep] - run a variant of motorola_powerpc in qemu
     158   *  [wiki:TBR/BSP/QorIQ QorIQ]
     159   *  t32mppc - Lauterbach Trace32 PowerPC simulator
     160
     161 *  Significant updates to existing BSPs
     162  *  Full driver support for Milkymist SoC (video input, DMX, MIDI, USB input devices, ...)
     163
     164 *  Removal of obsoleted BSPs
     165  *  i386ex - Removed 1 March 2011
     166  *  ts_386ex - Removed 1 March 2011
     167
     168 *  Drivers: TBD
     169
     170=== Test Suites =
     171 *  TBD
     172
     173=== RTEMS API Changes
     174
     175This section covers the API changes between the 4.10 and 4.11 release series which are expected to have an impact on application source code.  This section does NOT cover additions to the API.
     176
     177 *  TBD
     178
     179== Changes Per Point Release
     180
     181=== Release 4.11.0 Changes
     182
     183When this happens, you will be the first to know. :)
    13184
    14185== Open Tickets ==