Newer
Older
patacongo
committed
sure the -nostdinc is included in the CFLAGS. That will assure that
patacongo
committed
5. Libraries. What was said above header files applies to libraries.
You do not want to include code from the libraries of any foreign
C libraries built into your toolchain. If this happens you will get
perplexing errors about undefined symbols. To avoid these errors,
patacongo
committed
you will need to add -nostdlib to your CFLAGS flags to assure that
you only take code from the NuttX libraries.
This, however, may causes other issues for libraries in the toolchain
that you do want (like libgcc.a or libm.a). These are special-cased
in most Makefiles, but you could still run into issues of missing
libraries.
6. Built-Ins. Some compilers target a particular operating system.
Many people would, for example, like to use the same toolchain to
develop Linux and NuttX software. Compilers built for other
operating systems may generate incompatible built-in logic and,
for this reason, -fno-builtin should also be included in your
C flags
And finally you may not be able to use NXFLAT.
7. NXFLAT. If you use a pre-built toolchain, you will lose all support
for NXFLAT. NXFLAT is a binary format described in
patacongo
committed
Documentation/NuttXNxFlat.html. It may be possible to build
standalone versions of the NXFLAT tools; there are a few examples
of this in the misc/buildroot/configs directory. However, it
is possible that there could be interoperability issues with
your toolchain since they will be using different versions of
patacongo
committed
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
Building Original Linux Boards in Cygwin
Some default board configurations are set to build under Linux and others
to build under Windows with Cygwin. Various default toolchains may also
be used in each configuration. It is possible to change the default
setup. Here, for example, is what you must do in order to compile a
default Linux configuration in the Cygwin environment using the
CodeSourceery for Windows toolchain. After instantiating a "canned"
NuttX configuration, run the target 'menuconfig' and set the following
items:
Build Setup->Build Host Platform->Windows
Build Setup->Windows Build Environment->Cygwin
System Type->Toolchain Selection->CodeSourcery GNU Toolchain under Windows
In Windows 7 it may be required to open the Cygwin shell as Administrator
("Run As" option, right button) you find errors like "Permission denied".
Recovering from Bad Configurations
Many people make the mistake of configuring NuttX with the "canned"
configuration and then just typing 'make' with disastrous consequences;
the build may fail with mysterious, uninterpretable, and irrecoverable
build errors. If, for example, you do this with an unmodified Linux
configuration in a Windows/Cgwin environment, you will corrupt the
build environment. The environment will be corrupted because of POSIX vs
Windows path issues and with issues related to symbolic links. If you
make the mistake of doing this, the easiest way to recover is to just
start over: Do 'make distclean' to remove every trace of the corrupted
configuration, reconfigure from scratch, and make certain that the set
the configuration correctly for your platform before attempting to make
again.
Just fixing the configuration file after you have instantiated the bad
configuration with 'make' is not enough.
Additional information can be found in the Documentation/ directory and
also in README files that are scattered throughout the source tree. The
documentation is in HTML and can be access by loading the following file
into your Web browser:
Documentation/index.html
NuttX documentation is also available online at http://www.nuttx.org.
Below is a guide to the available README files in the NuttX source tree:
| | `- src
| | `- lpc214x/README.txt
| |- sh/
| | |- include/
| | | `-README.txt
| | |- src/
| | | `-README.txt
| |- x86/
| | |- include/
| | | `-README.txt
| | `- src/
| | `-README.txt
| | `- z180/README.txt, z180_mmu.txt
|- binfmt/
| `-libpcode/
| `-README.txt
| |- amber/
| | `- README.txt
| |- arduino-due/
| | `- README.txt
| |- cc3200-launchpad/
| | `- README.txt
| |- cloudctrl
| | `- README.txt
| |- compal_e86
| | `- README.txt
| |- compal_e88
| | `- README.txt
| |- compal_e99
| | `- README.txt
| |- ea3131/
| | `- README.txt
| |- efm32-g8xx-stk/
| | `- README.txt
Gregory Nutt
committed
| |- efm32gg-stk3700/
| | `- README.txt
| |- ekk-lm3s9b96/
| | `- README.txt
| |- ez80f910200kitg/
| | |- ostest/README.txt
| | `- README.txt
| |- ez80f910200zco/
| | |- dhcpd/README.txt
| | |- httpd/README.txt
| | |- nettest/README.txt
| | |- nsh/README.txt
| | |- ostest/README.txt
| | |- poll/README.txt
| | `- README.txt
| |- fire-stm32v2/
| |- freedom-kl25z/
| | `- README.txt
| |- freedom-kl26z/
Gregory Nutt
committed
| | `- README.txt
| |- galileo/
| | `- README.txt
| |- hymini-stm32v/
| |- kwikstik-k40/
| | `- README.txt
| |- lincoln60/
| | `- README.txt
| |- lm3s6965-ek/
| | `- README.txt
| |- lm3s8962-ek/
| |- lpc4330-xplorer/
| | `- README.txt
| |- lpc4357-evb/
| | `- README.txt
| |- lpcxpresso-lpc1768/
| | `- README.txt
| |- maple/
| | `- README.txt
| |- micropendous3/
| | `- README.txt
Gregory Nutt
committed
| |- mikroe-stm32f/
| | `- README.txt
| |- mirtoo/
| | `- README.txt
| |- moteino-mega/
| | `- README.txt
| |- ne63badge/
| | `- README.txt
| |- ntosd-dm320/
| | |- doc/README.txt
| | `- README.txt
| |- nucleo-f4x1re/
Gregory Nutt
committed
| | `- README.txt
| |- nucleus2g/
| |- nutiny-nuc120/
| | `- README.txt
| |- olimex-efm32g880f129-stk/
| | `- README.txt
| |- olimex-lpc-h3131/
| | `- README.txt
| |- olimex-stm32-h405/
| | `- README.txt
| |- olimex-stm32-p107/
| | `- README.txt
| |- olimex-stm32-p207/
| | `- README.txt
| |- open1788/
| | `- README.txt
| |- p112/
| | `- README.txt
| |- pcblogic-pic32mx/
| | `- README.txt
| |- pcduino-a10/
| | `- README.txt
| |- pic32-starterkit/
| | `- README.txt
| |- pic32mx7mmb/
| | `- README.txt
Gregory Nutt
committed
| |- pirelli_dpl10/
| | `- README.txt
| |- qemu-i486/
| |- rgmp/
Gregory Nutt
committed
| |- sama5d3x-ek/
| | `- README.txt
Gregory Nutt
committed
| |- sama5d3-xplained/
| | `- README.txt
| |- sama5d4-ek/
| | `- README.txt
| |- samd20-xplained/
| | `- README.txt
Gregory Nutt
committed
| |- sam4l-xplained/
| | `- README.txt
| |- sam4s-xplained/
| | `- README.txt
| |- sam4s-xplained-pro/
| | `- README.txt
patacongo
committed
| |- shenzhou/
| | `- README.txt
Gregory Nutt
committed
| |- spark/
| | `- README.txt
| |- stm3210e-eval/
| | |- RIDE/README.txt
| | `- README.txt
Gregory Nutt
committed
| |- stm32_tiny/
| | `- README.txt
| |- stm32f3discovery/
| | `- README.txt
| |- stm32f4discovery/
| | `- README.txt
Gregory Nutt
committed
| |- stm32f429i-disco/
| | |- ltdc/README.txt
Gregory Nutt
committed
| | `- README.txt
Gregory Nutt
committed
| |- stm32ldiscovery/
Gregory Nutt
committed
| |- stm32vldiscovery/
| | `- README.txt
| |- sure-pic32mx/
| | `- README.txt
| |- tm4c123g-launchpad/
| | `- README.txt
| |- tm4c1294-launchpad/
| | `- README.txt
| |- twr-k60n512/
| | `- README.txt
| |- ubw32/
| | `- README.txt
| |- viewtool-stm32f107/
| | `- README.txt
| |- xtrs/
| | `- README.txt
| |- z16f2800100zcog/
| | |- ostest/README.txt
| | |- pashello/README.txt
| | `- README.txt
| |- z80sim/
| | `- README.txt
| |- z8encore000zco/
| | |- ostest/README.txt
| | `- README.txt
| |- z8f64200100kit/
| | |- ostest/README.txt
| | `- README.txt
| |- zkit-arm-1769/
| | `- README.txt
| |- zp214xpa/
| | `- README.txt
| |- sercomm/
| | `- README.txt
patacongo
committed
| |- syslog/
| | `- README.txt
| |- binfs/
| | `- README.txt
Gregory Nutt
committed
| |- nxffs/
| | `- README.txt
| |- smartfs/
| | `- README.txt
Gregory Nutt
committed
| `- procfs/
|- lib/
| `- README.txt
patacongo
committed
|- libc/
|- libnx/
| `- README.txt
| |- shm/
| | `- README.txt
apps
|- examples/
| |- bastest/README.txt
| |- pashello/README.txt
| `- README.txt
|- interpreters/
Gregory Nutt
committed
| | `- README.txt
| |- ficl
| | `- README.txt
| `- README.txt
|- modbus/
| `- README.txt
|- netutils/
| |- discover
| | `- README.txt
| |- ftpc
| | `- README.txt
| |- telnetd
| | `- README.txt
| `- README.txt
|- nshlib/
| `- README.txt
|- system/
| |- cdcacm
| | `- README.txt
| |- i2c
| | `- README.txt
| |- install
| | `- README.txt
| |- usbmsc
| | `- README.txt
| `- README.txt
`- README.txt