Quick and dirty port of scmRTOS demo to mbed 1768. scmRTOS is a small RTOS written using C++. Offers (static) processes, critical sections, mutexes, messages, channels.

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers scmRTOS_config.h Source File

scmRTOS_config.h

00001 //******************************************************************************
00002 //*
00003 //*     FULLNAME:  Single-Chip Microcontroller Real-Time Operating System
00004 //*
00005 //*     NICKNAME:  scmRTOS
00006 //*
00007 //*     PROCESSOR: ARM Cortex-M3 
00008 //*
00009 //*     TOOLKIT:   EWARM (IAR Systems)
00010 //*
00011 //*     PURPOSE:   Project Level Configuration
00012 //*
00013 //*     Version: 3.10
00014 //*
00015 //*     $Revision: 196 $
00016 //*     $Date:: 2008-06-19 #$
00017 //*
00018 //*     Copyright (c) 2003-2010, Harry E. Zhurov
00019 //*
00020 //*     Permission is hereby granted, free of charge, to any person 
00021 //*     obtaining  a copy of this software and associated documentation 
00022 //*     files (the "Software"), to deal in the Software without restriction, 
00023 //*     including without limitation the rights to use, copy, modify, merge, 
00024 //*     publish, distribute, sublicense, and/or sell copies of the Software, 
00025 //*     and to permit persons to whom the Software is furnished to do so, 
00026 //*     subject to the following conditions:
00027 //*
00028 //*     The above copyright notice and this permission notice shall be included 
00029 //*     in all copies or substantial portions of the Software.
00030 //*
00031 //*     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
00032 //*     EXPRESS  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
00033 //*     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
00034 //*     IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 
00035 //*     CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 
00036 //*     TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH 
00037 //*     THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
00038 //*
00039 //*     =================================================================
00040 //*     See http://scmrtos.sourceforge.net for documentation, latest
00041 //*     information, license and contact details.
00042 //*     =================================================================
00043 //*
00044 //******************************************************************************
00045 //*     Ported by Andrey Chuikin, Copyright (c) 2008-2010
00046 
00047 #ifndef  scmRTOS_CONFIG_H
00048 #define  scmRTOS_CONFIG_H
00049 
00050 #ifndef __IAR_SYSTEMS_ASM__
00051 #include <commdefs.h>
00052 
00053 typedef word TTimeout;
00054 
00055 #endif // __IAR_SYSTEMS_ASM__
00056 
00057 #include "device.h"
00058 //------------------------------------------------------------------------------
00059 //
00060 //    Specify scmRTOS Process Count. Must be less than 31
00061 //
00062 //
00063 #define  scmRTOS_PROCESS_COUNT                  3
00064 
00065 //-----------------------------------------------------------------------------
00066 //
00067 //    scmRTOS System Timer 
00068 // 
00069 //    Nested Interrupts enable macro. Value 1 means that interrupts are
00070 //    globally enabled within System Timer ISR (this is default for Cortex-M3).
00071 // 
00072 //
00073 #define scmRTOS_SYSTIMER_NEST_INTS_ENABLE 1
00074 
00075 //-----------------------------------------------------------------------------
00076 //
00077 //    scmRTOS System Timer Tick Counter Enable
00078 //
00079 //
00080 #define  scmRTOS_SYSTEM_TICKS_ENABLE        1
00081 
00082 
00083 //-----------------------------------------------------------------------------
00084 //
00085 //    scmRTOS System Timer Hook
00086 //
00087 //
00088 #define  scmRTOS_SYSTIMER_HOOK_ENABLE       1
00089 
00090 //-----------------------------------------------------------------------------
00091 //
00092 //    scmRTOS Idle Process Hook
00093 //
00094 //
00095 #define  scmRTOS_IDLE_HOOK_ENABLE           1
00096 
00097 //-----------------------------------------------------------------------------
00098 //
00099 //    scmRTOS Idle Process Stack size (in bytes)
00100 //    (20 * sizeof(TStackItem)) - it's a minimum allowed value.
00101 //
00102 #define scmRTOS_IDLE_PROCESS_STACK_SIZE       (20 * sizeof(TStackItem))
00103 
00104 //-----------------------------------------------------------------------------
00105 //
00106 //    scmRTOS Priority Order
00107 //
00108 //    This macro defines the order of the process's priorities. Default,
00109 //    the ascending order is used. Alternatively, the descending priority 
00110 //    order can be used. On some platforms the descending order is preferred
00111 //    because of performance.   
00112 // 
00113 //    Default (corresponding to ascending order) value of macro is 0.  
00114 //    Alternative (corresponding to descending order) value of macro is 1.  
00115 //
00116 //    On Cortex-M3 the descending order is preferred for performance reason.
00117 //
00118 #define  scmRTOS_PRIORITY_ORDER 1
00119 
00120 //-----------------------------------------------------------------------------
00121 //
00122 //    scmRTOS Context Switch User Hook enable
00123 // 
00124 //    The macro enables/disables user defined hook called from system
00125 //    Context Switch Hook function.
00126 //
00127 //
00128 #define  scmRTOS_CONTEXT_SWITCH_USER_HOOK_ENABLE  0
00129 
00130 
00131 #endif // scmRTOS_CONFIG_H
00132 //-----------------------------------------------------------------------------
00133