18
18
#include "freertos/FreeRTOSConfig.h"
19
19
#include "freertos/semphr.h"
20
20
#include "freertos/task.h"
21
+ #include "gfx_types.h"
21
22
22
23
extern portMUX_TYPE lockMux_priv ;
23
24
/*===========================================================================*/
24
25
/* Type definitions */
25
26
/*===========================================================================*/
26
27
27
- /* Additional types are required when FreeRTOS 7.x is used */
28
- #if !defined(tskKERNEL_VERSION_MAJOR ) && !tskKERNEL_VERSION_MAJOR == 8
29
- typedef signed char int8_t
30
- typedef unsigned char uint8_t
31
- typedef signed int int16_t
32
- typedef unsigned int uint16_t
33
- typedef signed long int int32_t
34
- typedef unsigned long int uint32_t
35
- typedef signed long long int int64_t
36
- typedef unsigned long long int uint64_t
37
- #endif
28
+ #define gDelayNone 0
29
+ #define gDelayForever ((gDelay)-1)
30
+ typedef gU32 gDelay ;
31
+ typedef portTickType gTicks ;
32
+ typedef gI32 gSemcount ;
33
+ typedef void gThreadreturn ;
34
+ typedef portBASE_TYPE gThreadpriority ;
38
35
39
- /**
40
- * bool_t,
41
- * int8_t, uint8_t,
42
- * int16_t, uint16_t,
43
- * int32_t, uint32_t,
44
- * size_t
45
- * TRUE, FALSE
46
- * are already defined by FreeRTOS
47
- */
48
- #define TIME_IMMEDIATE 0
49
- #define TIME_INFINITE ((delaytime_t)-1)
50
- typedef int8_t bool_t ;
51
- typedef uint32_t delaytime_t ;
52
- typedef portTickType systemticks_t ;
53
- typedef int32_t semcount_t ;
54
- typedef void threadreturn_t ;
55
- typedef portBASE_TYPE threadpriority_t ;
56
-
57
- #define MAX_SEMAPHORE_COUNT ((semcount_t)(((unsigned long)((semcount_t)(-1))) >> 1))
58
- #define LOW_PRIORITY 0
59
- #define NORMAL_PRIORITY configMAX_PRIORITIES/2
60
- #define HIGH_PRIORITY configMAX_PRIORITIES-1
36
+ #define gSemMaxCount ((gSemcount)(((unsigned long)((gSemcount)(-1))) >> 1))
37
+ #define gThreadpriorityLow 0
38
+ #define gThreadpriorityNormal configMAX_PRIORITIES/2
39
+ #define gThreadpriorityHigh configMAX_PRIORITIES-1
61
40
62
41
/* FreeRTOS will allocate the stack when creating the thread */
63
- #define DECLARE_THREAD_STACK (name , sz ) uint8_t name[1]
64
- #define DECLARE_THREAD_FUNCTION (fnName , param ) threadreturn_t fnName(void *param)
65
- #define THREAD_RETURN (retval ) vTaskDelete(NULL)
42
+ #define GFX_THREAD_STACK (name , sz ) gU8 name[1]
43
+ #define GFX_THREAD_FUNCTION (fnName , param ) gThreadreturn fnName(void *param)
44
+ #define gfxThreadReturn (retval ) return
66
45
67
- typedef xSemaphoreHandle gfxSem ;
68
- typedef xSemaphoreHandle gfxMutex ;
69
- typedef xTaskHandle gfxThreadHandle ;
46
+ typedef xSemaphoreHandle gSem ;
47
+ typedef xSemaphoreHandle gMutex ;
48
+ typedef xTaskHandle gThread ;
70
49
71
50
/*===========================================================================*/
72
51
/* Function declarations. */
@@ -82,32 +61,30 @@ extern "C" {
82
61
#define gfxFree (ptr ) vPortFree(ptr)
83
62
#define gfxYield () taskYIELD()
84
63
#define gfxSystemTicks () xTaskGetTickCount()
85
- #define gfxMillisecondsToTicks (ms ) ((systemticks_t)((ms) / portTICK_PERIOD_MS))
86
- #define gfxTicksToMilliseconds (ticks ) (ticks * portTICK_PERIOD_MS)
87
-
88
- #define gfxSystemLock () portENTER_CRITICAL(&lockMux_priv)
89
- #define gfxSystemUnlock () portEXIT_CRITICAL(&lockMux_priv)
64
+ #define gfxMillisecondsToTicks (ms ) ((gTicks)((ms) / portTICK_PERIOD_MS))
65
+ #define gfxSystemLock () portENTER_CRITICAL(&lockMux_priv)
66
+ #define gfxSystemUnlock () portEXIT_CRITICAL(&lockMux_priv)
90
67
91
- void gfxMutexInit (gfxMutex * s );
68
+ void gfxMutexInit (gMutex * s );
92
69
#define gfxMutexDestroy (pmutex ) vSemaphoreDelete(*(pmutex))
93
70
#define gfxMutexEnter (pmutex ) xSemaphoreTake(*(pmutex),portMAX_DELAY)
94
71
#define gfxMutexExit (pmutex ) xSemaphoreGive(*(pmutex))
95
72
96
- void * gfxRealloc (void * ptr , size_t oldsz , size_t newsz );
97
- void gfxSleepMilliseconds (delaytime_t ms );
98
- void gfxSleepMicroseconds (delaytime_t ms );
73
+ void * gfxRealloc (void * ptr , gMemSize oldsz , gMemSize newsz );
74
+ void gfxSleepMilliseconds (gDelay ms );
75
+ void gfxSleepMicroseconds (gDelay ms );
99
76
100
- void gfxSemInit (gfxSem * psem , semcount_t val , semcount_t limit );
77
+ void gfxSemInit (gSem * psem , gSemcount val , gSemcount limit );
101
78
#define gfxSemDestroy (psem ) vSemaphoreDelete(*(psem))
102
- bool_t gfxSemWait (gfxSem * psem , delaytime_t ms );
103
- bool_t gfxSemWaitI (gfxSem * psem );
104
- void gfxSemSignal (gfxSem * psem );
105
- void gfxSemSignalI (gfxSem * psem );
106
- gfxThreadHandle gfxThreadCreate (void * stackarea , size_t stacksz , threadpriority_t prio , DECLARE_THREAD_FUNCTION ((* fn ),p ), void * param );
79
+ gBool gfxSemWait (gSem * psem , gDelay ms );
80
+ gBool gfxSemWaitI (gSem * psem );
81
+ void gfxSemSignal (gSem * psem );
82
+ void gfxSemSignalI (gSem * psem );
83
+ gThread gfxThreadCreate (void * stackarea , gMemSize stacksz , gThreadpriority prio , GFX_THREAD_FUNCTION ((* fn ),p ), void * param );
107
84
108
85
#define gfxThreadMe () xTaskGetCurrentTaskHandle()
109
86
#if INCLUDE_eTaskGetState == 1
110
- threadreturn_t gfxThreadWait (gfxThreadHandle thread );
87
+ gThreadreturn gfxThreadWait (gThread thread );
111
88
#endif
112
89
#define gfxThreadClose (thread )
113
90
0 commit comments