From 41bfe821d0beb026ce955494292f41a3ae5cec02 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 10 Aug 2018 16:12:32 -0600 Subject: [PATCH] Documentation/NuttxPortingGuide.html: Update some directory structure information. This document is very out of date. --- Documentation/NuttxPortingGuide.html | 408 +++++++++++++++++++-------- 1 file changed, 295 insertions(+), 113 deletions(-) diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 339f93642a..a1ff6fed41 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

NuttX RTOS Porting Guide

-

Last Updated: March 22, 2018

+

Last Updated: August 10, 2018

@@ -56,7 +56,7 @@ 2.9 nuttx/graphics/
2.10 nuttx/include/
2.11 nuttx/lib/
- 2.12 nuttx/libc/
+ 2.12 nuttx/libs/libc/
2.13 nuttx/libxx/
2.14 nuttx/mm/
2.15 nuttx/net
@@ -307,6 +307,10 @@ | | | | `-- (board configuration-specific source files) | | | `---(other configuration sub-directories for this board)/ | | `-- <(other board directories)>/ +| |-- crypto +| | |-- Makefile +| | |-- Kconfig +| | `-- (common crypto source files) | |-- drivers/ | | |-- Makefile | | |-- Kconfig @@ -331,14 +335,23 @@ | | | `-- (more standard header files) | | |-- (non-standard include sub-directories) | | `-- (non-standard header files) -| |-- libc/ -| | |-- Makefile -| | |-- Kconfig -| | `-- (libc source files) -| |-- libxx/ -| | |-- Makefile -| | |-- Kconfig -| | `-- (libxx management source files) +| |-- libs/ +| | |-- libc/ +| | | |-- Makefile +| | | |-- Kconfig +| | | `-- (libc source files) +| | |-- libdsp/ +| | | |-- Makefile +| | | |-- Kconfig +| | | `-- (libdsp source files) +| | |-- libnx/ +| | | |-- Makefile +| | | |-- Kconfig +| | | `-- (libdsp source files) +| | `-- libxx/ +| | |-- Makefile +| | |-- Kconfig +| | `-- (libxx source files) | |-- mm/ | | |-- Makefile | | |-- Kconfig @@ -372,6 +385,8 @@ | | | `-- (UDP source files) | | `-- utils/ | | `-- (Miscellaneous, utility source files) +| |-- pass1/ +| | `-- Makefile | |-- sched/ | | |-- Makefile | | |-- Kconfig @@ -382,32 +397,81 @@ | | `-- (syscall source files) | |-- tools/ | | `-- (miscellaneous scripts and programs) -| `-- tools/ +| `-- wireless/ | |-- Makefile | |-- Kconfig -| `-- (wireless management source files) +| `-- (wireless source files) `- apps + |-- builtin/ + | |-- Makefile + | |-- Make.defs + | |-- Kconfig + | `-- (builtin source files) + |-- canutils/ + | |-- Makefile + | |-- Make.defs + | |-- Kconfig + | `-- (can utililities sub-directories) + |-- fsutils/ + | |-- Makefile + | |-- Make.defs + | |-- Kconfig + | `-- (File system utilities sub-directories) + |-- gpsutils/ + | |-- Makefile + | |-- Make.defs + | |-- Kconfig + | `-- (GPS utilities sub-directories) + |-- include/ + | `-- (Include sub-directories) + |-- interpreters/ + | |-- Makefile + | |-- Make.defs + | |-- Kconfig + | `-- (Interpreter sub-directories) + |-- modbus/ + | |-- Makefile + | |-- Make.defs + | |-- Kconfig + | `-- (Modbus source files) |-- netutils/ | |-- Makefile + | |-- Make.defs | |-- Kconfig | |-- (network feature sub-directories)/ - | | `-- (network feature source files) + | | `-- (network utilities sub-directories) | `-- (netutils common files) - |-- nshlib/ + |-- nshlib/ | |-- Makefile + | |-- Make.defs | |-- Kconfig | `-- NuttShell (NSH) files - |-- (Board-specific applications)/ + |-- platform/ | |-- Makefile + | |-- Make.defs | |-- Kconfig - | |-- (Board-specific application sub-directories)/ - | | `-- (Board-specific application source files) - | `-- (Board-specific common files) + | `-- (Platform-specific sub-directories) + |-- system/ + | |-- Makefile + | |-- Make.defs + | |-- Kconfig + | `-- (System utilities sub-directories) + |-- testing/ + | |-- Makefile + | |-- Make.defs + | |-- Kconfig + | `-- (Test support sub-directories) + |-- wireless/ + | |-- Makefile + | |-- Make.defs + | |-- Kconfig + | `-- (Wireless utilities sub-directories) `-- examples/ `-- (example)/ |-- Makefile + |-- Make.defs |-- Kconfig - `-- (example source files) + `-- (example sub-directories)

@@ -424,7 +488,7 @@

Variants of the processor architecture may be provided in sub-directories of the - Extending this example, the ARMv7-M ARM family is supported by logic in arch/arm/include/armv7-m and arch/arm/src/armv7-m directories which are selected by the CONFIG_ARCH_CORTEXM3=y or CONFIG_ARCH_CORTEXM4=y configuration options + Extending this example, the ARMv7-M ARM family is supported by logic in arch/arm/include/armv7-m and arch/arm/src/armv7-m directories which are selected by the CONFIG_ARCH_CORTEXM3=y, CONFIG_ARCH_CORTEXM4=y, or CONFIG_ARCH_CORTEXM7=y configuration options

  • @@ -651,83 +715,56 @@

    - -

    - Deprecated Architecture Directories. - The following architecture directories are deprecated. They have been - replaced by the logic in arm/arm and will deleted when - arch/arm is fully verified. -

    - -

    - Other ports for the for the TI TMS320DM270 and for MIPS are in various states - of progress -

    2.3 nuttx/binfmt

    @@ -772,7 +809,7 @@ | ... |-- scripts/ | |-- (linker script files) -| `-- Make.defs (optional +| `-- Make.defs (optional) `-- (other board-specific configuration sub-directories)/ @@ -966,78 +1003,94 @@ endif drivers/ |-- Kconfig |-- Makefile +|-- 1wire/ +| |-- Kconfig +| |-- Make.defs +| `-- (1-wire device source files) |-- analog/ | |-- Kconfig | |-- Make.defs -| `-- (Common ADC and DAC driver source files) +| `-- (ADC and DAC driver source files) |-- audio/ | |-- Kconfig | |-- Make.defs -| `-- (Common audio device source files) +| `-- (Audio device source files) |-- bch/ | |-- Kconfig | |-- Make.defs -| `-- (bch driver source files) +| `-- (BCH driver source files) +|-- can/ +| |-- Kconfig +| |-- Make.defs +| `-- (CAN driver source files) |-- contactless/ | |-- Kconfig | |-- Make.defs -| `-- (Common contactless device driver source files) +| `-- (Contactless device driver source files) +|-- eeprom/ +| |-- Kconfig +| |-- Make.defs +| `-- (EEPROM character driver source files) +|-- i2c/ +| |-- Kconfig +| |-- Make.defs +| `-- (I2C device driver source files) |-- input/ | |-- Kconfig | |-- Make.defs -| `-- (Common touchscreen and keypad driver source files) +| `-- (Touchscreen and keypad driver source files) |-- ioexpander/ | |-- Kconfig | |-- Make.defs -| `-- (Common I/O expander and GPIO-related driver source files) +| `-- (I/O expander and GPIO-related driver source files) |-- lcd/ | |-- Kconfig | |-- Make.defs -| `-- (Common LCD driver source files) +| `-- (LCD driver source files) |-- leds/ | |-- Kconfig | |-- Make.defs -| `-- (Common LED device driver source files) +| `-- (LED device driver source files) |-- loop/ | |-- Kconfig | |-- Make.defs -| `-- (Common loop device driver source files) +| `-- (Loop device driver source files) |-- mmcsd/ | |-- Kconfig | |-- Make.defs -| `-- (Common MMC/SD card driver source files) +| `-- (MMC/SD card driver source files) |-- modem/ | |-- Kconfig | |-- Make.defs -| `-- (Common modem driver source files) +| `-- (Modem driver source files) |-- mtd/ | |-- Kconfig | |-- Make.defs -| `-- (Common memory technology device driver source files) +| `-- (Memory technology device driver source files) |-- net/ | |-- Kconfig | |-- Make.defs -| `-- (Common network driver source files) +| `-- (Network driver source files) |-- pipes/ | |-- Kconfig | |-- Make.defs -| `-- (Common pipe and FIFO driver source files) +| `-- (Pipe and FIFO driver source files) |-- power/ | |-- Kconfig | |-- Make.defs -| `-- (Common power-related driver source files) +| `-- (Power-related driver source files) |-- sensors/ | |-- Kconfig | |-- Make.defs -| `-- (Common sensor driver source files) +| `-- (Sensor driver source files) |-- serial/ | |-- Kconfig | |-- Make.defs -| `-- (Common front-end character drivers for chip-specific UARTs) +| `-- (Front-end character drivers for chip-specific UARTs, 16550 UART support, and Pseudo-Terminal support) |-- spi/ | |-- Kconfig | |-- Make.defs -| `-- (Common SPI-related drivers and helper functions) +| `-- (SPI-related drivers and helper functions) |-- syslog/ | |-- Kconfig | |-- Make.defs @@ -1049,20 +1102,28 @@ drivers/ |-- usbdev/ | |-- Kconfig | |-- Make.defs -| `-- (Common USB device driver source files) +| `-- (USB device driver source files) |-- usbhost/ | |-- Kconfig | |-- Make.defs -| `-- (Common USB host driver source files) +| `-- (USB host driver source files) +|-- usbmisc/ +| |-- Kconfig +| |-- Make.defs +| `-- (Miscellaneous USB driver source files) |-- usbmonitor/ | |-- Kconfig | |-- Make.defs | `-- (USB monitor source files) +|-- video/ +| |-- Kconfig +| |-- Make.defs +| `-- (Video driver source files) |-- wireless/ | |-- Kconfig | |-- Make.defs -| `-- (Common wireless driver source files) -`-- (Various common driver source files) +| `-- (Wireless driver source files) +`-- (Various uncategorized driver source files)

    2.8 nuttx/fs

    @@ -1075,14 +1136,46 @@ drivers/ fs/ |-- Kconfig |-- Makefile +|-- binfs/ +| |-- Kconfig +| |-- Make.defs +| `-- (BINFS file system source files) +|-- cromfs/ +| |-- Kconfig +| |-- Make.defs +| `-- (CROMFS file system source files) +|-- dirent/ +| |-- Kconfig +| |-- Make.defs +| `-- (VFS directory access source files) +|-- driver/ +| |-- Kconfig +| |-- Make.defs +| `-- (Driver registration OS internal interfaces) |-- fat/ | |-- Kconfig | |-- Make.defs | `-- (FAT file system source files) +|-- inode/ +| |-- Kconfig +| |-- Make.defs +| `-- (Pseudo-file system OS internal interfaces) +|-- hostfs/ +| |-- Kconfig +| |-- Make.defs +| `-- (HOSTFS file system source files) |-- mmap/ | |-- Kconfig | |-- Make.defs | `-- (RAM-based file mapping source files) +|-- mount/ +| |-- Kconfig +| |-- Make.defs +| `-- (Mount point-related OS internal interfaces) +|-- mqueue/ +| |-- Kconfig +| |-- Make.defs +| `-- (POSIX message queue OS internal interfaces) |-- nfs/ | |-- Kconfig | |-- Make.defs @@ -1091,10 +1184,30 @@ fs/ | |-- Kconfig | |-- Make.defs | `-- (NuttX Flash File System (NXFFS) source files) +|-- procfs/ +| |-- Kconfig +| |-- Make.defs +| `-- (PROCFS pseudo-file system source files) |-- romfs/ | |-- Kconfig | |-- Make.defs | `-- (ROMFS file system source files) +|-- smartfs/ +| |-- Kconfig +| |-- Make.defs +| `-- (SmartFS file system source files) +|-- unionfs/ +| |-- Kconfig +| |-- Make.defs +| `-- (UnionFS file system source files) +|-- userfs/ +| |-- Kconfig +| |-- Make.defs +| `-- (UserFS file system source files) +|-- vfs/ +| |-- Kconfig +| |-- Make.defs +| `-- (VFS OS internal interfaces) `-- (common file system source files) @@ -1110,18 +1223,18 @@ graphics/ |-- nxbe/ | |-- Make.defs | `-- (NuttX graphics back-end (NXBE) source files) -|-- nxfont/ -| |-- Make.defs -| `-- (NuttX graphics font-related (NXFONT) source files) |-- nxglib/ | |-- Make.defs | `-- (NuttX graphics library (NXGL) source files) |-- nxmu/ | |-- Make.defs | `-- (NuttX graphics multi-user (NXMU) server source files) -|-- nxsu/ +|-- nxterm/ | |-- Make.defs -| `-- (NuttX graphics single-user (NXSU) source files) +| `-- (NX terminal (NxTerm) source files) +|-- vnc/ +| |-- Make.defs +| `-- (VNC client/server source files) `-- (common file system source files) @@ -1147,7 +1260,11 @@ include/ | `-- (C++ standard header files) |-- netinet/ | `-- (Standard header files) +|-- netpacket/ +| `-- (Protocol-specific header files. Most non-standard) |-- nuttx/ +| |-1wire/ +| | `-- (1-wire driver header files) | |-analog/ | | `-- (Analog driver header files) | |-audio/ @@ -1164,6 +1281,8 @@ include/ | | `-- (EEPROM driver header files) | |-fs/ | | `-- (File System header files) +| |-i2c/ +| | `-- (I2C-related header files) | |-input/ | | `-- (Input device driver header files) | |-ioexpander/ @@ -1191,7 +1310,7 @@ include/ | |-serial/ | | `-- (Serial driver header files) | |-spi/ -| | `-- (SPI driver header files) +| | `-- (SPI-related header files) | |-syslog/ | | `-- (SYSLOG header files) | |-timers/ @@ -1214,7 +1333,7 @@ include/ These libraries are then in a known place for the final link phase where they are accessed to generated the final binaries.

    -

    2.12 nuttx/libc

    +

    2.12 nuttx/libs/libc

    This directory holds a collection of standard libc-like functions with custom interfaces into NuttX. @@ -1238,16 +1357,28 @@ libc/ | `-- (Implementation of audio-related functions) |-- dirent/ | `-- (Implementation of functions from dirent.h) +|-- dllfch/ +| `-- (Implementation of functions from dllfcn.h) |-- fixedmath/ | `-- (Implementation of functions from fixedmath.h) |-- hex2bin/ | `-- (Implementation of functions from hex2bin.h) +|-- inttypes/ +| `-- (Implementation of functions from inttypes.h) |-- libgen/ | `-- (Implementation of functions from libgen.h) +|-- locale/ +| `-- (Implementation of functions from locale.h) +|-- lzf/ +| `-- (Implementation of functions from lzf.h) +|-- machine/ +| `-- (Implementations of platform-specific logic) |-- math/ | `-- (Implementation of functions from fixedmath.h) |-- misc/ | `-- (Implementation of miscellaneous library functions) +|-- modlib/ +| `-- (Implementation of functions from nuttx/lib/modlib.h) |-- net/ | `-- (Implementation of network-related library functions) |-- netdb/ @@ -1280,10 +1411,18 @@ libc/ | `-- (Implementation of some functions from time.h) |-- tls/ | `-- (Implementation of some functions from tls.h) -|-- wqueue/ -| `-- (Implementation of some functions from wqueue.h) +|-- uio/ +| `-- (Implementation of some functions from uio.h) |-- unistd/ | `-- (Implementation of some functions from unistd.h) +|-- userfs/ +| `-- (Implementation of application side internals of UserFS) +|-- wchar/ +| `-- (Implementation of some functions from wchar.h. Not fully functional.) +|-- wctype/ +| `-- (Implementation of some functions from wctype.h. Not fully functional.) +|-- wqueue/ +| `-- (Implementation of some functions from wqueue.h) `-- zoneinfo/ `-- (Implementation of timezone database) @@ -1327,27 +1466,46 @@ libc/ tools/ |-- Makefile.host |-- Makefile.export +|-- Makefile.unix, Makefile.win, FlatLibs.mk, KernelLibs.mk, LibTargets.mk, ProtectedLibs.mk |-- README.txt -|-- configure.sh / configure.bat +|-- b16.c +|-- bdf-converter.c |-- cfgparser.c |-- cfgparser.h |-- cmpconfig.c |-- cnvwindeps.c +|-- configure.sh / configure.bat |-- copydir.sh / copydir.bat |-- define.sh / define.bat +|-- discovery.py |-- incdir.sh / incdir.bat |-- indent.sh +|-- initialconfig.c +|-- kconfig2html.c / mkconfigvars.sh |-- link.sh / link.bat |-- mkconfig.c +|-- mkctags.sh +|-- mkdeps.c |-- mkexport.sh +|-- mkfsdata.pl |-- mkimage.sh |-- mknulldeps.sh |-- mkromfsimg.sh +|-- mksymtab.c |-- mksyscall.c |-- mkversion.c |-- mkwindeps.sh +|-- noteinfo.c +|-- nxstyle.c +|-- pic32mx/mkpichex.c +|-- refresh.sh +|-- sethost.sh +|-- showsize.sh +|-- testbuild.sh +|-- uncrustify.cfg |-- unlink.sh / unlink.bat |-- version.sh +|-- xmlrpc_test.py `-- zipme.sh @@ -1403,7 +1561,7 @@ tools/ accomplish the same configuration:

    @@ -1414,7 +1572,27 @@ tools/

    See tools/README.txt for more information about these scripts. + Or use the -h option with configure.sh>

    +

    If your application directory is not in the standard location (../apps or ../apps-<version>), @@ -1443,15 +1621,19 @@ tools/ $ tools/version.sh -h tools/version.sh is a tool for generation of proper version files for the NuttX build -USAGE: tools/version.sh [-d|-h] [-b build] -v <major.minor> <outfile-path> +USAGE: tools/version.sh [-d|-h] [-b <build>] -v <major.minor> <outfile-path> Where: + -b + Use this build identification string. Default: use GIT build ID + NOTE: GIT build information may not be available in a snapshot -d Enable script debug -h show this help message and exit + -v -v <major.minor> - The NuttX version number expressed a major and minor number separated + The NuttX version number expressed as a major and minor number separated by a period <outfile-path> The full path to the version file to be created