diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index b2eb55d047..02155fe126 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -383,7 +383,7 @@

2.2.3 Supported Architectures

- Archictecture- and Chip-Specific Directories. + Architecture- and Chip-Specific Directories. All processor architecture-specific directories are maintained in sub-directories of the arch/ directory. Different chips or SoC's may implement the same processor core. @@ -394,7 +394,7 @@

@@ -651,7 +651,7 @@
  • configs/ntosd-dm320: This port uses the Neuros OSD with a GNU arm-elf toolchain* under Linux or Cygwin. See Neuros Wiki - for futher information. + for further information. NuttX operates on the ARM9EJS of this dual core processor. STATUS: This port is code complete, verified, and included in the NuttX 0.2.1 release. @@ -660,7 +660,7 @@
  • configs/olimex-strp711: This port uses the Olimex STR-P711 board arm-elf toolchain* under Linux or Cygwin. See the Olimex web site - for futher information. + for further information. STATUS: Coding for the basic port -- serial console and system timer -- is complete but untested to problems I am having using OpenOCD with a wiggler clone JTAG.
  • @@ -673,7 +673,7 @@
  • configs/sim: A user-mode port of NuttX to the x86 Linux platform is available. - The purpose of this port is primarily to support OS feature developement. + The purpose of this port is primarily to support OS feature development. This port does not support interrupts or a real timer (and hence no round robin scheduler) Otherwise, it is complete.
  • @@ -686,7 +686,7 @@
  • configs/xtrs: TRS80 Model 3. This port uses a vintage computer based on the Z80. An emulator for this computer is available to run TRS80 programs on a - linux platform (http://www.tim-mann.org/xtrs.html). + Linux platform (http://www.tim-mann.org/xtrs.html).
  • configs/z16f2800100zcog @@ -701,7 +701,7 @@ That simulator can be found in the NuttX CVS here. This port also the SDCC toolchain - under Linux or Cygwin(verfied with version 2.6.0). + under Linux or Cygwin(verified with version 2.6.0).
  • configs/z8encore000zco @@ -782,7 +782,7 @@ graphics/ | `-- (NuttX graphics library source files) |-- nx/ | |-- Make.defs -| `-- (Nuttx X-server source files) +| `-- (NuttX X-server source files) `-- (common file system source files) @@ -818,7 +818,7 @@ include/

    2.9 lib

    This directory holds a collection of standard libc-like functions with custom - interfaces into Nuttx. + interfaces into NuttX.

    2.10 mm

    @@ -829,7 +829,7 @@ include/

    2.11 net

    This directory contains the implementation of the socket APIs. - The subdirectory, uip contians the uIP port. + The subdirectory, uip contains the uIP port.

    2.12 netutils

    @@ -968,7 +968,7 @@ make

    @@ -1051,7 +1051,7 @@ The system can be re-made subsequently by just typing make. the processor specific portions of the new TCB.

    - This function must setup the intial architecture registers + This function must setup the initial architecture registers and/or stack so that execution will begin at tcb->start on the next context switch.

    @@ -1156,7 +1156,7 @@ The system can be re-made subsequently by just typing make.
  • tcb: Refers to the tcb to be unblocked. This tcb is in one of the waiting tasks lists. It must be moved to the ready-to-run list and, if it is the highest priority - ready to run taks, executed. + ready to run tasks, executed.
  • @@ -1248,7 +1248,7 @@ The system can be re-made subsequently by just typing make.

    Unlike other UP APIs, this function may be called directly from user programs in various states. The - implementation of this function should diable interrupts + implementation of this function should disable interrupts before performing scheduling operations.

    @@ -1272,7 +1272,7 @@ The system can be re-made subsequently by just typing make. This function is called by the OS when one or more signal handling actions have been queued for execution. The architecture specific code must configure things so - that the 'igdeliver' callback is executed on the thread + that the 'sigdeliver' callback is executed on the thread specified by 'tcb' as soon as possible.

    @@ -1337,7 +1337,7 @@ The system can be re-made subsequently by just typing make.

    Description. @@ -1364,7 +1364,7 @@ The system can be re-made subsequently by just typing make.

    Description. @@ -1385,7 +1385,7 @@ The system can be re-made subsequently by just typing make.

    Description. Set the priority of an IRQ. @@ -1436,8 +1436,8 @@ The system can be re-made subsequently by just typing make.

    Prototype: void irq_dispatch(int irq, FAR void *context);

    Description. - This function must be called from the achitecture- - specific logic in order to dispaly an interrupt to + This function must be called from the architecture- + specific logic in order to display an interrupt to the appropriate, registered handling logic.

    @@ -1481,7 +1481,7 @@ The system can be re-made subsequently by just typing make. The implementation of LED support is very specific to a board architecture. Some boards have several LEDS, others have only one or two. Some have none. - Others LED matrices and show alphnumeric data, etc. + Others LED matrices and show alphanumeric data, etc. The NuttX logic does not refer to specific LEDS, rather, it refers to an event to be shown on the LEDS in whatever manner is appropriate for the board; the way that this event is presented depends upon the hardware available on the board. @@ -1587,27 +1587,27 @@ extern void up_ledoff(int led);

    Overview. NuttX includes an optional, scalable file system. - This file-system may be omitted altogther; NuttX does not depend on the presence + This file-system may be omitted altogether; NuttX does not depend on the presence of any file system.

    Pseudo Root File System. - Or, a simple in-memory, psuedo file system can be enabled. + Or, a simple in-memory, pseudo file system can be enabled. This simple file system can be enabled setting the CONFIG_NFILE_DESCRIPTORS option to a non-zero value (see Appendix A). This is an in-memory file system because it does not require any storage medium or block driver support. Rather, file system contents are generated on-the-fly as referenced via standard file system operations (open, close, read, write, etc.). - In this sense, the file system is psuedo file system (in the + In this sense, the file system is pseudo file system (in the same sense that the Linux /proc file system is also - referred to as a psuedo file system). + referred to as a pseudo file system).

    - Any user supplied data or logic can be accessed via the psuedo-file system. + Any user supplied data or logic can be accessed via the pseudo-file system. Built in support is provided for character and block drivers in the - /dev psuedo file system directory. + /dev pseudo file system directory.

    Mounted File Systems @@ -1615,7 +1615,7 @@ extern void up_ledoff(int led); devices that provide access to true file systems backed up via some mass storage device. NuttX supports the standard mount() command that allows - a block driver to be bound to a mountpoint within the psuedo file system + a block driver to be bound to a mountpoint within the pseudo file system and to a file system. At present, NuttX supports only the VFAT file system.

    @@ -1624,10 +1624,10 @@ extern void up_ledoff(int led); From a programming perspective, the NuttX file system appears very similar to a Linux file system. However, there is a fundamental difference: - The NuttX root file system is a psuedo file system and true file systems may be - mounted in the psuedo file system. + The NuttX root file system is a pseudo file system and true file systems may be + mounted in the pseudo file system. In the typical Linux installation by comparison, the Linux root file system - is a true file system and psuedo file systems may be mounted in the true, + is a true file system and pseudo file systems may be mounted in the true, root file system. The approach selected by NuttX is intended to support greater scalability from the very tiny platform to the moderate platform. @@ -1649,7 +1649,7 @@ extern void up_ledoff(int led);
  • Other Specialized Drivers.
  • These different device driver types are discussed in the following paragraphs. - Note: device driver support requires that the in-memory, psuedo file system + Note: device driver support requires that the in-memory, pseudo file system is enabled by setting the CONFIG_NFILE_DESCRIPTORS in the NuttX configuration file to a non-zero value.

    @@ -1745,7 +1745,7 @@ extern void up_ledoff(int led);
  • Examples. - drivers/loop.c, drivers/mmcds/mmcsd_spi.c, drivers/ramdisk.c, etc. + drivers/loop.c, drivers/mmcsd/mmcsd_spi.c, drivers/ramdisk.c, etc.
  • @@ -1762,7 +1762,7 @@ extern void up_ledoff(int led);
  • int netdev_register(FAR struct uip_driver_s *dev);. - Each Eterhenet driver registers itself by calling netdev_register(). + Each Ethernet driver registers itself by calling netdev_register().
  • Examples: @@ -1789,17 +1789,22 @@ extern void up_ledoff(int led); ubyte status(FAR struct spi_dev_s *dev, enum spi_dev_e devid);
    uint16 send(FAR struct spi_dev_s *dev, uint16 wd);
    void exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords);
    -

    nt registercallback(FAR struct spi_dev_s *dev, mediachange_t callback, void *arg);

    +

    int registercallback(FAR struct spi_dev_s *dev, mediachange_t callback, void *arg);

  • Binding SPI Drivers. SPI drivers are not normally directly accessed by user code, but are usually bound to another, higher level device driver. See for example, int mmcsd_spislotinitialize(int minor, int slotno, FAR struct spi_dev_s *spi) in drivers/mmcsd/mmcsd_spi.c. + In general, the binding sequence is: +
  • Examples: - drivers/loop.c, drivers/mmcds/mmcsd_spi.c, drivers/ramdisk.c, etc. + drivers/loop.c, drivers/mmcsd/mmcsd_spi.c, drivers/ramdisk.c, etc.
  • @@ -1822,8 +1827,13 @@ extern void up_ledoff(int led);
  • Binding I2C Drivers. - SPI drivers are not normally directly accessed by user code, but are usually bound to another, + I2C drivers are not normally directly accessed by user code, but are usually bound to another, higher level device driver. + In general, the binding sequence is: +
  • Examples: @@ -1862,7 +1872,7 @@ extern void up_ledoff(int led); A serial driver may register itself by calling uart_register(), passing it the path where it will appear in the pseudo-file-system and it's initialized instance of struct uart_ops_s. - By convention, serial device drivers are registered at pathes like /dev/ttyS0, /dev/ttyS1, etc. + By convention, serial device drivers are registered at paths like /dev/ttyS0, /dev/ttyS1, etc. See the uart_register() implementation in drivers/serial.c.
  • @@ -1890,7 +1900,7 @@ extern void up_ledoff(int led);

    Architecture selection

    - The following configuration itemes select the architecture, chip, and + The following configuration items select the architecture, chip, and board configuration for the build.

    @@ -1939,14 +1949,14 @@ extern void up_ledoff(int led);
  • CONFIG_INTELHEX_BINARY: Make the Intel HEX binary format used with many different loaders using the GNU objcopy program - This option hould not be selected if you are not using the GNU toolchain. + This option should not be selected if you are not using the GNU toolchain.
  • CONFIG_MOTOROLA_SREC: Make the Motorola S-Record binary format used with many different loaders using the GNU objcopy program Should not be selected if you are not using the GNU toolchain.
  • CONFIG_RAW_BINARY: - mmke a raw binary format file used with many different loaders using the GNU objcopy program. + Make a raw binary format file used with many different loaders using the GNU objcopy program. This option should not be selected if you are not using the GNU toolchain.
  • CONFIG_HAVE_LIBM: @@ -1954,7 +1964,7 @@ extern void up_ledoff(int led);
  • CONFIG_HAVE_CXX: Toolchain supports C++ and CXX, CXXFLAGS, and COMPILEXX - have been defined in the configuratins Make.defs file. + have been defined in the configurations Make.defs file.
  • @@ -1975,7 +1985,7 @@ extern void up_ledoff(int led); CONFIG_DEBUG_SCHED: enable OS debug output (disabled by default)
  • - CONFIG_DEBUG_MM: enable memory management debug output (disabld by default) + CONFIG_DEBUG_MM: enable memory management debug output (disabled by default)
  • CONFIG_DEBUG_NET: enable network debug output (disabled by default) @@ -2003,7 +2013,7 @@ extern void up_ledoff(int led); interval other than 10 msec.
  • - CONFIG_RR_INTERVAL: The round robin timeslice will be set + CONFIG_RR_INTERVAL: The round robin time slice will be set this number of milliseconds; Round robin scheduling can be disabled by setting this value to zero.
  • @@ -2012,7 +2022,7 @@ extern void up_ledoff(int led); scheduler to monitor system performance
  • - CONFIG_TASK_NAME_SIZE: Spcifies that maximum size of a + CONFIG_TASK_NAME_SIZE: Specifies that maximum size of a task name to save in the TCB. Useful if scheduler instrumentation is selected. Set to zero to disable.
  • @@ -2034,7 +2044,7 @@ extern void up_ledoff(int led);
  • CONFIG_PRIORITY_INHERITANCE: Set to enable support for priority inheritance on mutexes and semaphores. - Priority inheritance is a strategy of addessing + Priority inheritance is a strategy of addressing priority inversion. Details of the NuttX implementation of priority inheritance is discussed elsewhere. @@ -2096,7 +2106,7 @@ extern void up_ledoff(int led);

    The architecture can provide optimized versions of the - following to improve sysem performance. + following to improve system performance.