aboutsummaryrefslogtreecommitdiffstats
path: root/src/gos/gos_keil.h
diff options
context:
space:
mode:
authorJoel Bodenmann <joel@seriouslyembedded.com>2015-10-19 22:22:13 +0200
committerJoel Bodenmann <joel@seriouslyembedded.com>2015-10-19 22:22:13 +0200
commit4b31f87fc8bde205ce1d331234dee768bac36af5 (patch)
tree4cf1983194fffaadb9fe69fcaaaa00d9f4437670 /src/gos/gos_keil.h
parent73b39a7d36504d33e04309a359beeb027b854c5a (diff)
downloaduGFX-4b31f87fc8bde205ce1d331234dee768bac36af5.tar.gz
uGFX-4b31f87fc8bde205ce1d331234dee768bac36af5.tar.bz2
uGFX-4b31f87fc8bde205ce1d331234dee768bac36af5.zip
Adding dedicated support for generic CMSIS RTOS and specific KEIL RTX
Diffstat (limited to 'src/gos/gos_keil.h')
-rw-r--r--src/gos/gos_keil.h92
1 files changed, 7 insertions, 85 deletions
diff --git a/src/gos/gos_keil.h b/src/gos/gos_keil.h
index f3f60113..84530d16 100644
--- a/src/gos/gos_keil.h
+++ b/src/gos/gos_keil.h
@@ -7,7 +7,7 @@
/**
* @file src/gos/gos_keil.h
- * @brief GOS - Operating System Support header file for Keil RTX.
+ * @brief GOS - Operating System Support header file for Keil RTX
*/
#ifndef _GOS_KEIL_H
@@ -15,91 +15,13 @@
#if GFX_USE_OS_KEIL
-#include <stdbool.h>
-#include "cmsis_os.h"
-
-#ifndef GFX_OS_HEAP_SIZE
- #define GFX_OS_HEAP_SIZE 10240
-#endif
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-typedef bool bool_t;
-
-#define TIME_IMMEDIATE 0
-#define TIME_INFINITE osWaitForever
-typedef uint32_t delaytime_t;
-typedef uint32_t systemticks_t;
-typedef uint16_t semcount_t;
-typedef void threadreturn_t;
-typedef osPriority threadpriority_t;
-
-#define MAX_SEMAPHORE_COUNT osFeature_Semaphore
-#define LOW_PRIORITY osPriorityLow
-#define NORMAL_PRIORITY osPriorityNormal
-#define HIGH_PRIORITY osPriorityHigh
-
-typedef struct gfxSem {
- osSemaphoreDef_t def;
- osSemaphoreId id;
-} gfxSem;
-
-typedef struct gfxMutex {
- osMutexDef_t def;
- osMutexId id;
-} gfxMutex;
-
-typedef osThreadId gfxThreadHandle;
-
-#define DECLARE_THREAD_STACK(name, sz) uint8_t name[1]; // Some compilers don't allow zero sized arrays. Let's waste one byte
-#define DECLARE_THREAD_FUNCTION(fnName, param) threadreturn_t fnName(void* param)
-#define THREAD_RETURN(retval)
-
-/*===========================================================================*/
-/* Function declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define gfxExit() os_error(0)
-#define gfxHalt(msg) os_error(1)
-#define gfxSystemTicks() osKernelSysTick()
-#define gfxMillisecondsToTicks(ms) osKernelSysTickMicroSec(1000*ms)
-#define gfxSystemLock() osKernelInitialize()
-#define gfxSystemUnlock() osKernelStart()
-#define gfxSleepMilliseconds(ms) osDelay(ms)
-
-void gfxMutexInit(gfxMutex* pmutex);
-#define gfxMutexDestroy(pmutex) osMutexDelete((pmutex)->id)
-#define gfxMutexEnter(pmutex) osMutexWait((pmutex)->id, TIME_INFINITE)
-#define gfxMutexExit(pmutex) osMutexRelease((pmutex)->id)
-
-void gfxSemInit(gfxSem* psem, semcount_t val, semcount_t limit);
-void gfxSemDestroy(gfxSem* psem);
-bool_t gfxSemWait(gfxSem* psem, delaytime_t ms);
-bool_t gfxSemWaitI(gfxSem* psem);
-void gfxSemSignal(gfxSem* psem);
-void gfxSemSignalI(gfxSem* psem);
-
-gfxThreadHandle gfxThreadCreate(void* stackarea, size_t stacksz, threadpriority_t prio, DECLARE_THREAD_FUNCTION((*fn),p), void* param);
-#define gfxYield() osThreadYield()
-#define gfxThreadMe() osThreadGetId()
-#define gfxThreadClose(thread) {}
-
-#ifdef __cplusplus
-}
-#endif
-
-/*===========================================================================*/
-/* Use the generic heap handling */
-/*===========================================================================*/
+/*
+ * Keil RTX uses the CMSIS RTOS interface. Therefore, just use the CMSIS RTOS port
+ */
+#define GFX_USE_OS_KEIL FALSE // Disable KEIL to avoid error: "GOS: More than one operation system has been defined as TRUE."
+#define GFX_USE_OS_CMSIS TRUE
-#define GOS_NEED_X_HEAP TRUE
-#include "gos_x_heap.h"
+#include "gos_cmsis.h"
#endif /* GFX_USE_OS_KEIL */
#endif /* _GOS_KEIL_H */