scheduler: avoid using a poisoned macro
[aversive.git] / config / Configure.help
1 #
2 # Format of this file: description<nl>variable<nl>  helptext<nl>...<nl><nl>.
3 # If the question being documented is of type "choice", we list
4 # only the first occurring config variable. The help texts
5 # must not contain empty lines. No variable should occur twice; if it
6 # does, only the first occurrence will be used by Configure. The lines
7 # in a help text should be indented two positions. Lines starting with
8 # `#' are ignored. To be nice to menuconfig, limit your lines to 70
9 # characters. Use emacs' kfill.el to edit this file or you lose.
10 #
11
12 CONFIG_MCU_ATMEGA128
13   Choose your target device.
14
15 CONFIG_QUARTZ
16   Choose the speed of your target device. This frequency is specified in
17   Hertz.
18
19 CONFIG_OPTM_0
20   Choose this option to customize code optimization (see
21   the gcc manual for details). The -Os option is recommanded
22   for most purposes.
23
24 CONFIG_MATH_LIB
25   Include math lib in the linker flags.
26
27 CONFIG_MINIMAL_PRINTF
28   Choose printf style. The minimal printf cannot handle floats. The advanced 
29   printf can, but it requires the math lib. Disable it if you don't use
30   printf, you'll win some prog space.
31
32 CONFIG_FORMAT_IHEX
33   Set the default format of generated executable. The Intel HEX
34   format is the default choice, as it is a simple format, supported 
35   by avrdude. You can also choose raw binary or S-records (see 
36   avr-objcopy manual for details).
37
38
39
40 CONFIG_MODULE_CIRBUF
41   This module provides a circular buffer implementation (fifo or lifo).
42
43 CONFIG_MODULE_FIXED_POINT
44   This module provides functions for using fixed point variables. Using
45   this type can be faster and/or more accurate than using float in some 
46   cases (for example if you mainly do sums). It requires the math lib.
47
48
49 CONFIG_MODULE_VECT2
50   This module provides functions for converting 2D vectors from 
51   polar to cartesian and vice versa.
52
53 CONFIG_MODULE_HOSTSIM
54   AVR simulator. This code is used on host (PC for instance) to
55   generate a signal that will call other aversive modules like
56   scheduler or uart. The goal is to simulate the behaviour of
57   hardware interrupts in a unix application. This has no effect
58   when compiling for AVR.
59
60
61 CONFIG_MODULE_SCHEDULER
62   The 'scheduler' module is NOT a scheduler in the same way than in
63   a multitask kernel. This module allow to schedule functions in the
64   future (only a call, or periodical call). If CONFIG_MODULE_SCHEDULER_USE_TIMERS
65   option is not enabled, the functions are called from TIMER0 interrupt, 
66   else you can choose which timer to use. This module is able to handle 
67   priority between events.
68
69 CONFIG_MODULE_SCHEDULER_CREATE_CONFIG
70   Create a scheduler_config.h file if it does not exist, with a default
71   configuration.
72
73 CONFIG_MODULE_SCHEDULER_USE_TIMERS
74   Use either the hardware/timer module, the timer0 or a manual call 
75   for the to call the scheduler. The generic timer module support 
76   many archs and timers. If you don't enable it, you must use TIMER0 
77   overflow interrupt, and only some AVR are supported, or you should
78   can call the scheduler manually. In this case, the SCHEDULER_UNIT 
79   macro has to be defined in configuration file.
80
81
82 CONFIG_MODULE_CALLOUT
83   The 'callout' module is another timer manager that aims to replace the
84   scheduler module. The management of timers can be done either from an
85   asynchronous interruption or from the main program. This module is
86   able to handle priorities between timers and allow to reschedule
87   a timer later if its priority is too low.
88
89
90 CONFIG_TIME
91   This module can be used to get a human readable time. It uses the
92   scheduler module. Its goal is not to be very precise, but just
93   simple to use.  provides two timers: one in s and us, and one in
94   us which doesn't overflow on seconds (better to substract two
95   times)
96
97 CONFIG_MODULE_TIME_CREATE_CONFIG
98   Create a time_config.h file if it does not exist, with a default
99   configuration.
100
101
102 CONFIG_TIME_EXT
103   This module can be used to have a very precise, yet human-readable,
104   time. It uses TIMER2 in asynchronous mode, you MUST have a 32.768kHz
105   quartz connected to TOSC1 and TOSC2 pins.
106   Provides a global time value (instant 0 is the initialization of the
107   module). Warning: this module uses some hardcoded values for
108   timer 2 configuration, it may not work on all AVR.
109
110 CONFIG_MODULE_TIME_EXT_CREATE_CONFIG
111   Create a time_ext_config.h file if it does not exist, with a default
112   configuration.
113
114 CONFIG_MODULE_UART
115   This module provide functions to use the embedded UART or USART in
116   the AVR. With this module, it is more easy to configure it, and
117   data can be emited on interruption. The uart module also contains
118   a fifo for emission and reception (configurable in uart_config.h).
119
120 CONFIG_MODULE_UART_CREATE_CONFIG
121   Create a uart_config.h file if it does not exist, with a default
122   configuration.
123
124 CONFIG_MODULE_SPI
125   This module provide functions to use the embedded SPI in
126   the AVR.
127
128 CONFIG_MODULE_SPI_CREATE_CONFIG
129   Create a spi_config.h file if it does not exist, with a default
130   configuration.
131
132 CONFIG_MODULE_I2C
133   This module provide functions to use the embedded I2C (TWI
134   interface) in the AVR.
135
136 CONFIG_MODULE_I2C_CREATE_CONFIG
137   Create a i2c_config.h file if it does not exist, with a default
138   configuration.
139
140 CONFIG_MODULE_MF2_CLIENT
141   This module provide functions to interface with a device that uses
142   the mf2 protocol. With the client, you can interface with a PS/2 keyboard.
143
144 CONFIG_MODULE_MF2_CLIENT_USE_SCHEDULER
145   Enabling this option avoid active loops and enable mf2 watchdog. 
146   The watchdog avoid desynchronisation if there is transmission
147   problems or if keyboard is unplugged during operation.
148
149 CONFIG_MODULE_MF2_CLIENT_CREATE_CONFIG
150   Create a mf2_client_config.h file if it does not exist, with a default
151   configuration.
152
153 CONFIG_MODULE_MF2_SERVER
154   This module provide functions to interface with a device that uses
155   the mf2 protocol. With the server, you can emulate a PS/2 keyboard.
156
157 CONFIG_MODULE_MF2_SERVER_CREATE_CONFIG
158   Create a mf2_server_config.h file if it does not exist, with a default
159   configuration.
160
161
162 CONFIG_MODULE_TIMER
163   This module provide some simple functions to use some timers 
164   functionnalities of AVR.
165
166 CONFIG_MODULE_TIMER_CREATE_CONFIG
167   Create a timer_config.h file if it does not exist, with a default
168   configuration.
169
170 CONFIG_MODULE_PWM
171   This module provide a driver to use the PWM (Pulse Width Modulation) 
172   hardware of the AVR : the configuration can be statically or dynamically
173   defined. This module can be replaced by PWM_NG.
174
175 CONFIG_MODULE_PWM_CREATE_CONFIG
176   Create a pwm_config.h file if it does not exist, with a default
177   configuration.
178
179 CONFIG_MODULE_PWM_NG
180   This module provide a driver to use the PWM (Pulse Width Modulation) 
181   hardware of the AVR : the configuration is set dynamically.
182
183
184
185 CONFIG_MODULE_BRUSHLESS_3PHASE_DIGITAL_HALL
186   This module drives a 3-phase synchronous motor (called brushless)
187   This is done with 3 hall sensors who give the position of the rotor.
188   The controller polls these sensors, and updates 3 PWM outputs to drive
189   the 3 phases.
190
191 CONFIG_MODULE_BRUSHLESS_3PHASE_DIGITAL_HALL_DOUBLE
192   This is a double implementation of the MODULE_BRUSHLESS_3PHASE_DIGITAL_HALL
193   This module drives two 3-phase synchronous motor (called brushless)
194   This is done with 3 hall sensors who give the position of the rotor.
195   The controller polls these sensors, and updates 3 PWM outputs to drive
196   the 3 phases of each motor
197
198 CONFIG_MODULE_CC2420
199   This modules implements the protocol to use a CC2420 radio chip.
200   This radio chip is IEEE 802.15.4 compliant and is widely used
201   in wireless sensors.
202   This modules requires SPI to be activated.
203
204 CONFIG_MODULE_XBEE
205   This modules implements the protocol to use a xbee radio chip.
206   It currently only supports xbee868.
207
208 CONFIG_MODULE_XBEE_STATS
209   Enable xbee statistics (takes ~100 bytes per device).
210
211 CONFIG_MODULE_XBEE_ATCMD_HELP
212   Embed help strings of AT commands in program memory.
213
214 CONFIG_MODULE_MENU
215   The menu module provides some helpers to create a human-machine
216   interface that uses a tree-organized static menu.
217
218 CONFIG_MODULE_VT100
219   This module provides functions to parse vt100 commands.
220
221 CONFIG_MODULE_RDLINE
222   The rdline module provides an interface for editing a buffer on a
223   vt100 terminal, for instance through a UART.
224
225 CONFIG_MODULE_RDLINE_CREATE_CONFIG
226   Create a rdline_config.h file if it does not exist, with a default
227   configuration.
228
229 CONFIG_MODULE_RDLINE_KILL_BUF
230   Enable cut/paste (with CTRL-k and CTRL-y)
231
232 CONFIG_MODULE_RDLINE_HISTORY
233   Enable history buffer, to save last commands (up and down arrows)
234
235 CONFIG_MODULE_PARSE
236   The parse module is able to parse a buffer containing strings, 
237   numbers, (...) into a C structure.
238
239
240 CONFIG_MODULE_LCD
241   This module provide an interface to control an external standard
242   LCD screen (text mode).
243
244 CONFIG_MODULE_LCD_CREATE_CONFIG
245   Create a lcd_config.h file if it does not exist, with a default
246   configuration.
247
248
249 CONFIG_MODULE_MULTISERVO
250   This module provide an interface to command many servo (like in model
251   toys). It uses one timer (a 8 bits or a 16 bits, depending on accuracy
252   you want). As it does not uses the PWM mode of timer, it can consum
253   some CPU time in interrupt, but you can command up to 10 servos
254   and the output ports can be on a non-specialized port.
255
256 CONFIG_MODULE_MULTISERVO_CREATE_CONFIG
257   Create a servo_config.h file if it does not exist, with a default
258   configuration.
259
260
261 CONFIG_MODULE_ENCODERS_MICROB
262   Provide an interface for reading values from encoders. The electric
263   scheme is provided in the file encoders_microb.h
264
265 CONFIG_MODULE_ENCODERS_SPI
266   Provide an interface for reading values from encoders. This module
267   uses the SPI interface to update values.
268
269 CONFIG_MODULE_ENCODERS_EIRBOT
270   Provide an interface for reading values from encoders. The electric
271   scheme should be provided in the file encoders_eirbot.h
272
273 CONFIG_MODULE_ROBOT_SYSTEM
274   The Robot System module role is to provide a virtual system that
275   represents a robot by its angle/distance instead of left/right 
276   wheels. It provides a virtual angle/distance PWM and a virtual
277   angle/distance encoder.
278
279 CONFIG_MODULE_ROBOT_SYSTEM_MOT_AND_EXT
280   If the robot has external and motor encoder, you can use both 
281   by defining this option.
282
283 CONFIG_MODULE_POSITION_MANAGER
284   This module processes the position of the robot, depending of the 
285   value returned by the associated robot system, and some physical
286   parameters of the robot.
287
288 CONFIG_MODULE_TRAJECTORY_MANAGER
289   Manage the control systems of the robot, depending on the position,
290   the physical parameters of the robot, and the user consign. Command
291   can be something like trajectory_goto_xya(...)
292
293 CONFIG_MODULE_BLOCKING_DETECTION_MANAGER
294   Detect when the robot is blocked on an obstacle.
295
296 CONFIG_MODULE_OBSTACLE_AVOIDANCE
297   Determine a optimized path from a point to antoher, avioding
298   obstacles.
299
300
301 CONTROL_SYSTEM_MANAGER
302   A module that manages a servo control system. It uses filters, like
303   the PID filter to work. This module also needs a the in/out functions
304   of the controled system, for instance encoders and PWM, but it can
305   any other func that has the same interface.
306
307 CONFIG_MODULE_PID
308   This filter provides a PID (proportionnal, integral, derivate).
309
310 CONFIG_MODULE_PID_CREATE_CONFIG
311   Create a pid_config.h file if it does not exist, with a default
312   configuration.
313
314 CONFIG_MODULE_RAMP
315   This module limits the variation of the input of the filter. It can
316   be used in a speed control system as a consign filter to set a 
317   maximum acceleration.
318
319 CONFIG_MODULE_QUADRAMP
320   This module limits the variation of the input, and the variation 
321   of the derivate of the input. It can be used in a position control 
322   system as a consign filter to specify a maximum acceleration and a 
323   maximum speed.
324
325 CONFIG_MODULE_QUADRAMP_DERIVATE
326   This module generates the same kind of ramp than the quadramp.
327   however here we generate the derivate of this ramp, which is a speed
328   consign which can be fed to a speed PID.
329   The advantages are less computation (no square root), and a better
330   robustness against blocking.
331
332 CONFIG_MODULE_BIQUAD
333   This module is a general digital filter. It is very useful for all
334   filtering purposes, not only for control loops. You can implement
335   every digital filter with this module ! Sometimes you will have to
336   put a few in series.
337
338 CONFIG_MODULE_AES
339   Enable AES crypto functions in Aversive
340
341 CONFIG_MODULE_AES_CTR
342   Enable AES counter mode
343
344 CONFIG_MODULE_MD5
345   Enable MD5 alg functions in Aversive
346
347 CONFIG_MODULE_MD5_HMAC
348   Enable md5 HMAC functions in Aversive
349
350 CONFIG_MODULE_RC4
351   Enable RC4 alg functions in Aversive
352
353
354 CONFIG_MODULE_BASE64
355   Enable base64 encoding module, compatible with PEM.
356
357 CONFIG_MODULE_HAMMING
358   Enable Hamming encoding module, which is an error detection
359   coding system.
360
361
362 CONFIG_MODULE_DIAGNOSTIC
363   this module contains tools to view the stack space or the processor
364   charge (interrupts)
365
366 CONFIG_MODULE_ERROR
367   this module helps storing and handling errors, warnings and so on...
368
369 CONFIG_AVRDUDE_PROG_FUTURELEC
370   Choose the hardware programmer type. Please see the avrdude manual
371   for details.
372
373 CONFIG_AVRDUDE_PORT
374   Choose the avrdude device. Under linux, it can be '/dev/parport0' or 
375   '/dev/ttyS0', depending on the programmer type. Under win32, it can
376   look like 'com1' for instance.
377
378 CONFIG_AVRDUDE_BAUDRATE
379   Choose the baudrate. This can be very useful if you are using a stk500
380   bootloader, and you want to speed it up.
381
382 CONFIG_AVRDUDE_CHECK_SIGNATURE
383   Avrdude normally checks the device signature, but some bootloaders doesn't
384   implement this, or your device may not communicate with Avrdude. This option
385   allows you to bypass this check.
386
387 CONFIG_AVRDUDE_FUSE
388   If you enable this option, a script will be launched just after this
389   saving the configuration. This script uses avrdude to program the
390   fuse value of your target device. NOT IMPLEMENTED YET.