diff options
-rw-r--r-- | src/gfx.c | 2 | ||||
-rw-r--r-- | src/gos/gos_freertos.c | 9 | ||||
-rw-r--r-- | src/gos/gos_options.h | 3 |
3 files changed, 9 insertions, 5 deletions
@@ -79,7 +79,7 @@ extern void _gosDeinit(void); extern void _gtransDeinit(void); #endif #if GFX_OS_CALL_UGFXMAIN - extern threadreturn_t uGFXMain(void *param); + extern void uGFXMain(void); #endif void gfxInit(void) diff --git a/src/gos/gos_freertos.c b/src/gos/gos_freertos.c index 1f0d8dac..93696581 100644 --- a/src/gos/gos_freertos.c +++ b/src/gos/gos_freertos.c @@ -38,14 +38,19 @@ void _gosInit(void) } #if !GFX_OS_NO_INIT && GFX_OS_CALL_UGFXMAIN - extern threadreturn_t uGFXMain(void *param); + extern void uGFXMain(void); + + static DECLARE_THREAD_FUNCTION(startUGFX_FreeRTOS, p) { + (void) p; + uGFXMain(); + } #endif void _gosPostInit(void) { #if !GFX_OS_NO_INIT && GFX_OS_CALL_UGFXMAIN if (xTaskGetSchedulerState() == taskSCHEDULER_NOT_STARTED) { - gfxThreadCreate(0, GFX_OS_UGFXMAIN_STACKSIZE, NORMAL_PRIORITY, uGFXMain, 0); + gfxThreadCreate(0, GFX_OS_UGFXMAIN_STACKSIZE, NORMAL_PRIORITY, startUGFX_FreeRTOS, 0); vTaskStartScheduler(); gfxHalt("Unable to start FreeRTOS scheduler. Out of memory?"); } diff --git a/src/gos/gos_options.h b/src/gos/gos_options.h index c78d25ca..e8ce12e7 100644 --- a/src/gos/gos_options.h +++ b/src/gos/gos_options.h @@ -189,8 +189,7 @@ * operating systems whose main thread never returns after starting the * scheduler.<br> * Its prototype is:<br> - * threadreturn_t uGFXMain(void *param);<br> - * @note uGFXMain() will always be called with a NULL paramter. + * void uGFXMain(void);<br> */ #ifndef GFX_OS_CALL_UGFXMAIN #define GFX_OS_CALL_UGFXMAIN FALSE |