- FreeRTOS kernel 10.5.0
- Ports for GCC, IAR, Arm® compilers and Cortex®-M0 (CM0), Cortex®-M0+ (CM0P), Cortex®-M4 (CM4), Cortex®-M33 (CM33), Cortex®-R4 (CR4) and Cortex®-M7 (CM7) CPUs
- FreeRTOSConfig.h template with the recommended configuration options
- Cortex®-R4 (CR4) is currently supported only on GCC_ARM
See README.md for a complete description of FreeRTOS.
Problem | Workaround |
---|---|
In Eclipse IDE, call stack does not show when debugging multithreaded applications with FreeRTOS. | To see the call stack properly, do one of the following options: 1. Disable compiler optimization. To disable compiler optimization on ARMC6 & GCC_ARM toolchains, please add CFLAGS+=-O0 to application Makefile 2. Add fno-omit-frame-pointer in application Makefile by adding CFLAGS+=-fno-omit-frame-pointer. 3. Above two options will increase some amount of code size. If there is a memory constraint, then please use Visual Studio Code IDE for debugging. To use, Visual Studio Code for ModusToolbox™ IDE Refer User Manual section at ModusToolbox™ Software page. |
- Added support of DSRAM feature for 20829B0 kit (CM33) on IAR compiler
- Added support for 20829B0 kit (CM33) on IAR compiler
- Updated to upstream FreeRTOS kernel version 10.5.0
- Modified the FreeRTOSConfig.h of CR4 port to fix the issue with debugger
- Fixed MISRA warnings
- DSRAM support added for CM33 ARM port
- Added functions to save and restore context before sleep for CM33
- Created a common section for frequently called freertos functions
- Added Cortex®-M7 (CM7) support based on upstream FreeRTOS kernel version 10.4.3 LTS Patch 2
- Updated to upstream FreeRTOS kernel version 10.4.3 LTS Patch 2
- Added Cortex®-R4 (CR4) support based on upstream FreeRTOS kernel version 10.4.3 LTS Patch 1
- Updated to match the upstream FreeRTOS kernel version 10.4.3
- Updated to match the upstream FreeRTOS kernel version 10.4.3 LTS Patch 1
-
Updated to match the upstream FreeRTOS kernel version 10.3.1
-
Added ports for Cortex®-M0 and Cortex®-M0+ CPUs.
-
Added ports for the ARM Compiler 6 (based on GCC port files).
-
Updated the FreeRTOSConfig.h template to enable configuration options required by RTOS support libraries:
#define configUSE_MUTEXES 1 #define configUSE_RECURSIVE_MUTEXES 1 #define configUSE_COUNTING_SEMAPHORES 1 #define configSUPPORT_STATIC_ALLOCATION 1 #define configUSE_TRACE_FACILITY 1 #define INCLUDE_xTimerPendFunctionCall 1
-
Enabled allocation of thread reentrancy structures for each task:
#define configUSE_NEWLIB_REENTRANT 1
-
Automatically enable low-power tickless mode based on ModusToolbox™ device configurator selection:
#if defined(CY_CFG_PWR_SYS_IDLE_MODE) && \ ((CY_CFG_PWR_SYS_IDLE_MODE == CY_CFG_PWR_MODE_SLEEP) || \ (CY_CFG_PWR_SYS_IDLE_MODE == CY_CFG_PWR_MODE_DEEPSLEEP)) extern void vApplicationSleep( uint32_t xExpectedIdleTime ); #define portSUPPRESS_TICKS_AND_SLEEP( xIdleTime ) vApplicationSleep( xIdleTime ) #define configUSE_TICKLESS_IDLE 2 #else #define configUSE_TICKLESS_IDLE 0 #endif
-
Automatically configure the deep sleep latency based on ModusToolbox™ device configurator selection:
#if( CY_CFG_PWR_DEEPSLEEP_LATENCY > 0 ) #define configEXPECTED_IDLE_TIME_BEFORE_SLEEP CY_CFG_PWR_DEEPSLEEP_LATENCY #endif
-
Added dependency on the CLib FreeRTOS support and RTOS abstraction libraries.
This version of FreeRTOS was validated for compatibility with the following software and tools:
Software and tools | Version |
---|---|
ModusToolbox™ software environment | 3.2 |
Peripheral driver library (mtb-pdl-cat1 ) |
3.10.0 |
GCC compiler | 11.3.1 |
IAR compiler | 9.40.2 |
Arm® compiler 6 | 6.16 |
Usage of the Arm® compiler 6 with enabled LTO (link-time optimization) option can result in an incorrect behavior of the application in some scenarios. It is recommended to avoid enabling LTO compiler/linker flags (-flto
)
when using Arm® Compiler 6 with FreeRTOS applications.
- FreeRTOS README.md
- FreeRTOS API documentation
- FreeRTOS homepage
- ModusToolbox™ software environment, quick start guide, documentation, and videos
- PSoC™ 6 technical reference manuals
- PSoC™ 6 datasheets
- Cypress semiconductor website
© Cypress Semiconductor Corporation, 2019-2021