|
1 | 1 | Documentation and download available at https://www.FreeRTOS.org/ |
2 | 2 |
|
| 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 | + |
3 | 117 | Changes between FreeRTOS V10.5.1 and FreeRTOS 10.6.0 released July 13, 2023 |
4 | 118 |
|
5 | 119 | + Add a new MPU wrapper that places additional restrictions on unprivileged |
|
0 commit comments