4 * This file is part of BeRTOS.
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.
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.
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
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.
29 * Copyright 2003, 2004, 2006 Develer S.r.l. (http://www.develer.com/)
33 * \brief DevLib configuration options
35 * You should copy this header in your project and rename it to
36 * "config.h" and delete the CONFIG_ macros for the modules
39 * <h2>Working with multiple applications</h2>
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.
47 * <h2>Configuration style</h2>
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:
61 * #endif // CONFIG_FOO
64 * In most cases, we rely on the optimizer to discard checks
65 * on constant values and performing dead-code elimination.
68 * \author Bernardo Innocenti <bernie@develer.com>
69 * \author Stefano Fedrigo <aleph@develer.com>
74 *#* Revision 1.5 2006/09/20 19:55:01 marco
75 *#* Added CONFIG_LCD_4BIT.
77 *#* Revision 1.4 2006/09/13 18:29:22 bernie
78 *#* Add a few missing CONFIG_ definitions.
80 *#* Revision 1.3 2006/07/19 12:56:24 bernie
81 *#* Convert to new Doxygen style.
83 *#* Revision 1.2 2006/05/28 12:18:12 bernie
84 *#* Disable menu timeout.
86 *#* Revision 1.1 2006/05/27 22:31:57 bernie
87 *#* Add appconfig.h for demo app.
89 *#* Revision 1.1 2006/05/18 00:40:43 bernie
90 *#* Rename appconfig.h to appconfig_common.h.
92 *#* Revision 1.11 2006/04/11 00:08:53 bernie
93 *#* Add smooth scrolling for menus.
95 *#* Revision 1.10 2006/03/22 09:48:51 bernie
96 *#* Add a few more config options.
98 *#* Revision 1.9 2006/02/24 00:27:35 bernie
99 *#* Enable kernel and fix Doxygen markup.
101 *#* Revision 1.8 2006/02/21 16:06:05 bernie
102 *#* Update copyright info.
104 *#* Revision 1.7 2006/02/17 22:28:19 bernie
105 *#* Add missing UART definitions.
107 *#* Revision 1.6 2006/02/15 09:12:56 bernie
108 *#* Switch to BITMAP_FMT_PLANAR_V_LSB.
110 *#* Revision 1.5 2006/02/10 12:34:33 bernie
111 *#* Add missing config options for gfx and kbd.
113 *#* Revision 1.4 2006/01/23 23:12:27 bernie
114 *#* Enable CONFIG_GFX_VCOORDS.
116 *#* Revision 1.3 2006/01/17 02:30:06 bernie
117 *#* Add new config vars.
119 *#* Revision 1.2 2005/11/27 03:04:57 bernie
120 *#* CONFIG_WATCHDOG: New config option.
122 *#* Revision 1.1 2005/11/04 17:42:12 bernie
123 *#* Move cfg/config.h to appconfig.h.
129 /** Baud-rate for the kdebug console */
130 #define CONFIG_KDEBUG_BAUDRATE 19200
133 * printf()-style formatter configuration.
135 * \sa PRINTF_DISABLED
136 * \sa PRINTF_NOMODIFIERS
141 #define CONFIG_PRINTF PRINTF_FULL
144 * Multithreading kernel.
148 #define CONFIG_KERNEL 1
151 * \name Serial driver parameters
154 /** [bytes] Size of the outbound FIFO buffer for port 0. */
155 #define CONFIG_UART0_TXBUFSIZE 32
157 /** [bytes] Size of the inbound FIFO buffer for port 0. */
158 #define CONFIG_UART0_RXBUFSIZE 64
160 /** [bytes] Size of the outbound FIFO buffer for port 1. */
161 #define CONFIG_UART1_TXBUFSIZE 32
163 /** [bytes] Size of the inbound FIFO buffer for port 1. */
164 #define CONFIG_UART1_RXBUFSIZE 64
166 /** [bytes] Size of the outbound FIFO buffer for SPI port (AVR only). */
167 #define CONFIG_SPI_TXBUFSIZE 16
169 /** [bytes] Size of the inbound FIFO buffer for SPI port (AVR only). */
170 #define CONFIG_SPI_RXBUFSIZE 32
172 /** Default transmit timeout (ms). Set to -1 to disable timeout support */
173 #define CONFIG_SER_TXTIMEOUT -1
175 /** Default receive timeout (ms). Set to -1 to disable timeout support */
176 #define CONFIG_SER_RXTIMEOUT -1
178 /** Use RTS/CTS handshake */
179 #define CONFIG_SER_HWHANDSHAKE 0
181 /** Default baud rate (set to 0 to disable) */
182 #define CONFIG_SER_DEFBAUDRATE 0
184 /** Enable ser_gets() and ser_gets_echo() */
185 #define CONFIG_SER_GETS 0
187 /** Enable second serial port in emulator. */
188 #define CONFIG_EMUL_UART1 0
191 * Transmit always something on serial port 0 TX
192 * to avoid interference when sending burst of data,
193 * using AVR multiprocessor serial mode
195 #define CONFIG_SER_TXFILL 0
197 #define CONFIG_SER_STROBE 0
200 /// Hardware timer selection for drv/timer.c
201 #define CONFIG_TIMER TIMER_ON_OUTPUT_COMPARE2
203 /// Debug timer interrupt using a strobe pin.
204 #define CONFIG_TIMER_STROBE 0
206 /// Enable watchdog timer.
207 #define CONFIG_WATCHDOG 1
209 /// EEPROM type for drv/eeprom.c
210 #define CONFIG_EEPROM_TYPE EEPROM_24XX256
212 /// Select bitmap pixel format.
213 #define CONFIG_BITMAP_FMT BITMAP_FMT_PLANAR_V_LSB
215 /// Enable line clipping algorithm.
216 #define CONFIG_GFX_CLIPPING 1
218 /// Enable text rendering in bitmaps.
219 #define CONFIG_GFX_TEXT 1
221 /// Enable virtual coordinate system.
222 #define CONFIG_GFX_VCOORDS 1
224 /// Keyboard polling method
225 #define CONFIG_KBD_POLL KBD_POLL_SOFTINT
227 /// Enable keyboard event delivery to observers
228 #define CONFIG_KBD_OBSERVER 0
230 /// Enable key beeps.
231 #define CONFIG_KBD_BEEP 1
233 /// Enable long pression handler for keys
234 #define CONFIG_KBD_LONGPRESS 0
237 * \name Type for the chart dataset
240 #define CONFIG_CHART_TYPE_X uint8_t
241 #define CONFIG_CHART_TYPE_Y uint8_t
244 /// Enable button bar behind menus
245 #define CONFIG_MENU_MENUBAR 0
247 /// Enable smooth scrolling in menus.
248 #define CONFIG_MENU_SMOOTH 1
250 /// Abort menu after this amount of time.
251 #define CONFIG_MENU_TIMEOUT 0 /* ms */
253 /// Accept input implicitly after this amount of time.
254 #define CONFIG_LEVELEDIT_TIMEOUT 3000 /* ms */
256 /// LCD bus size. If 0 use 8bit bus.
257 #define CONFIG_LCD_4BIT 0
259 #endif /* APPCONFIG_H */