Skip to content
Snippets Groups Projects
NuttxPortingGuide.html 140 KiB
Newer Older
patacongo's avatar
patacongo committed
  <li>
    <code>CONFIG_PAGING_SPIPORT</code>:
    If CONFIG_PAGING_M25PX or CONFIG_PAGING_AT45DB is defined and the device has multiple SPI busses (ports), then this configuration should be set to indicate which SPI port the device is connected.
patacongo's avatar
patacongo committed
    Default: 0
  </li>
patacongo's avatar
patacongo committed
<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>
    <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>
patacongo's avatar
patacongo committed
</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>
  <li>
    <code>CONFIG_LIBC_FLOATINGPOINT</code>: By default, floating point
    support in printf, sscanf, etc. is disabled.
  </li>
patacongo's avatar
patacongo committed
</ul>

<h2>Allow for architecture optimized implementations</h2>

<p>
  The architecture can provide optimized versions of the
patacongo's avatar
patacongo committed
  following to improve system performance.
patacongo's avatar
patacongo committed
</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>,
patacongo's avatar
patacongo committed
  <code>CONFIG_ARCH_STRNCPY</code>, <code>CONFIG_ARCH_STRLEN</code>, <code>CONFIG_ARCH_STRNLEN</code>,
  <code>CONFIG_ARCH_BZERO</code>, <code>CONFIG_ARCH_KMALLOC</code>, <code>CONFIG_ARCH_KZMALLOC</code>,
  <code>ONFIG_ARCH_KFREE</code>,
patacongo's avatar
patacongo committed
</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
patacongo's avatar
patacongo committed
    a fixed payload size given by this setting (does not include
patacongo's avatar
patacongo committed
    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>
patacongo's avatar
patacongo committed
  <li>
    <code>CONFIG_PREALLOC_IGMPGROUPS</code>: Pre-allocated IGMP groups are used
    Only if needed from interrupt level group created (by the IGMP server).
    Default: 4
  </li>
patacongo's avatar
patacongo committed
  <li>
patacongo's avatar
patacongo committed
    <code>CONFIG_DEV_PIPE_SIZE</code>: Size, in bytes, of the buffer to allocated
    for pipe and FIFO support (default is 1024).
patacongo's avatar
patacongo committed
  </li>
patacongo's avatar
patacongo committed
</ul>

patacongo's avatar
patacongo committed
<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>

<h2>Device Drivers</h2>
<h3>SPI driver</h3>
<ul>
  <li>
patacongo's avatar
patacongo committed
    <code>CONFIG_SPI_OWNBUS</code> - Set if there is only one active device
    on the SPI bus.  No locking or SPI configuration will be performed.
    It is not necessary for clients to lock, re-configure, etc..
  </li>
  <li>
    <code>CONFIG_SPI_EXCHANGE</code>: Driver supports a single exchange method
    (vs a recvblock() and sndblock ()methods)
  </li>
</ul>

<h3>SPI-based MMC/SD driver</h3>
<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>
  <li>
    <code>CONFIG_MMCSD_SPICLOCK</code>: Maximum SPI clock to drive MMC/SD card. Default is 20MHz.
  </li>
<h3>SDIO-based MMC/SD driver</h3>
<ul>
  <li>
    <code>CONFIG_FS_READAHEAD</code>: Enable read-ahead buffering
  </li>
  <li>
    <code>CONFIG_FS_WRITEBUFFER</code>: Enable write buffering
  </li>
  <li>
    <code>CONFIG_SDIO_DMA</code>: SDIO driver supports DMA
  </li>
  <li>
    <code>CONFIG_MMCSD_MMCSUPPORT</code>: Enable support for MMC cards
  </li>
  <li>
    <code>CONFIG_MMCSD_HAVECARDDETECT</code>: SDIO driver card detection is 100% accurate
  </li>
</ul>

<h3>RiT P14201 OLED driver</h3>
<ul>
  <li>
    <code>CONFIG_LCD_P14201</code>: Enable P14201 support
  </li>
  <li>
    <code>CONFIG_P14201_SPIMODE</code>: Controls the SPI mode
  </li>
  <li>
    <code>CONFIG_P14201_FREQUENCY</code>: Define to use a different bus frequency
  </li>
  <li>
    <code>CONFIG_P14201_NINTERFACES</code>:
      Specifies the number of physical P14201 devices that will be supported.
  </li>
  <li>
    <code>CONFIG_P14201_FRAMEBUFFER</code>:
      If defined, accesses will be performed using an in-memory copy of the OLEDs GDDRAM.
      This cost of this buffer is 128 * 96 / 2 = 6Kb.
patacongo's avatar
patacongo committed
      If this is defined, then the driver will be fully functional.
      If not, then it will have the following limitations:
      <ul>
        <li>Reading graphics memory cannot be supported, and</li>
        <li>All pixel writes must be aligned to byte boundaries.</li>
      </ul>
patacongo's avatar
patacongo committed
      The latter limitation effectively reduces the 128x96 disply to 64x96.
patacongo's avatar
patacongo committed
<h3>Nokia 6100 Configuration Settings:</h3>
<ul>
  <li>
    <code>CONFIG_NOKIA6100_SPIMODE</code>: Controls the SPI mode,
  </li>
  <li>
    <code>CONFIG_NOKIA6100_FREQUENCY</code>: Define to use a different bus frequency.
  </li>
  <li>
    <code>CONFIG_NOKIA6100_NINTERFACES</code>:Specifies the number of physical Nokia
      6100 devices that will be supported.
  </li>
  <li>
    <code>CONFIG_NOKIA6100_BPP</code>: Device supports 8, 12, and 16 bits per pixel.
  </li>
  <li>
    <code>CONFIG_NOKIA6100_S1D15G10</code>: Selects the Epson S1D15G10 display controller
  </li>
  <li>
    <code>CONFIG_NOKIA6100_PCF8833</code>: Selects the Phillips PCF8833 display controller
  </li>
  <li>
    <code>CONFIG_NOKIA6100_BLINIT</code>: Initial backlight setting
  </li>
patacongo's avatar
patacongo committed
  <p>
    The following may need to be tuned for your hardware:
  </p>
  <li>
    <code>CONFIG_NOKIA6100_INVERT</code>: Display inversion, 0 or 1, Default: 1
  </li>
  <li>
    <code>CONFIG_NOKIA6100_MY</code>: Display row direction, 0 or 1, Default: 0
  </li>
  <li>
    <code>CONFIG_NOKIA6100_MX</code>: Display column direction, 0 or 1, Default: 1
  </li>
  <li>
    <code>CONFIG_NOKIA6100_V</code>: Display address direction, 0 or 1, Default: 0
  </li>
  <li>
    <code>CONFIG_NOKIA6100_ML</code>: Display scan direction, 0 or 1, Default: 0
  </li>
  <li>
    <code>CONFIG_NOKIA6100_RGBORD</code>: Display RGB order, 0 or 1, Default: 0
  </li>
patacongo's avatar
patacongo committed
  <p>
    Required LCD driver settings:
  </p>
  <li>
    <code>CONFIG_LCD_NOKIA6100</code>: Enable Nokia 6100 support
  </li>
  <li>
    <code>CONFIG_LCD_MAXCONTRAST</code>: Must be 63 with the Epson controller and 127 with
      the Phillips controller.
  </li>
  <li>
    <code>CONFIG_LCD_MAXPOWER</code>:Maximum value of backlight setting.  The backlight
      control is managed outside of the 6100 driver so this value has no
      meaning to the driver.  Board-specific logic may place restrictions on
      this value.
  </li>
</ul>

<h3>ENC28J60 Ethernet Driver Configuration Settings</h3>
<ul>
  <li>
    <code>CONFIG_NET_ENC28J60</code>: Enabled ENC28J60 support
  </li>
  <li>
    <code>CONFIG_ENC28J60_SPIMODE</code>: Controls the SPI mode
  </li>
  <li>
    <code>CONFIG_ENC28J60_FREQUENCY</code>: Define to use a different bus frequency
  </li>
  <li>
    <code>CONFIG_ENC28J60_NINTERFACES</code>:
      Specifies the number of physical ENC28J60 devices that will be supported.
  </li>
  <li>
    <code>CONFIG_ENC28J60_STATS</code>: Collect network statistics
  </li>
  <li>
    <code>CONFIG_ENC28J60_HALFDUPPLEX</code>: Default is full duplex
  </li>
</ul>

patacongo's avatar
patacongo committed
<h2>Network Support</h2>
<h3>TCP/IP and UDP support via uIP</h3>
patacongo's avatar
patacongo committed
<ul>
  <li>
    <code>CONFIG_NET</code>: Enable or disable all network features
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_NET_IPv6</code>: Build in support for IPv6
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_NSOCKET_DESCRIPTORS</code>: Maximum number of socket descriptors per task/thread.
patacongo's avatar
patacongo committed
  </li>
  <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>
patacongo's avatar
patacongo committed
  <li>
    <code>CONFIG_NET_SOCKOPTS</code>: Enable or disable support for socket options.
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_NET_BUFSIZE</code>: uIP buffer size
    <code>CONFIG_NET_TCP</code>: TCP support on or off
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_NET_TCP_CONNS</code>: Maximum number of TCP connections (all tasks).
patacongo's avatar
patacongo committed
  </li>
  <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>
patacongo's avatar
patacongo committed
  <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)
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_NET_MAX_LISTENPORTS</code>: Maximum number of listening TCP ports (all tasks).
  </li>
patacongo's avatar
patacongo committed
  <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>
patacongo's avatar
patacongo committed
  <li>
    <code>CONFIG_NET_UDP</code>: UDP support on or off
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_NET_UDP_CHECKSUMS</code>: UDP checksums on or off
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_NET_UDP_CONNS</code>: The maximum amount of concurrent UDP connections
patacongo's avatar
patacongo committed
  </li>
  <li>
    <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.
patacongo's avatar
patacongo committed
  </li>
patacongo's avatar
patacongo committed
  <li>
    <code>CONFIG_NET_IGMP</code>:  Enable IGMPv2 client support.
  </li>
  <li>
    <code>CONFIG_PREALLOC_IGMPGROUPS</code>: Pre-allocated IGMP groups are used
    Only if needed from interrupt level group created (by the IGMP server).
    Default: 4
  </li>
patacongo's avatar
patacongo committed
  <li>
    <code>CONFIG_NET_PINGADDRCONF</code>: Use "ping" packet for setting IP address
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_NET_STATISTICS</code>: uIP statistics on or off
  </li>
patacongo's avatar
patacongo committed
  <li>
    <code>CONFIG_NET_RECEIVE_WINDOW</code>: The size of the advertised receiver's window
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_NET_ARPTAB_SIZE</code>: The size of the ARP table
patacongo's avatar
patacongo committed
  </li>
patacongo's avatar
patacongo committed
  <li>
    <code>CONFIG_NET_ARP_IPIN</code>: Harvest IP/MAC address mappings for the ARP table from incoming IP packets.
  </li>
patacongo's avatar
patacongo committed
  <li>
patacongo's avatar
patacongo committed
    <code>CONFIG_NET_BROADCAST</code>: Incoming UDP broadcast support
  </li>
  <li>
    <code>CONFIG_NET_MULTICAST</code>: Outgoing multi-cast address support
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_NET_LLH_LEN</code>: The link level header length
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_NET_FWCACHE_SIZE</code>: number of packets to remember when looking for duplicates
patacongo's avatar
patacongo committed
  </li>
</ul>

<h3>UIP Network Utilities</h3>
<ul>
  <li>
    <code>CONFIG_NET_DHCP_LIGHT</code>: Reduces size of DHCP
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_NET_RESOLV_ENTRIES</code>: Number of resolver entries
patacongo's avatar
patacongo committed
  </li>
</ul>

patacongo's avatar
patacongo committed
<h3>THTTPD</h3>
<ul>
  <li>
    <code>CONFIG_THTTPD_PORT</code>: THTTPD Server port number
  </li>
  <li>
    <code>CONFIG_THTTPD_IPADDR</code>: Server IP address (no host name)
  </li>
  <li>
    <code>CONFIG_THTTPD_SERVER_ADDRESS</code>: SERVER_ADDRESS: response
  </li>
  <li>
    <code>CONFIG_THTTPD_SERVER_SOFTWARE</code>: SERVER_SOFTWARE: response
  </li>
  <li>
patacongo's avatar
patacongo committed
    <code>CONFIG_THTTPD_PATH</code>: Server working directory. Default: <code>/mnt/www</code>.
patacongo's avatar
patacongo committed
  </li>
  <li>
patacongo's avatar
patacongo committed
    <code>CONFIG_THTTPD_CGI_PATH</code>: Path to CGI executables.  Default: <code>/mnt/www/cgi-bin</code>.
patacongo's avatar
patacongo committed
  </li>
  <li>
patacongo's avatar
patacongo committed
    <code>CONFIG_THTTPD_CGI_PATTERN</code>: Only CGI programs whose expanded paths
    match this pattern will be executed.  In fact, if this value is not defined
    then no CGI logic will be built. Default: <code>/mnt/www/cgi-bin/*</code>.
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_THTTPD_CGI_PRIORITY</code>: Provides the priority of CGI child tasks
  </li>
  <li>
    <code>CONFIG_THTTPD_CGI_STACKSIZE</code>: Provides the initial stack size of
     CGI child task (will be overridden by the stack size in the NXFLAT
    header)
  </li>
  <li>
    <code>CONFIG_THTTPD_CGI_BYTECOUNT</code>: Byte output limit for CGI tasks.
  </li>
  <li>
    <code>CONFIG_THTTPD_CGI_TIMELIMIT</code>: How many seconds to allow CGI programs
    to run before killing them.
  </li>
  <li>
patacongo's avatar
patacongo committed
    <code>CONFIG_THTTPD_CHARSET</code>: The default character set name to use with
patacongo's avatar
patacongo committed
    text MIME types.
  </li>
  <li>
    <code>CONFIG_THTTPD_IOBUFFERSIZE</code>: 
  </li>
  <li>
    <code>CONFIG_THTTPD_INDEX_NAMES</code>: A list of index filenames to check. The
    files are searched for in this order.
  </li>
  <li>
    <code>CONFIG_AUTH_FILE</code>: The file to use for authentication. If this is
    defined then thttpd checks for this file in the local directory
    before every fetch. If the file exists then authentication is done,
    otherwise the fetch proceeds as usual. If you leave this undefined
    then thttpd will not implement authentication at all and will not
    check for auth files, which saves a bit of CPU time. A typical
    value is &quot;.htpasswd&quout;
  </li>
  <li>
    <code>CONFIG_THTTPD_LISTEN_BACKLOG</code>: The listen() backlog queue length.
  </li>
  <li>
    <code>CONFIG_THTTPD_LINGER_MSEC</code>: How many milliseconds to leave a connection
    open while doing a lingering close.
  </li>
  <li>
    <code>CONFIG_THTTPD_OCCASIONAL_MSEC</code>: How often to run the occasional
    cleanup job.
  </li>
  <li>
    <code>CONFIG_THTTPD_IDLE_READ_LIMIT_SEC</code>: How many seconds to allow for
    reading the initial request on a new connection.
  </li>
  <li>
    <code>CONFIG_THTTPD_IDLE_SEND_LIMIT_SEC</code>: How many seconds before an
    idle connection gets closed.
  </li>
  <li>
    <code>CONFIG_THTTPD_TILDE_MAP1 and CONFIG_THTTPD_TILDE_MAP2</code>: Tilde mapping.
    Many URLs use ~username to indicate a user's home directory. thttpd
    provides two options for mapping this construct to an  actual filename.
    <ol>
      <li>
        Map ~username to &lt;prefix&gt;/username. This is the recommended choice.
        Each user gets a subdirectory in the main web tree, and the tilde
        construct points there. The prefix could be something like "users",
        or it could be empty.
      </li>
      <li>
        Map ~username to &lt;user's homedir&gt;/&lt;postfix&gt;. The postfix would be
        the name of a subdirectory off of the user's actual home dir,
        something like &quot;public_html&quot;.
      </li>
    </ol>
    You can also leave both options undefined, and thttpd will not do
    anything special about tildes. Enabling both options is an error.
    Typical values, if they're defined, are &quot;users&quot; for
    CONFIG_THTTPD_TILDE_MAP1 and &quot;public_html&quot; forCONFIG_THTTPD_TILDE_MAP2. 
  </li>
  <li>
patacongo's avatar
patacongo committed
    <code>CONFIG_THTTPD_GENERATE_INDICES</code>:
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_THTTPD_URLPATTERN</code>: If defined, then it will be used to match
    and verify referrers.
patacongo's avatar
patacongo committed
  </li>
</ul>

<h2>USB Device-Side Support</h2>
<h3>USB Device Controller Driver</h3>
patacongo's avatar
patacongo committed
<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>
  <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>
  <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>

patacongo's avatar
patacongo committed
<h2>USB Host-Side Support</h2>
<h3>USB Host Controller Driver</h3>
<ul>
  <li>
    <code>CONFIG_USBHOST</code>: Enables USB host support
  </li>
  <li>
    <code>CONFIG_USBHOST_NPREALLOC</code>: Number of pre-allocated class instances
  </li>
  <li>
    <code>CONFIG_USBHOST_BULK_DISABLE</code>: On some architectures, selecting this setting will reduce driver size by disabling bulk endpoint support
  </li>
  <li>
    <code>CONFIG_USBHOST_INT_DISABLE</code>: On some architectures, selecting this setting will reduce driver size by disabling interrupt endpoint support
  </li>
  <li>
    <code>CONFIG_USBHOST_ISOC_DISABLE</code>: On some architectures, selecting this setting will reduce driver size by disabling isochronous endpoint support
  </li>
patacongo's avatar
patacongo committed
</ul>

patacongo's avatar
patacongo committed
<h2>Graphics related configuration settings</h3>
<ul>
  <li>
    <code>CONFIG_NX</code>
patacongo's avatar
patacongo committed
    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.
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_NX_NPLANES</code>:
patacongo's avatar
patacongo committed
    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.
patacongo's avatar
patacongo committed
  </li>
  <li>
    <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>:
patacongo's avatar
patacongo committed
    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>:
patacongo's avatar
patacongo committed
    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_LCDDRIVER</code>:
    By default, NX builds to use a framebuffer driver (see <code>include/nuttx/fb.h</code>).
    If this option is defined, NX will build to use an LCD driver (see <code>include/nuttx/lcd/lcd.h</code>).
patacongo's avatar
patacongo committed
    <code>CONFIG_LCD_MAXPOWER</code>:
    The full-on power setting for an LCD device.
  </li>
  <li>
patacongo's avatar
patacongo committed
    <code>CONFIG_LCD_MAXCONTRAST</code>:
    The maximum contrast value for an LCD device.
  </li>
patacongo's avatar
patacongo committed
  <li>
    <code>CONFIG_NX_MOUSE</code>:
    Build in support for mouse input.
patacongo's avatar
patacongo committed
  </li>
  <li>
    <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.
patacongo's avatar
patacongo committed
  </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.
patacongo's avatar
patacongo committed
  </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>

patacongo's avatar
patacongo committed
<h2>Stack and heap information</h2>

<ul>
  <li>
patacongo's avatar
patacongo committed
    <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.
patacongo's avatar
patacongo committed
  </li>
  <li>
    <code>CONFIG_STACK_POINTER</code>: The initial stack pointer
  </li>
  <li>
    <code>CONFIG_IDLETHREAD_STACKSIZE</code>: The size of the initial stack.
patacongo's avatar
patacongo committed
    This is the thread that (1) performs the initial 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.
patacongo's avatar
patacongo committed
  </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>
patacongo's avatar
patacongo committed

  <li>ARM, ARM7 ARM7TDMI, ARM9, ARM920T, ARM926EJS, Cortex-M3 are trademarks of Advanced RISC Machines, Limited.</li>
patacongo's avatar
patacongo committed
  <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>.
patacongo's avatar
patacongo committed
  <li>LPC2148 is a trademark of NXP Semiconductors.</li>
patacongo's avatar
patacongo committed
  <li>TI is a trade name of Texas Instruments Incorporated.</li>
patacongo's avatar
patacongo committed
  <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>

patacongo's avatar
patacongo committed
</body>
</html>