summaryrefslogblamecommitdiff
path: root/nuttx/Kconfig
blob: 22fb3f97f394b8e651a510481dfb8cfd9567ceaf (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478

                                                             
                                      


























































































































































































































































































































































































































































































                                                                              
#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#
mainmenu "Nuttx/$ARCH Configuration"

config SRCARCH
	string
	option env="SRCARCH"

menu "General setup"
config EXPERIMENTAL
	bool "Prompt for development and/or incomplete code/drivers"

comment "General build options"

config RRLOAD_BINARY
	bool "rrload binary format"
	default "n"
config INTELHEX_BINARY
	bool "Intel HEX binary format"
	default "n"
config MOTOROLA_SREC
	bool "Motorola S-Record binary format"
	default "n"
config RAW_BINARY
	bool "raw binary format"
	default "n"
config HAVE_LIBM
	bool "supports libm.a"
	default "n"

comment "General debug options"

config DEBUG
	bool "enable debug"
	default "n"
config DEBUG_VERBOSE
	bool "enable verbose debug output"
	depends on DEBUG
	default "n"
config DEBUG_SYMBOLS
	bool "build with debug symbols"
	default "n"
	
endmenu

menu "System Type"
source "arch/$SRCARCH/Kconfig"

config ARCH_LOWPUTC
	bool "low-level console output"
	default "y"
	---help---
	  architecture supports low-level, boot time console output
	  
comment "Architecture optimized function"
	
config ARCH_MEMCPY
	bool "memcpy"
	default n
config ARCH_MEMCMP
	bool "memcmp"
	default n
config ARCH_MEMMOVE
	bool "memmove"
	default n
config ARCH_MEMSET
	bool "memset"
	default n
config ARCH_STRCMP
	bool "strcmp"
	default n
config ARCH_STRCPY
	bool "strcpy"
	default n
config ARCH_STRNCPY
	bool "strncpy"
	default n
config ARCH_STRLEN
	bool "strlen"
	default n
config ARCH_STRNLEN
	bool "strlen"
	default n
config ARCH_BZERO
	bool "bzero"
	default n

endmenu

menu "Kernel Features"
config MM_REGIONS
	int "number of memory regions"
	default 1
	---help---
	If the architecture includes multiple
	regions of memory to allocate from, this specifies the
	number of memory regions that the memory manager must
	handle and enables the API mm_addregion(start, end);
	
config MSEC_PER_TICK
	int "tick timer"
	default 10
	---help---
	The default system timer is 100Hz
	or MSEC_PER_TICK=10.  This setting may be defined to
	inform NuttX that the processor hardware is providing
	system timer interrupts at some interrupt interval other
	than 10 msec.
	
config RR_INTERVAL
	int "round robin timeslice"
	default 0
	---help---
	The round robin timeslice will be set
	this number of milliseconds;  Round robin scheduling can
	be disabled by setting this value to zero.
	
config SCHED_INSTRUMENTATION
	bool "monitor system performance"
	default n
	---help---
	enables instrumentation in 
	scheduler to monitor system performance
	
config TASK_NAME_SIZE
	int "task name size"
	default 32
	---help---
	Spcifies that maximum size of a
	task name to save in the TCB.  Useful if scheduler
	instrumentation is selected.  Set to zero to disable.
	
config JULIAN_TIME
	bool "Enables Julian time conversions"
	default n
	---help---
	Enables Julian time conversions
	
config START_YEAR
	int "start year"
	default 2010
	
config START_MONTH
	int "start month"
	default 1
	
config START_DAY
	int "start day"
	default 1

config DEV_CONSOLE
	bool "enable /dev/console"
	default y
	---help---
	Set if architecture-specific logic
	provides /dev/console.  Enables stdout, stderr, stdin.
	
config DEV_LOWCONSOLE
	bool "enable low-level serial console"
	default n
	---help---
	Use the simple, low-level serial console
	driver (minimul support)
	
config MUTEX_TYPES:
	bool "enable mutex types"
	default n
	---help---
	Set to enable support for recursive and
	errorcheck mutexes. Enables pthread_mutexattr_settype().
	
config PRIORITY_INHERITANCE 
	bool "enable priority inheritance "
	default n
	---help---
	Set to enable support for priority
	inheritance on mutexes and semaphores. 
	
config SEM_PREALLOCHOLDERS 
	int "pre alloc holders"
	default 16
	depends on PRIORITY_INHERITANCE
	---help---
	This setting is only used if priority
	inheritance is enabled.  It defines the maximum number of
	different threads (minus one) that can take counts on a
	semaphore with priority inheritance support.  This may be 
	set to zero if priority inheritance is disabled OR if you
	are only using semaphores as mutexes (only one holder) OR
	if no more than two threads participate using a counting
	semaphore.

config SEM_NNESTPRIO
	int "maximum number of higher priority threads"
	default 16
	depends on PRIORITY_INHERITANCE
	---help---
	If priority inheritance is enabled,
	then this setting is the maximum number of higher priority
	threads (minus 1) than can be waiting for another thread
	to release a count on a semaphore.  This value may be set
	to zero if no more than one thread is expected to wait for
	a semaphore.
	
config FDCLONE_DISABLE
	bool "disable clone all file descriptors"
	default n
	---help---
	Disable cloning of all file descriptors
	by task_create() when a new task is started.  If set, all
	files/drivers will appear to be closed in the new task.
	
config FDCLONE_STDIO
	bool "disable clone file descriptors without stdio"
	default n
	---help---
	Disable cloning of all but the first
	three file descriptors (stdin, stdout, stderr) by task_create()
	when a new task is started. If set, all files/drivers will
	appear to be closed in the new task except for stdin, stdout,
	and stderr.
	
config SDCLONE_DISABLE
	bool "disable cloning of all socket"
	default n
	---help---
	Disable cloning of all socket
	desciptors by task_create() when a new task is started. If
	set, all sockets will appear to be closed in the new task.

config DISABLE_OS_API
	bool "disable os api"
	default n
	---help---
	The following can be used to disable categories of
	APIs supported by the OS.  If the compiler supports
	weak functions, then it should not be necessary to
	disable functions unless you want to restrict usage
	of those APIs.
	
	There are certain dependency relationships in these
	features.
	
	o mq_notify logic depends on signals to awaken tasks
	  waiting for queues to become full or empty.
	o pthread_condtimedwait() depends on signals to wake
	  up waiting tasks.
	
config DISABLE_CLOCK
	bool "disable clock"
	depends on DISABLE_OS_API
	default n

config DISABLE_POSIX_TIMERS
	bool "disable posix timers"
	depends on DISABLE_OS_API
	default n

config DISABLE_PTHREAD
	bool "disable pthread"
	depends on DISABLE_OS_API
	default n

config DISABLE_SIGNALS
	bool "disable signals"
	depends on DISABLE_OS_API
	default n

config DISABLE_MQUEUE
	bool "disable mqueue"
	depends on DISABLE_OS_API
	default n

config DISABLE_MOUNTPOINT
	bool "disable mount point"
	depends on DISABLE_OS_API
	default n

config DISABLE_ENVIRON
	bool "disable environ"
	depends on DISABLE_OS_API
	default n

config DISABLE_POLL
	bool "disable poll"
	depends on DISABLE_OS_API
	default n

comment "Sizes of configurable things (0 disables)"

config MAX_TASKS
	int "max tasks"
	default 32
	---help---
	The maximum number of simultaneously
	active tasks. This value must be a power of two.
	
config MAX_TASK_ARGS
	int "max task args"
	default 4
	---help---
	This controls the maximum number of
	of parameters that a task may receive (i.e., maxmum value
	of 'argc')
	
config NPTHREAD_KEYS
	int "number pthread keys"
	default 4
	---help---
	The number of items of thread-
	specific data that can be retained
	
config NFILE_DESCRIPTORS
	int "max file descriptors"
	default 16
	---help---
	The maximum number of file
	descriptors (one for each open)
	
config NFILE_STREAMS
	int "max file streams"
	default 16
	---help---
	The maximum number of streams that
	can be fopen'ed
	
config NAME_MAX
	int "name max"
	default 32
	---help---
	The maximum size of a file name.
	
config STDIO_BUFFER_SIZE
	int "stdio buffer size"
	default 256
	---help---
	Size of the buffer to allocate
	on fopen. (Only if config _NFILE_STREAMS > 0)
	
config NUNGET_CHARS
	int "number get chars"
	default 2
	---help---
	Number of characters that can be
	buffered by ungetc() (Only if config _NFILE_STREAMS > 0)
	
config PREALLOC_MQ_MSGS
	int "pre alloc mq_msgs"
	default 32
	---help---
	The number of pre-allocated message
	structures.  The system manages a pool of preallocated
	message structures to minimize dynamic allocations
	
config MQ_MAXMSGSIZE
	int "mq max message size"
	default 32
	---help---
	Message structures are allocated with
	a fixed payload size given by this settin (does not include
	other message structure overhead.
	
config MAX_WDOGPARMS
	int "max watchdog parms"
	default 4
	---help---
	Maximum number of parameters that
	can be passed to a watchdog handler
	
config PREALLOC_WDOGS
	int "pre alloc watchdogs"
	default 32
	---help---
	The number of pre-allocated watchdog
	structures.  The system manages a pool of preallocated
	watchdog structures to minimize dynamic allocations
	
config PREALLOC_TIMERS
	int "pre alloc timers"
	default 8
	---help---
	The number of pre-allocated POSIX
	timer structures.  The system manages a pool of preallocated
	timer structures to minimize dynamic allocations.  Set to
	zero for all dynamic allocations.


comment "Stack and heap information"

config BOOT_RUNFROMFLASH
	bool "boot run from flash"
	default n
	---help---
	Some configurations support XIP
	operation from FLASH but must copy initialized .data sections to RAM.
	(should also be =n for the LPC17xx which always runs from flash)
	
config BOOT_COPYTORAM
	bool "boot copy to ram"
	default n
	---help---
	Some configurations boot in FLASH
	but copy themselves entirely into RAM for better performance.
	
config CUSTOM_STACK
	bool "enable custom stack"
	default n
	---help---
	The up_ implementation will handle
	all stack operations outside of the nuttx model.
	
config STACK_POINTER
	hex ""
	default 0
	---help---
	The initial stack pointer (arm7tdmi only)
	
config IDLETHREAD_STACKSIZE
	int "idle thread stack size"
	default 1024
	---help---
	The size of the initial stack.
	This is the thread that (1) performs the inital boot of the system up
	to the point where user_start() is spawned, and (2) there after is the
	IDLE thread that executes only when there is no other thread ready to
	run.
	
config USERMAIN_STACKSIZE
	int "main thread stack size"
	default 2048
	---help---
	The size of the stack to allocate
	for the main user thread that begins at the user_start() entry point.
	
config PTHREAD_STACK_MIN
	int "minimum thrad stack size"
	default 256
	---help---
	Minimum pthread stack size
	
config PTHREAD_STACK_DEFAULT
	int "default stack size"
	default 2048
	---help---
	Default pthread stack size
	
endmenu

menu "Device Drivers"
#source drivers/Kconfig
endmenu

menuconfig NET
	bool "Networking support"
	default "m"
if NET
#source net/Kconfig
endif

menu "File systems"
#source fs/Kconfig
endmenu

menu "Library routines"
config NOPRINTF_FIELDWIDTH
	bool "disable sprintf support fieldwidth"
	default n
	---help---
	sprintf-related logic is a
	little smaller if we do not support fieldwidthes

endmenu

menu "Application setup"

endmenu