Skip to content

Commit 5bb2b59

Browse files
authored
Update History.txt for v11.0.0 (#926)
* Update History.txt for v11.0.0
1 parent b0439d3 commit 5bb2b59

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

History.txt

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,119 @@
11
Documentation and download available at https://www.FreeRTOS.org/
22

3+
Changes between FreeRTOS V10.6.2 and FreeRTOS V11.0.0 released December 18, 2023
4+
5+
+ SMP merged into the mainline: While FreeRTOS introduced Asymmetric
6+
Multiprocessing (AMP) support in 2017, FreeRTOS Version 11.0.0 is the
7+
first to merge Symmetric Multiprocessing (SMP) support into the mainline
8+
release. SMP enables one instance of the FreeRTOS Kernel to schedule tasks
9+
across multiple identical processor cores. We thank Mike Bruno and Jerry
10+
McCarthy of XMOS and, Darian Liang, Sudeep Mohanty and Zim Kalinowski of
11+
Espressif Systems for their contributions.
12+
+ Switch MISRA compliance checking from PC Lint to Coverity, and update from
13+
MISRA C:2004 to MISRA C:2012.
14+
+ Add a template FreeRTOSConfig.h, inclusive of an abbreviated explanation of
15+
each configuration item. Application writers can use this template as a
16+
starting point to create the FreeRTOSConfig.h file for their application.
17+
+ Add a template FreeRTOS port which can be used as a starting point for
18+
developing a new FreeRTOS port.
19+
+ Add bounds checking and obfuscation to internal heap block pointers in
20+
heap_4.c and heap_5.c to help catch pointer corruptions. The application can
21+
enable these checks by setting configENABLE_HEAP_PROTECTOR to 1 in their
22+
FreeRTOSConfig.h. We thank @oliverlavery for their contribution.
23+
+ Update vTaskList and vTaskGetRunTimeStats APIs to replace the use of sprintf
24+
with snprintf.
25+
+ Add trace macros to ports that enable tracing the interaction of ISRs with
26+
scheduler events. We thank @conara for their contribution.
27+
+ Add trace macros that enable tracing of entering and exiting all APIs. We
28+
thank @Techcore123 for their contribution.
29+
+ Add uxTaskBasePriorityGet and uxTaskBasePriorityGetFromISR APIs to get the
30+
base priority of a task. The base priority of a task is the priority that
31+
was last assigned to the task - which due to priority inheritance, may not
32+
be the current priority of the task.
33+
+ Add pdTICKS_TO_MS macro to convert time in FreeRTOS ticks to time in
34+
milliseconds. We thank @Dazza0 for their contribution.
35+
+ Add default implementations of vApplicationGetIdleTaskMemory and
36+
vApplicationGetTimerTaskMemory. The application can enable these default
37+
implementations by setting configKERNEL_PROVIDED_STATIC_MEMORY to 1 in their
38+
FreeRTOSConfig.h. We thank @mdnr-g for their contribution.
39+
+ Update vTaskGetInfo to include start and end of the stack whenever both
40+
values are available. We thank @vinceburns for their contribution.
41+
+ Prevent tasks waiting for a notification from being resumed by calls to
42+
vTaskResume or vTaskResumeFromISR. We thank @Moral-Hao for their
43+
contribution.
44+
+ Add asserts to validate that the application has correctly installed
45+
FreeRTOS handlers for PendSV and SVCall interrupts on Cortex-M devices.
46+
We thank @jefftenney for their contribution.
47+
+ Rename ARM_CA53_64_BIT and ARM_CA53_64_BIT_SRE ports to Arm_AARCH64 and
48+
Arm_AARCH64_SRE respectively as these ports are applicable to all AArch64
49+
architecture. We thank @urutva for their contribution.
50+
+ Add CMake support to allow the application writer to select the RISC-V
51+
chip extension. We thank @JoeBenczarski for their contribution.
52+
+ Add CMake support to allow the application writer to build an application
53+
with static allocation only. We thank @conara for their contribution.
54+
+ Make taskYIELD available to unprivileged tasks for ARMv8-M ports.
55+
+ Update Cortex-M23 ports to not use PSPLIM_NS. We thank @urutva for their
56+
contribution.
57+
+ Update the SysTick setup code for ARMv8-M ports to first configure the clock
58+
source and then enable SysTick. This is needed to address a bug in QEMU
59+
versions older than 7.0.0, which causes an emulation error if SysTick is
60+
enabled without first selecting a valid clock source. We thank @jefftenney
61+
for their contribution.
62+
+ Add the port-optimized task selection algorithm optionally available for
63+
ARMv7-M ports to the ARMv8-M ports. We thank @jefftenney for their
64+
contribution.
65+
+ Improve the speed of pvPortMalloc in heap_4.c and heap_5.c by removing
66+
unnecessary steps while splitting a large memory block into two. We thank
67+
@Moral-Hao for their contribution.
68+
+ Shorten the critical section in pvPortMalloc in heap_2.c, heap_4.c and
69+
heap_5.c by moving the size calculation out of the critical section. We thank
70+
@Moral-Hao for their contribution.
71+
+ Update xTaskNotifyWait and ulTaskNotifyTake to remove the non-deterministic
72+
operation of traversing a linked link from a critical section. We thank
73+
@karver8 for their contribution.
74+
+ Fix stack end and stack size computation in POSIX port to meet the stack
75+
alignment requirements on MacOS. We thank @tegimeki for their contribution.
76+
+ Update the vTaskPrioritySet implementation to use the new priority when the
77+
task has inherited priority from a mutex it is holding, and the new priority
78+
is bigger than the inherited priority. We thank @Moral-Hao for their
79+
contribution.
80+
+ Add stack alignment adjustment if stack grows upwards. We thank @ivq for
81+
their contribution.
82+
+ Fix pxTopOfStack calculation in configINIT_TLS_BLOCK when picolib C is
83+
selected as the C library implementation to ensure that
84+
pxPortInitialiseStack does not overwrite the data in the TLS block portion
85+
of the stack. We thank @bebebib-rs for their contribution.
86+
+ Fix vPortEndScheduler() for the MSVC port so that the function
87+
prvProcessSimulatedInterrupts is not stuck in an infinite loop when the
88+
scheduler is stopped. We thank @Ju1He1 for their contribution.
89+
+ Add the Pull Request (PR) Process explaining the stages a PR goes through.
90+
91+
Changes between FreeRTOS V10.6.1 and FreeRTOS V10.6.2 released November 29, 2023
92+
93+
+ Add the following improvements to the new MPU wrapper (mpu_wrappers_v2.c)
94+
introduced in version 10.6.0:
95+
- Introduce Access Control List (ACL) feature to allow the application
96+
writer to control an unprivileged task’s access to kernel objects.
97+
- Update the system call entry mechanism to only require one Supervisor
98+
Call (SVC) instruction.
99+
- Wrap parameters for system calls with more than four parameters in a
100+
struct to avoid special handling during system call entry.
101+
- Fix 2 possible integer overflows.
102+
- Convert some asserts to run time parameter checks.
103+
104+
Changes between FreeRTOS V10.6.0 and FreeRTOS V10.6.1 released August 17, 2023
105+
106+
+ Add runtime parameter checks to functions in mpu_wrappers_v2.c file.
107+
The same checks are already performed in API implementations using
108+
asserts.
109+
We thank the following people for their inputs in these changes:
110+
- Lan Luo, Zixia Liu of School of Computer Science and Technology,
111+
Anhui University of Technology, China.
112+
- Xinwen Fu of Department of Computer Science, University of
113+
Massachusetts Lowell, USA.
114+
- Xinhui Shao, Yumeng Wei, Huaiyu Yan, Zhen Ling of School of
115+
Computer Science and Engineering, Southeast University, China.
116+
3117
Changes between FreeRTOS V10.5.1 and FreeRTOS 10.6.0 released July 13, 2023
4118

5119
+ Add a new MPU wrapper that places additional restrictions on unprivileged

0 commit comments

Comments
 (0)