Download FreeRTOS

Quality RTOS & Embedded Software

FreeRTOS Kernel v10.4.0 is now available

FreeRTOS kernel v10.4.0 is now available for download. The new version brings numerous new features such as improved direct to task notifications functionality, enhancements to kernel ports that support memory protection units (MPUs), and a new Linux port. See the change history for additional details.

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.

About the author

Lucio is a Product Manager at Amazon Web Services. He has held various technical and marketing roles in the semiconductor industry for the past 20 years. As an opinionated and prolific author he has published numerous articles and technical books on programming for embedded control applications. Following his passion for flying, he has achieved both FAA and EASA private pilot licenses.
View articles by this author
FreeRTOS forums Get industry-leading support from experts and collaborate with peers around the globe. View Forums
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.