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 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 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.
<PortName> are placed to folder
Project-specific part includes three header files that should be included in project:
- Describes project-level RTOS configuration macros.
- 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
- 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.
Files in common part are really common for all RTOS ports
|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|
Files in target-specific part are individual for any RTOS port. These files bring code that suit target processor and cross-compiler requirements.
|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)|
For more details about target- and compiler-specific port implementations see corresponding page:
 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 • Русский|