chokchai Hantanong
/
RtosTest
LED Fork
Fork of RtosTest by
Diff: scmRTOS/scmRTOS_TARGET_CFG.h
- Revision:
- 0:331db0b44b67
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scmRTOS/scmRTOS_TARGET_CFG.h Tue Sep 21 19:48:05 2010 +0000 @@ -0,0 +1,102 @@ +//****************************************************************************** +//* +//* FULLNAME: Single-Chip Microcontroller Real-Time Operating System +//* +//* NICKNAME: scmRTOS +//* +//* PROCESSOR: ARM Cortex-M3 +//* +//* TOOLKIT: EWARM (IAR Systems) +//* +//* PURPOSE: Project Level Target Extensions Config +//* +//* Version: 3.10 +//* +//* $Revision: 196 $ +//* $Date:: 2008-06-19 #$ +//* +//* Copyright (c) 2003-2010, Harry E. Zhurov +//* +//* Permission is hereby granted, free of charge, to any person +//* obtaining a copy of this software and associated documentation +//* files (the "Software"), to deal in the Software without restriction, +//* including without limitation the rights to use, copy, modify, merge, +//* publish, distribute, sublicense, and/or sell copies of the Software, +//* and to permit persons to whom the Software is furnished to do so, +//* subject to the following conditions: +//* +//* The above copyright notice and this permission notice shall be included +//* in all copies or substantial portions of the Software. +//* +//* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +//* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +//* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +//* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH +//* THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +//* +//* ================================================================= +//* See http://scmrtos.sourceforge.net for documentation, latest +//* information, license and contact details. +//* ================================================================= +//* +//****************************************************************************** +//* mbed port by Igor Skochinsky + +#ifndef scmRTOS_TARGET_CFG_H +#define scmRTOS_TARGET_CFG_H + +#include "device.h" + +// Define SysTick clock frequency and its interrupt rate in Hz. +#define SYSTICKFREQ 100000000 +#define SYSTICKINTRATE 1000 + +//------------------------------------------------------------------------------ +// +// System Timer stuff +// +// +namespace OS +{ +extern "C" void SysTick_Handler(); +} + +#define LOCK_SYSTEM_TIMER() ( *CPU_SYSTICKCSR &= ~CPU_SYSTICKCSR_EINT ) +#define UNLOCK_SYSTEM_TIMER() ( *CPU_SYSTICKCSR |= CPU_SYSTICKCSR_EINT ) + +//------------------------------------------------------------------------------ +// +// Context Switch ISR stuff +// +// +namespace OS +{ +#if scmRTOS_IDLE_HOOK_ENABLE == 1 + void IdleProcessUserHook(); +#endif + +#if scmRTOS_CONTEXT_SWITCH_SCHEME == 1 + + INLINE inline void RaiseContextSwitch() { *CPU_ICSR |= 0x10000000; } + + #define ENABLE_NESTED_INTERRUPTS() + + #if scmRTOS_SYSTIMER_NEST_INTS_ENABLE == 0 + #define DISABLE_NESTED_INTERRUPTS() TCritSect cs + #else + #define DISABLE_NESTED_INTERRUPTS() + #endif + +#else + #error "Cortex-M3 port supports software interrupt switch method only!" + +#endif // scmRTOS_CONTEXT_SWITCH_SCHEME + +} +//----------------------------------------------------------------------------- + +#endif // scmRTOS_TARGET_CFG_H +//----------------------------------------------------------------------------- +