summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2022-01-26 12:03:39 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2022-01-26 12:03:39 +0100
commit7ce288bb543310c6aa8a69386a883dd9f54eecc3 (patch)
treec3ef810918aeec36439ee6099b5f8db7d7f04df1
parentUpdate rtems-notes-5.md (diff)
downloadrtems-release-7ce288bb543310c6aa8a69386a883dd9f54eecc3.tar.bz2
Update RTEMS 6 release notes
-rw-r--r--rtems-notes-6.md191
1 files changed, 156 insertions, 35 deletions
diff --git a/rtems-notes-6.md b/rtems-notes-6.md
index 39ebd29..3ca5040 100644
--- a/rtems-notes-6.md
+++ b/rtems-notes-6.md
@@ -21,7 +21,27 @@ Implementation improvements usually fall into one of the following categories:
### API Changes
-* TBD
+* If the processor set is not large enough to contain the processor set of
+ the scheduler, then `rtems_scheduler_get_processor_set()` returns
+ `RTEMS_INVALID_SIZE` instead of `RTEMS_INVALID_NUMBER`.
+
+* If the processor set is not large enough to contain the processor
+ affinity set of the task, then `rtems_task_get_affinity()` returns
+ `RTEMS_INVALID_SIZE` instead of `RTEMS_INVALID_NUMBER`.
+
+* If time-of-day argument is `NULL`, then `rtems_timer_fire_when()`,
+ `rtems_timer_server_fire_when(), and `rtems_task_wake_when()` return
+ `RTEMS_INVALID_ADDRESS` instead of `RTEMS_INVALID_CLOCK`.
+
+* The time-of-day arguments in `rtems_timer_fire_when()`,
+ `rtems_timer_server_fire_when(), and `rtems_task_wake_when()` were
+ constified.
+
+* If the entry point is `NULL`, then `rtems_task_start()` returns now
+ `RTEMS_INVALID_ADDRESS`.
+
+* If `rtems_task_delete()` is called from within interrupt context, then it
+ returns now `RTEMS_CALLED_FROM_ISR`.
#### API Additions
@@ -29,16 +49,100 @@ Implementation improvements usually fall into one of the following categories:
* `RTEMS_ALIGN_DOWN()`
-* `rtems_task_config`
+* `rtems_get_build_label()`
+
+* `rtems_get_target_hash()`
+
+* `rtems_interrupt_clear()`
+
+* `rtems_interrupt_entry_initialize()`
+
+* `RTEMS_INTERRUPT_ENTRY_INITIALIZER()`
+
+* `rtems_interrupt_entry_install()`
+
+* `rtems_interrupt_entry_remove()`
+
+* `rtems_interrupt_get_affinity()`
+
+* `rtems_interrupt_get_attributes()`
+
+* `rtems_interrupt_handler_install()`
+
+* `rtems_interrupt_handler_iterate()`
+
+* `rtems_interrupt_handler_remove()`
+
+* `rtems_interrupt_is_pending()`
+
+* `rtems_interrupt_raise()`
+
+* `rtems_interrupt_raise_on()`
+
+* `rtems_interrupt_server_action_prepend()`
+
+* `rtems_interrupt_server_create()`
+
+* `rtems_interrupt_server_delete()`
+
+* `rtems_interrupt_server_entry_destroy()`
+
+* `rtems_interrupt_server_entry_initialize()`
+
+* `rtems_interrupt_server_entry_move()`
+
+* `rtems_interrupt_server_entry_submit()`
+
+* `rtems_interrupt_server_handler_install()`
+
+* `rtems_interrupt_server_handler_iterate()`
+
+* `rtems_interrupt_server_handler_remove()`
+
+* `rtems_interrupt_server_initialize()`
+
+* `rtems_interrupt_server_move()`
+
+* `rtems_interrupt_server_request_destroy()`
+
+* `rtems_interrupt_server_request_initialize()`
+
+* `rtems_interrupt_server_request_set_vector()`
+
+* `rtems_interrupt_server_request_submit()`
+
+* `rtems_interrupt_server_resume()`
+
+* `rtems_interrupt_server_set_affinity()`
+
+* `rtems_interrupt_server_suspend()`
+
+* `rtems_interrupt_set_affinity()`
+
+* `rtems_interrupt_vector_disable()`
+
+* `rtems_interrupt_vector_enable()`
+
+* `rtems_interrupt_vector_is_enabled()`
+
+* `RTEMS_MESSAGE_QUEUE_BUFFER()`
+
+* `rtems_message_queue_construct()`
+
+* `RTEMS_PARTITION_ALIGNMENT`
* `rtems_task_construct()`
-* `RTEMS_TASK_STORAGE_SIZE`
+* `RTEMS_TASK_STORAGE_SIZE()`
* `RTEMS_TASK_STORAGE_ALIGNMENT`
#### API Implementation Improvements
+* The Classic API signal processing was reworked to avoid possible infinite
+ recursions. It is still strongly recommended to use the `RTEMS_NO_ASR` task
+ mode for the signal handler.
+
* Zero size allocation results are now consistent accross directives, for
example `malloc( 0 )` and `posix_memalign( &p, align, 0 )` return now a
unique pointer (or `NULL` if the heap is empty). In POSIX, zero size memory
@@ -57,57 +161,69 @@ Implementation improvements usually fall into one of the following categories:
* `rtems_iterate_over_all_threads()`. Use `rtems_task_iterate()` instead.
-* `rtems_get_current_processor()`. Use `rtems_scheduler_get_processor()` instead.
+* `_Copyright_Notice` is deprecated. Use `rtems_get_copyright_notice()` instead.
-* `rtems_get_processor_count()`. Use `rtems_scheduler_get_processor_maximum()` instead.
+* `_RTEMS_version` is deprecated. Use `rtems_get_version_string()` instead.
-* `boolean` is deprecated. Use `bool` instead.
+* `RTEMS_COMPILER_NO_RETURN_ATTRIBUTE` is deprecated. Use `RTEMS_NO_RETURN` instead.
-* `single_precision` is deprecated. Use `float` instead.
+* `RTEMS_COMPILER_PURE_ATTRIBUTE` is deprecated. Use `RTEMS_PURE` instead.
-* `double_precision` is deprecated. Use `double` instead.
+* `RTEMS_COMPILER_DEPRECATED_ATTRIBUTE` is deprecated. Use `RTEMS_DEPRECATED` instead.
-* `proc_ptr` is deprecated. Use a proper function pointer type.
+* `RTEMS_COMPILER_UNUSED_ATTRIBUTE` is deprecated. Use `RTEMS_UNUSED` instead.
-* rtems_context
+* `RTEMS_COMPILER_PACKED_ATTRIBUTE` is deprecated. Use `RTEMS_PACKED` instead.
-* rtems_context_fp
+#### API Removals
-* rtems_extension
+* The obsoleted header file <rtems/system.h> was removed.
-* `rtems_io_lookup_name()` is deprecated. Use `stat()` instead.
+* The never implemented `rtems_interrupt_cause()` directive was removed.
-* region_information_block
+* Support for the RTEMS thread model used by GCC versions prior to 6.1 was
+ removed (for example `rtems_gxx_once()`).
-* `rtems_thread_cpu_usage_t` is deprecated. Use `struct timespec` instead.
+* The obsoleted `rtems_get_current_processor()` directive was removed. Use
+ `rtems_scheduler_get_processor()` instead.
-* `rtems_rate_monotonic_period_time_t` is deprecated. Use `struct timespec` instead.
+* The obsoleted `rtems_get_processor_count()` directive was removed. Use
+ `rtems_scheduler_get_processor_maximum()` instead.
-* `_Copyright_Notice` is deprecated. Use `rtems_get_copyright_notice()` instead.
+* The obsoleted `boolean` type was removed. Use `bool` instead.
-* `_RTEMS_version` is deprecated. Use `rtems_get_version_string()` instead.
+* The obsoleted `single_precision` type was removed. Use `float` instead.
-* `RTEMS_MAXIMUM_NAME_LENGTH` is deprecated. Use `sizeof(rtems_name)` instead.
+* The obsoleted `double_precision` type was removed. Use `double` instead.
-* `RTEMS_COMPILER_NO_RETURN_ATTRIBUTE` is deprecated. Use `RTEMS_NO_RETURN` instead.
+* The obsoleted `proc_ptr` type was removed. Use a proper function pointer
+ type.
-* `RTEMS_COMPILER_PURE_ATTRIBUTE` is deprecated. Use `RTEMS_PURE` instead.
+* The obsoleted `rtems_context` type was removed.
-* `RTEMS_COMPILER_DEPRECATED_ATTRIBUTE` is deprecated. Use `RTEMS_DEPRECATED` instead.
+* The obsoleted `rtems_context_fp` type was removed.
-* `RTEMS_COMPILER_UNUSED_ATTRIBUTE` is deprecated. Use `RTEMS_UNUSED` instead.
+* The obsoleted `rtems_extension` type was removed. Use `void` instead.
-* `RTEMS_COMPILER_PACKED_ATTRIBUTE` is deprecated. Use `RTEMS_PACKED` instead.
+* The obsoleted `rtems_io_lookup_name()` type was removed. Use `stat()`
+ instead.
-* Including <rtems/system.h> is deprecated. This header file will be removed in RTEMS 6.
+* The obsoleted `region_information_block` was removed. Use
+ `Heap_Information_block` instead.
-#### API Removals
+* The obsoleted `rtems_thread_cpu_usage_t` type was removed. Use
+ `struct timespec` instead.
-* TBD
+* The obsoleted `rtems_rate_monotonic_period_time_t` type was removed. Use
+ `struct timespec` instead.
+
+* The obsoleted `RTEMS_MAXIMUM_NAME_LENGTH` define was removed. Use
+ `sizeof(rtems_name)` instead.
### SMP Support Improvements
-* TBD
+* The SMP scheduler framework was reworked to fix potential data corruption
+ issues and priority group ordering violations.
### Configuration Changes
@@ -139,7 +255,7 @@ The following improvements were made to the RTEMS Shell:
## Architectures
-Removed obsolete architectures:
+Removed obsoleted architectures:
* Epiphany
@@ -157,9 +273,11 @@ Obsoleted architectures:
* New BSPs
- * BSPs for ARCH
+ * `arm/fvp`
+
+ * `arm/imxrt`
- * `BSP` - TBD
+ * `arm/stm32h7`
* Significant updates to existing BSPs
@@ -167,14 +285,14 @@ Obsoleted architectures:
* Removal of obsoleted BSPs
- * `ARCH/BSP`
-
* `powerpc/brs5l`
* `powerpc/brs6l`
* `powerpc/dp2`
+ * `powerpc/haleakala`
+
* `powerpc/mpc5566evb_spe`
* `powerpc/mpc5643l_dpu`
@@ -203,8 +321,11 @@ Obsoleted architectures:
## Newlib Changes
-* TBD
+* Add `futimens()` and `utimensat()`
## Ecosystem
-* TBD
+* Improved GCOV support for RTEMS and embedded systems in general. See GCC
+ options `-fprofile-info-section` and `-fprofile-update=atomic`. The
+ `libgcov` provides now the `__gcov_info_to_gcda()` function to dump the GCOV
+ information.