Skip to content

Commit 4649d58

Browse files
authored
Update History.txt (#535)
* Update History.txt Signed-off-by: Gaurav Aggarwal <[email protected]>
1 parent fc61562 commit 4649d58

File tree

1 file changed

+130
-52
lines changed

1 file changed

+130
-52
lines changed

History.txt

Lines changed: 130 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,106 @@ Changes between FreeRTOS V10.4.6 and TBD
22

33
Documentation and download available at https://www.FreeRTOS.org/
44

5-
+ Changed uxAutoReload parameter in timer functions to xAutoReload. The
6-
type is now BaseType_t. This matches the type of pdTRUE and pdFALSE.
7-
The new function xTimerGetAutoReload() provides the auto-reload state as
8-
a BaseType_t. The legacy function uxTimerGetAutoReload is retained with the
9-
original UBaseType_t return value.
5+
+ Add support for ARM Cortex-M55.
6+
+ Add vectored mode interrupt support to the RISC-V port.
7+
+ Heap improvements:
8+
- Add a check to heap_2 to track if a memory block is allocated to
9+
the application or not. The MSB of the size field is used for this
10+
purpose. The same check already exists in heap_4 and heap_5. This
11+
check prevents double free errors.
12+
- Add a new flag configHEAP_CLEAR_MEMORY_ON_FREE to heap_2, heap_4
13+
and heap_5. If the flag is set in FreeRTOSConfig.h then memory freed using
14+
vPortFree() is automatically cleared to zero.
15+
- Add a new API pvPortCalloc to heap_2, heap_4 and heap_5 which has the same
16+
signature as the standard library calloc function.
17+
+ Add the ability to override send and receive completed callbacks for each
18+
instance of a stream buffer or message buffer. Earlier there could be
19+
one send and one receive callback for all instances of stream and message
20+
buffers. Having separate callbacks per instance allows different message
21+
and stream buffers to be used differently - for example, some for inter core
22+
communication and others for same core communication.
23+
The feature can be controlled by setting the configuration option
24+
configUSE_SB_COMPLETED_CALLBACK in FreeRTOSConfig.h. When the option is set to 1,
25+
APIs xStreamBufferCreateWithCallback() or xStreamBufferCreateStaticWithCallback()
26+
(and likewise APIs for message buffer) can be used to create a stream buffer
27+
or message buffer instance with application provided callback overrides. When
28+
the option is set to 0, then the default callbacks as defined by
29+
sbSEND_COMPLETED() and sbRECEIVE_COMPLETED() macros are invoked. To maintain
30+
backwards compatibility, configUSE_SB_COMPLETED_CALLBACK defaults to 0. The
31+
functionality is currently not supported for MPU enabled ports.
32+
+ Add support to build and link FreeRTOS using CMake build system. Contributed
33+
by @yhsb2k.
34+
+ Add support to generate Software Bill of Materials (SBOM) for every release.
35+
+ Add support for 16 MPU regions to the GCC Cortex-M33 ports.
36+
+ Add ARM Cortex-M7 r0p0/r0p1 Errata 837070 workaround to ARM CM4 MPU ports.
37+
The application writer needs to define configENABLE_ERRATA_837070_WORKAROUND
38+
when using CM4 MPU ports on a Cortex-M7 r0p0/r0p1 core.
39+
+ Add configSYSTICK_CLOCK_HZ to Cortex-M0 ports. This is needed to support
40+
the case when the SysTick timer is not clocked from the same source as the CPU.
41+
+ Add hardware stack protection support to MicroBlazeV9 port. This ensures that
42+
the CPU immediately raises Stack Protection Violation exception as soon as any
43+
task violates its stack limits. Contributed by @uecasm.
1044
+ Introduce the configUSE_MINI_LIST_ITEM configuration option. When this
1145
option is set to 1, ListItem_t and MiniLitItem_t remain separate types.
1246
However, when configUSE_MINI_LIST_ITEM == 0, MiniLitItem_t and ListItem_t
1347
are both typedefs of the same struct xLIST_ITEM. This addresses some issues
1448
observed when strict-aliasing and link time optimization are enabled.
1549
To maintain backwards compatibility, configUSE_MINI_LIST_ITEM defaults to 1.
16-
+ Add the ability to override send and receive completed callbacks for each
17-
instance of a stream buffer or message buffer. The feature can be controlled
18-
by setting the configuration option configUSE_SB_COMPLETED_CALLBACK in
19-
FreeRTOSConfig.h. When the option is set to 1, APIs
20-
xStreamBufferCreateWithCallback() or xStreamBufferCreateStaticWithCallback()
21-
(and likewise APIs from message buffer) can be used to create a stream buffer
22-
or message buffer instance with application provided callback overrides. When
23-
the option is set to 0, then the default callbacks as defined by
24-
sbSEND_COMPLETED() and sbRECEIVE_COMPLETED() macros are invoked. To maintain
25-
backwards compatibility, configUSE_SB_COMPLETED_CALLBACK defaults to 0. The
26-
functionaility is currently not supported for MPU enabled ports.
50+
+ Simplify prvInitialiseNewTask to memset newly allocated TCB structures
51+
to zero, and remove code that set individual structure members to zero.
52+
+ Add prototype for prvPortYieldFromISR to the POSIX port so that it builds
53+
without any warning with -Wmissing-prototypes compiler option.
54+
+ Add top of stack and end of stack to the task info report obtained using
55+
vTaskGetInfo(). Contributed by @shreyasbharath.
56+
+ Add a cap to the cRxLock and cTxLock members of the queue data structure.
57+
These locks count the number items received and sent to the queue while
58+
the queue was locked. These are later used to unblock tasks waiting on
59+
the queue when the queue is unlocked. This PR caps the values of the
60+
cRxLock and cTxLock to the number of tasks in the system because we cannot
61+
unblock more tasks than there are in the system. Note that the same assert
62+
could still be triggered is the application creates more than 127 tasks.
63+
+ Changed uxAutoReload parameter in timer functions to xAutoReload. The
64+
type is now BaseType_t. This matches the type of pdTRUE and pdFALSE.
65+
The new function xTimerGetAutoReload() provides the auto-reload state as
66+
a BaseType_t. The legacy function uxTimerGetAutoReload is retained with the
67+
original UBaseType_t return value.
68+
+ Fix support for user implementations of tickless idle that call
69+
vTaskStepTick() with xExpectedIdleTime ticks to step. The new code
70+
ensures xTickCount reaches xNextTaskUnblockTime inside xTaskIncrementTick()
71+
instead of inside vTaskStepTick(). This fixes the typical case where a task
72+
wakes up one tick late and a rare case assertion failure when xTickCount\
73+
rolls over. Contributed by @jefftenney.
74+
+ Fix deadlock in event groups when pvPortMalloc and vPortFree functions
75+
are protected with a mutex. Contributed by @clemenskresser.
76+
+ Fix a warning in tasks.c when compiled with -Wduplicated-branches
77+
GCC option. Contributed by @pierrenoel-bouteville-act.
78+
+ Fix compilation error in tasks.c when configSUPPORT_DYNAMIC_ALLOCATION
79+
is set to zero. Contributed by @rdpoor.
80+
+ Fix prvWriteMessageToBuffer() function in stream_buffer.c so that it correctly
81+
copies length on big endian platforms too.
82+
+ Remove the need for INCLUDE_vTaskSuspend to be set to 1
83+
when configUSE_TICKLESS_IDLE is enabled. Contributed by @pramithkv.
84+
+ Update the RL78 IAR port to the latest version of IAR which uses the
85+
industry standard ELF format as opposed to earlier UBROF object format.
86+
Contributed by @felipe-iar.
87+
+ Add tick type is atomic flag when tick count is 16-bit to PIC24 port. This
88+
allows the PIC24 family of 16 bit processors to read the tick count without
89+
a critical section when the tick count is also 16 bits.
90+
+ Fix offset-out-of-range errors for GCC CM3/CM4 mpu ports when
91+
Link Time Optimization is enabled. Contributed by @niniemann.
92+
+ Remove #error when RISC-V port is compiled on a 64-bit RISC-V platform.
93+
Contributed by @cmdrf.
94+
+ Fix ullPortInterruptNesting alignment in Cortex-A53 port so that it is
95+
8-byte aligned. This fixes the unaligned access exception. Contributed
96+
by @Atomar25.
97+
+ Fix Interrupt Handler Register Function and Exception Process in NiosII
98+
Port. Contributed by @ghost.
99+
+ Change FreeRTOS IRQ Handler for Cortex-A53 SRE port to store and restore
100+
interrupt acknowledge register. This ensures that the SRE port behavior
101+
matches the Memory Mapped IO port. Contributed by @sviaunxp.
102+
+ Update the uncrustify config file to match the version of the uncrustify
103+
used in the CI Action. Also, pin the version of uncrustify in CI. Contributed
104+
by @swaldhoer.
27105

28106
Changes between FreeRTOS V10.4.5 and FreeRTOS V10.4.6 released November 12 2021
29107

@@ -64,43 +142,43 @@ Changes between FreeRTOS V10.4.4 and FreeRTOS V10.4.5 released September 10 2021
64142
this change.
65143

66144
Changes between FreeRTOS V10.4.3 and FreeRTOS V10.4.4 released May 28 2021
67-
+ Minor performance improvements to xTaskIncrementTick() achieved by providing
68-
macro versions of uxListRemove() and vListInsertEnd().
69-
+ Minor refactor of timers.c that obsoletes the need for the
70-
tmrCOMMAND_START_DONT_TRACE macro and removes the need for timers.c to
71-
post to its own event queue. A consequence of this change is that auto-
72-
reload timers that miss their intended next execution time will execute
73-
again immediately rather than executing again the next time the command
74-
queue is processed. (thanks Jeff Tenney).
75-
+ Fix a race condition in the message buffer implementation. The
76-
underlying cause was that length and data bytes are written and read as
77-
two distinct operations, which both modify the size of the buffer. If a
78-
context switch occurs after adding or removing the length bytes, but
79-
before adding or removing the data bytes, then another task may observe
80-
the message buffer in an invalid state.
81-
+ The xTaskCreate() and xTaskCreateStatic() functions accept a task priority
82-
as an input parameter. The priority has always been silently capped to
83-
(configMAX_PRIORITIES - 1) should it be set to a value above that priority.
84-
Now values above that priority will also trigger a configASSERT() failure.
145+
+ Minor performance improvements to xTaskIncrementTick() achieved by providing
146+
macro versions of uxListRemove() and vListInsertEnd().
147+
+ Minor refactor of timers.c that obsoletes the need for the
148+
tmrCOMMAND_START_DONT_TRACE macro and removes the need for timers.c to
149+
post to its own event queue. A consequence of this change is that auto-
150+
reload timers that miss their intended next execution time will execute
151+
again immediately rather than executing again the next time the command
152+
queue is processed. (thanks Jeff Tenney).
153+
+ Fix a race condition in the message buffer implementation. The
154+
underlying cause was that length and data bytes are written and read as
155+
two distinct operations, which both modify the size of the buffer. If a
156+
context switch occurs after adding or removing the length bytes, but
157+
before adding or removing the data bytes, then another task may observe
158+
the message buffer in an invalid state.
159+
+ The xTaskCreate() and xTaskCreateStatic() functions accept a task priority
160+
as an input parameter. The priority has always been silently capped to
161+
(configMAX_PRIORITIES - 1) should it be set to a value above that priority.
162+
Now values above that priority will also trigger a configASSERT() failure.
85163
+ Replace configASSERT( pcQueueName ) in vQueueAddToRegistry with a NULL
86-
pointer check.
87-
+ Introduce the configSTACK_ALLOCATION_FROM_SEPARATE_HEAP configuration
88-
constant that enables the stack allocated to tasks to come from a heap other
89-
than the heap used by other memory allocations. This enables stacks to be
90-
placed within special regions, such as fast tightly coupled memory.
91-
+ If there is an attempt to add the same queue or semaphore handle to the
92-
queue registry more than once then prior versions would create two separate
93-
entries. Now if this is done the first entry is overwritten rather than
94-
duplicated.
95-
+ Update the ESP32 port and TF-M (Trusted Firmware M)code to the latest from
96-
their respective repositories.
97-
+ Correct a build error in the POSIX port.
98-
+ Additional minor formatting updates, including replacing tabs with spaces
99-
in more files.
100-
+ Other minor updates include adding additional configASSERT() checks and
101-
correcting and improving code comments.
102-
+ Go look at the smp branch to see the progress towards the Symetric
103-
Multiprocessing Kernel. https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/smp
164+
pointer check.
165+
+ Introduce the configSTACK_ALLOCATION_FROM_SEPARATE_HEAP configuration
166+
constant that enables the stack allocated to tasks to come from a heap other
167+
than the heap used by other memory allocations. This enables stacks to be
168+
placed within special regions, such as fast tightly coupled memory.
169+
+ If there is an attempt to add the same queue or semaphore handle to the
170+
queue registry more than once then prior versions would create two separate
171+
entries. Now if this is done the first entry is overwritten rather than
172+
duplicated.
173+
+ Update the ESP32 port and TF-M (Trusted Firmware M)code to the latest from
174+
their respective repositories.
175+
+ Correct a build error in the POSIX port.
176+
+ Additional minor formatting updates, including replacing tabs with spaces
177+
in more files.
178+
+ Other minor updates include adding additional configASSERT() checks and
179+
correcting and improving code comments.
180+
+ Go look at the smp branch to see the progress towards the Symetric
181+
Multiprocessing Kernel. https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/smp
104182

105183
Changes between FreeRTOS V10.4.2 and FreeRTOS V10.4.3 released December 14 2020
106184

0 commit comments

Comments
 (0)