/*----------------------------------------------------------------------------
* 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"
/*----------------------------------------------------------------------------
* 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 24000000
#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");
if(info==TMR_INF_BEEP)
{
TIM_Cmd(TIM4, DISABLE); //½ûÖ¹/ʹÄÜTIM4
if(sutPocStatus.Speaker==0 &&
sutPocStatus.TTS == 0)
{
SpeakerDisable();
}
}
}
/*--------------------------- 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 %d]F=%d,L=%d",err_code,g_usFileID,g_ulFileLine);
for (;;);
}
/*----------------------------------------------------------------------------
* RTX Configuration Functions
*---------------------------------------------------------------------------*/
#include
/*----------------------------------------------------------------------------
* end of file
*---------------------------------------------------------------------------*/