/*---------------------------------------------------------------------------- * RL-ARM - RTX *---------------------------------------------------------------------------- * Name: RTX_CONFIG.C * Purpose: Configuration of RTX Kernel for Cortex-M * Rev.: V4.20 *---------------------------------------------------------------------------- * This code is part of the RealView Run-Time Library. * Copyright (c) 2004-2011 KEIL - An ARM Company. All rights reserved. *---------------------------------------------------------------------------*/ #include "includes.h" #include /*---------------------------------------------------------------------------- * RTX User configuration part BEGIN *---------------------------------------------------------------------------*/ //-------- <<< Use Configuration Wizard in Context Menu >>> ----------------- // // Task Configuration // ===================== // // Number of concurrent running tasks <0-250> // Define max. number of tasks that will run at the same time. // Default: 6 #ifndef OS_TASKCNT #define OS_TASKCNT 8 #endif // Number of tasks with user-provided stack <0-250> // Define the number of tasks that will use a bigger stack. // The memory space for the stack is provided by the user. // Default: 0 #ifndef OS_PRIVCNT #define OS_PRIVCNT 0 #endif // Task stack size [bytes] <20-4096:8><#/4> // Set the stack size for tasks which is assigned by the system. // Default: 200 #ifndef OS_STKSIZE #define OS_STKSIZE 50 #endif // Check for the stack overflow // =============================== // Include the stack checking code for a stack overflow. // Note that additional code reduces the Kernel performance. #ifndef OS_STKCHECK #define OS_STKCHECK 1 #endif // Run in privileged mode // ========================= // Run all Tasks in privileged mode. // Default: Unprivileged #ifndef OS_RUNPRIV #define OS_RUNPRIV 0 #endif // // SysTick Timer Configuration // ============================= // Timer clock value [Hz] <1-1000000000> // Set the timer clock value for selected timer. // Default: 6000000 (6MHz) #ifndef OS_CLOCK #define OS_CLOCK 72000000 #endif // Timer tick value [us] <1-1000000> // Set the timer tick value for selected timer. // Default: 10000 (10ms) #ifndef OS_TICK #define OS_TICK 10000 #endif // // System Configuration // ======================= // Round-Robin Task switching // ============================= // Enable Round-Robin Task switching. #ifndef OS_ROBIN #define OS_ROBIN 1 #endif // Round-Robin Timeout [ticks] <1-1000> // Define how long a task will execute before a task switch. // Default: 5 #ifndef OS_ROBINTOUT #define OS_ROBINTOUT 5 #endif // // Number of user timers <0-250> // Define max. number of user timers that will run at the same time. // Default: 0 (User timers disabled) #ifndef OS_TIMERCNT #define OS_TIMERCNT 5 #endif // ISR FIFO Queue size<4=> 4 entries <8=> 8 entries // <12=> 12 entries <16=> 16 entries // <24=> 24 entries <32=> 32 entries // <48=> 48 entries <64=> 64 entries // <96=> 96 entries // ISR functions store requests to this buffer, // when they are called from the iterrupt handler. // Default: 16 entries #ifndef OS_FIFOSZ #define OS_FIFOSZ 16 #endif // //------------- <<< 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. */ //printf("os_idle_demon\r\n"); 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. */ //printf("os_tmr"); } /*--------------------------- os_error --------------------------------------*/ void os_error (U32 err_code) { /* This function is called when a runtime error is detected. Parameter */ /* 'err_code' holds the runtime error code (defined in RTL.H). */ /* HERE: include optional code to be executed on runtime error. */ printf("\r\n[OS_Err]err_code=%d F=%d,L=%lu",err_code,g_usFileID,g_ulFileLine); for (;;); } /*---------------------------------------------------------------------------- * RTX Configuration Functions *---------------------------------------------------------------------------*/ #include /*---------------------------------------------------------------------------- * end of file *---------------------------------------------------------------------------*/