Paparazzi UAS  v5.12_stable-4-g9b43e9b
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
chconf.h
Go to the documentation of this file.
1 /*
2  ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
3 
4  Licensed under the Apache License, Version 2.0 (the "License");
5  you may not use this file except in compliance with the License.
6  You may obtain a copy of the License at
7 
8  http://www.apache.org/licenses/LICENSE-2.0
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 */
16 
28 #ifndef CHCONF_H
29 #define CHCONF_H
30 
31 #define _CHIBIOS_RT_CONF_
32 
33 /*===========================================================================*/
38 /*===========================================================================*/
39 
44 #define CH_CFG_ST_RESOLUTION 32
45 
51 #define CH_CFG_ST_FREQUENCY 10000
52 
61 #define CH_CFG_ST_TIMEDELTA 0
62 
65 /*===========================================================================*/
70 /*===========================================================================*/
71 
84 #define CH_CFG_TIME_QUANTUM 10
85 
97 #define CH_CFG_MEMCORE_SIZE 0
98 
106 #define CH_CFG_NO_IDLE_THREAD FALSE
107 
110 /*===========================================================================*/
115 /*===========================================================================*/
116 
125 #define CH_CFG_OPTIMIZE_SPEED TRUE
126 
129 /*===========================================================================*/
134 /*===========================================================================*/
135 
143 #define CH_CFG_USE_TM TRUE
144 
151 #define CH_CFG_USE_REGISTRY TRUE
152 
160 #define CH_CFG_USE_WAITEXIT TRUE
161 
168 #define CH_CFG_USE_SEMAPHORES TRUE
169 
179 #define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
180 
187 #define CH_CFG_USE_MUTEXES TRUE
188 
197 #define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
198 
207 #define CH_CFG_USE_CONDVARS TRUE
208 
217 #define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
218 
225 #define CH_CFG_USE_EVENTS TRUE
226 
235 #define CH_CFG_USE_EVENTS_TIMEOUT TRUE
236 
244 #define CH_CFG_USE_MESSAGES TRUE
245 
255 #define CH_CFG_USE_MESSAGES_PRIORITY FALSE
256 
265 #define CH_CFG_USE_MAILBOXES TRUE
266 
273 #define CH_CFG_USE_QUEUES TRUE
274 
282 #define CH_CFG_USE_MEMCORE TRUE
283 
294 #define CH_CFG_USE_HEAP TRUE
295 
303 #define CH_CFG_USE_MEMPOOLS TRUE
304 
314 #define CH_CFG_USE_DYNAMIC TRUE
315 
318 /*===========================================================================*/
323 /*===========================================================================*/
324 
330 #if !defined(CH_DBG_STATISTICS)
331 #define CH_DBG_STATISTICS FALSE
332 #endif
333 
341 #if !defined(CH_DBG_SYSTEM_STATE_CHECK)
342 #define CH_DBG_SYSTEM_STATE_CHECK FALSE
343 #endif
344 
352 #if !defined(CH_DBG_ENABLE_CHECKS)
353 #define CH_DBG_ENABLE_CHECKS FALSE
354 #endif
355 
364 #if !defined(CH_DBG_ENABLE_ASSERTS)
365 #define CH_DBG_ENABLE_ASSERTS FALSE
366 #endif
367 
375 #define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
376 
382 #define CH_DBG_TRACE_BUFFER_SIZE 128
383 
394 #if !defined(CH_DBG_ENABLE_STACK_CHECK)
395 #define CH_DBG_ENABLE_STACK_CHECK FALSE
396 #endif
397 
406 #if !defined(CH_DBG_FILL_THREADS)
407 #define CH_DBG_FILL_THREADS FALSE
408 #endif
409 
419 #if !defined(CH_DBG_THREADS_PROFILING)
420 #define CH_DBG_THREADS_PROFILING FALSE
421 #endif
422 
425 /*===========================================================================*/
430 /*===========================================================================*/
431 
436 #define CH_CFG_THREAD_EXTRA_FIELDS \
437  /* Add threads custom fields here.*/
438 
446 #define CH_CFG_THREAD_INIT_HOOK(tp) { \
447  /* Add threads initialization code here.*/ \
448 }
449 
458 #define CH_CFG_THREAD_EXIT_HOOK(tp) { \
459  /* Add threads finalization code here.*/ \
460 }
461 
466 #define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
467  /* Context switch code here.*/ \
468 }
469 
473 #define CH_CFG_IRQ_PROLOGUE_HOOK() { \
474  /* IRQ prologue code here.*/ \
475 }
476 
480 #define CH_CFG_IRQ_EPILOGUE_HOOK() { \
481  /* IRQ epilogue code here.*/ \
482 }
483 
490 #define CH_CFG_IDLE_ENTER_HOOK() { \
491  /* Idle-enter code here.*/ \
492 }
493 
500 #define CH_CFG_IDLE_LEAVE_HOOK() { \
501  /* Idle-leave code here.*/ \
502 }
503 
508 #define CH_CFG_IDLE_LOOP_HOOK() { \
509  /* Idle loop code here.*/ \
510 }
511 
517 #define CH_CFG_SYSTEM_TICK_HOOK() { \
518  /* System tick event code here.*/ \
519 }
520 
526 #define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
527  /* System halt code here.*/ \
528 }
529 
535 #define CH_CFG_TRACE_HOOK(tep) { \
536  /* Trace code here.*/ \
537 }
538 
541 /*===========================================================================*/
542 /* Port-specific settings (override port settings defaulted in chcore.h). */
543 /*===========================================================================*/
544 
545 
546 
547 #ifndef CORTEX_VTOR_INIT // try to find the correct init address if not defined
548 
549 #if USE_ITCM // point to correct interrupt vector when using ITCM flash on F7
550 #define CORTEX_VTOR_INIT 0x00200000U
551 
552 #elif LUFTBOOT // using LUFTBOOT bootloader
553 #if defined STM32F4
554 #define CORTEX_VTOR_INIT 0x00004000U
555 #else
556 #define CORTEX_VTOR_INIT 0x00002000U
557 #endif
558 
559 #else // default value
560 #define CORTEX_VTOR_INIT 0x08000000U
561 #endif
562 
563 #endif // CORTEX_VTOR_INIT
564 
565 // allow float for the ChibiOS print function (used with logger)
566 #define CHPRINTF_USE_FLOAT 1
567 
568 #endif /* _CHCONF_H_ */
569