Update History.txt (#535)

* Update History.txt

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
This commit is contained in:
Gaurav-Aggarwal-AWS 2022-08-07 22:31:47 +05:30 committed by GitHub
parent fc615627f6
commit 4649d58899
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,28 +2,106 @@ Changes between FreeRTOS V10.4.6 and TBD
Documentation and download available at https://www.FreeRTOS.org/ Documentation and download available at https://www.FreeRTOS.org/
+ Changed uxAutoReload parameter in timer functions to xAutoReload. The + Add support for ARM Cortex-M55.
type is now BaseType_t. This matches the type of pdTRUE and pdFALSE. + Add vectored mode interrupt support to the RISC-V port.
The new function xTimerGetAutoReload() provides the auto-reload state as + Heap improvements:
a BaseType_t. The legacy function uxTimerGetAutoReload is retained with the - Add a check to heap_2 to track if a memory block is allocated to
original UBaseType_t return value. the application or not. The MSB of the size field is used for this
purpose. The same check already exists in heap_4 and heap_5. This
check prevents double free errors.
- Add a new flag configHEAP_CLEAR_MEMORY_ON_FREE to heap_2, heap_4
and heap_5. If the flag is set in FreeRTOSConfig.h then memory freed using
vPortFree() is automatically cleared to zero.
- Add a new API pvPortCalloc to heap_2, heap_4 and heap_5 which has the same
signature as the standard library calloc function.
+ Add the ability to override send and receive completed callbacks for each
instance of a stream buffer or message buffer. Earlier there could be
one send and one receive callback for all instances of stream and message
buffers. Having separate callbacks per instance allows different message
and stream buffers to be used differently - for example, some for inter core
communication and others for same core communication.
The feature can be controlled by setting the configuration option
configUSE_SB_COMPLETED_CALLBACK in FreeRTOSConfig.h. When the option is set to 1,
APIs xStreamBufferCreateWithCallback() or xStreamBufferCreateStaticWithCallback()
(and likewise APIs for message buffer) can be used to create a stream buffer
or message buffer instance with application provided callback overrides. When
the option is set to 0, then the default callbacks as defined by
sbSEND_COMPLETED() and sbRECEIVE_COMPLETED() macros are invoked. To maintain
backwards compatibility, configUSE_SB_COMPLETED_CALLBACK defaults to 0. The
functionality is currently not supported for MPU enabled ports.
+ Add support to build and link FreeRTOS using CMake build system. Contributed
by @yhsb2k.
+ Add support to generate Software Bill of Materials (SBOM) for every release.
+ Add support for 16 MPU regions to the GCC Cortex-M33 ports.
+ Add ARM Cortex-M7 r0p0/r0p1 Errata 837070 workaround to ARM CM4 MPU ports.
The application writer needs to define configENABLE_ERRATA_837070_WORKAROUND
when using CM4 MPU ports on a Cortex-M7 r0p0/r0p1 core.
+ Add configSYSTICK_CLOCK_HZ to Cortex-M0 ports. This is needed to support
the case when the SysTick timer is not clocked from the same source as the CPU.
+ Add hardware stack protection support to MicroBlazeV9 port. This ensures that
the CPU immediately raises Stack Protection Violation exception as soon as any
task violates its stack limits. Contributed by @uecasm.
+ Introduce the configUSE_MINI_LIST_ITEM configuration option. When this + Introduce the configUSE_MINI_LIST_ITEM configuration option. When this
option is set to 1, ListItem_t and MiniLitItem_t remain separate types. option is set to 1, ListItem_t and MiniLitItem_t remain separate types.
However, when configUSE_MINI_LIST_ITEM == 0, MiniLitItem_t and ListItem_t However, when configUSE_MINI_LIST_ITEM == 0, MiniLitItem_t and ListItem_t
are both typedefs of the same struct xLIST_ITEM. This addresses some issues are both typedefs of the same struct xLIST_ITEM. This addresses some issues
observed when strict-aliasing and link time optimization are enabled. observed when strict-aliasing and link time optimization are enabled.
To maintain backwards compatibility, configUSE_MINI_LIST_ITEM defaults to 1. To maintain backwards compatibility, configUSE_MINI_LIST_ITEM defaults to 1.
+ Add the ability to override send and receive completed callbacks for each + Simplify prvInitialiseNewTask to memset newly allocated TCB structures
instance of a stream buffer or message buffer. The feature can be controlled to zero, and remove code that set individual structure members to zero.
by setting the configuration option configUSE_SB_COMPLETED_CALLBACK in + Add prototype for prvPortYieldFromISR to the POSIX port so that it builds
FreeRTOSConfig.h. When the option is set to 1, APIs without any warning with -Wmissing-prototypes compiler option.
xStreamBufferCreateWithCallback() or xStreamBufferCreateStaticWithCallback() + Add top of stack and end of stack to the task info report obtained using
(and likewise APIs from message buffer) can be used to create a stream buffer vTaskGetInfo(). Contributed by @shreyasbharath.
or message buffer instance with application provided callback overrides. When + Add a cap to the cRxLock and cTxLock members of the queue data structure.
the option is set to 0, then the default callbacks as defined by These locks count the number items received and sent to the queue while
sbSEND_COMPLETED() and sbRECEIVE_COMPLETED() macros are invoked. To maintain the queue was locked. These are later used to unblock tasks waiting on
backwards compatibility, configUSE_SB_COMPLETED_CALLBACK defaults to 0. The the queue when the queue is unlocked. This PR caps the values of the
functionaility is currently not supported for MPU enabled ports. cRxLock and cTxLock to the number of tasks in the system because we cannot
unblock more tasks than there are in the system. Note that the same assert
could still be triggered is the application creates more than 127 tasks.
+ Changed uxAutoReload parameter in timer functions to xAutoReload. The
type is now BaseType_t. This matches the type of pdTRUE and pdFALSE.
The new function xTimerGetAutoReload() provides the auto-reload state as
a BaseType_t. The legacy function uxTimerGetAutoReload is retained with the
original UBaseType_t return value.
+ Fix support for user implementations of tickless idle that call
vTaskStepTick() with xExpectedIdleTime ticks to step. The new code
ensures xTickCount reaches xNextTaskUnblockTime inside xTaskIncrementTick()
instead of inside vTaskStepTick(). This fixes the typical case where a task
wakes up one tick late and a rare case assertion failure when xTickCount\
rolls over. Contributed by @jefftenney.
+ Fix deadlock in event groups when pvPortMalloc and vPortFree functions
are protected with a mutex. Contributed by @clemenskresser.
+ Fix a warning in tasks.c when compiled with -Wduplicated-branches
GCC option. Contributed by @pierrenoel-bouteville-act.
+ Fix compilation error in tasks.c when configSUPPORT_DYNAMIC_ALLOCATION
is set to zero. Contributed by @rdpoor.
+ Fix prvWriteMessageToBuffer() function in stream_buffer.c so that it correctly
copies length on big endian platforms too.
+ Remove the need for INCLUDE_vTaskSuspend to be set to 1
when configUSE_TICKLESS_IDLE is enabled. Contributed by @pramithkv.
+ Update the RL78 IAR port to the latest version of IAR which uses the
industry standard ELF format as opposed to earlier UBROF object format.
Contributed by @felipe-iar.
+ Add tick type is atomic flag when tick count is 16-bit to PIC24 port. This
allows the PIC24 family of 16 bit processors to read the tick count without
a critical section when the tick count is also 16 bits.
+ Fix offset-out-of-range errors for GCC CM3/CM4 mpu ports when
Link Time Optimization is enabled. Contributed by @niniemann.
+ Remove #error when RISC-V port is compiled on a 64-bit RISC-V platform.
Contributed by @cmdrf.
+ Fix ullPortInterruptNesting alignment in Cortex-A53 port so that it is
8-byte aligned. This fixes the unaligned access exception. Contributed
by @Atomar25.
+ Fix Interrupt Handler Register Function and Exception Process in NiosII
Port. Contributed by @ghost.
+ Change FreeRTOS IRQ Handler for Cortex-A53 SRE port to store and restore
interrupt acknowledge register. This ensures that the SRE port behavior
matches the Memory Mapped IO port. Contributed by @sviaunxp.
+ Update the uncrustify config file to match the version of the uncrustify
used in the CI Action. Also, pin the version of uncrustify in CI. Contributed
by @swaldhoer.
Changes between FreeRTOS V10.4.5 and FreeRTOS V10.4.6 released November 12 2021 Changes between FreeRTOS V10.4.5 and FreeRTOS V10.4.6 released November 12 2021
@ -64,43 +142,43 @@ Changes between FreeRTOS V10.4.4 and FreeRTOS V10.4.5 released September 10 2021
this change. this change.
Changes between FreeRTOS V10.4.3 and FreeRTOS V10.4.4 released May 28 2021 Changes between FreeRTOS V10.4.3 and FreeRTOS V10.4.4 released May 28 2021
+ Minor performance improvements to xTaskIncrementTick() achieved by providing + Minor performance improvements to xTaskIncrementTick() achieved by providing
macro versions of uxListRemove() and vListInsertEnd(). macro versions of uxListRemove() and vListInsertEnd().
+ Minor refactor of timers.c that obsoletes the need for the + Minor refactor of timers.c that obsoletes the need for the
tmrCOMMAND_START_DONT_TRACE macro and removes the need for timers.c to tmrCOMMAND_START_DONT_TRACE macro and removes the need for timers.c to
post to its own event queue. A consequence of this change is that auto- post to its own event queue. A consequence of this change is that auto-
reload timers that miss their intended next execution time will execute reload timers that miss their intended next execution time will execute
again immediately rather than executing again the next time the command again immediately rather than executing again the next time the command
queue is processed. (thanks Jeff Tenney). queue is processed. (thanks Jeff Tenney).
+ Fix a race condition in the message buffer implementation. The + Fix a race condition in the message buffer implementation. The
underlying cause was that length and data bytes are written and read as underlying cause was that length and data bytes are written and read as
two distinct operations, which both modify the size of the buffer. If a two distinct operations, which both modify the size of the buffer. If a
context switch occurs after adding or removing the length bytes, but context switch occurs after adding or removing the length bytes, but
before adding or removing the data bytes, then another task may observe before adding or removing the data bytes, then another task may observe
the message buffer in an invalid state. the message buffer in an invalid state.
+ The xTaskCreate() and xTaskCreateStatic() functions accept a task priority + The xTaskCreate() and xTaskCreateStatic() functions accept a task priority
as an input parameter. The priority has always been silently capped to as an input parameter. The priority has always been silently capped to
(configMAX_PRIORITIES - 1) should it be set to a value above that priority. (configMAX_PRIORITIES - 1) should it be set to a value above that priority.
Now values above that priority will also trigger a configASSERT() failure. Now values above that priority will also trigger a configASSERT() failure.
+ Replace configASSERT( pcQueueName ) in vQueueAddToRegistry with a NULL + Replace configASSERT( pcQueueName ) in vQueueAddToRegistry with a NULL
pointer check. pointer check.
+ Introduce the configSTACK_ALLOCATION_FROM_SEPARATE_HEAP configuration + Introduce the configSTACK_ALLOCATION_FROM_SEPARATE_HEAP configuration
constant that enables the stack allocated to tasks to come from a heap other constant that enables the stack allocated to tasks to come from a heap other
than the heap used by other memory allocations. This enables stacks to be than the heap used by other memory allocations. This enables stacks to be
placed within special regions, such as fast tightly coupled memory. placed within special regions, such as fast tightly coupled memory.
+ If there is an attempt to add the same queue or semaphore handle to the + If there is an attempt to add the same queue or semaphore handle to the
queue registry more than once then prior versions would create two separate queue registry more than once then prior versions would create two separate
entries. Now if this is done the first entry is overwritten rather than entries. Now if this is done the first entry is overwritten rather than
duplicated. duplicated.
+ Update the ESP32 port and TF-M (Trusted Firmware M)code to the latest from + Update the ESP32 port and TF-M (Trusted Firmware M)code to the latest from
their respective repositories. their respective repositories.
+ Correct a build error in the POSIX port. + Correct a build error in the POSIX port.
+ Additional minor formatting updates, including replacing tabs with spaces + Additional minor formatting updates, including replacing tabs with spaces
in more files. in more files.
+ Other minor updates include adding additional configASSERT() checks and + Other minor updates include adding additional configASSERT() checks and
correcting and improving code comments. correcting and improving code comments.
+ Go look at the smp branch to see the progress towards the Symetric + Go look at the smp branch to see the progress towards the Symetric
Multiprocessing Kernel. https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/smp Multiprocessing Kernel. https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/smp
Changes between FreeRTOS V10.4.2 and FreeRTOS V10.4.3 released December 14 2020 Changes between FreeRTOS V10.4.2 and FreeRTOS V10.4.3 released December 14 2020