mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04:00
Update History.txt (#535)
* Update History.txt Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
This commit is contained in:
parent
fc615627f6
commit
4649d58899
182
History.txt
182
History.txt
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue