Download FreeRTOS

Quality RTOS & Embedded Software

FreeRTOS website now available in Simplified Chinese
New FreeRTOS Long Term Support version now available.
FreeRTOS Extended Maintenance Program (EMP) registration now open.
FreeRTOS-Plus-TCP v3.0.0 released:
Featured FreeRTOS IoT Integrations:

Upgrading From FreeRTOS V10.3.0 to V10.4.x

Note on future versioning:

Until now the FreeRTOS zip file releases have carried the version number of the kernel release they contain. For example, contains version 10.4.0 of the FreeRTOS kernel. However, the kernel is not the only individually versioned library contained in the zip file, and the number of libraries in the zip file will increase in future releases. Therefore, to better reflect that the zip file actually contains a collection of libraries integrated together, future releases will use a date stamp version instead of the kernel’s version

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). The page that documents the FreeRTOS MPU port provides upgrade information.

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.

See the change history for more details of new ports and other enhancements.

Feature enhancements

Direct to Task Notification Enhancements

Prior to FreeRTOS V10.4.0 each task only had a single direct to task notifications. From FreeRTOS V10.4.0 each task has a user definable array of task notifications.

Other Changes

Contributed Linux Port change

The old Linux FreeRTOS port provided by William Davy has been replaced with an enhanced port provided by David Vrabel. The new version fixes a long standing scheduler bug where two tasks could execute at the same time during a context switch. Read the Linux simulator documentation for more information.

Formatting Changes

Code formatting is now automated to facilitate the increase in collaborative development in Git. The auto-formatted code is not identical to the original formatting conventions. Most notably spaces are now used in place of tabs.


Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.