Newer
Older
or <code>TICKS_PER_MSEC</code>=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.
</li>
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
<li>
<code>CONFIG_RR_INTERVAL</code>: The round robin timeslice will be set
this number of milliseconds; Round robin scheduling can
be disabled by setting this value to zero.
</li>
<li>
<code>CONFIG_SCHED_INSTRUMENTATION</code>: enables instrumentation in
scheduler to monitor system performance
</li>
<li>
<code>CONFIG_TASK_NAME_SIZE</code>: Spcifies that maximum size of a
task name to save in the TCB. Useful if scheduler
instrumentation is selected. Set to zero to disable.
</li>
<li>
<code>CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
Used to initialize the internal time logic.
</li>
<li>
<code>CONFIG_JULIAN_TIME</code>: Enables Julian time conversions
</li>
<li>
<code>CONFIG_DEV_CONSOLE</code>: Set if architecture-specific logic
provides /dev/console. Enables stdout, stderr, stdin.
</li>
<code>CONFIG_MUTEX_TYPES</code>: Set to enable support for recursive and
errorcheck mutexes. Enables <code>pthread_mutexattr_settype()</code>.
<code>CONFIG_PRIORITY_INHERITANCE</code>: Set to enable support for
priority inheritance on mutexes and semaphores.
Priority inheritance is a strategy of addessing
<a href="NuttxUserGuide.html#priorityinversion"><i>priority inversion</i></a>.
Details of the NuttX implementation of priority inheritance is
discussed <a href="NuttxUserGuide.html#priorityinheritance">elsewhere</a>.
<code>CONFIG_SEM_PREALLOCHOLDERS</code>: 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.
</li>
<code>CONFIG_SEM_NNESTPRIO</code>: 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.
</li>
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
</ul>
<p>
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.
</p>
<p>
There are certain dependency relationships in these features.
</p>
<ul>
<li>
<code>mq_notify()</code> logic depends on signals to awaken tasks
waiting for queues to become full or empty.
</li>
<li>
<code>pthread_condtimedwait()</code> depends on signals to wake
up waiting tasks.
</li>
</ul>
<ul>
patacongo
committed
<code>CONFIG_DISABLE_CLOCK</code>, <code>CONFI_DISABLE_POSIX_TIMERS</code>,
<code>CONFIG_DISABLE_PTHREAD</code>, <code>CONFIG_DISABLE_SIGNALS</code>,
<code>CONFIG_DISABLE_MQUEUE</code>, <code>CONFIG_DISABLE_MOUNTPOUNT</code>
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
</ul>
<h2>Miscellaneous libc settings</h2>
<ul>
<li>
<code>CONFIG_NOPRINTF_FIELDWIDTH</code>: sprintf-related logic is a
little smaller if we do not support fieldwidthes
</li>
</ul>
<h2>Allow for architecture optimized implementations</h2>
<p>
The architecture can provide optimized versions of the
following to improve sysem performance.
</p>
<ul>
<p>
<code>CONFIG_ARCH_MEMCPY</code>, <code>CONFIG_ARCH_MEMCMP</code>, <code>CONFIG_ARCH_MEMMOVE</code>,
<code>CONFIG_ARCH_MEMSET</code>, <code>CONFIG_ARCH_STRCMP</code>, <code>CONFIG_ARCH_STRCPY</code>,
<code>CONFIG_ARCH_STRNCPY</code>, <code>CONFIG_ARCH_STRLEN</code>, <code>CONFIG_ARCH_BZERO</code>,
<code>CONFIG_ARCH_KMALLOC</code>, <code>CONFIG_ARCH_KZMALLOC</code>, <code>ONFIG_ARCH_KFREE</code>,
</p>
</ul>
<h2>Sizes of configurable things (0 disables)</h2>
<ul>
<li>
<code>CONFIG_MAX_TASKS</code>: The maximum number of simultaneously
active tasks. This value must be a power of two.
</li>
<li>
<code>CONFIG_NPTHREAD_KEYS</code>: The number of items of thread-
specific data that can be retained
</li>
<li>
<code>CONFIG_NFILE_DESCRIPTORS</code>: The maximum number of file
descriptors (one for each open)
</li>
<li>
<code>CONFIG_NFILE_STREAMS</code>: The maximum number of streams that
can be fopen'ed
</li>
<li>
<code>CONFIG_NAME_MAX</code>: The maximum size of a file name.
</li>
<li>
<code>CONFIG_STDIO_BUFFER_SIZE</code>: Size of the buffer to allocate
on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
</li>
<li>
<code>CONFIG_NUNGET_CHARS</code>: Number of characters that can be
buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
</li>
<li>
<code>CONFIG_PREALLOC_MQ_MSGS</code>: The number of pre-allocated message
structures. The system manages a pool of preallocated
message structures to minimize dynamic allocations
</li>
<li>
<code>CONFIG_MQ_MAXMSGSIZE</code>: Message structures are allocated with
a fixed payload size given by this settin (does not include
other message structure overhead.
</li>
<li>
<code>CONFIG_PREALLOC_WDOGS</code>: The number of pre-allocated watchdog
structures. The system manages a pool of preallocated
watchdog structures to minimize dynamic allocations
</li>
<code>CONFIG_DEV_PIPE_SIZE</code>: Size, in bytes, of the buffer to allocated
for pipe and FIFO support (default is 1024).
<h2>File Systems</h2>
<ul>
<li>
<code>CONFIG_FS_FAT</code>: Enable FAT filesystem support.
</li>
<li>
<code>CONFIG_FAT_SECTORSIZE</code>: Max supported sector size.
</li>
<li>
<code>CONFIG_FS_ROMFS</code>: Enable ROMFS filesystem support
</li>
</ul>
<ul>
<li>
<code>CONFIG_MMCSD_NSLOTS</code>: Number of MMC/SD slots supported by the driver. Default is one.
</li>
<li>
<code>CONFIG_MMCSD_READONLY</code>: Provide read-only access. Default is Read/Write
</li>
</ul>
<h3>TCP/IP and UDP support via uIP</h2>
<code>CONFIG_NET</code>: Enable or disable all network features
<code>CONFIG_NET_IPv6</code>: Build in support for IPv6
<code>CONFIG_NSOCKET_DESCRIPTORS</code>: Maximum number of socket descriptors per task/thread.
<li>
<code>CONFIG_NET_NACTIVESOCKETS</code>: Maximum number of concurrent socket operations (recv, send, etc.).
Default: <code>CONFIG_NET_TCP_CONNS</code>+<code>CONFIG_NET_UDP_CONNS</code>.
</li>
<code>CONFIG_NET_SOCKOPTS</code>: Enable or disable support for socket options.
<code>CONFIG_NET_BUFSIZE</code>: uIP buffer size
<code>CONFIG_NET_TCP</code>: TCP support on or off
<code>CONFIG_NET_TCP_CONNS</code>: Maximum number of TCP connections (all tasks).
<li>
<code>CONFIG_NET_TCPBACKLOG</code>:
Incoming connections pend in a backlog until <code>accept()</code> is called.
The size of the backlog is selected when <code>listen()</code> is called.
</li>
<li>
<code>CONFIG_NET_TCP_READAHEAD_BUFSIZE</code>: Size of TCP read-ahead buffers
</li>
<li>
<code>CONFIG_NET_NTCP_READAHEAD_BUFFERS</code>: Number of TCP read-ahead buffers (may be zero)
<li>
<code>CONFIG_NET_MAX_LISTENPORTS</code>: Maximum number of listening TCP ports (all tasks).
</li>
<li>
<code>CONFIG_NET_TCPURGDATA</code>: Determines if support for TCP urgent data
notification should be compiled in. Urgent data (out-of-band data)
is a rarely used TCP feature that is very seldom would be required.
</li>
<code>CONFIG_NET_UDP</code>: UDP support on or off
<code>CONFIG_NET_UDP_CHECKSUMS</code>: UDP checksums on or off
<code>CONFIG_NET_UDP_CONNS</code>: The maximum amount of concurrent UDP connections
<code>CONFIG_NET_ICMP</code>: Enable minimal ICMP support. Includes built-in support
for sending replies to received ECHO (ping) requests.
</li>
<li>
<code>CONFIG_NET_ICMP_PING</code>: Provide interfaces to support application level
support for sending ECHO (ping) requests and associating ECHO replies.
<code>CONFIG_NET_PINGADDRCONF</code>: Use "ping" packet for setting IP address
<li>
<code>CONFIG_NET_STATISTICS</code>: uIP statistics on or off
</li>
<code>CONFIG_NET_RECEIVE_WINDOW</code>: The size of the advertised receiver's window
<code>CONFIG_NET_ARPTAB_SIZE</code>: The size of the ARP table
<code>CONFIG_NET_BROADCAST</code>: Incoming UDP broadcast support
</li>
<li>
<code>CONFIG_NET_MULTICAST</code>: Outgoing multi-cast address support
<code>CONFIG_NET_LLH_LEN</code>: The link level header length
<li>
<code>CONFIG_NET_FWCACHE_SIZE</code>: number of packets to remember when looking for duplicates
</li>
</ul>
<h3>UIP Network Utilities</h3>
<ul>
<li>
<code>CONFIG_NET_DHCP_LIGHT</code>: Reduces size of DHCP
<code>CONFIG_NET_RESOLV_ENTRIES</code>: Number of resolver entries
<h2>USB Device-Side Support</h2>
<h3>USB Device Controller Driver</h3>
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
<ul>
<li>
<code>CONFIG_USBDEV</code>: Enables USB device support
</li>
<li>
<code>CONFIG_USBDEV_ISOCHRONOUS</code>: Build in extra support for isochronous endpoints
</li>
<li>
<code>CONFIG_USBDEV_DUALSPEED</code>: Hardware handles high and full speed operation (USB 2.0)
</li>
<li>
<code>CONFIG_USBDEV_SELFPOWERED</code>: Will cause USB features to indicate that the device is self-powered
</li>
<li>
<code>CONFIG_USBDEV_MAXPOWER</code>: Maximum power consumption in mA
</li>
<li>
<code>CONFIG_USBDEV_TRACE</code>: Enables USB tracing for debug
</li>
<li>
<code>CONFIG_USBDEV_TRACE_NRECORDS</code>: Number of trace entries to remember
</li>
</ul>
<h3>USB Serial Device Class Driver</h3>
<ul>
<li>
<code>CONFIG_USBSER</code>: Enable compilation of the USB serial driver
</li>
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
<li>
<code>CONFIG_USBSER_EPINTIN</code>: The logical 7-bit address of a hardware endpoint that supports interrupt IN operation
</li>
<li>
<code>CONFIG_USBSER_EPBULKOUT</code>: The logical 7-bit address of a hardware endpoint that supports bulk OUT operation
</li>
<li>
<code>CONFIG_USBSER_EPBULKIN</code>: The logical 7-bit address of a hardware endpoint that supports bulk IN operation
</li>
<li>
<code>CONFIG_USBSER_NWRREQS</code> and <code>CONFIG_USBSER_NRDREQS</code>: The number of write/read requests that can be in flight
</li>
<li>
<code>CONFIG_USBSER_VENDORID</code> and <code>CONFIG_USBSER_VENDORSTR</code>: The vendor ID code/string
</li>
<li>
<code>CONFIG_USBSER_PRODUCTID</code> and <code>CONFIG_USBSER_PRODUCTSTR</code>: The product ID code/string
</li>
<li>
<code>CONFIG_USBSER_RXBUFSIZE</code> and <code>CONFIG_USBSER_TXBUFSIZE</code>: Size of the serial receive/transmit buffers
</li>
</ul>
<h3>USB Storage Device Configuration</h3>
<ul>
<li>
<code>CONFIG_USBSTRG</code>:
Enable compilation of the USB storage driver
</li>
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
<li>
<code>CONFIG_USBSTRG_EP0MAXPACKET</code>:
Max packet size for endpoint 0
</li>
<li>
<code>CONFIG_USBSTRGEPBULKOUT</code> and <code>CONFIG_USBSTRG_EPBULKIN</code>:
The logical 7-bit address of a hardware endpoints that support bulk OUT and IN operations
</li>
<li>
<code>CONFIG_USBSTRG_NWRREQS</code> and <code>CONFIG_USBSTRG_NRDREQS</code>:
The number of write/read requests that can be in flight
</li>
<li>
<code>CONFIG_USBSTRG_BULKINREQLEN</code> and <code>CONFIG_USBSTRG_BULKOUTREQLEN</code>:
The size of the buffer in each write/read request.
This value needs to be at least as large as the endpoint maxpacket and
ideally as large as a block device sector.
</li>
<li>
<code>CONFIG_USBSTRG_VENDORID</code> and <code>CONFIG_USBSTRG_VENDORSTR</code>:
The vendor ID code/string
</li>
<li>
<code>CONFIG_USBSTRG_PRODUCTID</code> and <code>CONFIG_USBSTRG_PRODUCTSTR</code>:
The product ID code/string
</li>
<li>
<code>CONFIG_USBSTRG_REMOVABLE</code>:
Select if the media is removable
</li>
</ul>
<h2>Graphics related configuration settings</h3>
<ul>
<li>
Enables overall support for graphics library and NX
</li>
</ul>
<h3>NX configuration setting</h3>
<ul>
<li>
<code>CONFIG_NX_MULTIUSER</code>:
Configures NX in multi-user mode.
<code>CONFIG_NX_NPLANES</code>:
Some YUV color formats requires support for multiple planes,
one for each color component. Unless you have such special
hardware, this value should be undefined or set to 1.
<code>CONFIG_NX_DISABLE_1BPP</code>, <code>CONFIG_NX_DISABLE_2BPP</code>,
<code>CONFIG_NX_DISABLE_4BPP</code>, <code>CONFIG_NX_DISABLE_8BPP</code>
<code>CONFIG_NX_DISABLE_16BPP</code>, <code>CONFIG_NX_DISABLE_24BPP</code>, and
<code>CONFIG_NX_DISABLE_32BPP</code>:
NX supports a variety of pixel depths. You can save some
memory by disabling support for unused color depths.
</li>
<li>
<code>CONFIG_NX_PACKEDMSFIRST</code>:
If a pixel depth of less than 8-bits is used, then NX needs
to know if the pixels pack from the MS to LS or from LS to MS
</li>
<li>
<code>CONFIG_NX_MOUSE</code>:
Build in support for mouse input.
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
<code>CONFIG_NX_KBD</code>:
Build in support of keypad/keyboard input.
</li>
<li>
<code>CONFIG_NXTK_BORDERWIDTH</code>:
Specifies with with of the border (in pixels) used with
framed windows. The default is 4.
</li>
<li>
<code>CONFIG_NXTK_BORDERCOLOR1</code> and <code>CONFIG_NXTK_BORDERCOLOR2</code>:
Specify the colors of the border used with framed windows.
<code>CONFIG_NXTK_BORDERCOLOR2</code> is the shadow side color and so
is normally darker. The default is medium and dark grey,
respectively
</li>
<li>
<code>CONFIG_NXTK_AUTORAISE</code>:
If set, a window will be raised to the top if the mouse position
is over a visible portion of the window. Default: A mouse
button must be clicked over a visible portion of the window.
</li>
<li>
<code>CONFIG_NXFONTS_CHARBITS</code>:
The number of bits in the character set. Current options are
only 7 and 8. The default is 7.
</li>
<li>
<code>CONFIG_NXFONT_SANS</code>:
At present, there is only one font. But if there were were more,
then this option would select the sans serif font.
</li>
</ul>
<h3>NX Multi-user only options</h3>
<ul>
<li>
<code>CONFIG_NX_BLOCKING</code>
Open the client message queues in blocking mode. In this case,
<code>nx_eventhandler()</code> will not return until a message is received and processed.
</li>
<li>
<code>CONFIG_NX_MXSERVERMSGS</code> and <code>CONFIG_NX_MXCLIENTMSGS</code>
Specifies the maximum number of messages that can fit in
the message queues. No additional resources are allocated, but
this can be set to prevent flooding of the client or server with
too many messages (<code>CONFIG_PREALLOC_MQ_MSGS</code> controls how many
messages are pre-allocated).
</li>
</ul>
<code>CONFIG_BOOT_RUNFROMFLASH</code>: Some configurations support XIP
operation from FLASH but must copy initialized .data sections to RAM.
</li>
<li>
<code>CONFIG_BOOT_COPYTORAM</code>: Some configurations boot in FLASH
but copy themselves entirely into RAM for better performance.
</li>
<li>
<code>CONFIG_STACK_POINTER</code>: The initial stack pointer
</li>
<li>
<code>CONFIG_IDLETHREAD_STACKSIZE</code>: 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.
</li>
<li>
<code>CONFIG_USERMAIN_STACKSIZE</code>: The size of the stack to allocate
for the main user thread that begins at the user_start() entry point.
</li>
<li>
<code>CONFIG_PTHREAD_STACK_MIN</code>: Minimum pthread stack size
</li>
<li>
<code>CONFIG_PTHREAD_STACK_DEFAULT</code>: Default pthread stack size
</li>
<li>
<code>CONFIG_HEAP_BASE</code>: The beginning of the heap
</li>
<li>
<code>CONFIG_HEAP_SIZE</code>: The size of the heap
</li>
</ul>
<table width ="100%">
<tr bgcolor="#e4e4e4">
<td>
<h1><a name="apndxtrademarks">Appendix B: Trademarks</a></h1>
</td>
</tr>
</table>
<li>ARM, ARM7 ARM7TDMI, ARM9, ARM920T, ARM926EJS, Cortex-M3 are trademarks of Advanced RISC Machines, Limited.</li>
<li>Cygwin is a trademark of Red Hat, Incorporated.</li>
<li>Linux is a registered trademark of Linus Torvalds.</li>
<li>Eagle-100 is a trademark of <a href=" http://www.micromint.com/">Micromint USA, LLC</a>.
<li>LPC2148 is a trademark of NXP Semiconductors.</li>
<li>TI is a tradename of Texas Instruments Incorporated.</li>
<li>UNIX is a registered trademark of The Open Group.</li>
<li>VxWorks is a registered trademark of Wind River Systems, Incorporated.</li>
<li>ZDS, ZNEO, Z16F, Z80, and Zilog are a registered trademark of Zilog, Inc.</li>
<p>
NOTE: NuttX is <i>not</i> licensed to use the POSIX trademark. NuttX uses the POSIX
standard as a development guideline only.
</p>