From 2ef393d35b579325666797b67969c6dc94d161f9 Mon Sep 17 00:00:00 2001 From: Winfred Lu Date: Sun, 4 May 2014 22:52:58 +0800 Subject: [PATCH] Fix some typos and implement gfxSleepMilliseconds(). --- src/gos/freertos.c | 35 ++++++++++++++++------------------- src/gos/freertos.h | 3 +-- src/gos/sys_options.h | 12 +----------- 3 files changed, 18 insertions(+), 32 deletions(-) diff --git a/src/gos/freertos.c b/src/gos/freertos.c index e3be4f28..ce831a4c 100644 --- a/src/gos/freertos.c +++ b/src/gos/freertos.c @@ -28,7 +28,11 @@ void _gosInit(void) { - // The user must call vTaskStartScheduler() himself before he calls gfxInit(). + // The user must call vTaskStartScheduler() himself before he calls gfxInit(). +} + +void _gosDeinit(void) +{ } void* gfxRealloc(void *ptr, size_t oldsz, size_t newsz) @@ -52,30 +56,24 @@ void* gfxRealloc(void *ptr, size_t oldsz, size_t newsz) void gfxSleepMilliseconds(delaytime_t ms) { - // Implement this + const portTickType ticks = ms / portTICK_PERIOD_MS; + vTaskDelay(ticks); } void gfxSleepMicroseconds(delaytime_t ms) { - // Implement this + const portTickType ticks = (ms / 1000) / portTICK_PERIOD_MS; + + // delay milli seconds + vTaskDelay(ticks); + + // microsecond resolution delay is not supported in FreeRTOS + // vUsDelay(ms%1000); } portTickType MS2ST(portTickType ms) { - // Verify this - - uint64_t val; - - if (configTICK_RATE_HZ == 1000) { // gain time because no test to do in most case - return ms; - } - - val = ms; - val *= configTICK_RATE_HZ; - val += 999; - val /= 1000; - - return val; + return (ms / portTICK_PERIOD_MS); } void gfxSemInit(gfxSem* psem, semcount_t val, semcount_t limit) @@ -152,7 +150,7 @@ gfxThreadHandle gfxThreadCreate(void *stackarea, size_t stacksz, threadpriority_ if (stacksz < configMINIMAL_STACK_SIZE) stacksz = configMINIMAL_STACK_SIZE; - if (xTaskCreate(fn, (signed char*)"uGFX_TASK", stacksz, param, prio, &task )!= pdPASS) { + if (xTaskCreate(fn, "uGFX_TASK", stacksz, param, prio, &task )!= pdPASS) { for (;;); } @@ -161,4 +159,3 @@ gfxThreadHandle gfxThreadCreate(void *stackarea, size_t stacksz, threadpriority_ #endif /* GFX_USE_OS_FREERTOS */ /** @} */ - diff --git a/src/gos/freertos.h b/src/gos/freertos.h index f15ca910..7fa9ee4f 100644 --- a/src/gos/freertos.h +++ b/src/gos/freertos.h @@ -59,7 +59,7 @@ typedef struct { } gfxSem; typedef xSemaphoreHandle gfxMutex; -typedef xTaskHandl* gfxThreadHandle; +typedef xTaskHandle* gfxThreadHandle; /*===========================================================================*/ /* Function declarations. */ @@ -111,4 +111,3 @@ gfxThreadHandle gfxThreadCreate(void *stackarea, size_t stacksz, threadpriority_ #endif /* GFX_USE_OS_FREERTOS */ #endif /* _GOS_CHIBIOS_H */ - diff --git a/src/gos/sys_options.h b/src/gos/sys_options.h index 9d2e735f..90a5bc91 100644 --- a/src/gos/sys_options.h +++ b/src/gos/sys_options.h @@ -42,17 +42,7 @@ #define GFX_USE_OS_WIN32 FALSE #endif /** - * @brief Use a linux based system running X11 - * @details Defaults to FALSE - /** - * @brief Use Win32 - * @details Defaults to FALSE - */ - #ifndef GFX_USE_OS_WIN32 - #define GFX_USE_OS_WIN32 FALSE - #endif - /** - * @brief Use a linux based system running X11 + * @brief Use a linux based system running X11 * @details Defaults to FALSE */ #ifndef GFX_USE_OS_LINUX