ARMEBS4  revision-26.06.2015
config.h
Go to the documentation of this file.
1 /************************************************************************//**
2  * \file heivs/config.h
3  * \brief libheivs configuration file
4  *
5  * \defgroup config_h_options Project configuration
6  * @{ \ingroup config
7  *
8  * \brief Configuration options for the current project
9  *
10  ***************************************************************************/
11 #ifndef HEIVS_CHECK_CONFIG_H
12 #define HEIVS_CHECK_CONFIG_H
13 
14 #define _HEIVS_CHECK_CONFIG_H
15 #include "config/config.h"
16 #undef _HEIVS_CHECK_CONFIG_H
17 
18 /**
19  * \def USE_FREERTOS
20  * \brief Use the FreeRTOS real time OS.
21  *
22  * Possible values:
23  * - 0 : Don't use FreeRTOS
24  * - 1 : Use FreeRTOS
25  *
26  * FIXME : examples
27  *
28  * \see FreeRTOS site : http://www.freertos.org/
29  */
30 #if !defined(USE_FREERTOS)
31  #define USE_FREERTOS 0
32 #endif
33 #if USE_FREERTOS != 0 && USE_FREERTOS != 1
34  #error USE_FREERTOS valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
35 #endif
36 
37 /**
38  * \def USE_UGFX
39  * \brief Use the uGFX graphical library.
40  *
41  * Possible values:
42  * - 0 : Don't use uGFX
43  * - 1 : Use uGFX
44  *
45  * FIXME : examples
46  * \see uFGX site : http://ugfx.org
47  */
48 #if !defined(USE_UGFX)
49  #define USE_UGFX 0
50 #endif
51 #if USE_UGFX != 0 && USE_UGFX != 1
52  #error USE_UGFX valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
53 #endif
54 
55 /**
56  * \def USE_LWIP
57  * \brief Use the lwip TCP/IP stack.
58  *
59  * Possible values:
60  * - 0 : Don't use lwip
61  * - 1 : Use lwip
62  *
63  * FIXME : examples
64  * \see uFGX site : http://lwip.org
65  */
66 #if !defined(USE_LWIP)
67  #define USE_LWIP 0
68 #endif
69 #if USE_LWIP != 0 && USE_LWIP != 1
70  #error USE_LWIP valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
71 #endif
72 
73 /**
74  * \def USE_STM32_LIB_ASSERT
75  * \brief Call bsp_fatal when the stm32 library detects a problem
76  *
77  * Possible values:
78  * - 0 : Call bsp_fatal in case of problem
79  * - 1 : Do nothing
80  */
81 #if !defined(USE_STM32_LIB_ASSERT)
82  #define USE_STM32_LIB_ASSERT 0
83 #endif
84 #if USE_STM32_LIB_ASSERT != 0 && USE_STM32_LIB_ASSERT != 1
85  #error USE_STM32_LIB_ASSERT valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
86 #endif
87 
88 /**
89  * \def USE_BOOT_TIME_CRITICAL
90  * \brief Boot as fast as possible
91  *
92  * Possible values:
93  * - 0 : Boot slower, but debugging will be easier.
94  * - 1 : Boot as fast as possible.
95  */
96 #if !defined(USE_BOOT_TIME_CRITICAL)
97  #define USE_BOOT_TIME_CRITICAL 0
98 #endif
99 #if USE_BOOT_TIME_CRITICAL != 0 && USE_BOOT_TIME_CRITICAL != 1
100  #error USE_BOOT_TIME_CRITICAL valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
101 #endif
102 
103 /**
104  * \def USE_STM32_USB_USE_DEVICE_MODE
105  * \brief Use the ST USB device library
106  *
107  * Possible values:
108  * - 0 : Don't use that library
109  * - 1 : Use that library
110  *
111  * FIXME : examples + config files
112  */
113 #if !defined(USE_STM32_USB_USE_DEVICE_MODE)
114  #define USE_STM32_USB_USE_DEVICE_MODE 0
115 #endif
116 #if USE_STM32_USB_USE_DEVICE_MODE != 0 && USE_STM32_USB_USE_DEVICE_MODE != 1
117  #error USE_STM32_USB_USE_DEVICE_MODE valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
118 #endif
119 
120 /**
121  * \def USE_STM32_USB_HOST_MODE
122  * \brief Use the ST USB host library
123  *
124  * Possible values:
125  * - 0 : Don't use that library
126  * - 1 : Use that library
127  *
128  * FIXME : examples + config files
129  */
130 #if !defined(USE_STM32_USB_HOST_MODE)
131  #define USE_STM32_USB_HOST_MODE 0
132 #endif
133 #if USE_STM32_USB_HOST_MODE != 0 && USE_STM32_USB_HOST_MODE != 1
134  #error USE_STM32_USB_HOST_MODE valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
135 #endif
136 
137 /**
138  * \def USE_STM32_USB_OTG_MODE
139  * \brief Use the ST USB on the go library
140  *
141  * Possible values:
142  * - 0 : Don't use that library
143  * - 1 : Use that library
144  *
145  * FIXME : examples + config files
146  * \warning This mode is untested
147  */
148 #if !defined(USE_STM32_USB_OTG_MODE)
149  #define USE_STM32_USB_OTG_MODE 0
150 #endif
151 #if USE_STM32_USB_OTG_MODE != 0 && USE_STM32_USB_OTG_MODE != 1
152  #error USE_STM32_USB_OTG_MODE valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
153 #endif
154 
155 #if defined(USE_STDIO_USART) && defined(USE_SEMIHOSTING)
156  #error USE_STDIO_USART & USE_SEMIHOSTING are exclusive, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
157 #endif
158 
159 /**
160  * \def USE_STDIO_USART
161  * \brief Use this usart number for stdio redirection.
162  *
163  * The speed is currently fixed at 115200.
164  *
165  * FIXME : examples
166  */
167 #if !defined(USE_STDIO_USART) && !defined(USE_SEMIHOSTING)
168  #define USE_STDIO_USART 0
169 #endif
170 /**
171  * \def USE_SEMIHOSTING
172  * \brief Use semihosting for stdio
173  *
174  * Possible values:
175  * - 0 : Don't use that library
176  * - 1 : Use that library
177  *
178  * FIXME : examples
179  */
180 #if !defined(USE_SEMIHOSTING)
181  #define USE_SEMIHOSTING 0
182 #endif
183 #if USE_SEMIHOSTING != 0 && USE_SEMIHOSTING != 1
184  #error USE_SEMIHOSTING valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
185 #endif
186 
187 /**
188  * \def USE_STDIO_NOBUF
189  * \brief Disable stdio buffering
190  *
191  * Possible values:
192  * - 0 : use stdio buffers
193  * - 1 : don't use stdio buffers
194  *
195  * Defaults to 1
196  */
197 
198 #if !defined(USE_STDIO_NOBUF)
199  #define USE_STDIO_NOBUF 1
200 #endif
201 
202 /**
203  * \def USE_FATAL_MALLOC_FAILED
204  * \brief Call #bsp_fatal(ERROR_OUT_OF_MEMORY) when a malloc fails
205  *
206  * \see #configUSE_MALLOC_FAILED_HOOK when USE_FREERTOS = 1
207  *
208  * Possible values:
209  * - 0 : malloc will return NULL when out of memory
210  * - 1 : malloc will call #bsp_fatal(ERROR_OUT_OF_MEMORY) when out of memory
211  *
212  * Defaults to 1
213  */
214 
215 #if !defined(USE_FATAL_MALLOC_FAILED)
216  #define USE_FATAL_MALLOC_FAILED 1
217 #endif
218 /**
219  * \def USE_STDIO_ECHO
220  * \brief Enable echo for stdio
221  *
222  * Possible values:
223  * - 1 : generate echo
224  * - 0 : don't generate echo
225  */
226 #if !defined(USE_STDIO_ECHO)
227  #define USE_STDIO_ECHO 0
228 #endif
229 
230 
231 /**
232  * \def USE_STDIO_AUTO_CR_BEFORE_LF
233  * \brief Put a CR ('\r') before every LF ('\n') on stdout (and stderr)
234  *
235  * Possible values:
236  * - 0 : Don't use that workaround
237  * - 1 : Use that workaround (DEFAULT)
238  *
239  * FIXME : examples
240  *
241  * This can be used to make the terminal emulator happy.
242  */
243 #if !defined(USE_STDIO_AUTO_CR_BEFORE_LF)
244 #define USE_STDIO_AUTO_CR_BEFORE_LF 1
245 #endif
246 #if USE_STDIO_AUTO_CR_BEFORE_LF != 0 && USE_STDIO_AUTO_CR_BEFORE_LF != 1
247  #error USE_STDIO_AUTO_CR_BEFORE_LF valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
248 #endif
249 
250 /**
251  * \def USE_LIBJPEG
252  * \brief Use the libjpeg JPEG compression and decompression library
253  *
254  * Possible values:
255  * - 0 : Don't use that library
256  * - 1 : Use that library
257  *
258  * FIXME : examples
259  *
260  * \see The Sourceforge site for libjpeg : http://libjpeg.sourceforge.net/
261  */
262 #if !defined(USE_LIBJPEG)
263 #define USE_LIBJPEG 0
264 #endif
265 #if USE_LIBJPEG != 0 && USE_LIBJPEG != 1
266  #error USE_LIBJPEG valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
267 #endif
268 
269 /**
270  * \def USE_FATFS
271  * \brief Use the FatFS library by ChaN
272  *
273  * Possible values:
274  * - 0 : Don't use that library
275  * - 1 : Use that library
276  *
277  * FIXME : examples
278  *
279  * \see The website for fatfs : http://elm-chan.org/fsw/ff/00index_e.html
280  */
281 #if !defined(USE_FATFS)
282  #define USE_FATFS 0
283 #endif
284 #if USE_FATFS != 0 && USE_FATFS != 1
285  #error USE_FATFS valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
286 #endif
287 
288 /**
289  * \def USE_GCC_STACK_PROTECTOR
290  * \brief gcc -fstack-protector and -fstack-protector-all support
291  *
292  * \ingroup automatic_config
293  */
294 #ifdef __GNUC__
295  #if defined (USE_GCC_STACK_PROTECTOR)
296  #error USE_GCC_STACK_PROTECTOR is an automatic define
297  #endif
298  #if (defined(__SSP_ALL__) || defined (__SSP__))
299  #define USE_GCC_STACK_PROTECTOR 1
300  #else
301  #define USE_GCC_STACK_PROTECTOR 0
302  #endif
303 #else
304  #define USE_GCC_STACK_PROTECTOR 0
305 #endif /* __GNUC__ */
306 
307 /**
308  * GCC stack protections is incompatible with FreeRTOS
309  */
310 #if USE_GCC_STACK_PROTECTOR && USE_FREERTOS
311  #error FreeRTOS is incompatible with gcc options -fstack-protector and -fstack-protector-all
312 #endif /* USE_FREERTOS */
313 
314 /**
315  * \def USE_GPL_LICENSE
316  *
317  * \brief This project has a GPL licence, so GPL libraries are enable.
318  * \see http://www.gnu.org/licenses/gpl-2.0.html
319  *
320  * Possible values:
321  * - 0 : Project is GPL
322  * - 1 : Project is not GPL
323  *
324  */
325 #if !defined(USE_GPL_LICENSE)
326  #define USE_GPL_LICENSE 0
327 #endif
328 
329 #if USE_GPL_LICENSE != 0 && USE_GPL_LICENSE != 1
330  #error USE_GPL_LICENSE valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
331 #endif
332 
333 /**
334  * \def USE_CYASSL
335  * \brief Use the CYASSL library (requires USE_GPL_LICENSE)
336  *
337  * Possible values:
338  * - 0 : Don't use that library
339  * - 1 : Use that library
340  */
341 #if !defined(USE_CYASSL)
342  #define USE_CYASSL 0
343 #endif
344 #if USE_CYASSL != 0 && USE_CYASSL != 1
345  #error USE_CYASSL valid values are 0 or 1, please check your config/config.h, there is a model in "heivs/samples/config.h.txt"
346 #endif
347 #if USE_CYASSL && !USE_GPL_LICENSE
348  #error USE_CYASSL requieres USE_GPL_LICENSE
349 #endif
350 
351 /************************************************************************//**
352  * @}
353  ***************************************************************************/
354 #endif /* HEIVS_CHECK_CONFIG_H */