diff options
author | Nicolas Reinecke <nr@das-labor.org> | 2016-06-01 12:09:34 +0200 |
---|---|---|
committer | Nicolas Reinecke <nr@das-labor.org> | 2016-06-01 12:09:34 +0200 |
commit | 1d2c15ce8101cc13bb7e272d30022f37e2ed2130 (patch) | |
tree | e14dad1456bd0eedc76c8d67f98b80f7459d2a8f /src/gos/gos_chibios.c | |
parent | f8dac95e93127685ca2d1031ddcda28250fe0bd0 (diff) | |
download | uGFX-1d2c15ce8101cc13bb7e272d30022f37e2ed2130.tar.gz uGFX-1d2c15ce8101cc13bb7e272d30022f37e2ed2130.tar.bz2 uGFX-1d2c15ce8101cc13bb7e272d30022f37e2ed2130.zip |
add support for ChibiOS RT 4 kernel
Diffstat (limited to 'src/gos/gos_chibios.c')
-rw-r--r-- | src/gos/gos_chibios.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/gos/gos_chibios.c b/src/gos/gos_chibios.c index c23155ca..fc34b94b 100644 --- a/src/gos/gos_chibios.c +++ b/src/gos/gos_chibios.c @@ -20,7 +20,7 @@ #error "GOS: CH_USE_SEMAPHORES must be defined in chconf.h" #endif -#elif CH_KERNEL_MAJOR == 3 +#elif (CH_KERNEL_MAJOR == 3) || (CH_KERNEL_MAJOR == 4) #if !CH_CFG_USE_MUTEXES #error "GOS: CH_CFG_USE_MUTEXES must be defined in chconf.h" @@ -42,7 +42,7 @@ void _gosInit(void) halInit(); chSysInit(); } - #elif CH_KERNEL_MAJOR == 3 + #elif (CH_KERNEL_MAJOR == 3) || (CH_KERNEL_MAJOR == 4) if (!chThdGetSelfX()) { halInit(); chSysInit(); @@ -102,7 +102,7 @@ void gfxSemInit(gfxSem *psem, semcount_t val, semcount_t limit) #if CH_KERNEL_MAJOR == 2 chSemInit(&psem->sem, val); - #elif CH_KERNEL_MAJOR == 3 + #elif (CH_KERNEL_MAJOR == 3) || (CH_KERNEL_MAJOR == 4) chSemObjectInit(&psem->sem, val); #endif } @@ -120,7 +120,7 @@ bool_t gfxSemWait(gfxSem *psem, delaytime_t ms) case TIME_INFINITE: chSemWait(&psem->sem); return TRUE; default: return chSemWaitTimeout(&psem->sem, MS2ST(ms)) != RDY_TIMEOUT; } - #elif CH_KERNEL_MAJOR == 3 + #elif (CH_KERNEL_MAJOR == 3) || (CH_KERNEL_MAJOR == 4) switch(ms) { case TIME_IMMEDIATE: return chSemWaitTimeout(&psem->sem, TIME_IMMEDIATE) != MSG_TIMEOUT; case TIME_INFINITE: chSemWait(&psem->sem); return TRUE; @@ -158,7 +158,11 @@ gfxThreadHandle gfxThreadCreate(void *stackarea, size_t stacksz, threadpriority_ { if (!stackarea) { if (!stacksz) stacksz = 256; +#if (CH_KERNEL_MAJOR == 2) || (CH_KERNEL_MAJOR == 3) return chThdCreateFromHeap(0, stacksz, prio, (tfunc_t)fn, param); +#elif CH_KERNEL_MAJOR == 4 + return chThdCreateFromHeap(0, stacksz, "ugfx", prio, (tfunc_t)fn, param); +#endif } if (!stacksz) |