RTOS Description File#

The rtos_description.h file is a configuration file that indicates to the whole Micrium OS which components are present. It allows components of Micrium OS to know what other components are enabled or disabled in the system. For example, knowing if the file system is present would allow the HTTP server or the MSC USB class to know that they can use it.

The rtos_description.h file is also used to indicate which CPU architecture is used (via RTOS_CPU_SEL) and which toolchain is used to build the project (via RTOS_TOOLCHAIN_SEL).The toolchain #defines has a special "automatic" values (RTOS_TOOLCHAIN_AUTO), where the system will attempt to automatically detect which to use. In some cases this automatic detection does not work, so you must specify that information yourself. Please refer to the section below to know which values can be specified for those two defines.

By default, the rtos_description.h file is located together with all other configuration files (xxxx_cfg.h). Please note that the xxxx_AVAIL defines do not need to have a value, they simply should be #define'd.

If these #defines do not correctly reflect which components are present in your project, this could lead to problems, such as modules not being initialized correctly, features not being available, or compilation errors.

The Listing - rtos description.h example file in the RTOS Description File page shows an rtos_description.h file for a kernel-only project on a Cortex-M4 MCU, such as Silicon Labs' Pearl Gecko series. Please note the use of both "automatic" values, which are automatically resolved by the system.

Listing - rtos_description.h example file#
/***************************************************************************//**
 * @brief RTOS Description - Configuration Template File
 *******************************************************************************
 * # License
 * <b>Copyright 2018 Silicon Laboratories Inc. www.silabs.com</b>
 *******************************************************************************
 *
 * The licensor of this software is Silicon Laboratories Inc.  Your use of this
 * software is governed by the terms of Silicon Labs Master Software License
 * Agreement (MSLA) available at
 * www.silabs.com/about-us/legal/master-software-license-agreement.  This
 * software is distributed to you in Source Code format and is governed by the
 * sections of the MSLA applicable to Source Code.
 *
 ******************************************************************************/
/*********************************************************************************************************
 *********************************************************************************************************
 *                                               MODULE
 *********************************************************************************************************
 ********************************************************************************************************/

#ifndef  _RTOS_DESCRIPTION_H_
#define  _RTOS_DESCRIPTION_H_

/*********************************************************************************************************
 *********************************************************************************************************
 *                                             INCLUDE FILES
 *********************************************************************************************************
 ********************************************************************************************************/

#include  <rtos/common/include/rtos_opt_def.h>

/*********************************************************************************************************
 *********************************************************************************************************
 *                                       ENVIRONMENT DESCRIPTION
 *********************************************************************************************************
 ********************************************************************************************************/

#define  RTOS_CPU_SEL                                       RTOS_CPU_SEL_SILABS_GECKO_AUTO

#define  RTOS_TOOLCHAIN_SEL                                 RTOS_TOOLCHAIN_AUTO

/*********************************************************************************************************
 *********************************************************************************************************
 *                                       RTOS MODULES DESCRIPTION
 *********************************************************************************************************
 ********************************************************************************************************/

#define  RTOS_MODULE_KERNEL_AVAIL
#define  RTOS_MODULE_COMMON_AVAIL

/*********************************************************************************************************
 *********************************************************************************************************
 *                                             MODULE END
 *********************************************************************************************************
 ********************************************************************************************************/

#endif  // End of rtos_description.h module include.

List of Possible Values#

All of the possible values for the three selection defines are listed below. They can all be found in <micrium_os/common/include/rtos_opt_def.h>.

CPU Selection Define (RTOS_CPU_SEL)#

  • RTOS_CPU_SEL_SILABS_GECKO_AUTO

  • RTOS_CPU_SEL_ARM_CORTEX_M0P

  • RTOS_CPU_SEL_ARM_CORTEX_M3

  • RTOS_CPU_SEL_ARM_CORTEX_M4

  • RTOS_CPU_SEL_ARM_CORTEX_M33

  • RTOS_CPU_SEL_EMPTY

Toolchain Selection Define (RTOS_TOOLCHAIN_SEL)#

  • RTOS_TOOLCHAIN_ARMCC

  • RTOS_TOOLCHAIN_GNU

  • RTOS_TOOLCHAIN_IAR

  • RTOS_TOOLCHAIN_AUTO