Doc fixes.
[bertos.git] / appconfig_common.h
1 /**
2  * \file
3  * <!--
4  * This file is part of BeRTOS.
5  *
6  * Bertos is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19  *
20  * As a special exception, you may use this file as part of a free software
21  * library without restriction.  Specifically, if other files instantiate
22  * templates or use macros or inline functions from this file, or you compile
23  * this file and link it with other files to produce an executable, this
24  * file does not by itself cause the resulting executable to be covered by
25  * the GNU General Public License.  This exception does not however
26  * invalidate any other reasons why the executable file might be covered by
27  * the GNU General Public License.
28  *
29  * Copyright 2003, 2004, 2006 Develer S.r.l. (http://www.develer.com/)
30  *
31  * -->
32  *
33  * \brief DevLib configuration options
34  *
35  * You should copy this header in your project and rename it to
36  * "config.h" and delete the CONFIG_ macros for the modules
37  * you're not using.
38  *
39  * <h2>Working with multiple applications</h2>
40  *
41  * If your project is made of multiple DevLib-based applications,
42  * create a custom "config.h" file in each application subdirectory
43  * and play with the compiler include path to get the desired result.
44  * You can share common options by creationg a "config_common.h" header
45  * and including it from all your "config.h" copies.
46  *
47  * <h2>Configuration style</h2>
48  *
49  * For improved compile-time checking of configuration options,
50  * the preferred way to use a \c CONFIG_ symbol is keeping it
51  * always defined with a value of either 0 or 1.  This lets
52  * you write tests like this:
53  *
54  * \code
55  *  #if CONFIG_FOO
56  *  void foo(void)
57  *  {
58  *      if (CONFIG_BAR)
59  *          bar();
60  *  }
61  *  #endif // CONFIG_FOO
62  * \endcode
63  *
64  * In most cases, we rely on the optimizer to discard checks
65  * on constant values and performing dead-code elimination.
66  *
67  * \version $Id$
68  * \author Bernardo Innocenti <bernie@develer.com>
69  * \author Stefano Fedrigo <aleph@develer.com>
70  */
71
72 #ifndef APPCONFIG_COMMON_H
73 #define APPCONFIG_COMMON_H
74
75 /** kdebug console */
76 #define CONFIG_KDEBUG_PORT 0
77
78 /** Baud-rate for the kdebug console */
79 #define CONFIG_KDEBUG_BAUDRATE  19200
80
81 /**
82  * printf()-style formatter configuration.
83  *
84  * \sa PRINTF_DISABLED
85  * \sa PRINTF_NOMODIFIERS
86  * \sa PRINTF_REDUCED
87  * \sa PRINTF_NOFLOAT
88  * \sa PRINTF_FULL
89  */
90 #define CONFIG_PRINTF PRINTF_FULL
91
92 /**
93  * Multithreading kernel.
94  *
95  * \sa config_kern.h
96  */
97 #define CONFIG_KERNEL 0
98
99 /**
100  * \name Serial driver parameters
101  * \{
102  */
103         /** [bytes] Size of the outbound FIFO buffer for port 0. */
104         #define CONFIG_UART0_TXBUFSIZE  32
105
106         /** [bytes] Size of the inbound FIFO buffer for port 0. */
107         #define CONFIG_UART0_RXBUFSIZE  64
108
109         /** [bytes] Size of the outbound FIFO buffer for port 1. */
110         #define CONFIG_UART1_TXBUFSIZE  32
111
112         /** [bytes] Size of the inbound FIFO buffer for port 1. */
113         #define CONFIG_UART1_RXBUFSIZE  CONFIG_PROTOCOL_BUFLEN
114
115         /** [bytes] Size of the outbound FIFO buffer for SPI port 0. */
116         #define CONFIG_SPI0_TXBUFSIZE   16
117
118         /** [bytes] Size of the inbound FIFO buffer for SPI port 0. */
119         #define CONFIG_SPI0_RXBUFSIZE   32
120
121         /** [bytes] Size of the outbound FIFO buffer for SPI port 1. */
122         #define CONFIG_SPI1_TXBUFSIZE   16
123
124         /** [bytes] Size of the inbound FIFO buffer for SPI port 1. */
125         #define CONFIG_SPI1_RXBUFSIZE   32
126
127         /** SPI data order (AVR only). */
128         #define CONFIG_SPI_DATA_ORDER   SER_MSB_FIRST
129
130         /** SPI clock division factor (AVR only). */
131         #define CONFIG_SPI_CLOCK_DIV    16
132
133         /** SPI clock polarity: 0 = normal low, 1 = normal high (AVR only). */
134         #define CONFIG_SPI_CLOCK_POL    0
135
136         /** SPI clock phase: 0 = sample on first edge, 1 = sample on second clock edge (AVR only). */
137         #define CONFIG_SPI_CLOCK_PHASE  0
138
139         /** Default transmit timeout (ms). Set to -1 to disable timeout support */
140         #define CONFIG_SER_TXTIMEOUT    -1
141
142         /** Default receive timeout (ms). Set to -1 to disable timeout support */
143         #define CONFIG_SER_RXTIMEOUT    -1
144
145         /** Use RTS/CTS handshake */
146         #define CONFIG_SER_HWHANDSHAKE   0
147
148         /** Default baud rate (set to 0 to disable) */
149         #define CONFIG_SER_DEFBAUDRATE   0
150
151         /** Enable ser_gets() and ser_gets_echo() */
152         #define CONFIG_SER_GETS          0
153
154         /** Enable second serial port in emulator. */
155         #define CONFIG_EMUL_UART1        0
156
157         /**
158          * Transmit always something on serial port 0 TX
159          * to avoid interference when sending burst of data,
160          * using AVR multiprocessor serial mode
161          */
162         #define CONFIG_SER_TXFILL        0
163
164         #define CONFIG_SER_STROBE        0
165 /*\}*/
166
167 /// Hardware timer selection for drv/timer.c
168 #define CONFIG_TIMER  TIMER_ON_OUTPUT_COMPARE2
169
170 /// Debug timer interrupt using a strobe pin.
171 #define CONFIG_TIMER_STROBE  0
172
173 /// Enable ADS strobe.
174 #define CONFIG_ADC_STROBE  0
175
176 /// Enable watchdog timer.
177 #define CONFIG_WATCHDOG  0
178
179 /// EEPROM type for drv/eeprom.c
180 #define CONFIG_EEPROM_TYPE EEPROM_24XX256
181
182 /// Select bitmap pixel format.
183 #define CONFIG_BITMAP_FMT  BITMAP_FMT_PLANAR_V_LSB
184
185 /// Enable line clipping algorithm.
186 #define CONFIG_GFX_CLIPPING  1
187
188 /// Enable text rendering in bitmaps.
189 #define CONFIG_GFX_TEXT  1
190
191 /// Enable virtual coordinate system.
192 #define CONFIG_GFX_VCOORDS  1
193
194 /// Keyboard polling method
195 #define CONFIG_KBD_POLL  KBD_POLL_SOFTINT
196
197 /// Enable keyboard event delivery to observers
198 #define CONFIG_KBD_OBSERVER  0
199
200 /// Enable key beeps
201 #define CONFIG_KBD_BEEP  1
202
203 /// Enable long pression handler for keys
204 #define CONFIG_KBD_LONGPRESS  1
205
206 /**
207  * \name Type for the chart dataset
208  * \{
209  */
210 #define CONFIG_CHART_TYPE_X uint8_t
211 #define CONFIG_CHART_TYPE_Y uint8_t
212 /*\}*/
213
214 /// Enable button bar behind menus
215 #define CONFIG_MENU_MENUBAR  0
216
217 /// Enable smooth scrolling in menus
218 #define CONFIG_MENU_SMOOTH  1
219
220 /// Size of block for MD2 algorithm.
221 #define CONFIG_MD2_BLOCK_LEN 16
222
223 /// Use standard permutation in MD2 algorithm.
224 #define CONFIG_MD2_STD_PERM 0
225
226 /// Define a size, in byte, of entropy pool.
227 #define CONFIG_SIZE_ENTROPY_POOL 64
228
229 /// Turn on or off timer support in Randpool.
230 #define CONFIG_RANDPOOL_TIMER 1
231
232 /**
233  * ADC timing setting parameter
234  *
235  * - CONFIG_ADC_CLOCK is frequency clock for ADC conversion.
236  * - CONFIG_ADC_STARTUP_TIME  minimum time for startup a conversion in micro second.
237  * - CONFIG_ADC_SHTIME minimum time for sample and hold in nano second.
238  * \{
239  */
240 #define CONFIG_ADC_CLOCK          4800000UL
241 #define CONFIG_ADC_STARTUP_TIME        20
242 #define CONFIG_ADC_SHTIME             834
243 /* \} */
244
245 #endif /* APPCONFIG_H */