diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
index 5a824cc8de..f73f1008e5 100644
--- a/Documentation/NuttX.html
+++ b/Documentation/NuttX.html
@@ -29,7 +29,7 @@
 |
Overview.
- What is NuttX?
+ What is NuttX? Look at all those files and features... How can it be a tiny OS?
|
@@ -476,7 +476,7 @@
|
- Bult-in USB trace functionality for USB debug.
+ Built-in USB trace functionality for USB debug.
|
@@ -497,7 +497,7 @@
|
- Graphics library and tiny windowing system under developement.
+ Graphics library and tiny windowing system under development.
@@ -505,7 +505,7 @@
NuttX Add-Ons.
The following packages are available to extend the basic NuttX feature set:
-
+
+
+ Look at all those files and features... How can it be a tiny OS?.
+ The NuttX feature list (above) is fairly long and if you look at the NuttX
+ source tree, you will see that there are hundreds of source files comprising
+ NuttX. How can NuttX be a tiny OS will all of that?
+
+
+
+
+  |
+
+ Lots of Features -- More can be smaller!
+ |
+
+
+
+
|
+
+
+ The philosophy behind that NuttX is that lots of features are great... BUT
+ also that if you don't use those features, then you should not have to pay a penalty
+ for the unused features.
+ And, with NuttX, you don't! If you don't use a feature, it will not
+ be included in the final executable binary.
+ You only have to pay the penalty of increased footprint for the features
+ that you actually use.
+
+
+ Using a variety of technologies, NuttX can scale from the very tiny to
+ the moderate-size system. I have executed NuttX with some simple applications
+ in as little as 32Kb total memory (code and data).
+ On the other hand, I often run richly featured NuttX builds that require
+ memory up to 100Kb.
+
+ |
+
+
+
+  |
+
+ Many, many files -- More really is smaller!
+ |
+
+
+
|
+
+
+ One may be intimidated by the size NuttX source tree. There are hundreds of source files!
+ How can that be a tiny OS?
+ Actually, the large number of files is one of the tricks to keep NuttX small and
+ as scalable as possible.
+ Most files contain only a single function.
+ Sometimes just one tiny function with only a few lines of code.
+ Why?
+
+
+ -
+ Static Libraries.
+ Because in the NuttX build processed, objects are compiled and saved into
+ static libraries (archives).
+ Then, when the file executable is linked, only the object files that are needed
+ are extracted from the archive and added to the final executable.
+ By having many, many tiny source files, you can assure that no code that you do
+ not execute is ever included in the link.
+ And by having many, tiny source files you have better granularity --
+ if you don't use that tiny function of even just a few lines of code, it will
+ not be included in the binary.
+
+
+ |
+
+
+
+  |
+
+ Other Tricks
+ |
+
+
+
|
+
+
+ As mentioned above, the use of many, tiny source files and linking from static
+ libraries keeps the size of NuttX down.
+ Other tricks used in NuttX include:
+
+
+ -
+ Configuration Files.
+ Before you build NuttX, you must provide a configuration file that specifies
+ what features you plan to use and which features you do not.
+ This configuration file contains a long list of settings that control
+ what is built into NuttX and what is not.
+ There are hundreds of such settings
+ (see the NuttX Porting Guide
+ for a partial list that excludes platform specific settings).
+ These many, many configuration options allow NuttX to be highly tuned to
+ meet size requirements.
+ The downside to all of these configuration options is that it greatly
+ complicates the maintenance of NuttX -- but that is my problem, not yours.
+
+ -
+ Weak Symbols
+ The GNU toolchain supports weak symbols and these also help to keep
+ the size of NuttX down.
+ Weak symbols prevent object files from being drawn into the link even if they
+ are accessed from source code.
+ Careful use of weak symbols is another trick for keep unused code out of the
+ final binary.
+
+
+ |
+
+
+
+
@@ -569,11 +686,11 @@
This allows poll() /select() to wake-up on new connections to a listener socket.
Added definition of a framebuffer driver and implement framebuffer drivers for the
- simulated platform and the TI DM320 (untested as of the inital check-in).
+ simulated platform and the TI DM320 (untested as of the initial check-in).
Partially developed a graphics framework based on the framebuffer drivers, however,
this will not be ready for use for a few more release.
- Currently this includes only a few color conversion routines and some rasteizing functions.
+ Currently this includes only a few color conversion routines and some rasterizing functions.
A tiny windowing system is under development but not ready for check-in yet.
Added support for fixed precision math.
@@ -664,9 +781,9 @@
STATUS:
This port boots and passes the OS test (examples/ostest).
- The port is complete and verifed. As of NuttX 0.3.17, the port includes:
+ The port is complete and verified. As of NuttX 0.3.17, the port includes:
timer interrupts, serial console, USB driver, and SPI-based MMC/SD card
- support. A verifed NuttShell (NSH) configuration is also available.
+ support. A verified NuttShell (NSH) configuration is also available.
|
@@ -709,7 +826,7 @@
STATUS:
- The basic port (timer interrupts, serial ports, network, framebuffe, etc.) is complete.
+ The basic port (timer interrupts, serial ports, network, framebuffer, etc.) is complete.
All implemented features have been verified with the exception of the USB device-side
driver; that implementation is complete but completely untested.
@@ -755,7 +872,7 @@
STATUS:
- This port is availble as of release 0.3.18 of NuttX. The port is basically complete
+ This port is available as of release 0.3.18 of NuttX. The port is basically complete
and many examples run correctly. However, there are remaining instabilities that
make the port un-usable. The nature of these is not understood; the behavior is
that certain SH-1 instructions stop working as advertised. This could be a silicon
diff --git a/Documentation/NuttXScreenShot.jpg b/Documentation/NuttXScreenShot.jpg
new file mode 100644
index 0000000000..199686b507
Binary files /dev/null and b/Documentation/NuttXScreenShot.jpg differ
|