Ethernetwebsoc

Dependencies:   C12832_lcd LM75B WebSocketClient mbed-rtos mbed Socket lwip-eth lwip-sys lwip

Committer:
GordonSin
Date:
Fri May 31 04:09:54 2013 +0000
Revision:
0:0ed2a7c7190c
31/5/2013;

Who changed what in which revision?

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