Statistics
| Branch: | Tag: | Revision:

amiro-os / os / modules / PowerManagement_1-1 / chconf.h @ bdf72fa0

History | View | Annotate | Download (17.704 KB)

1 e545e620 Thomas Schöpping
/*
2
AMiRo-OS is an operating system designed for the Autonomous Mini Robot (AMiRo) platform.
3
Copyright (C) 2016..2018  Thomas Schöpping et al.
4

5
This program is free software: you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
the Free Software Foundation, either version 3 of the License, or
8
(at your option) any later version.
9

10
This program is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
GNU General Public License for more details.
14

15
You should have received a copy of the GNU General Public License
16
along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19 3f899f5d Thomas Schöpping
/**
20 e545e620 Thomas Schöpping
 * @file    os/modules/PowerManagement/chconf.h
21
 * @brief   ChibiOS Configuration file for the PowerManagement module.
22
 * @details Contains the application specific kernel settings.
23 3f899f5d Thomas Schöpping
 *
24
 * @addtogroup config
25
 * @details Kernel related settings and hooks.
26
 * @{
27
 */
28
29 58fe0e0b Thomas Schöpping
#ifndef _CHCONF_H_
30
#define _CHCONF_H_
31
32 e545e620 Thomas Schöpping
#define _CHIBIOS_RT_CONF_
33
34
#include <aosconf.h>
35
36 58fe0e0b Thomas Schöpping
/*===========================================================================*/
37
/**
38 e545e620 Thomas Schöpping
 * @name System timers settings
39 58fe0e0b Thomas Schöpping
 * @{
40
 */
41
/*===========================================================================*/
42
43
/**
44 e545e620 Thomas Schöpping
 * @brief   System time counter resolution.
45
 * @note    Allowed values are 16 or 32 bits.
46
 */
47
#define CH_CFG_ST_RESOLUTION                32
48
49
/**
50 58fe0e0b Thomas Schöpping
 * @brief   System tick frequency.
51
 * @details Frequency of the system timer that drives the system ticks. This
52
 *          setting also defines the system tick time unit.
53
 */
54 e545e620 Thomas Schöpping
#define CH_CFG_ST_FREQUENCY                 1000000UL
55
56
/**
57
 * @brief   Time delta constant for the tick-less mode.
58
 * @note    If this value is zero then the system uses the classic
59
 *          periodic tick. This value represents the minimum number
60
 *          of ticks that is safe to specify in a timeout directive.
61
 *          The value one is not valid, timeouts are rounded up to
62
 *          this value.
63
 */
64
#define CH_CFG_ST_TIMEDELTA                 10
65
66
/** @} */
67
68
/*===========================================================================*/
69
/**
70
 * @name Kernel parameters and options
71
 * @{
72
 */
73
/*===========================================================================*/
74 58fe0e0b Thomas Schöpping
75
/**
76
 * @brief   Round robin interval.
77
 * @details This constant is the number of system ticks allowed for the
78
 *          threads before preemption occurs. Setting this value to zero
79
 *          disables the preemption for threads with equal priority and the
80
 *          round robin becomes cooperative. Note that higher priority
81
 *          threads can still preempt, the kernel is always preemptive.
82
 * @note    Disabling the round robin preemption makes the kernel more compact
83
 *          and generally faster.
84 e545e620 Thomas Schöpping
 * @note    The round robin preemption is not supported in tickless mode and
85
 *          must be set to zero in that case.
86 58fe0e0b Thomas Schöpping
 */
87 e545e620 Thomas Schöpping
#define CH_CFG_TIME_QUANTUM                 0
88 58fe0e0b Thomas Schöpping
89
/**
90
 * @brief   Managed RAM size.
91
 * @details Size of the RAM area to be managed by the OS. If set to zero
92
 *          then the whole available RAM is used. The core memory is made
93
 *          available to the heap allocator and/or can be used directly through
94
 *          the simplified core memory allocator.
95
 *
96
 * @note    In order to let the OS manage the whole RAM the linker script must
97
 *          provide the @p __heap_base__ and @p __heap_end__ symbols.
98 e545e620 Thomas Schöpping
 * @note    Requires @p CH_CFG_USE_MEMCORE.
99 58fe0e0b Thomas Schöpping
 */
100 e545e620 Thomas Schöpping
#define CH_CFG_MEMCORE_SIZE                 0
101 58fe0e0b Thomas Schöpping
102
/**
103
 * @brief   Idle thread automatic spawn suppression.
104
 * @details When this option is activated the function @p chSysInit()
105 e545e620 Thomas Schöpping
 *          does not spawn the idle thread. The application @p main()
106
 *          function becomes the idle thread and must implement an
107
 *          infinite loop.
108
 */
109
#define CH_CFG_NO_IDLE_THREAD               FALSE
110 58fe0e0b Thomas Schöpping
111
/** @} */
112
113
/*===========================================================================*/
114
/**
115
 * @name Performance options
116
 * @{
117
 */
118
/*===========================================================================*/
119
120
/**
121
 * @brief   OS optimization.
122
 * @details If enabled then time efficient rather than space efficient code
123
 *          is used when two possible implementations exist.
124
 *
125
 * @note    This is not related to the compiler optimization options.
126
 * @note    The default is @p TRUE.
127
 */
128 e545e620 Thomas Schöpping
#define CH_CFG_OPTIMIZE_SPEED               TRUE
129 58fe0e0b Thomas Schöpping
130
/** @} */
131
132
/*===========================================================================*/
133
/**
134
 * @name Subsystem options
135
 * @{
136
 */
137
/*===========================================================================*/
138
139
/**
140 e545e620 Thomas Schöpping
 * @brief   Time Measurement APIs.
141
 * @details If enabled then the time measurement APIs are included in
142
 *          the kernel.
143
 *
144
 * @note    The default is @p TRUE.
145
 */
146
#define CH_CFG_USE_TM                       FALSE
147
148
/**
149 58fe0e0b Thomas Schöpping
 * @brief   Threads registry APIs.
150
 * @details If enabled then the registry APIs are included in the kernel.
151
 *
152
 * @note    The default is @p TRUE.
153
 */
154 e545e620 Thomas Schöpping
#define CH_CFG_USE_REGISTRY                 FALSE
155 58fe0e0b Thomas Schöpping
156
/**
157
 * @brief   Threads synchronization APIs.
158
 * @details If enabled then the @p chThdWait() function is included in
159
 *          the kernel.
160
 *
161
 * @note    The default is @p TRUE.
162
 */
163 e545e620 Thomas Schöpping
#define CH_CFG_USE_WAITEXIT                 TRUE
164 58fe0e0b Thomas Schöpping
165
/**
166
 * @brief   Semaphores APIs.
167
 * @details If enabled then the Semaphores APIs are included in the kernel.
168
 *
169
 * @note    The default is @p TRUE.
170
 */
171 e545e620 Thomas Schöpping
#define CH_CFG_USE_SEMAPHORES               FALSE
172 58fe0e0b Thomas Schöpping
173
/**
174
 * @brief   Semaphores queuing mode.
175
 * @details If enabled then the threads are enqueued on semaphores by
176
 *          priority rather than in FIFO order.
177
 *
178 e545e620 Thomas Schöpping
 * @note    The default is @p FALSE. Enable this if you have special
179
 *          requirements.
180
 * @note    Requires @p CH_CFG_USE_SEMAPHORES.
181 58fe0e0b Thomas Schöpping
 */
182 e545e620 Thomas Schöpping
#define CH_CFG_USE_SEMAPHORES_PRIORITY      FALSE
183 58fe0e0b Thomas Schöpping
184
/**
185 e545e620 Thomas Schöpping
 * @brief   Mutexes APIs.
186
 * @details If enabled then the mutexes APIs are included in the kernel.
187 58fe0e0b Thomas Schöpping
 *
188
 * @note    The default is @p TRUE.
189
 */
190 e545e620 Thomas Schöpping
#define CH_CFG_USE_MUTEXES                  TRUE
191 58fe0e0b Thomas Schöpping
192
/**
193 e545e620 Thomas Schöpping
 * @brief   Enables recursive behavior on mutexes.
194
 * @note    Recursive mutexes are heavier and have an increased
195
 *          memory footprint.
196 58fe0e0b Thomas Schöpping
 *
197 e545e620 Thomas Schöpping
 * @note    The default is @p FALSE.
198
 * @note    Requires @p CH_CFG_USE_MUTEXES.
199 58fe0e0b Thomas Schöpping
 */
200 e545e620 Thomas Schöpping
#define CH_CFG_USE_MUTEXES_RECURSIVE        FALSE
201 58fe0e0b Thomas Schöpping
202
/**
203
 * @brief   Conditional Variables APIs.
204
 * @details If enabled then the conditional variables APIs are included
205
 *          in the kernel.
206
 *
207
 * @note    The default is @p TRUE.
208 e545e620 Thomas Schöpping
 * @note    Requires @p CH_CFG_USE_MUTEXES.
209 58fe0e0b Thomas Schöpping
 */
210 e545e620 Thomas Schöpping
#define CH_CFG_USE_CONDVARS                 FALSE
211 58fe0e0b Thomas Schöpping
212
/**
213
 * @brief   Conditional Variables APIs with timeout.
214
 * @details If enabled then the conditional variables APIs with timeout
215
 *          specification are included in the kernel.
216
 *
217
 * @note    The default is @p TRUE.
218 e545e620 Thomas Schöpping
 * @note    Requires @p CH_CFG_USE_CONDVARS.
219 58fe0e0b Thomas Schöpping
 */
220 e545e620 Thomas Schöpping
#define CH_CFG_USE_CONDVARS_TIMEOUT         FALSE
221 58fe0e0b Thomas Schöpping
222
/**
223
 * @brief   Events Flags APIs.
224
 * @details If enabled then the event flags APIs are included in the kernel.
225
 *
226
 * @note    The default is @p TRUE.
227
 */
228 e545e620 Thomas Schöpping
#define CH_CFG_USE_EVENTS                   TRUE
229 58fe0e0b Thomas Schöpping
230
/**
231
 * @brief   Events Flags APIs with timeout.
232
 * @details If enabled then the events APIs with timeout specification
233
 *          are included in the kernel.
234
 *
235
 * @note    The default is @p TRUE.
236 e545e620 Thomas Schöpping
 * @note    Requires @p CH_CFG_USE_EVENTS.
237 58fe0e0b Thomas Schöpping
 */
238 e545e620 Thomas Schöpping
#define CH_CFG_USE_EVENTS_TIMEOUT           TRUE
239 58fe0e0b Thomas Schöpping
240
/**
241
 * @brief   Synchronous Messages APIs.
242
 * @details If enabled then the synchronous messages APIs are included
243
 *          in the kernel.
244
 *
245
 * @note    The default is @p TRUE.
246
 */
247 e545e620 Thomas Schöpping
#define CH_CFG_USE_MESSAGES                 FALSE
248 58fe0e0b Thomas Schöpping
249
/**
250
 * @brief   Synchronous Messages queuing mode.
251
 * @details If enabled then messages are served by priority rather than in
252
 *          FIFO order.
253
 *
254 e545e620 Thomas Schöpping
 * @note    The default is @p FALSE. Enable this if you have special
255
 *          requirements.
256
 * @note    Requires @p CH_CFG_USE_MESSAGES.
257 58fe0e0b Thomas Schöpping
 */
258 e545e620 Thomas Schöpping
#define CH_CFG_USE_MESSAGES_PRIORITY        FALSE
259 58fe0e0b Thomas Schöpping
260
/**
261
 * @brief   Mailboxes APIs.
262
 * @details If enabled then the asynchronous messages (mailboxes) APIs are
263
 *          included in the kernel.
264
 *
265
 * @note    The default is @p TRUE.
266 e545e620 Thomas Schöpping
 * @note    Requires @p CH_CFG_USE_SEMAPHORES.
267 58fe0e0b Thomas Schöpping
 */
268 e545e620 Thomas Schöpping
#define CH_CFG_USE_MAILBOXES                FALSE
269 58fe0e0b Thomas Schöpping
270
/**
271
 * @brief   I/O Queues APIs.
272
 * @details If enabled then the I/O queues APIs are included in the kernel.
273
 *
274
 * @note    The default is @p TRUE.
275
 */
276 e545e620 Thomas Schöpping
#define CH_CFG_USE_QUEUES                   FALSE
277 58fe0e0b Thomas Schöpping
278
/**
279
 * @brief   Core Memory Manager APIs.
280
 * @details If enabled then the core memory manager APIs are included
281
 *          in the kernel.
282
 *
283
 * @note    The default is @p TRUE.
284
 */
285 e545e620 Thomas Schöpping
#define CH_CFG_USE_MEMCORE                  FALSE
286 58fe0e0b Thomas Schöpping
287
/**
288
 * @brief   Heap Allocator APIs.
289
 * @details If enabled then the memory heap allocator APIs are included
290
 *          in the kernel.
291
 *
292
 * @note    The default is @p TRUE.
293 e545e620 Thomas Schöpping
 * @note    Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
294
 *          @p CH_CFG_USE_SEMAPHORES.
295 58fe0e0b Thomas Schöpping
 * @note    Mutexes are recommended.
296
 */
297 e545e620 Thomas Schöpping
#define CH_CFG_USE_HEAP                     FALSE
298 58fe0e0b Thomas Schöpping
299
/**
300
 * @brief   Memory Pools Allocator APIs.
301
 * @details If enabled then the memory pools allocator APIs are included
302
 *          in the kernel.
303
 *
304
 * @note    The default is @p TRUE.
305
 */
306 e545e620 Thomas Schöpping
#define CH_CFG_USE_MEMPOOLS                 FALSE
307 58fe0e0b Thomas Schöpping
308
/**
309
 * @brief   Dynamic Threads APIs.
310
 * @details If enabled then the dynamic threads creation APIs are included
311
 *          in the kernel.
312
 *
313
 * @note    The default is @p TRUE.
314 e545e620 Thomas Schöpping
 * @note    Requires @p CH_CFG_USE_WAITEXIT.
315
 * @note    Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
316 58fe0e0b Thomas Schöpping
 */
317 e545e620 Thomas Schöpping
#define CH_CFG_USE_DYNAMIC                  FALSE
318 58fe0e0b Thomas Schöpping
319
/** @} */
320
321
/*===========================================================================*/
322
/**
323
 * @name Debug options
324
 * @{
325
 */
326
/*===========================================================================*/
327
328
/**
329 e545e620 Thomas Schöpping
 * @brief   Debug option, kernel statistics.
330
 *
331
 * @note    The default is @p FALSE.
332
 */
333
#define CH_DBG_STATISTICS                   FALSE
334
335
/**
336 58fe0e0b Thomas Schöpping
 * @brief   Debug option, system state check.
337
 * @details If enabled the correct call protocol for system APIs is checked
338
 *          at runtime.
339
 *
340
 * @note    The default is @p FALSE.
341
 */
342 e545e620 Thomas Schöpping
#if (AMIROOS_CFG_DBG == true) || defined(__DOXYGEN__)
343
#define CH_DBG_SYSTEM_STATE_CHECK           TRUE
344
#else
345
#define CH_DBG_SYSTEM_STATE_CHECK           FALSE
346 58fe0e0b Thomas Schöpping
#endif
347
348
/**
349
 * @brief   Debug option, parameters checks.
350
 * @details If enabled then the checks on the API functions input
351
 *          parameters are activated.
352
 *
353
 * @note    The default is @p FALSE.
354
 */
355 e545e620 Thomas Schöpping
#if (AMIROOS_CFG_DBG == true) || defined(__DOXYGEN__)
356
#define CH_DBG_ENABLE_CHECKS                TRUE
357
#else
358
#define CH_DBG_ENABLE_CHECKS                FALSE
359 58fe0e0b Thomas Schöpping
#endif
360
361
/**
362
 * @brief   Debug option, consistency checks.
363
 * @details If enabled then all the assertions in the kernel code are
364
 *          activated. This includes consistency checks inside the kernel,
365
 *          runtime anomalies and port-defined checks.
366
 *
367
 * @note    The default is @p FALSE.
368
 */
369 e545e620 Thomas Schöpping
#if (AMIROOS_CFG_DBG == true) || defined(__DOXYGEN__)
370
#define CH_DBG_ENABLE_ASSERTS               TRUE
371
#else
372
#define CH_DBG_ENABLE_ASSERTS               FALSE
373 58fe0e0b Thomas Schöpping
#endif
374
375
/**
376
 * @brief   Debug option, trace buffer.
377 e545e620 Thomas Schöpping
 * @details If enabled then the trace buffer is activated.
378 58fe0e0b Thomas Schöpping
 *
379 e545e620 Thomas Schöpping
 * @note    The default is @p CH_DBG_TRACE_MASK_DISABLED.
380 58fe0e0b Thomas Schöpping
 */
381 e545e620 Thomas Schöpping
#define CH_DBG_TRACE_MASK                   CH_DBG_TRACE_MASK_DISABLED
382
383
/**
384
 * @brief   Trace buffer entries.
385
 * @note    The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
386
 *          different from @p CH_DBG_TRACE_MASK_DISABLED.
387
 */
388
#define CH_DBG_TRACE_BUFFER_SIZE            128
389 58fe0e0b Thomas Schöpping
390
/**
391
 * @brief   Debug option, stack checks.
392
 * @details If enabled then a runtime stack check is performed.
393
 *
394
 * @note    The default is @p FALSE.
395
 * @note    The stack check is performed in a architecture/port dependent way.
396
 *          It may not be implemented or some ports.
397
 * @note    The default failure mode is to halt the system with the global
398
 *          @p panic_msg variable set to @p NULL.
399
 */
400 e545e620 Thomas Schöpping
#if (AMIROOS_CFG_DBG == true) || defined(__DOXYGEN__)
401
#define CH_DBG_ENABLE_STACK_CHECK           TRUE
402
#else
403
#define CH_DBG_ENABLE_STACK_CHECK           FALSE
404 58fe0e0b Thomas Schöpping
#endif
405
406
/**
407
 * @brief   Debug option, stacks initialization.
408
 * @details If enabled then the threads working area is filled with a byte
409
 *          value when a thread is created. This can be useful for the
410
 *          runtime measurement of the used stack.
411
 *
412
 * @note    The default is @p FALSE.
413
 */
414 e545e620 Thomas Schöpping
#if (AMIROOS_CFG_PROFILE == true) || defined(__DOXYGEN__)
415
#define CH_DBG_FILL_THREADS                 TRUE
416
#else
417
#define CH_DBG_FILL_THREADS                 FALSE
418 58fe0e0b Thomas Schöpping
#endif
419
420
/**
421
 * @brief   Debug option, threads profiling.
422 e545e620 Thomas Schöpping
 * @details If enabled then a field is added to the @p thread_t structure that
423 58fe0e0b Thomas Schöpping
 *          counts the system ticks occurred while executing the thread.
424
 *
425 e545e620 Thomas Schöpping
 * @note    The default is @p FALSE.
426
 * @note    This debug option is not currently compatible with the
427
 *          tickless mode.
428 58fe0e0b Thomas Schöpping
 */
429 e545e620 Thomas Schöpping
#if ((CH_CFG_ST_TIMEDELTA == 0) && (AMIROOS_CFG_PROFILE == true)) || defined(__DOXYGEN__)
430
  #define CH_DBG_THREADS_PROFILING          TRUE
431
#else
432
  #define CH_DBG_THREADS_PROFILING          FALSE
433 58fe0e0b Thomas Schöpping
#endif
434
435
/** @} */
436
437
/*===========================================================================*/
438
/**
439
 * @name Kernel hooks
440
 * @{
441
 */
442
/*===========================================================================*/
443
444
/**
445
 * @brief   Threads descriptor structure extension.
446 e545e620 Thomas Schöpping
 * @details User fields added to the end of the @p thread_t structure.
447 58fe0e0b Thomas Schöpping
 */
448 e545e620 Thomas Schöpping
#define CH_CFG_THREAD_EXTRA_FIELDS                                          \
449 58fe0e0b Thomas Schöpping
  /* Add threads custom fields here.*/
450
451
/**
452
 * @brief   Threads initialization hook.
453
 * @details User initialization code added to the @p chThdInit() API.
454
 *
455
 * @note    It is invoked from within @p chThdInit() and implicitly from all
456
 *          the threads creation APIs.
457
 */
458 e545e620 Thomas Schöpping
#define CH_CFG_THREAD_INIT_HOOK(tp) {                                       \
459 58fe0e0b Thomas Schöpping
  /* Add threads initialization code here.*/                                \
460
}
461
462
/**
463
 * @brief   Threads finalization hook.
464
 * @details User finalization code added to the @p chThdExit() API.
465
 *
466
 * @note    It is inserted into lock zone.
467
 * @note    It is also invoked when the threads simply return in order to
468
 *          terminate.
469
 */
470 e545e620 Thomas Schöpping
#define CH_CFG_THREAD_EXIT_HOOK(tp) {                                       \
471 58fe0e0b Thomas Schöpping
  /* Add threads finalization code here.*/                                  \
472
}
473
474
/**
475
 * @brief   Context switch hook.
476
 * @details This hook is invoked just before switching between threads.
477
 */
478 e545e620 Thomas Schöpping
#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) {                              \
479 58fe0e0b Thomas Schöpping
  /* Context switch code here.*/                                            \
480
}
481 e545e620 Thomas Schöpping
482
/**
483
 * @brief   ISR enter hook.
484
 */
485
#define CH_CFG_IRQ_PROLOGUE_HOOK() {                                        \
486
  /* IRQ prologue code here.*/                                              \
487
}
488
489
/**
490
 * @brief   ISR exit hook.
491
 */
492
#define CH_CFG_IRQ_EPILOGUE_HOOK() {                                        \
493
  /* IRQ epilogue code here.*/                                              \
494
}
495
496
/**
497
 * @brief   Idle thread enter hook.
498
 * @note    This hook is invoked within a critical zone, no OS functions
499
 *          should be invoked from here.
500
 * @note    This macro can be used to activate a power saving mode.
501
 */
502
#define CH_CFG_IDLE_ENTER_HOOK() {                                          \
503
  /* Idle-enter code here.*/                                                \
504
}
505
506
/**
507
 * @brief   Idle thread leave hook.
508
 * @note    This hook is invoked within a critical zone, no OS functions
509
 *          should be invoked from here.
510
 * @note    This macro can be used to deactivate a power saving mode.
511
 */
512
#define CH_CFG_IDLE_LEAVE_HOOK() {                                          \
513
  /* Idle-leave code here.*/                                                \
514
}
515 58fe0e0b Thomas Schöpping
516
/**
517
 * @brief   Idle Loop hook.
518
 * @details This hook is continuously invoked by the idle thread loop.
519
 */
520 e545e620 Thomas Schöpping
#define CH_CFG_IDLE_LOOP_HOOK() {                                           \
521 58fe0e0b Thomas Schöpping
  /* Idle loop code here.*/                                                 \
522
}
523
524
/**
525
 * @brief   System tick event hook.
526
 * @details This hook is invoked in the system tick handler immediately
527
 *          after processing the virtual timers queue.
528
 */
529 e545e620 Thomas Schöpping
#define CH_CFG_SYSTEM_TICK_HOOK() {                                         \
530 58fe0e0b Thomas Schöpping
  /* System tick event code here.*/                                         \
531
}
532
533
/**
534
 * @brief   System halt hook.
535
 * @details This hook is invoked in case to a system halting error before
536
 *          the system is halted.
537
 */
538 e545e620 Thomas Schöpping
#define CH_CFG_SYSTEM_HALT_HOOK(reason) {                                   \
539
  extern void aosPrintHaltErrorCode(const char* reason);                       \
540
  aosPrintHaltErrorCode(reason);                                               \
541 58fe0e0b Thomas Schöpping
}
542 e545e620 Thomas Schöpping
543
/**
544
 * @brief   Trace hook.
545
 * @details This hook is invoked each time a new record is written in the
546
 *          trace buffer.
547
 */
548
#define CH_CFG_TRACE_HOOK(tep) {                                            \
549
  /* Trace code here.*/                                                     \
550
}
551
552
/** @} */
553
554
/*===========================================================================*/
555
/**
556
 * @name Port specific settings
557
 * @{
558
 */
559
/*===========================================================================*/
560
561
/**
562
 * @brief   NVIC VTOR initialization offset.
563
 * @details On initialization, the code at this address in the flash memory will be executed.
564
 */
565
#define CORTEX_VTOR_INIT 0x00008000U
566 58fe0e0b Thomas Schöpping
567
/** @} */
568
569
/*===========================================================================*/
570 e545e620 Thomas Schöpping
/**
571
 * @name other
572
 * @{
573
 */
574 58fe0e0b Thomas Schöpping
/*===========================================================================*/
575
576 e545e620 Thomas Schöpping
/**
577
 * @brief   Flag to enable/disable floating point support in chprinf()
578
 */
579
#define CHPRINTF_USE_FLOAT                  TRUE
580
581
/** @} */
582 58fe0e0b Thomas Schöpping
583
#endif  /* _CHCONF_H_ */
584 3f899f5d Thomas Schöpping
585
/** @} */