summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-05-04 16:48:16 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-05-04 16:48:16 +0200
commit35a82194b0f5a947bf3b55607d18458722041330 (patch)
treeddefd276a07b6a668fb126032cef8f146dc18eea
parentReleases info fixes from Gedare. (diff)
downloadrtems-release-35a82194b0f5a947bf3b55607d18458722041330.tar.bz2
Update rtems-notes-5.txt
-rw-r--r--rtems-notes-5.txt236
1 files changed, 209 insertions, 27 deletions
diff --git a/rtems-notes-5.txt b/rtems-notes-5.txt
index 3d319b1..3e8b779 100644
--- a/rtems-notes-5.txt
+++ b/rtems-notes-5.txt
@@ -8,68 +8,179 @@ 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
+* The header file <rtems.h> no longer includes <limits.h> and <string.h>.
+
* Most services use now statically allocated resources and no longer need
accounting in the application configuration.
+
* The work area initialization (RTEMS Work Space and C Program Heap) changed.
BSPs must provide now a `_Memory_Get()` function.
+
* POSIX timers and signals are now the only POSIX resources which are enabled
by the POSIX API.
#### API Additions
* Support for recording of high-frequency events in particular on SMP systems
+
* Support for thread pinning (enables support for Epoch Based Reclamation; used
by libbsd)
+
* Termios supports now generation of signals.
+
* New fatal sources:
+
* `RTEMS_FATAL_SOURCE_EXCEPTION`
+
* `RTEMS_FATAL_SOURCE_PANIC`
+
* `RTEMS_FATAL_SOURCE_SMP`
+
* `RTEMS_FATAL_SOURCE_INVALID_HEAP_FREE`
+
* `RTEMS_FATAL_SOURCE_HEAP`
+* New chain API function: rtems_chain_get_first_unprotected()
+
+* Add user defined thread names: pthread_setname_np() and pthread_getname_np()
+
+* Support for xz compression/decompression
+
+* Added rtems_scheduler_ident_by_processor()
+
+* Added rtems_scheduler_ident_by_processor_set()
+
+* Added RTEMS_PREDICT_TRUE() and RTEMS_PREDICT_FALSE() for static branch prediction hints
+
+* Added rtems_malloc() and rtems_calloc()
+
+* Added rtems_scheduler_get_maximum_priority()
+
+* Added rtems_scheduler_get_processor()
+
+* Added rtems_scheduler_get_processor_maximum()
+
#### API Implementation Improvements
-* TBD
+* Priority inheritance is now transitive.
+
+* POSIX key destructors are now called during thread restart.
+
+* More robust thread dispatching on SMP and ARM Cortex-M
#### API Deprecations
* `rtems_iterate_over_all_threads()`. Use `rtems_task_iterate()` instead.
+* `rtems_get_current_processor()`. Use `rtems_scheduler_get_processor()` instead.
+
+* `rtems_get_processor_count()`. Use `rtems_scheduler_get_processor_maximum()` instead.
+
+* proc_ptr
+
+* rtems_context
+
+* rtems_context_fp
+
+* region_information_block
+
+* rtems_thread_cpu_usage_t
+
+* rtems_rate_monotonic_period_time_t
+
#### API Removals
* `rtems_clock_get()`
+* API defined by <rtems/debug.h>
+
+* Task notepads
+
+* Task variables
+
+### SMP Support Improvements
+
+* Reimplemenation of the Multiprocessor Resource Sharing Protocol (MrsP) to
+ address performance issues.
+
+* Implementation of the O(m) Independence-Preserving Protocol (OMIP).
+
+* The default SMP scheduler supports now EDF scheduling, one-to-one and
+ one-to-all thread to processor affinities, and thread pinning.
+
+* Timers (watchdogs) use now per-processor data structures.
+
+* Improved POSIX key to value look up.
+
+* The Ada runtime supports now SMP configurations.
+
### Configuration Changes
* All configuration options are now documented.
+
* Most resources are now statically allocated and no longer use the workspace.
+
* New configuration options:
- * `CONFIGURE_DIRTY_MEMORY`
- * `CONFIGURE_RECORD_EXTENSIONS_ENABLED`
- * `CONFIGURE_RECORD_FATAL_DUMP_BASE64`
- * `CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB`
- * `CONFIGURE_RECORD_PER_PROCESSOR_ITEMS`
- * `CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION`
+
+ * `CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE`
+
+ * `CONFIGURE_DIRTY_MEMORY`
+
+ * `CONFIGURE_RECORD_EXTENSIONS_ENABLED`
+
+ * `CONFIGURE_RECORD_FATAL_DUMP_BASE64`
+
+ * `CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB`
+
+ * `CONFIGURE_RECORD_PER_PROCESSOR_ITEMS`
+
+ * `CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION`
+
+ * `CONFIGURE_IMFS_ENABLE_MKFIFO`
+
+* Renamed configuration options:
+
+ * `CONFIGURE_SMP_MAXIMUM_PROCESSORS` to `CONFIGURE_MAXIMUM_PROCESSORS`
+
+ * `CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS` to `CONFIGURE_MAXIMUM_FILE_DESCRIPTORS`
+
* Removed configuration options:
- * `CONFIGURE_HAS_OWN_CONFIGURATION_TABLE`
- * `CONFIGURE_HAS_OWN_BDBUF_TABLE`
- * `CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE`
- * `CONFIGURE_HAS_OWN_FILESYSTEM_TABLE`
- * `CONFIGURE_HAS_OWN_INIT_TABLE`
- * `CONFIGURE_HAS_OWN_MOUNT_TABLE`
- * `CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE`
- * `CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE`
+
+ * `CONFIGURE_SMP_APPLICATION`
+
+ * `CONFIGURE_HAS_OWN_CONFIGURATION_TABLE`
+
+ * `CONFIGURE_HAS_OWN_BDBUF_TABLE`
+
+ * `CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE`
+
+ * `CONFIGURE_HAS_OWN_FILESYSTEM_TABLE`
+
+ * `CONFIGURE_HAS_OWN_INIT_TABLE`
+
+ * `CONFIGURE_HAS_OWN_MOUNT_TABLE`
+
+ * `CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE`
+
+ * `CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE`
+
+ * `CONFIGURE_DISABLE_SMP_CONFIGURATION`
+
+ * `CONFIGURE_MAXIMUM_DEVICES`
+
* The helper macro for the clustered scheduler configuration
`RTEMS_SCHEDULER_EDF_SMP()` has now only one parameter.
@@ -83,6 +194,9 @@ The following improvements were made to the RTEMS Shell:
## General
+* The system initialization is now performed by system initialization handlers
+ registered in a special linker set (similar to global constructors in C++).
+
* API header files have been collected from the various locations in the RTEMS
source tree and placed under `cputkit/include` and for BSPs under
`bsps/include`. There is no header pre-install phase when building RTEMS.
@@ -103,30 +217,98 @@ The following improvements were made to the RTEMS Shell:
support. Currently the supported architectures are i386 and ARM. The ARM
support is experimental.
+* Most BSP use now function and data sections to support the linker garbage
+ collection.
+
* This is the last release of RTEMS with the `autoconf`/`automake` build
system. RTEMS will be moving to a `waf` based build system driven from YAML
specifications files. The effort is part of the on-going wotk in the RTEMS
project to support qualification of the operating system.
+## Architectures
+
+Removed obsolete architectures:
+
+* AVR
+
+* H8300
+
+* M32C
+
+* M32R
+
+Obsoleted architectures:
+
+* Epiphany
+
## BSPs and Device Drivers
* General
- * BSP source code moved from `c/src/lib/libbsp` to `bsps` in the
- source tree. The configure and some other related pieces are still
- held in the original path.
+
+ * BSP source code moved from `c/src/lib/libbsp` to `bsps` in the
+ source tree. The configure and some other related pieces are still held in
+ the original path.
+
* New BSPs
- * BSPs for ARM
- * `atsamv` - Microchip (former Atmel) SAM V71 series
- * `xilinx-zynqmp` - Xilinx Zynq UltraScale+ MPSoC platform
- * BSPs for RISC-V
- * `riscv` - Family of generic BSPs
- * `griscv` - BSP based on the GRLIB
+
+ * BSPs for ARM
+
+ * `atsamv` - Microchip (former Atmel) SAM V71 series
+
+ * `xilinx-zynqmp` - Xilinx Zynq UltraScale+ MPSoC platform
+
+ * BSPs for RISC-V
+
+ * `riscv` - Family of generic BSPs
+
+ * `griscv` - BSP based on the GRLIB
+
* Significant updates to existing BSPs
- * `powerpc/qoriq`: 64-bit support
+
+ * `powerpc/qoriq`: 64-bit support
+
* Removal of obsoleted BSPs
- * `gdbarmsim`
+
+ * `arm/gdbarmsim`
+
+ * `arm/nds`
+
+ * `arm/gp32`
+
+ * `arm/ep1a`
+
+ * `arm/score603e`
+
+ * `m68k/idp`
+
+* Obsoleted BSPs
+
+ * powerpc/mbx8xx
+
+ * m68k/gen68302
+
+ * m68k/ods68302
+
* Drivers
- * Drivers for `getentropy()`
+
+ * Drivers for `getentropy()`
+
+ * New I2C device driver framework supporting the Linux user-space API
+
+ * New SPI device driver framework supporting the Linux user-space API
+
+## Newlib Changes
+
+* time_t is now 64-bit to adress the year 2038 problem.
+
+* General improvements in the feature test macros support.
+
+* Newlib internal locks are now supported, e.g. for FILE objects.
+
+* The standard input, output, and error FILE objects are now global and no
+ longer thread-specific.
+
+* Added support for C++17 std::aligned_alloc
## Ecosystem