From 41bfe821d0beb026ce955494292f41a3ae5cec02 Mon Sep 17 00:00:00 2001
From: Gregory Nutt Last Updated: March 22, 2018 Last Updated: August 10, 2018
@@ -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
NuttX RTOS Porting Guide
-
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)
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
arch/sim
:
- A user-mode port of NuttX to the x86 Linux platform is available.
+ A user-mode port of NuttX to the x86 Linux or Cygwin platform is available.
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.
NOTE: This target will not run on Cygwin probably for many reasons but - first off because it uses some of the same symbols as does cygwind.dll. +
NOTE: In principle, this user mode port should run in any POSIX environement. + This target will probably not run "out-of-the-box" in unverified POSIX environments due to the many host environemnt dependencies.
arch/arm
:
This directory holds common ARM architectures.
configs/mcu123-lpc214x
:
- The mcu123.com lpc214x development board.
- This is a work in progress.
+ arch/arm
:
+ This directory holds common AVR and AVR32 architectures.
+ arch/mips
:
+ This directory holds common MIPS architectures. This include PIC32MX and PIC32MZ.
+ arch/misoc
:
+ This directory supports the Misoc LM3 architecture.
+ arch/or1K
:
+ This directory supports the OpenRISC mor1kx architecture.
+ arch/renesas
:
+ This directory is the home for various Renesas architectures, currently only the M16C and vererable SuperH-1 architectures.
+ arch/risc-v
:
+ This directory supports the RISC-V NR5 architecture.
+ arch/xtensa
:
+ This directory supports the Xtensa LX6 architecture as used by the ESP32.
arch/z16f
:
Zilog z16f Microcontroller.
- This port uses the Zilog z16f2800100zcog Development Kit.
- This port was released with nuttx-0.3.7.
arch/z80
:
+ arch/z80
:
This directory holds 8-bit ZiLOG architectures. At present, this includes the
Zilog z80, ez80Acclaim! and z8Encore! Microcontrollers.
- arch/z80/include
and arch/z80/src/common
:
- Common logic.
- arch/z80/include/z80
and arch/z80/src/z80
:
- The Z80 port was released in nuttx-0.3.6 has been verified using only a
- z80 instruction simulator called z80sim.
- This port also uses the SDCC toolchain (http://sdcc.sourceforge.net/)
- (verified with version 2.6.0 and 2.7.0).
- arch/z80/include/ez80
and arch/z80/src/ez80
:
- The ez80Acclaim! port uses the ZiLOG ez80f0910200kitg development kit, eZ80F091 part,
- with the Zilog ZDS-II Windows command line tools.
- The development environment is Cygwin under WinXP.
- This is a work in progress. Verified ez80 support will be announced in a future NuttX release.
- arch/z80/include/z8
and arch/z80/src/z8
:
- The Z8Encore! port uses either the ZiLOG z8encore000zco development kit, Z8F6403 part,
- or the z8f64200100kit development kit, Z8F6423 part with the Zilog ZDS-II Windows command line
- tools. The development environment is Cygwin under WinXP.
- The initial release, verified only on the ZDS-II ez8 simulator, was released in nuttx-0.3.9.
-
- 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.
-
arch/c5471
:
- Replaced with arch/arm/include/c5471
and
- arch/arm/src/c5471
.
- arch/dm320
:
- Replaced with arch/arm/include/dm320
and
- arch/arm/src/dm320
.
- Other ports for the for the TI TMS320DM270 and for MIPS are in various states - of progress -
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:
- tools/configure.sh <board-name>[/<config-dir>] + tools/configure.sh [OPTIONS] <board-name>[/<config-dir>]
@@ -1414,7 +1572,27 @@ tools/
See tools/README.txt
for more information about these scripts.
+ Or use the -h option with configure.sh>
+$ tools/configure.sh -h + +USAGE: tools/configure.sh [-d] [-l|m|c|u|g|n] [-a <app-dir>] <board-name>/<config-name> + +Where: + -l selects the Linux (l) host environment. + -m selects the macOS (m) host environment. + -c selects the Windows host and Cygwin (c) environment. + -u selects the Windows host and Ubuntu under Windows 10 (u) environment. + -g selects the Windows host and MinGW/MSYS environment. + -n selects the Windows host and Windows native (n) environment. + Default: Use host setup in the defconfig file + Default Windows: Cygwin + <board-name> is the name of the board in the configs directory + <config-name> is the name of the board configuration sub-directory + <app-dir> is the path to the apps/ directory, relative to the nuttx + directory +
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