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 #include "Thread.h"
GordonSin 0:0ed2a7c7190c 2
GordonSin 0:0ed2a7c7190c 3 #include <stdlib.h>
GordonSin 0:0ed2a7c7190c 4
GordonSin 0:0ed2a7c7190c 5 #include "error.h"
GordonSin 0:0ed2a7c7190c 6
GordonSin 0:0ed2a7c7190c 7 namespace rtos {
GordonSin 0:0ed2a7c7190c 8
GordonSin 0:0ed2a7c7190c 9 Thread::Thread(void (*task)(void const *argument), void *argument,
GordonSin 0:0ed2a7c7190c 10 osPriority priority, uint32_t stack_size, unsigned char *stack_pointer) {
GordonSin 0:0ed2a7c7190c 11 #ifdef CMSIS_OS_RTX
GordonSin 0:0ed2a7c7190c 12 _thread_def.pthread = task;
GordonSin 0:0ed2a7c7190c 13 _thread_def.tpriority = priority;
GordonSin 0:0ed2a7c7190c 14 _thread_def.stacksize = stack_size;
GordonSin 0:0ed2a7c7190c 15 if (stack_pointer != NULL) {
GordonSin 0:0ed2a7c7190c 16 _thread_def.stack_pointer = stack_pointer;
GordonSin 0:0ed2a7c7190c 17 } else {
GordonSin 0:0ed2a7c7190c 18 _thread_def.stack_pointer = (unsigned char*) malloc(stack_size);
GordonSin 0:0ed2a7c7190c 19 if (_thread_def.stack_pointer == NULL)
GordonSin 0:0ed2a7c7190c 20 error("Error allocating the stack memory");
GordonSin 0:0ed2a7c7190c 21 }
GordonSin 0:0ed2a7c7190c 22 #endif
GordonSin 0:0ed2a7c7190c 23 _tid = osThreadCreate(&_thread_def, argument);
GordonSin 0:0ed2a7c7190c 24 }
GordonSin 0:0ed2a7c7190c 25
GordonSin 0:0ed2a7c7190c 26 osStatus Thread::terminate() {
GordonSin 0:0ed2a7c7190c 27 return osThreadTerminate(_tid);
GordonSin 0:0ed2a7c7190c 28 }
GordonSin 0:0ed2a7c7190c 29
GordonSin 0:0ed2a7c7190c 30 osStatus Thread::set_priority(osPriority priority) {
GordonSin 0:0ed2a7c7190c 31 return osThreadSetPriority(_tid, priority);
GordonSin 0:0ed2a7c7190c 32 }
GordonSin 0:0ed2a7c7190c 33
GordonSin 0:0ed2a7c7190c 34 osPriority Thread::get_priority() {
GordonSin 0:0ed2a7c7190c 35 return osThreadGetPriority(_tid);
GordonSin 0:0ed2a7c7190c 36 }
GordonSin 0:0ed2a7c7190c 37
GordonSin 0:0ed2a7c7190c 38 int32_t Thread::signal_set(int32_t signals) {
GordonSin 0:0ed2a7c7190c 39 return osSignalSet(_tid, signals);
GordonSin 0:0ed2a7c7190c 40 }
GordonSin 0:0ed2a7c7190c 41
GordonSin 0:0ed2a7c7190c 42 osEvent Thread::signal_wait(int32_t signals, uint32_t millisec) {
GordonSin 0:0ed2a7c7190c 43 return osSignalWait(signals, millisec);
GordonSin 0:0ed2a7c7190c 44 }
GordonSin 0:0ed2a7c7190c 45
GordonSin 0:0ed2a7c7190c 46 osStatus Thread::wait(uint32_t millisec) {
GordonSin 0:0ed2a7c7190c 47 return osDelay(millisec);
GordonSin 0:0ed2a7c7190c 48 }
GordonSin 0:0ed2a7c7190c 49
GordonSin 0:0ed2a7c7190c 50 osStatus Thread::yield() {
GordonSin 0:0ed2a7c7190c 51 return osThreadYield();
GordonSin 0:0ed2a7c7190c 52 }
GordonSin 0:0ed2a7c7190c 53
GordonSin 0:0ed2a7c7190c 54 osThreadId Thread::gettid() {
GordonSin 0:0ed2a7c7190c 55 return osThreadGetId();
GordonSin 0:0ed2a7c7190c 56 }
GordonSin 0:0ed2a7c7190c 57
GordonSin 0:0ed2a7c7190c 58 }