18 #include "cmsis_os2.h"
20 #ifndef GFX_OS_HEAP_SIZE
21 #define GFX_OS_HEAP_SIZE 10240
29 #define gDelayForever osWaitForever
32 typedef gU16 gSemcount;
33 typedef void gThreadreturn;
34 typedef osPriority_t gThreadpriority;
36 #define gSemMaxCount 65535UL
37 #define gThreadpriorityLow osPriorityLow
38 #define gThreadpriorityNormal osPriorityNormal
39 #define gThreadpriorityHigh osPriorityHigh
41 typedef osSemaphoreId_t
gSem;
43 typedef osMutexId_t
gMutex;
47 #define GFX_THREAD_STACK(name, sz) gU8 name[1];
48 #define GFX_THREAD_FUNCTION(fnName, param) gThreadreturn fnName(void* param)
49 #define gfxThreadReturn(retval) return
55 #define gfxExit() os_error(0)
56 #define gfxHalt(msg) os_error(1)
57 #define gfxSystemTicks() osKernelGetTickCount()
58 #define gfxMillisecondsToTicks(ms) (1000*(ms)/osKernelGetTickFreq())
59 #define gfxSystemLock() osKernelLock()
60 #define gfxSystemUnlock() osKernelUnlock()
61 #define gfxSleepMilliseconds(ms) osDelay(ms)
64 #define gfxMutexDestroy(pmutex) osMutexDelete(*(pmutex))
65 #define gfxMutexEnter(pmutex) osMutexAcquire(*(pmutex), gDelayForever)
66 #define gfxMutexExit(pmutex) osMutexRelease(*(pmutex))
69 #define gfxSemDestroy(psem) osSemaphoreDelete(*(psem))
71 #define gfxSemWaitI(psem) gfxSemWait((psem), 0)
72 #define gfxSemSignal(psem) osSemaphoreRelease(*(psem))
73 #define gfxSemSignalI(psem) osSemaphoreRelease(*(psem))
76 #define gfxYield() osThreadYield()
77 #define gfxThreadMe() osThreadGetId()
78 #define gfxThreadClose(thread) {}
84 #define GOS_NEED_X_HEAP GFXON
85 #include "gos_x_heap.h"
void * gThread
A thread handle.
#define GFX_THREAD_FUNCTION(fnName, param)
Declare a thread function.
gBool gfxSemWait(gSem *psem, gDelay ms)
Wait on a semaphore.
void gfxMutexInit(gMutex *pmutex)
Initialise a mutex to protect a region of code from other threads.
gThread gfxThreadCreate(void *stackarea, gMemSize stacksz, gThreadpriority prio, GFX_THREAD_FUNCTION((*fn), p), void *param)
Start a new thread.
void gfxSemInit(gSem *psem, gSemcount val, gSemcount limit)
Initialise a Counted Semaphore.