ソースの整理中ですが、利用はできます。

Dependencies:   EthernetInterface HttpServer TextLCD mbed-rpc mbed-rtos mbed Socket lwip-eth lwip-sys lwip

Committer:
yueee_yt
Date:
Wed Mar 12 04:39:15 2014 +0000
Revision:
2:14b689a85306
Parent:
0:7766f6712673
bug fix

Who changed what in which revision?

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