www.pudn.com > webserver.zip > rtx.c, change:2010-01-30,size:4954b


#include <RTL.h> 
 
/*---------------------------------------------------------------------------- 
 *      RTX User configuration part BEGIN 
 *---------------------------------------------------------------------------*/ 
 
//-------- <<< Use Configuration Wizard in Context Menu >>> ----------------- 
// 
// <h>Task Definitions 
// =================== 
// 
//   <o>Number of concurrent running tasks <0-250> 
//   <i> Define max. number of tasks that will run at the same time. 
//   <i> Default: 6 
#ifndef OS_TASKCNT 
 #define OS_TASKCNT     5 
#endif 
 
//   <o>Number of tasks with user-provided stack <0-250> 
//   <i> Define the number of tasks that will use a bigger stack. 
//   <i> The memory space for the stack is provided by the user. 
//   <i> Default: 0 
#ifndef OS_PRIVCNT 
 #define OS_PRIVCNT     1 
#endif 
 
//   <o>Task stack size [bytes] <20-4096:8><#/4> 
//   <i> Set the stack size for tasks which is assigned by the system. 
//   <i> Default: 200 
#ifndef OS_STKSIZE 
 #define OS_STKSIZE     50 
#endif 
 
// <q>Check for the stack overflow 
// =============================== 
// <i> Include the stack checking code for a stack overflow. 
// <i> Note that additional code reduces the Kernel performance. 
#ifndef OS_STKCHECK 
 #define OS_STKCHECK    1 
#endif 
 
// <q>Run in privileged mode 
// ========================= 
// <i> Run all Tasks in privileged mode. 
// <i> Default: Unprivileged 
#ifndef OS_RUNPRIV 
 #define OS_RUNPRIV     1 
#endif 
 
//   <o>Number of user timers <0-250> 
//   <i> Define max. number of user timers that will run at the same time. 
//   <i> Default: 0  (User timers disabled) 
#ifndef OS_TIMERCNT 
 #define OS_TIMERCNT    0 
#endif 
 
// </h> 
// <h>SysTick Timer Configuration 
// ============================= 
//   <o>Timer clock value [Hz] <1-1000000000> 
//   <i> Set the timer clock value for selected timer. 
//   <i> Default: 6000000  (6MHz) 
#ifndef OS_CLOCK 
 #define OS_CLOCK       72000000 
#endif 
 
//   <o>Timer tick value [us] <1-1000000> 
//   <i> Set the timer tick value for selected timer. 
//   <i> Default: 10000  (10ms) 
#ifndef OS_TICK 
 #define OS_TICK        10000 
#endif 
 
// </h> 
// <e>Round-Robin Task switching 
// ============================= 
// <i> Enable Round-Robin Task switching. 
#ifndef OS_ROBIN 
 #define OS_ROBIN       1 
#endif 
 
//   <o>Round-Robin Timeout [ticks] <1-1000> 
//   <i> Define how long a task will execute before a task switch. 
//   <i> Default: 5 
#ifndef OS_ROBINTOUT 
 #define OS_ROBINTOUT   5 
#endif 
 
// </e> 
 
//------------- <<< end of configuration section >>> ----------------------- 
 
// Standard library system mutexes 
// =============================== 
//  Define max. number system mutexes that are used to protect  
//  the arm standard runtime library. For microlib they are not used. 
#ifndef OS_MUTEXCNT 
 #define OS_MUTEXCNT    8 
#endif 
 
/*---------------------------------------------------------------------------- 
 *      RTX User configuration part END 
 *---------------------------------------------------------------------------*/ 
 
#define OS_TRV          ((U32)(((double)OS_CLOCK*(double)OS_TICK)/1E6)-1) 
 
/*---------------------------------------------------------------------------- 
 *      Global Functions 
 *---------------------------------------------------------------------------*/ 
 
/*--------------------------- os_idle_demon ---------------------------------*/ 
 
__task void os_idle_demon (void) { 
   /* The idle demon is a system task, running when no other task is ready */ 
   /* to run. The 'os_xxx' function calls are not allowed from this task.  */ 
 
   for (;;) { 
   /* HERE: include optional user code to be executed when no task runs.*/ 
   } 
} 
 
 
/*--------------------------- os_tmr_call -----------------------------------*/ 
 
void os_tmr_call (U16 info) { 
   /* This function is called when the user timer has expired. Parameter   */ 
   /* 'info' holds the value, defined when the timer was created.          */ 
 
   /* HERE: include optional user code to be executed on timeout. */ 
} 
 
 
/*--------------------------- os_stk_overflow -------------------------------*/ 
 
void os_stk_overflow (OS_TID task_id) { 
   /* This function is called when a stack overflow is detected. Parameter */ 
   /* 'task_id' holds the id of this task. You can use 'RTX Kernel' dialog,*/ 
   /* page 'Active Tasks' to check, which task needs a bigger stack.       */ 
 
   /* HERE: include optional code to be executed on stack overflow. */ 
   for (;;); 
} 
 
 
/*---------------------------------------------------------------------------- 
 *      RTX Configuration Functions 
 *---------------------------------------------------------------------------*/ 
 
#include <RTX_lib.c> 
 
/*---------------------------------------------------------------------------- 
 * end of file 
 *---------------------------------------------------------------------------*/