From 89626312c65cda5ea20f80ab3e9ee7d7c53e78f8 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 5 Dec 2008 00:42:37 +0000 Subject: [PATCH] update git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@1417 7fd9a85b-ad96-42d3-883c-3090e2eb8679 --- nuttx/Documentation/NuttX.html | 137 ++++++++++++++++++++++-- nuttx/Documentation/NuttXScreenShot.jpg | Bin 0 -> 5950 bytes nuttx/graphics/README.txt | 8 +- 3 files changed, 134 insertions(+), 11 deletions(-) create mode 100644 nuttx/Documentation/NuttXScreenShot.jpg diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html index 5a824cc8d..f73f1008e 100644 --- a/nuttx/Documentation/NuttX.html +++ b/nuttx/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: -

    +

    @@ -539,9 +539,126 @@ SourceForge website.

    +
    +

    + 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. +
    • +
    +
    + @@ -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/nuttx/Documentation/NuttXScreenShot.jpg b/nuttx/Documentation/NuttXScreenShot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..199686b507e240e7ab356be499bfcf4e683fdb53 GIT binary patch literal 5950 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

    @@ -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.