diff options
author | Joel Bodenmann <joel@seriouslyembedded.com> | 2015-10-25 22:10:00 +0100 |
---|---|---|
committer | Joel Bodenmann <joel@seriouslyembedded.com> | 2015-10-25 22:10:00 +0100 |
commit | ccd83187fa1d762550be55bd4e582573169f97b1 (patch) | |
tree | d9d360f8238f4b9ff1a404716104dd0d7aa76a42 /src | |
parent | 96a912bbc0559924dfc89bfb3e57f4e109392c9d (diff) | |
download | uGFX-ccd83187fa1d762550be55bd4e582573169f97b1.tar.gz uGFX-ccd83187fa1d762550be55bd4e582573169f97b1.tar.bz2 uGFX-ccd83187fa1d762550be55bd4e582573169f97b1.zip |
Fixing Mutex and Semaphores for CMSIS RTOS
Diffstat (limited to 'src')
-rw-r--r-- | src/gos/gos_cmsis.c | 14 | ||||
-rw-r--r-- | src/gos/gos_cmsis.h | 4 |
2 files changed, 12 insertions, 6 deletions
diff --git a/src/gos/gos_cmsis.c b/src/gos/gos_cmsis.c index 26a3f7f0..ad32d16d 100644 --- a/src/gos/gos_cmsis.c +++ b/src/gos/gos_cmsis.c @@ -32,14 +32,20 @@ void _gosDeinit(void) void gfxMutexInit(gfxMutex* pmutex) { - pmutex->id = osMutexCreate(&(pmutex->def)); + osMutexDef_t def; + def.mutex = pmutex->mutex; + + pmutex->id = osMutexCreate(&def); } void gfxSemInit(gfxSem* psem, semcount_t val, semcount_t limit) { - psem->id = osSemaphoreCreate(&(psem->def), limit); - while(val--) - osSemaphoreRelease(psem->id); + osSemaphoreDef_t def; + def.semaphore = psem->semaphore; + + (void)limit; + + psem->id = osSemaphoreCreate(&def, val); } void gfxSemDestroy(gfxSem* psem) diff --git a/src/gos/gos_cmsis.h b/src/gos/gos_cmsis.h index a0833c07..d263feb6 100644 --- a/src/gos/gos_cmsis.h +++ b/src/gos/gos_cmsis.h @@ -42,12 +42,12 @@ typedef osPriority threadpriority_t; #define HIGH_PRIORITY osPriorityHigh typedef struct gfxSem { - osSemaphoreDef_t def; + uint32_t semaphore[2]; osSemaphoreId id; } gfxSem; typedef struct gfxMutex { - osMutexDef_t def; + uint32_t mutex[4]; osMutexId id; } gfxMutex; |