µGFX  2.9
version 2.9
gos_zephyr.h
Go to the documentation of this file.
1 /*
2  * This file is subject to the terms of the GFX License. If a copy of
3  * the license was not distributed with this file, you can obtain one at:
4  *
5  * http://ugfx.io/license.html
6  */
7 
8 /**
9  * @file src/gos/gos_zephyr.h
10  * @brief GOS - Operating System Support header file for Zephyr RTOS.
11  * Zephyr SDK 0.9.1
12  */
13 
14 #ifndef _GOS_ZEPHYR_H
15 #define _GOS_ZEPHYR_H
16 
17 #if GFX_USE_OS_ZEPHYR
18 
19 #include <zephyr.h>
20 
21 /*===========================================================================*/
22 /* Type definitions */
23 /*===========================================================================*/
24 
25 typedef s32_t gDelay;
26 typedef u32_t gTicks;
27 typedef u32_t gSemcount;
28 typedef void gThreadreturn;
29 typedef int gThreadpriority;
30 
31 #define GFX_THREAD_FUNCTION(fnName, param) gThreadreturn fnName(void* param, void* p2, void* p3)
32 
33 #define GFX_THREAD_STACK(name, sz) K_THREAD_STACK_DEFINE(name, sz)
34 
35 #define gfxThreadReturn(retval) return
36 
37 #define gDelayNone K_NO_WAIT
38 #define gDelayForever K_FOREVER
39 #define gSemMaxCount ((gSemcount)(((unsigned long)((gSemcount)(-1))) >> 1))
40 #define gThreadpriorityLow CONFIG_NUM_PREEMPT_PRIORITIES-1
41 #define gThreadpriorityNormal 1
42 #define gThreadpriorityHigh 0
43 
44 typedef struct k_sem gSem;
45 
46 typedef struct k_mutex gMutex;
47 
48 typedef k_tid_t gThread;
49 
50 /*===========================================================================*/
51 /* Function declarations. */
52 /*===========================================================================*/
53 
54 #define gfxHalt(msg) do{}while(0)
55 #define gfxExit() do{}while(0)
56 
57 // Don't forget to set CONFIG_HEAP_MEM_POOL_SIZE
58 #define gfxAlloc(sz) k_malloc(sz)
59 #define gfxFree(ptr) k_free(ptr)
60 #define gfxRealloc(ptr, oldsz, newsz) do{}while(0)
61 
62 #define gfxYield() k_yield()
63 #define gfxSleepMilliseconds(ms) k_sleep(ms)
64 #define gfxSleepMicroseconds(us) do{}while(0)
65 #define gfxMillisecondsToTicks(ms) CONFIG_SYS_CLOCK_TICKS_PER_SEC*ms/1000
66 gTicks gfxSystemTicks();
67 
68 #define gfxSystemLock() k_sched_lock()
69 #define gfxSystemUnlock() k_sched_unlock()
70 
71 #define gfxMutexInit(pmutex) k_mutex_init(pmutex)
72 #define gfxMutexDestroy(pmutex) do{}while(0)
73 #define gfxMutexEnter(pmutex) k_mutex_lock(pmutex, K_FOREVER)
74 #define gfxMutexExit(pmutex) k_mutex_unlock(pmutex)
75 
76 #define gfxSemInit(psem, val, limit) k_sem_init(psem, val, limit)
77 #define gfxSemDestroy(psem) do{}while(0)
78 #define gfxSemWait(psem, ms) (k_sem_take(psem, ms) == 0) ? gTrue : gFalse
79 #define gfxSemWaitI(psem) (k_sem_take(psem, K_NO_WAIT) == 0) ? gTrue : gFalse
80 #define gfxSemSignal(psem) k_sem_give(psem)
81 #define gfxSemSignalI(psem) k_sem_give(psem)
82 #define gfxSemCounter(psem) k_sem_count_get(psem)
83 #define gfxSemCounterI(psem) k_sem_count_get(psem)
84 
85 #define gfxThreadCreate(stackarea, stacksz, prio, fn, param)\
86  k_thread_spawn(stackarea, stacksz, fn, param, NULL, NULL, prio, 0, K_NO_WAIT)
87 #define gfxThreadWait(thread) 0
88 #define gfxThreadMe() k_current_get()
89 #define gfxThreadClose(thread) k_thread_abort(thread)
90 
91 #endif /* GFX_USE_OS_ZEPHYR */
92 #endif /* _GOS_H */
void * gThread
A thread handle.
Definition: gos.h:116
gTicks gfxSystemTicks(void)
Get the current operating system tick time.
A mutex.
Definition: gos.h:110
A semaphore.
Definition: gos.h:104