PORTs

General Description

A port is target-specific implementation of the RTOS. Port contains a number of definitions and declarations that reflect target processor and cross-compiler features. Any port consists of two parts:

  • Common part;
  • Target-specific part;

Any official Release, Sample or user project that uses the RTOS includes these two parts and project-dependent part also.

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


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
commdefs.h target-specific type aliases and other common target-dependent definitions
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 target platforms are supported for now:

Processor (Manufacturer) Cross-Compiler (Developer)
MSP430 (Texas Instruments) EW430 (IAR Systems)
AVR (Atmel) EWAVR (IAR Systems)
Blackfin (Analog Devices) VisualDSP++ (Analog Devices)
ADuC70xx (Analog Devices) EWARM (IAR Systems)
AT91SAM7 (Atmel) EWARM (IAR Systems)
LPC2xxx (NXP) EWARM (IAR Systems)
STR71x (STMicroelectronics) EWARM (IAR Systems)
MB91xxx (Fujitsu) SOFTUNE Workbench V6

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