Select one of the symbols to view example projects that use it.
 
Outline
Includes
#include "GUI.h"
#include "cmsis_os.h"
osMutex
osSemaphore
GUI_X_GetTime()
GUI_X_Delay(int)
GUI_X_Init()
GUI_X_ExecIdle()
GUI_X_InitOS()
GUI_X_Unlock()
GUI_X_Lock()
GUI_X_GetTaskId()
GUI_X_WaitEvent()
GUI_X_SignalEvent()
GUI_X_Log(const char *)
GUI_X_Warn(const char *)
GUI_X_ErrorOut(const char *)
Files
loading...
SourceVuSTM32 Libraries and SamplesSTemWinOS/GUI_X_OS.c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/********************************************************************* * SEGGER Microcontroller GmbH & Co. KG * * Solutions for real time microcontroller applications * ********************************************************************** * * * (c) 1996 - 2017 SEGGER Microcontroller GmbH & Co. KG * * * * Internet: www.segger.com Support: support@segger.com * * * ********************************************************************** ** emWin V5.44 - Graphical user interface for embedded applications ** All Intellectual Property rights in the Software belongs to SEGGER. emWin is protected by international copyright laws. Knowledge of the source code may not be used to write a similar product. This file may only be used in accordance with the following terms: The software has been licensed to STMicroelectronics International N.V. a Dutch company with a Swiss branch and its headquarters in Plan- les-Ouates, Geneva, 39 Chemin du Champ des Filles, Switzerland for the purposes of creating libraries for ARM Cortex-M-based 32-bit microcon_ troller products commercialized by Licensee only, sublicensed and dis_ tributed under the terms and conditions of the End User License Agree_ ment supplied by STMicroelectronics International N.V. Full source code is available at: www.segger.com We appreciate your understanding and fairness. ---------------------------------------------------------------------- File : GUI_X_OS.C Purpose : This file provides emWin Interface with FreeRTOS ---------------------------END-OF-HEADER------------------------------ *//* ... */ /** ****************************************************************************** * @attention * * <h2><center>&copy; Copyright (c) 2018 STMicroelectronics. * All rights reserved.</center></h2> * * This software component is licensed by ST under Ultimate Liberty license SLA0044, * the "License"; You may not use this file except in compliance with the License. * You may obtain a copy of the License at: * http://www.st.com/SLA0044 * ****************************************************************************** *//* ... */ /* Includes ------------------------------------------------------------------*/ #include "GUI.h" /* FreeRTOS include files */ #include "cmsis_os.h" /********************************************************************* * * Global data *//* ... */ static osMutexId osMutex; static osSemaphoreId osSemaphore; /********************************************************************* * * Timing: * GUI_X_GetTime() * GUI_X_Delay(int) Some timing dependent routines require a GetTime and delay function. Default time unit (tick), normally is 1 ms. *//* ... */ int GUI_X_GetTime(void) { return ((int) osKernelSysTick()); }{ ... } void GUI_X_Delay(int ms) { osDelay( ms ); }{ ... } /********************************************************************* * * GUI_X_Init() * * Note: * GUI_X_Init() is called from GUI_Init is a possibility to init * some hardware which needs to be up and running before the GUI. * If not required, leave this routine blank. *//* ... */ void GUI_X_Init(void) { }{ ... } /********************************************************************* * * GUI_X_ExecIdle * * Note: * Called if WM is in idle state *//* ... */ void GUI_X_ExecIdle(void) {} /********************************************************************* * * Multitasking: * * GUI_X_InitOS() * GUI_X_GetTaskId() * GUI_X_Lock() * GUI_X_Unlock() * * Note: * The following routines are required only if emWin is used in a * true multi task environment, which means you have more than one * thread using the emWin API. * In this case the * #define GUI_OS 1 * needs to be in GUIConf.h *//* ... */ /* Init OS */ void GUI_X_InitOS(void) { /* Create Mutex lock */ osMutexDef(MUTEX); /* Create the Mutex used by the two threads */ osMutex = osMutexCreate(osMutex(MUTEX)); /* Create Semaphore lock */ osSemaphoreDef(SEM); /* Create the Semaphore used by the two threads */ osSemaphore= osSemaphoreCreate(osSemaphore(SEM), 1); }{ ... } void GUI_X_Unlock(void) { osMutexRelease(osMutex); }{ ... } void GUI_X_Lock(void) { osMutexWait(osMutex , osWaitForever) ; }{ ... } /* Get Task handle */ U32 GUI_X_GetTaskId(void) { return ((U32) osThreadGetId()); }{ ... } void GUI_X_WaitEvent (void) { osSemaphoreWait(osSemaphore , osWaitForever) ; }{ ... } void GUI_X_SignalEvent (void) { osMutexRelease(osSemaphore); }{ ... } /********************************************************************* * * Logging: OS dependent Note: Logging is used in higher debug levels only. The typical target build does not use logging and does therefor not require any of the logging routines below. For a release build without logging the routines below may be eliminated to save some space. (If the linker is not function aware and eliminates unreferenced functions automatically) *//* ... */ void GUI_X_Log (const char *s) { } void GUI_X_Warn (const char *s) { } void GUI_X_ErrorOut(const char *s) { } Includes /*************************** End of file ****************************/
Details