Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time

FreeRTOS for Infineon MCUs

What's included?

  • 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.

Known Issues

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.

Changelog

v10.5.002

  • Added support of DSRAM feature for 20829B0 kit (CM33) on IAR compiler

v10.5.001

  • Added support for 20829B0 kit (CM33) on IAR compiler

v10.5.0

  • Updated to upstream FreeRTOS kernel version 10.5.0

v10.4.306

  • Modified the FreeRTOSConfig.h of CR4 port to fix the issue with debugger
  • Fixed MISRA warnings
  • DSRAM support added for CM33 ARM port

v10.4.305

  • Added functions to save and restore context before sleep for CM33

v10.4.304

  • Created a common section for frequently called freertos functions

v10.4.303

  • Added Cortex®-M7 (CM7) support based on upstream FreeRTOS kernel version 10.4.3 LTS Patch 2

v10.4.302

  • Updated to upstream FreeRTOS kernel version 10.4.3 LTS Patch 2

v10.4.4

  • Added Cortex®-R4 (CR4) support based on upstream FreeRTOS kernel version 10.4.3 LTS Patch 1

v10.4.3

  • 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

v10.3.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.

Supported software and tools

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

Known issues

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.

More information


© Cypress Semiconductor Corporation, 2019-2021