in OS_TSK, rename run as tsk_run and new as tsk_new.

Committer:
jonathonfletcher
Date:
Sun Sep 02 03:24:20 2012 +0000
Revision:
0:5f46ebd8588e
in OS_TSK, rename run as tsk_run and new as tsk_new.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jonathonfletcher 0:5f46ebd8588e 1 /*----------------------------------------------------------------------------
jonathonfletcher 0:5f46ebd8588e 2 * RL-ARM - RTX
jonathonfletcher 0:5f46ebd8588e 3 *----------------------------------------------------------------------------
jonathonfletcher 0:5f46ebd8588e 4 * Name: RTX_Conf_CM.C
jonathonfletcher 0:5f46ebd8588e 5 * Purpose: Configuration of CMSIS RTX Kernel for Cortex-M
jonathonfletcher 0:5f46ebd8588e 6 * Rev.: V4.20
jonathonfletcher 0:5f46ebd8588e 7 *----------------------------------------------------------------------------
jonathonfletcher 0:5f46ebd8588e 8 *
jonathonfletcher 0:5f46ebd8588e 9 * Copyright (c) 1999-2009 KEIL, 2009-2012 ARM Germany GmbH
jonathonfletcher 0:5f46ebd8588e 10 * All rights reserved.
jonathonfletcher 0:5f46ebd8588e 11 * Redistribution and use in source and binary forms, with or without
jonathonfletcher 0:5f46ebd8588e 12 * modification, are permitted provided that the following conditions are met:
jonathonfletcher 0:5f46ebd8588e 13 * - Redistributions of source code must retain the above copyright
jonathonfletcher 0:5f46ebd8588e 14 * notice, this list of conditions and the following disclaimer.
jonathonfletcher 0:5f46ebd8588e 15 * - Redistributions in binary form must reproduce the above copyright
jonathonfletcher 0:5f46ebd8588e 16 * notice, this list of conditions and the following disclaimer in the
jonathonfletcher 0:5f46ebd8588e 17 * documentation and/or other materials provided with the distribution.
jonathonfletcher 0:5f46ebd8588e 18 * - Neither the name of ARM nor the names of its contributors may be used
jonathonfletcher 0:5f46ebd8588e 19 * to endorse or promote products derived from this software without
jonathonfletcher 0:5f46ebd8588e 20 * specific prior written permission.
jonathonfletcher 0:5f46ebd8588e 21 *
jonathonfletcher 0:5f46ebd8588e 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
jonathonfletcher 0:5f46ebd8588e 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
jonathonfletcher 0:5f46ebd8588e 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
jonathonfletcher 0:5f46ebd8588e 25 * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
jonathonfletcher 0:5f46ebd8588e 26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
jonathonfletcher 0:5f46ebd8588e 27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
jonathonfletcher 0:5f46ebd8588e 28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
jonathonfletcher 0:5f46ebd8588e 29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
jonathonfletcher 0:5f46ebd8588e 30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
jonathonfletcher 0:5f46ebd8588e 31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
jonathonfletcher 0:5f46ebd8588e 32 * POSSIBILITY OF SUCH DAMAGE.
jonathonfletcher 0:5f46ebd8588e 33 *---------------------------------------------------------------------------*/
jonathonfletcher 0:5f46ebd8588e 34
jonathonfletcher 0:5f46ebd8588e 35 #include "cmsis_os.h"
jonathonfletcher 0:5f46ebd8588e 36
jonathonfletcher 0:5f46ebd8588e 37
jonathonfletcher 0:5f46ebd8588e 38 /*----------------------------------------------------------------------------
jonathonfletcher 0:5f46ebd8588e 39 * RTX User configuration part BEGIN
jonathonfletcher 0:5f46ebd8588e 40 *---------------------------------------------------------------------------*/
jonathonfletcher 0:5f46ebd8588e 41
jonathonfletcher 0:5f46ebd8588e 42 //-------- <<< Use Configuration Wizard in Context Menu >>> -----------------
jonathonfletcher 0:5f46ebd8588e 43 //
jonathonfletcher 0:5f46ebd8588e 44 // <h>Thread Configuration
jonathonfletcher 0:5f46ebd8588e 45 // =======================
jonathonfletcher 0:5f46ebd8588e 46 //
jonathonfletcher 0:5f46ebd8588e 47 // <o>Number of concurrent running threads <0-250>
jonathonfletcher 0:5f46ebd8588e 48 // <i> Defines max. number of threads that will run at the same time.
jonathonfletcher 0:5f46ebd8588e 49 // counting "main", but not counting "osTimerThread"
jonathonfletcher 0:5f46ebd8588e 50 // <i> Default: 6
jonathonfletcher 0:5f46ebd8588e 51 #ifndef OS_TASKCNT
jonathonfletcher 0:5f46ebd8588e 52 # if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)
jonathonfletcher 0:5f46ebd8588e 53 # define OS_TASKCNT 14
jonathonfletcher 0:5f46ebd8588e 54 # elif defined(TARGET_LPC11U24)
jonathonfletcher 0:5f46ebd8588e 55 # define OS_TASKCNT 6
jonathonfletcher 0:5f46ebd8588e 56 # endif
jonathonfletcher 0:5f46ebd8588e 57 #endif
jonathonfletcher 0:5f46ebd8588e 58
jonathonfletcher 0:5f46ebd8588e 59 // <o>Scheduler (+ interrupts) stack size [bytes] <64-4096:8><#/4>
jonathonfletcher 0:5f46ebd8588e 60 #ifndef OS_SCHEDULERSTKSIZE
jonathonfletcher 0:5f46ebd8588e 61 # if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)
jonathonfletcher 0:5f46ebd8588e 62 # define OS_SCHEDULERSTKSIZE 256
jonathonfletcher 0:5f46ebd8588e 63 # elif defined(TARGET_LPC11U24)
jonathonfletcher 0:5f46ebd8588e 64 # define OS_SCHEDULERSTKSIZE 128
jonathonfletcher 0:5f46ebd8588e 65 # endif
jonathonfletcher 0:5f46ebd8588e 66 #endif
jonathonfletcher 0:5f46ebd8588e 67
jonathonfletcher 0:5f46ebd8588e 68 // <o>Idle stack size [bytes] <64-4096:8><#/4>
jonathonfletcher 0:5f46ebd8588e 69 // <i> Defines default stack size for the Idle thread.
jonathonfletcher 0:5f46ebd8588e 70 #ifndef OS_IDLESTKSIZE
jonathonfletcher 0:5f46ebd8588e 71 #define OS_IDLESTKSIZE 128
jonathonfletcher 0:5f46ebd8588e 72 #endif
jonathonfletcher 0:5f46ebd8588e 73
jonathonfletcher 0:5f46ebd8588e 74 // <o>Timer Thread stack size [bytes] <64-4096:8><#/4>
jonathonfletcher 0:5f46ebd8588e 75 // <i> Defines stack size for Timer thread.
jonathonfletcher 0:5f46ebd8588e 76 // <i> Default: 200
jonathonfletcher 0:5f46ebd8588e 77 #ifndef OS_TIMERSTKSZ
jonathonfletcher 0:5f46ebd8588e 78 #define OS_TIMERSTKSZ WORDS_STACK_SIZE
jonathonfletcher 0:5f46ebd8588e 79 #endif
jonathonfletcher 0:5f46ebd8588e 80
jonathonfletcher 0:5f46ebd8588e 81 // <q>Check for stack overflow
jonathonfletcher 0:5f46ebd8588e 82 // ===========================
jonathonfletcher 0:5f46ebd8588e 83 // <i> Includes the stack checking code for stack overflow.
jonathonfletcher 0:5f46ebd8588e 84 // <i> Note that additional code reduces the Kernel performance.
jonathonfletcher 0:5f46ebd8588e 85 #ifndef OS_STKCHECK
jonathonfletcher 0:5f46ebd8588e 86 #define OS_STKCHECK 1
jonathonfletcher 0:5f46ebd8588e 87 #endif
jonathonfletcher 0:5f46ebd8588e 88
jonathonfletcher 0:5f46ebd8588e 89 // <q>Run in privileged mode
jonathonfletcher 0:5f46ebd8588e 90 // =========================
jonathonfletcher 0:5f46ebd8588e 91 // <i> Runs all Threads in privileged mode.
jonathonfletcher 0:5f46ebd8588e 92 // <i> Default: Unprivileged
jonathonfletcher 0:5f46ebd8588e 93 #ifndef OS_RUNPRIV
jonathonfletcher 0:5f46ebd8588e 94 #define OS_RUNPRIV 1
jonathonfletcher 0:5f46ebd8588e 95 #endif
jonathonfletcher 0:5f46ebd8588e 96
jonathonfletcher 0:5f46ebd8588e 97 // </h>
jonathonfletcher 0:5f46ebd8588e 98 // <h>SysTick Timer Configuration
jonathonfletcher 0:5f46ebd8588e 99 // ==============================
jonathonfletcher 0:5f46ebd8588e 100 //
jonathonfletcher 0:5f46ebd8588e 101 // <o>Timer clock value [Hz] <1-1000000000>
jonathonfletcher 0:5f46ebd8588e 102 // <i> Defines the timer clock value.
jonathonfletcher 0:5f46ebd8588e 103 // <i> Default: 6000000 (6MHz)
jonathonfletcher 0:5f46ebd8588e 104 #ifndef OS_CLOCK
jonathonfletcher 0:5f46ebd8588e 105 # if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)
jonathonfletcher 0:5f46ebd8588e 106 # define OS_CLOCK 96000000
jonathonfletcher 0:5f46ebd8588e 107 # elif defined(TARGET_LPC11U24)
jonathonfletcher 0:5f46ebd8588e 108 # define OS_CLOCK 48000000
jonathonfletcher 0:5f46ebd8588e 109 # endif
jonathonfletcher 0:5f46ebd8588e 110 #endif
jonathonfletcher 0:5f46ebd8588e 111
jonathonfletcher 0:5f46ebd8588e 112 // <o>Timer tick value [us] <1-1000000>
jonathonfletcher 0:5f46ebd8588e 113 // <i> Defines the timer tick value.
jonathonfletcher 0:5f46ebd8588e 114 // <i> Default: 1000 (1ms)
jonathonfletcher 0:5f46ebd8588e 115 #ifndef OS_TICK
jonathonfletcher 0:5f46ebd8588e 116 #define OS_TICK 1000
jonathonfletcher 0:5f46ebd8588e 117 #endif
jonathonfletcher 0:5f46ebd8588e 118
jonathonfletcher 0:5f46ebd8588e 119 // </h>
jonathonfletcher 0:5f46ebd8588e 120
jonathonfletcher 0:5f46ebd8588e 121 // <h>System Configuration
jonathonfletcher 0:5f46ebd8588e 122 // =======================
jonathonfletcher 0:5f46ebd8588e 123 //
jonathonfletcher 0:5f46ebd8588e 124 // <e>Round-Robin Thread switching
jonathonfletcher 0:5f46ebd8588e 125 // ===============================
jonathonfletcher 0:5f46ebd8588e 126 //
jonathonfletcher 0:5f46ebd8588e 127 // <i> Enables Round-Robin Thread switching.
jonathonfletcher 0:5f46ebd8588e 128 #ifndef OS_ROBIN
jonathonfletcher 0:5f46ebd8588e 129 #define OS_ROBIN 1
jonathonfletcher 0:5f46ebd8588e 130 #endif
jonathonfletcher 0:5f46ebd8588e 131
jonathonfletcher 0:5f46ebd8588e 132 // <o>Round-Robin Timeout [ticks] <1-1000>
jonathonfletcher 0:5f46ebd8588e 133 // <i> Defines how long a thread will execute before a thread switch.
jonathonfletcher 0:5f46ebd8588e 134 // <i> Default: 5
jonathonfletcher 0:5f46ebd8588e 135 #ifndef OS_ROBINTOUT
jonathonfletcher 0:5f46ebd8588e 136 #define OS_ROBINTOUT 5
jonathonfletcher 0:5f46ebd8588e 137 #endif
jonathonfletcher 0:5f46ebd8588e 138
jonathonfletcher 0:5f46ebd8588e 139 // </e>
jonathonfletcher 0:5f46ebd8588e 140
jonathonfletcher 0:5f46ebd8588e 141 // <e>User Timers
jonathonfletcher 0:5f46ebd8588e 142 // ==============
jonathonfletcher 0:5f46ebd8588e 143 // <i> Enables user Timers
jonathonfletcher 0:5f46ebd8588e 144 #ifndef OS_TIMERS
jonathonfletcher 0:5f46ebd8588e 145 #define OS_TIMERS 1
jonathonfletcher 0:5f46ebd8588e 146 #endif
jonathonfletcher 0:5f46ebd8588e 147
jonathonfletcher 0:5f46ebd8588e 148 // <o>Timer Thread Priority
jonathonfletcher 0:5f46ebd8588e 149 // <1=> Low
jonathonfletcher 0:5f46ebd8588e 150 // <2=> Below Normal
jonathonfletcher 0:5f46ebd8588e 151 // <3=> Normal
jonathonfletcher 0:5f46ebd8588e 152 // <4=> Above Normal
jonathonfletcher 0:5f46ebd8588e 153 // <5=> High
jonathonfletcher 0:5f46ebd8588e 154 // <6=> Realtime
jonathonfletcher 0:5f46ebd8588e 155 // <i> Defines priority for Timer Thread
jonathonfletcher 0:5f46ebd8588e 156 // <i> Default: High
jonathonfletcher 0:5f46ebd8588e 157 #ifndef OS_TIMERPRIO
jonathonfletcher 0:5f46ebd8588e 158 #define OS_TIMERPRIO 5
jonathonfletcher 0:5f46ebd8588e 159 #endif
jonathonfletcher 0:5f46ebd8588e 160
jonathonfletcher 0:5f46ebd8588e 161 // <o>Timer Callback Queue size <1-32>
jonathonfletcher 0:5f46ebd8588e 162 // <i> Defines number of concurrent callbacks that will be queued.
jonathonfletcher 0:5f46ebd8588e 163 // <i> Default: 4
jonathonfletcher 0:5f46ebd8588e 164 #ifndef OS_TIMERCBQSZ
jonathonfletcher 0:5f46ebd8588e 165 #define OS_TIMERCBQS 4
jonathonfletcher 0:5f46ebd8588e 166 #endif
jonathonfletcher 0:5f46ebd8588e 167
jonathonfletcher 0:5f46ebd8588e 168 // </e>
jonathonfletcher 0:5f46ebd8588e 169
jonathonfletcher 0:5f46ebd8588e 170 // <o>ISR FIFO Queue size<4=> 4 entries <8=> 8 entries
jonathonfletcher 0:5f46ebd8588e 171 // <12=> 12 entries <16=> 16 entries
jonathonfletcher 0:5f46ebd8588e 172 // <24=> 24 entries <32=> 32 entries
jonathonfletcher 0:5f46ebd8588e 173 // <48=> 48 entries <64=> 64 entries
jonathonfletcher 0:5f46ebd8588e 174 // <96=> 96 entries
jonathonfletcher 0:5f46ebd8588e 175 // <i> ISR functions store requests to this buffer,
jonathonfletcher 0:5f46ebd8588e 176 // <i> when they are called from the iterrupt handler.
jonathonfletcher 0:5f46ebd8588e 177 // <i> Default: 16 entries
jonathonfletcher 0:5f46ebd8588e 178 #ifndef OS_FIFOSZ
jonathonfletcher 0:5f46ebd8588e 179 #define OS_FIFOSZ 16
jonathonfletcher 0:5f46ebd8588e 180 #endif
jonathonfletcher 0:5f46ebd8588e 181
jonathonfletcher 0:5f46ebd8588e 182 // </h>
jonathonfletcher 0:5f46ebd8588e 183
jonathonfletcher 0:5f46ebd8588e 184 //------------- <<< end of configuration section >>> -----------------------
jonathonfletcher 0:5f46ebd8588e 185
jonathonfletcher 0:5f46ebd8588e 186 // Standard library system mutexes
jonathonfletcher 0:5f46ebd8588e 187 // ===============================
jonathonfletcher 0:5f46ebd8588e 188 // Define max. number system mutexes that are used to protect
jonathonfletcher 0:5f46ebd8588e 189 // the arm standard runtime library. For microlib they are not used.
jonathonfletcher 0:5f46ebd8588e 190 #ifndef OS_MUTEXCNT
jonathonfletcher 0:5f46ebd8588e 191 #define OS_MUTEXCNT 8
jonathonfletcher 0:5f46ebd8588e 192 #endif
jonathonfletcher 0:5f46ebd8588e 193
jonathonfletcher 0:5f46ebd8588e 194 /*----------------------------------------------------------------------------
jonathonfletcher 0:5f46ebd8588e 195 * RTX User configuration part END
jonathonfletcher 0:5f46ebd8588e 196 *---------------------------------------------------------------------------*/
jonathonfletcher 0:5f46ebd8588e 197
jonathonfletcher 0:5f46ebd8588e 198 #define OS_TRV ((uint32_t)(((double)OS_CLOCK*(double)OS_TICK)/1E6)-1)
jonathonfletcher 0:5f46ebd8588e 199
jonathonfletcher 0:5f46ebd8588e 200
jonathonfletcher 0:5f46ebd8588e 201 /*----------------------------------------------------------------------------
jonathonfletcher 0:5f46ebd8588e 202 * OS Idle daemon
jonathonfletcher 0:5f46ebd8588e 203 *---------------------------------------------------------------------------*/
jonathonfletcher 0:5f46ebd8588e 204 void os_idle_demon (void) {
jonathonfletcher 0:5f46ebd8588e 205 /* The idle demon is a system thread, running when no other thread is */
jonathonfletcher 0:5f46ebd8588e 206 /* ready to run. */
jonathonfletcher 0:5f46ebd8588e 207
jonathonfletcher 0:5f46ebd8588e 208 /* Sleep: ideally, we should put the chip to sleep.
jonathonfletcher 0:5f46ebd8588e 209 Unfortunately, this usually requires disconnecting the interface chip (debugger).
jonathonfletcher 0:5f46ebd8588e 210 This can be done, but it would break the local file system.
jonathonfletcher 0:5f46ebd8588e 211 */
jonathonfletcher 0:5f46ebd8588e 212 for (;;) {
jonathonfletcher 0:5f46ebd8588e 213 // sleep();
jonathonfletcher 0:5f46ebd8588e 214 }
jonathonfletcher 0:5f46ebd8588e 215 }
jonathonfletcher 0:5f46ebd8588e 216
jonathonfletcher 0:5f46ebd8588e 217 /*----------------------------------------------------------------------------
jonathonfletcher 0:5f46ebd8588e 218 * RTX Errors
jonathonfletcher 0:5f46ebd8588e 219 *---------------------------------------------------------------------------*/
jonathonfletcher 0:5f46ebd8588e 220 extern void mbed_die(void);
jonathonfletcher 0:5f46ebd8588e 221
jonathonfletcher 0:5f46ebd8588e 222 void os_error (uint32_t err_code) {
jonathonfletcher 0:5f46ebd8588e 223 /* This function is called when a runtime error is detected. Parameter */
jonathonfletcher 0:5f46ebd8588e 224 /* 'err_code' holds the runtime error code (defined in RTX_Config.h). */
jonathonfletcher 0:5f46ebd8588e 225 mbed_die();
jonathonfletcher 0:5f46ebd8588e 226 }
jonathonfletcher 0:5f46ebd8588e 227
jonathonfletcher 0:5f46ebd8588e 228 void sysThreadError(osStatus status) {
jonathonfletcher 0:5f46ebd8588e 229 if (status != osOK) {
jonathonfletcher 0:5f46ebd8588e 230 mbed_die();
jonathonfletcher 0:5f46ebd8588e 231 }
jonathonfletcher 0:5f46ebd8588e 232 }
jonathonfletcher 0:5f46ebd8588e 233
jonathonfletcher 0:5f46ebd8588e 234 /*----------------------------------------------------------------------------
jonathonfletcher 0:5f46ebd8588e 235 * RTX Configuration Functions
jonathonfletcher 0:5f46ebd8588e 236 *---------------------------------------------------------------------------*/
jonathonfletcher 0:5f46ebd8588e 237
jonathonfletcher 0:5f46ebd8588e 238 #include "RTX_CM_lib.h"
jonathonfletcher 0:5f46ebd8588e 239
jonathonfletcher 0:5f46ebd8588e 240 /*----------------------------------------------------------------------------
jonathonfletcher 0:5f46ebd8588e 241 * end of file
jonathonfletcher 0:5f46ebd8588e 242 *---------------------------------------------------------------------------*/