Ports

From scmRTOS

Jump to: navigation, search

Contents

General Description

To make a scmRTOS project work, three parts should be combined:

  • Common part (used with any target processor and cross-compiler);
  • Target-specific part (the port);
  • Project-specific part.

Therefore, port is target-specific part of the RTOS. It contains a number of definitions and declarations that reflects target processor and cross-compiler features.

Any official Release, Sample or user project should include all of these three parts.

Common Part

Common part contains main RTOS definitions and declarations such as RTOS kernel, interprocess communication services and little support library. All Common sources stand at Common subfolder.

Target-specific Part

Target-specific part describes target processor-specific and toolkit-dependent features of the RTOS:

  • Target-level configuration macros;
  • Critical section definition;
  • Some performance-critical functions;
  • Interrupt and interrupt service routines support;
  • Target processor specific process's constructor;
  • Idle process declaration.

Target-specific sources located at <PortName> subfolder where PortName descends from target processor and cross-compiler names.

Subfolders Common and <PortName> are placed to folder scmRTOS (1).

Project-specific Part

Project-specific part includes three header files that should be included in project:

scmRTOS_CONFIG.h
Describes project-level RTOS configuration macros.
scmRTOS_TARGET_CFG.h
Contains project-level tuning code, in particular System Timer and Context Switch Software interrupt stuff. Generally, Target-specific Part already contains default definitions of System Timer and Software Context Switch interrupts. The user can override these setting to fit project requirements by editing scmRTOS_target_cfg.h.
scmRTOS_extensions.h
Controls the using of RTOS extensions. Any extension can be linked up to the project by including of the appropriate header file.

Port File Set

Each Port part contains a set of header and source files. The lists of the files and its descriptions are showed below.

Common Part

Files in common part are really common for all RTOS ports

Filename Description
scmRTOS.h main RTOS header, includes all other headers of the RTOS
scmRTOS_defs.h common RTOS macros and type definitions
OS_Kernel.h kernel types definitions and inline code
OS_Kernel.cpp kernel data declarations and callable code
OS_Services.h RTOS interprocess communications type definitions - classes and templates
OS_Services.cpp RTOS interprocess communications callable code - function-members implementation
usrlib.h support library type definitions - mainly ring buffer template that is used for OS::channel implementation
usrlib.cpp support library source

Target-specific Part

Files in target-specific part are individual for any RTOS port. These files bring code that suit target processor and cross-compiler requirements.

Filename Description
OS_Target.h target-specific header: configuration macros, critical section definition, performance-critical functions,interrupt and interrupt service routines support
OS_Target_cpp.cpp target-specific C++ source: target processor specific process's constructor, Idle process declaration, System Timer interrupt service routine definition
OS_Target_asm.xxx target-specific assembler source: low-level code such as RTOS start subroutine, context switch code
   Note: 
   where xxx - target assembler extension.

Supported Target Platforms

The following hardware platforms are supported for now:

Processor (Manufacturer) Cross-Compilers (Developer)
MSP430 (Texas Instruments) EW430 (IAR Systems), MSP-GCC (GNU)
AVR (Atmel) EWAVR (IAR Systems), AVR-GCC (GNU)
Blackfin (Analog Devices) VisualDSP++ (Analog Devices)
ADuC70xx (Analog Devices) ARM-GCC (GNU)
AT91SAM7 (Atmel) ARM-GCC (GNU)
LPC2xxx (NXP) ARM-GCC (GNU)
Cortex-M3 (ST Microelectronics, NXP) EWARM (IAR Systems), ARM-GCC (GNU)
STM8S (ST Microelectronics) EWSTM8 (IAR Systems)
Cortex-M4 (ST Microelectronics) ARM-GCC (GNU)

Ports list

For more details about target- and compiler-specific port implementations see corresponding page:


[1] Here and above the folder names specified are related to the RTOS official Releases (and Samples). The user may place all sources to any suitable location according to his project requirements. But it's strongly recommended to keep scmRTOS separate from user's project sources.


Languages English  • Русский


Personal tools