9
0
Fork 0
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@659 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo 2008-02-07 14:41:11 +00:00
parent ea7b9dd150
commit 1b2fd4cde1
9 changed files with 133 additions and 69 deletions

View File

@ -316,9 +316,10 @@
* Added /dev/zero
* 'errno' is now defined to be *get_errno_ptr() with no name conflicts
* Added lseek() and fseek()
* Integrated pascal test case on the simulation platform. Needs pascal-0.1.1.
* Integrated pascal test case on the z16f platform. Needs pascal-0.1.2 (not
yet released).
* Integrated Pascal interpreter test case on the simulation platform. Needs
pascal-0.1.1.
* Add Pascal test case on the z16f platform. Needs pascal-0.1.2 (does not
yet work due to some tool issues).
* C buffered I/O fixes:
- Fix fflush() return value,
- Add correct fflush behavior when the FILE argument is null.
@ -329,6 +330,7 @@
* Pascal P-Code files are now standardized to big-endian for portability
* Fix a build problem with z80 and SDCC 2.7.0 (format of a map file changed)
(see bug 1887170)
* Pascal P-Code runtime now compiles with the SDCC toolchain.

View File

@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4">
<td>
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
<p>Last Updated: February 5, 2008</p>
<p>Last Updated: February 7, 2008</p>
</td>
</tr>
</table>
@ -974,9 +974,10 @@ nuttx-0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
* Added /dev/zero
* 'errno' is now defined to be *get_errno_ptr() with no name conflicts
* Added lseek() and fseek()
* Integrated pascal test case on the simulation platform. Needs pascal-0.1.1.
* Integrated pascal test case on the z16f platform. Needs pascal-0.1.2 (not
yet released).
* Integrated Pascal interpreter test case on the simulation platform. Needs
pascal-0.1.1.
* Add Pascal test case on the z16f platform. Needs pascal-0.1.2 (does not
yet work due to some tool issues).
* C buffered I/O fixes:
- Fix fflush() return value,
- Add correct fflush behavior when the FILE argument is null.
@ -985,8 +986,9 @@ nuttx-0.3.8 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
- When read data is flushed, reposition the file pointer to account for
buffered, but unreand data
* Pascal P-Code files are now standardized to big-endian for portability
* Fix a build problem with z80 and SDCC 2.7.0 (format of a map file changed).
* Fix a build problem with z80 and SDCC 2.7.0 (format of a map file changed)
(see bug 1887170)
* Pascal P-Code runtime now compiles with the SDCC toolchain.
pascal-0.1.2 2008-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;

View File

@ -16,7 +16,7 @@
</b></big>
<p><small>by</small></p>
<p>Gregory Nutt</p>
<p><small>Last Update: January 10, 2008</small></p>
<p><small>Last Update: February 7, 2008</small></p>
</center>
<center><h1>Table of Contents</h1></center>
@ -36,7 +36,7 @@
<li><a href="#summaryofconfigfiles">2.3.2 Summary of Files</a></li>
<ul>
<li><a href="#boardlogic">2.3.2.1 Board Specific Logic</a></li>
<li><a href="#boardconfigfiles">2.3.2.2 Board Specific Configuration Files</a></li>
<li><a href="#boardconfigsubdirs">2.3.2.2 Board Specific Configuration Sub-Directories</a></li>
</ul>
<li><a href="#supportedboards">2.3.3 Supported Boards</a></li>
</ul>
@ -90,13 +90,13 @@
</ul>
<li><a href="#NxFileSystem">5.0 NuttX File System</a></li>
<li><a href="#apndxconfigs">Appendix A: NuttX Configuration Settings</a></li>
<li><a href="#apndxtrademarks">Appendix B: Trademarks</a></li>
<hr>
<h1>1.0 <a name="Introduction">Introduction</a></h1>
<p><b>Overview</b>
This document provides and overview of the NuttX build and configuration
logic and provides hints for the incorporation of new processor/board archectures
logic and provides hints for the incorporation of new processor/board architectures
into the build.
</p>
<p>
@ -132,7 +132,7 @@
| | | `-- <i>(chip-specific source files)</i>
| | |--<i>&lt;other-chips&gt;</i>/
| | `-- <i>(architecture-specific source files)</i>
| `-- <i>&lt;other-architectures&gt;</i>/
| `-- <i>&lt;other-architecture directories&gt;</i>/
|-- <a href="#DirStructConfigs">configs</a>/
| |-- <i>&lt;board-name&gt;</i>/
| | |-- include/
@ -140,8 +140,10 @@
| | |-- src/
| | | |-- Makefile
| | | `-- <i>(board-specific source files)</i>
| | `-- <i>(board-specific configuration files)</i>
| `-- <i>&lt;other-boards&gt;</i>/
| | |---<i>&lt;config1-dir&gt;</i>/
| | | `-- <i>(board-specific/configuration-specific files)</i>
| | `---<i>(other board-specific configuration sub-directories)</i>/
| `-- <i>&lt;(other board directories)&gt;</i>/
|-- <a href="#DirStructDrivers">drivers</a>/
| |-- Makefile
| `-- <i>(common driver source files)</i>
@ -226,14 +228,14 @@
</p>
</li>
<li>
<i>Board specific files</i>.
<i>Board specific configurations</i>.
In order to be usable, the chip must be contained in a board environment.
The board configuration defines additional properties of the board including such things as
peripheral LEDs, external peripherals (such as network, USB, etc.).
<p>
These board-specific configuration files can be found in the
<code>configs/</code><i>&lt;board-name&gt;</i><code>/</code> sub-directories and are discussed
in a a paragraph <a href="#configsdirectorystructure">below</a>.
in a paragraph <a href="#configsdirectorystructure">below</a>.
</p>
</li>
</ul>
@ -251,8 +253,8 @@
This directory contains several sub-directories, each containing
architecture-specific logic.
The task of porting NuttX to a new processor consists of
add a new sudirectory under <code>arch/</code> containing logic specific
to the new architecuture.
add a new subdirectory under <code>arch/</code> containing logic specific
to the new architecture.
The complete board port in is defined by the architecture-specific code in this
directory (plus the board-specific configurations in the <code>config/</code>
subdirectory).
@ -468,15 +470,24 @@
provide a subdirectory &lt;board-name&gt; under <code>configs/</code> with the following characteristics:
</p>
<ul><pre>
|-- Make.defs
|-- defconfig
`-- setenv.sh
<i>&lt;board-name&gt;</i>
|-- include/
| `-- <i>(board-specific header files)</i>
|-- src/
| |-- Makefile
| `-- <i>(board-specific source files)</i>
|-- Make.defs
|-- defconfig
`-- setenv.sh
|-- <i>&lt;config1-dir&gt;</i>
| |-- Make.defs
| |-- defconfig
| `-- setenv.sh
|-- <i>&lt;config2-dir&gt;</i>
| |-- Make.defs
| |-- defconfig
| `-- setenv.sh
`-- <i>(other board-specific configuration sub-directories)</i>/
</pre></ul>
<h3><a name="summaryofconfigfiles">2.3.2 Summary of Files</a></h3>
@ -502,10 +513,15 @@
It must support the following targets: <code>libext$(LIBEXT)</code>, <code>clean</code>, and <code>distclean</code>.
</li>
</ul>
<h4><a name="boardconfigfiles">2.3.2.2 Board Specific Configuration Files</a></h4>
<h4><a name="boardconfigsubdirs">2.3.2.2 Board Specific Configuration Sub-Directories</a></h4>
<p>
The <code>configs/</code><i>&lt;board-name&gt;</i><code>/</code> sub-directory holds all of the
files that are necessary to configure Nuttx for the particular board.
A board may have various different configurations using the common source files.
Each board configuration is described by three files: <code>Make.defs</code>, <code>defconfig</code>, and <code>setenv.sh</code>.
Typically, each set of configuration files is retained in a separate configuration sub-directory
(<i>&lt;config1-dir&gt;</i>, <i>&lt;config2-dir&gt;</i>, .. in the above diagram).
The procedure for configuring NuttX is described <a href="#configuringnuttx">below</a>,
This paragraph will describe the contents of these configuration files.
</p>
@ -530,7 +546,7 @@
</li>
<li>
<code>defconfig</code>: This is a configuration file similar to the Linux
configuration file. In contains varialble/value pairs like:
configuration file. In contains variable/value pairs like:
<ul>
<li><code>CONFIG_VARIABLE</code>=value</li>
</ul>
@ -697,19 +713,20 @@
<p>
<b>Manual Configuration</b>.
Configuring NuttX requires only copying the
<a href="#boardconfigfiles">board-specific configuration files</a> into the top level directory which appears in the make files as the make variable, <code>${TOPDIR}</code>.
<a href="#boardconfigsubdirs">board-specific configuration files</a> into the top level directory which appears in the make files as the make variable, <code>${TOPDIR}</code>.
This could be done manually as follows:
</p>
<ul>
<li>Copy <code>configs/</code><i>&lt;board-name&gt;</i></code>/Make.def</code> to <code>${TOPDIR}/Make.defs</code>,<li>
<li>Copy <code>configs/</code><i>&lt;board-name&gt;</i></code>/setenv.sh</code> to <code>${TOPDIR}/setenv.sh</code>, and</li>
<li>Copy <code>configs/</code><i>&lt;board-name&gt;</i></code>/defconfig</code> to <code>${TOPDIR}/.config</code></li>
<li>Copy <code>configs/</code><i>&lt;board-name&gt;</i><code>/[</code><i>&lt;config-dir&gt;</i><code>/]Make.def</code> to <code>${TOPDIR}/Make.defs</code>,<li>
<li>Copy <code>configs/</code><i>&lt;board-name&gt;</i><code>/[</code><i>&lt;config-dir&gt;</i><code>/]setenv.sh</code> to <code>${TOPDIR}/setenv.sh</code>, and</li>
<li>Copy <code>configs/</code><i>&lt;board-name&gt;</i><code>/[</code><i>&lt;config-dir&gt;</i><code>/]defconfig</code> to <code>${TOPDIR}/.config</code></li>
</ul>
<p>
Where <i>&lt;board-name&gt;</i> is the name of one of the sub-directories of the
NuttX <a href="#DirStructConfigs"><code>configs/</code></a> directory.
This sub-directory name corresponds to one of the supported boards
identified <a href="#supportedboards">above</a>.
And &lt;config-dir&gt; is the optional, specific configuration directory for the board.
</p>
<p>
<b>Automated Configuration</b>.
@ -718,7 +735,7 @@
</p>
<ul><pre>
cd tools
./configure.sh <i>&lt;board-name&gt;</i>
./configure.sh <i>&lt;board-name&gt;</i></i><code>[/</code><i>&lt;config-dir&gt;</i><code>]</code>
</pre></ul>
<p>
@ -747,14 +764,14 @@ make
That directory also holds:
</p>
<ul>
<li>The makefile fragment <a href="#boardconfigfiles"><code>.config</code></a> that describes the current configuration.</li>
<li>The makefile fragment <a href="#boardconfigfiles"><code>Make.defs</code></a> that provides customized build targers, and</li>
<li>The shell script <a href="#boardconfigfiles"><code>setenv.sh</code></a> that sets up the configuration environment for the build.</li>
<li>The makefile fragment <a href="#boardconfigsubdirs"><code>.config</code></a> that describes the current configuration.</li>
<li>The makefile fragment <a href="#boardconfigsubdirs"><code>Make.defs</code></a> that provides customized build targers, and</li>
<li>The shell script <a href="#boardconfigsubdirs"><code>setenv.sh</code></a> that sets up the configuration environment for the build.</li>
</ul>
<p>
The <a href="#boardconfigfiles"><code>setenv.sh</code></a> contains Linux environmental settings that are needed for the build.
The specific environmental definitions are unique for each board but should include, as a minimum, updates to the <code>PATH</code> variable to include the full path to the architecture-specific toolchain identified in <a href="#boardconfigfiles"><code>Make.defs</code></a>.
The <a href="#boardconfigfiles"><code>setenv.sh</code></a> only needs to be source'ed at the beginning of a session.
The <a href="#boardconfigsubdirs"><code>setenv.sh</code></a> contains Linux/Cygwin environmental settings that are needed for the build.
The specific environmental definitions are unique for each board but should include, as a minimum, updates to the <code>PATH</code> variable to include the full path to the architecture-specific toolchain identified in <a href="#boardconfigsubdirs"><code>Make.defs</code></a>.
The <a href="#boardconfigsubdirs"><code>setenv.sh</code></a> only needs to be source'ed at the beginning of a session.
The system can be re-made subsequently by just typing <code>make</code>.
</p>
<p>
@ -1548,6 +1565,22 @@ The system can be re-made subsequently by just typing <code>make</code>.
</li>
</ul>
<h1><a name="apndxtrademarks">Appendix B: Trademarks</a></h1>
<li>ARM, ARM7 ARM7TDMI, ARM9, ARM926EJS are trademarks of Advanced RISC Machines, Limited.</li>
<li>Cygwin is a trademark of Red Hat, Incorporated.</li>
<li>Linux is a registered trademark of Linus Torvalds.</li>
<li>LPC2148 is a trademark of NXP Semiconductors.</li>
<li>TI is a tradename of Texas Instruments Incorporated.</li>
<li>UNIX is a registered trademark of The Open Group.</li>
<li>VxWorks is a registered trademark of Wind River Systems, Incorporated.</li>
<li>ZDS, ZNEO, Z16F, Z80, and Zilog are a registered trademark of Zilog, Inc.</li>
<p>
NOTE: NuttX is <i>not</i> licensed to use the POSIX trademark. NuttX uses the POSIX
standard as a development guideline only.
</p>
</body>
</html>

View File

@ -234,9 +234,10 @@ o Pascal Add-On (pcode/)
Description: Need APIs to verify execution of P-Code from memory buffer.
Status: Open
Priority: Medium
Priority: Low
Description: Pascal add-on does not build with the SDCC compiler.
Description: Loader and object format may be too large for some small
memory systems. Consider ways to reduce memory footprint.
Status: Open
Priority: Medium

View File

@ -125,7 +125,7 @@ Supported Architectures
arch/sim
A user-mode port of NuttX to the x86 Linux platform is available.
The purpose of this port is primarily to support OS feature developement.
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.
@ -160,11 +160,12 @@ arch/pjrc-8051
8051 Microcontroller. This port is not quite ready for prime time.
arch/z16
ZiLog z16f Microcontroller.
STATUS: A work in progress
ZiLOG z16f Microcontroller.
STATUS: Released in nuttx-0.3.7. Fully functional other than issues
addressed in ${TOPDIR}/TODO.
arch/z80
ZiLog z80 Microcontroller.
ZiLOG z80 Microcontroller.
STATUS: Functional with no known defects. There are still several
OS features that have not yet been tested (e.g., networking).

View File

@ -33,7 +33,8 @@ o Board specific files. In order to be usable, the chip must be
These board-specific configuration files can be found in the
configs/<board-name>/ sub-directories and are discussed in this
README.
README. Additional configuration information maybe available in
board-specific configs/<board-name>/README.txt files.
The configs/ subdirectory contains configuration data for each board. These
board-specific configurations plus the architecture-specific configurations in
@ -53,10 +54,15 @@ following characteristics:
|-- src/
| |-- Makefile
| `-- (board-specific source files)
|-- Make.defs
|-- defconfig
`-- setenv.sh
|-- <config1-dir>
| |-- Make.defs
| |-- defconfig
| `-- setenv.sh
|-- <config2-dir>
| |-- Make.defs
| |-- defconfig
| `-- setenv.sh
...
Summary of Files
^^^^^^^^^^^^^^^^
@ -74,6 +80,12 @@ src/Makefile -- This makefile will be invoked to build the board specific
drivers. It must support the following targets: libext$(LIBEXT), clean,
and distclean.
A board may have various different configurations using these common source
files. Each board configuration is described by three files: Make.defs,
defconfig, and setenv.sh. Typically, each set of configuration files is
retained in a separate configuration sub-directory (<config1-dir>,
<config2-dir>, .. in the above diagram).
Make.defs -- This makefile fragment provides architecture and
tool-specific build options. It will be included by all other
makefiles in the build (once it is installed). This make fragment
@ -90,7 +102,7 @@ Make.defs -- This makefile fragment provides architecture and
different if CONFIG_DEBUG=y.
defconfig -- This is a configuration file similar to the Linux
configuration file. In contains varialble/value pairs like:
configuration file. In contains variable/value pairs like:
CONFIG_VARIABLE=value
@ -137,7 +149,7 @@ defconfig -- This is a configuration file similar to the Linux
CONFIG_DEBUG_SCHED - enable OS debug output (disabled by
default)
CONFIG_DEBUG_MM - enable memory management debug output
(disabld by default)
(disabled by default)
CONFIG_DEBUG_NET - enable network debug output (disabled
by default)
CONFIG_DEBUG_FS - enable filesystem debug output (disabled
@ -160,7 +172,7 @@ defconfig -- This is a configuration file similar to the Linux
be disabled by setting this value to zero.
CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
scheduler to monitor system performance
CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
CONFIG_TASK_NAME_SIZE - Specifies that maximum size of a
task name to save in the TCB. Useful if scheduler
instrumentation is selected. Set to zero to disable.
CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
@ -194,7 +206,7 @@ defconfig -- This is a configuration file similar to the Linux
Allow for architecture optimized implementations
The architecture can provide optimized versions of the
following to improve sysem performance
following to improve system performance
CONFIG_ARCH_MEMCPY, CONFIG_ARCH_MEMCMP, CONFIG_ARCH_MEMMOVE
CONFIG_ARCH_MEMSET, CONFIG_ARCH_STRCMP, CONFIG_ARCH_STRCPY
@ -282,12 +294,12 @@ Supported Boards
configs/sim
A user-mode port of NuttX to the x86 Linux platform is available.
The purpose of this port is primarily to support OS feature developement.
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.
first off because it uses some of the same symbols as does cygwin.dll.
configs/c5471evm
This is a port to the Spectrum Digital C5471 evaluation board. The
@ -324,7 +336,7 @@ configs/pjrc-8051
configs/z16f2800100zcog
z16f Microncontroller. This port use the Zilog z16f2800100zcog
development kit and the Zilog ZDS-II Windows command line tools. The
development envirnoment is Cygwin under WinXP.
development environment is Cygwin under WinXP.
configs/z80zim
z80 Microcontroller. This port uses a Z80 instruction set simulator.
@ -341,14 +353,15 @@ Configuring NuttX
Configuring NuttX requires only copying
configs/<board-name>/Make.def to ${TOPDIR}/Make.defs
configs/<board-name>/setenv.sh to ${TOPDIR}/setenv.sh
configs/<board-name>/defconfig to ${TOPDIR}/.config
configs/<board-name>/<config-dir>/Make.def to ${TOPDIR}/Make.defs
configs/<board-name>/<config-dir>/setenv.sh to ${TOPDIR}/setenv.sh
configs/<board-name>/<config-dir>/defconfig to ${TOPDIR}/.config
There is a script that automates these steps. The following steps will
accomplish the same configuration:
tools/configure.sh
There is a script that automates these steps. The following steps will
accomplish the same configuration:
cd tools
./configure.sh <board-name>
./configure.sh <board-name>/<config-dir>

View File

@ -4,15 +4,27 @@ README.txt
ZDS-II Compiler Versions
^^^^^^^^^^^^^^^^^^^^^^^^
The ZDS-II version 4.10.2 will not compiler NuttX. It reports "internal
errors" on some of the files. Upgreads to ZDS-II are available for download
from the Zilog website: http://www.zilog.com/software/zds2.asp
4.10.2
The ZDS-II version 4.10.2 will not compile NuttX. It reports "internal
errors" on some of the files. Upgrades to ZDS-II are available for
download from the Zilog website: http://www.zilog.com/software/zds2.asp
Thusfar, I have encountered no insolvable problems with the newer 4.11.0
version of the toolchain.
4.11.0
NuttX compiles correctly with the newer 4.11.0 version of the ZDS-II
toolchain. However, I have found a few issues:
- The code will not run without the -reduceopt option. There is,
apparently, some optimization related issue. This issue has not
been analyzed as of this writing.
- Not all NuttX logic will not run with the -regvars option. There is
at least one failure that has been reported to ZiLOG as incident 81400.
- The Pascal add-on interpreter includes a large switch statement and
exposes another compiler problem. This is reported as incident 81459.
If you use any version of ZDS-II other than 4.11.0 or if you install ZDS-II
at anly location other than the default location, you will have to modify
at any location other than the default location, you will have to modify
two files: (1) configs/z16f2800100zcog/*/setenv.sh and (2)
configs/z16f2800100zcog/*/Make.defs.
@ -45,4 +57,4 @@ available:
Configures to use examples/pashello for execution from FLASH
See examples/README.txt for information about pashello.
Check out any README.txt files in these <sub-directory>s.
Check out any README.txt files in these <sub-directory>s.

View File

@ -6,7 +6,7 @@ The instruction set emulator can be found in the NuttX CVS at
http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim
The SDCC toolchain is available from http://sdcc.sourceforge.net/. All
testing has been performed using verison 2.6.0 of the SDDC toolchain.
testing has been performed using version 2.6.0 of the SDCC toolchain.
Configuring NuttX
^^^^^^^^^^^^^^^^^

View File

@ -26,7 +26,7 @@ examples/ostest
examples/nsh
^^^^^^^^^^^^
This directory containst the NuttShell (NSH). This is a simple
This directory contains the NuttShell (NSH). This is a simple
shell-like application. With some additional development, NSH will
someday be a great NuttX application debugger. At present, NSH
supports the following commands: