Direct to Task Notification Enhancements
Prior to FreeRTOS V10.4.0, each task had a single direct to task notifications. From FreeRTOS V10.4.0, each task now has access to a user definable array of task notifications and the task notification API has been extended with new functions postfixed with "Indexed" to allow them to operate on any task notification within the array.A note for Tracealyzer users: The task notification feature in FreeRTOS V10.4.0 is backward compatible with that in FreeRTOS V10.3.x with the exception of trace recorder macros. Tracealyzer users will need to update their trace recorder code to that provided in the FreeRTOS V10.4.0 release, and set TRC_CFG_FREERTOS_VERSION to TRC_FREERTOS_VERSION_10_4_0 in their trcConfig.h files.
Improved MPU support for AMRv7-M and ARMv8-M
FreeRTOS V10.4.0 includes improved Memory Protection Unit (MPU) support for both the ARMv7-M (ARM Cortex-M3/4/7) and ARMv8-M (ARM Cortex-M23/33) RTOS ports. Additionally the ARMv7-M MPU port now supports devices that have 16 MPU regions, and tickless idling support has been extended to the the ARMv8-M RTOS port. See the MPU support documentation page for important upgrade information.
Contributed Linux port change
A new POSIX port layer allows FreeRTOS to run on Linux hosts in the same way the Windows port layer enables FreeRTOS to run on Windows hosts.The original Linux FreeRTOS port provided by William Davy has been replaced with an enhanced port provided by David Vrabel. Read the Linux simulator documentation page for more information.
Backward Compatibility
FreeRTOS v10.4.0 is a drop in replacement for FreeRTOS V10.3.x for all ports other than those supporting memory protection units (MPUs).
If updating a project from a previous FreeRTOS kernel version, refer to the Upgrade to FreeRTOSv10.4.0 page.