From 7aa2d7ac7678b5b7ee7dc2a817f123f0b8a366b4 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 7 Feb 2008 14:41:11 +0000 Subject: update git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@659 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/ChangeLog | 8 +-- nuttx/Documentation/NuttX.html | 12 +++-- nuttx/Documentation/NuttxPortingGuide.html | 87 ++++++++++++++++++++---------- nuttx/TODO | 5 +- nuttx/arch/README.txt | 11 ++-- nuttx/configs/README.txt | 49 ++++++++++------- nuttx/configs/z16f2800100zcog/README.txt | 26 ++++++--- nuttx/configs/z80sim/README.txt | 2 +- nuttx/examples/README.txt | 2 +- 9 files changed, 133 insertions(+), 69 deletions(-) diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index d38eed766..b5e50c317 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -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. diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html index 623ac7651..59c018983 100644 --- a/nuttx/Documentation/NuttX.html +++ b/nuttx/Documentation/NuttX.html @@ -8,7 +8,7 @@

NuttX RTOS

-

Last Updated: February 5, 2008

+

Last Updated: February 7, 2008

@@ -974,9 +974,10 @@ nuttx-0.3.8 2008-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> * 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 <spudmonkey@racsa.co.cr> - 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 <spudmonkey@racsa.co.cr> diff --git a/nuttx/Documentation/NuttxPortingGuide.html b/nuttx/Documentation/NuttxPortingGuide.html index 9ae720862..3f6a84e39 100644 --- a/nuttx/Documentation/NuttxPortingGuide.html +++ b/nuttx/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@

by

Gregory Nutt

-

Last Update: January 10, 2008

+

Last Update: February 7, 2008

Table of Contents

@@ -36,7 +36,7 @@
  • 2.3.2 Summary of Files
  • 2.3.3 Supported Boards
  • @@ -90,13 +90,13 @@
  • 5.0 NuttX File System
  • Appendix A: NuttX Configuration Settings
  • - +
  • Appendix B: Trademarks

  • 1.0 Introduction

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

    @@ -132,7 +132,7 @@ | | | `-- (chip-specific source files) | | |--<other-chips>/ | | `-- (architecture-specific source files) -| `-- <other-architectures>/ +| `-- <other-architecture directories>/ |-- configs/ | |-- <board-name>/ | | |-- include/ @@ -140,8 +140,10 @@ | | |-- src/ | | | |-- Makefile | | | `-- (board-specific source files) -| | `-- (board-specific configuration files) -| `-- <other-boards>/ +| | |---<config1-dir>/ +| | | `-- (board-specific/configuration-specific files) +| | `---(other board-specific configuration sub-directories)/ +| `-- <(other board directories)>/ |-- drivers/ | |-- Makefile | `-- (common driver source files) @@ -226,14 +228,14 @@

  • - Board specific files. + Board specific configurations. 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.).

    These board-specific configuration files can be found in the configs/<board-name>/ sub-directories and are discussed - in a a paragraph below. + in a paragraph below.

  • @@ -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 arch/ containing logic specific - to the new architecuture. + add a new subdirectory under arch/ 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 config/ subdirectory). @@ -468,15 +470,24 @@ provide a subdirectory <board-name> under configs/ with the following characteristics:

    2.3.2 Summary of Files

    @@ -502,10 +513,15 @@ It must support the following targets: libext$(LIBEXT), clean, and distclean. -

    2.3.2.2 Board Specific Configuration Files

    +

    2.3.2.2 Board Specific Configuration Sub-Directories

    The configs/<board-name>/ 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: 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). + The procedure for configuring NuttX is described below, This paragraph will describe the contents of these configuration files.

    @@ -530,7 +546,7 @@
  • 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: @@ -697,19 +713,20 @@

    Manual Configuration. Configuring NuttX requires only copying the - board-specific configuration files into the top level directory which appears in the make files as the make variable, ${TOPDIR}. + board-specific configuration files into the top level directory which appears in the make files as the make variable, ${TOPDIR}. This could be done manually as follows:

    Where <board-name> is the name of one of the sub-directories of the NuttX configs/ directory. This sub-directory name corresponds to one of the supported boards identified above. + And <config-dir> is the optional, specific configuration directory for the board.

    Automated Configuration. @@ -718,7 +735,7 @@

    @@ -747,14 +764,14 @@ make That directory also holds:

    -The setenv.sh 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 PATH variable to include the full path to the architecture-specific toolchain identified in Make.defs. -The setenv.sh only needs to be source'ed at the beginning of a session. +The setenv.sh 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 PATH variable to include the full path to the architecture-specific toolchain identified in Make.defs. +The setenv.sh only needs to be source'ed at the beginning of a session. The system can be re-made subsequently by just typing make.

    @@ -1548,6 +1565,22 @@ The system can be re-made subsequently by just typing make.

  • +

    Appendix B: Trademarks

    + +
  • ARM, ARM7 ARM7TDMI, ARM9, ARM926EJS are trademarks of Advanced RISC Machines, Limited.
  • +
  • Cygwin is a trademark of Red Hat, Incorporated.
  • +
  • Linux is a registered trademark of Linus Torvalds.
  • +
  • LPC2148 is a trademark of NXP Semiconductors.
  • +
  • TI is a tradename of Texas Instruments Incorporated.
  • +
  • UNIX is a registered trademark of The Open Group.
  • +
  • VxWorks is a registered trademark of Wind River Systems, Incorporated.
  • +
  • ZDS, ZNEO, Z16F, Z80, and Zilog are a registered trademark of Zilog, Inc.
  • + +

    + NOTE: NuttX is not licensed to use the POSIX trademark. NuttX uses the POSIX + standard as a development guideline only. +

    + diff --git a/nuttx/TODO b/nuttx/TODO index 2351579fa..f85100040 100644 --- a/nuttx/TODO +++ b/nuttx/TODO @@ -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 diff --git a/nuttx/arch/README.txt b/nuttx/arch/README.txt index 52ad1f3e1..0e5581cc4 100644 --- a/nuttx/arch/README.txt +++ b/nuttx/arch/README.txt @@ -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). diff --git a/nuttx/configs/README.txt b/nuttx/configs/README.txt index fb6c65565..e7675a947 100644 --- a/nuttx/configs/README.txt +++ b/nuttx/configs/README.txt @@ -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// sub-directories and are discussed in this - README. + README. Additional configuration information maybe available in + board-specific configs//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 - + |-- + | |-- Make.defs + | |-- defconfig + | `-- setenv.sh + |-- + | |-- 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 (, +, .. 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//Make.def to ${TOPDIR}/Make.defs - configs//setenv.sh to ${TOPDIR}/setenv.sh - configs//defconfig to ${TOPDIR}/.config + configs///Make.def to ${TOPDIR}/Make.defs + configs///setenv.sh to ${TOPDIR}/setenv.sh + configs///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 + ./configure.sh / diff --git a/nuttx/configs/z16f2800100zcog/README.txt b/nuttx/configs/z16f2800100zcog/README.txt index 0a63025fe..9c7fc762a 100644 --- a/nuttx/configs/z16f2800100zcog/README.txt +++ b/nuttx/configs/z16f2800100zcog/README.txt @@ -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 s. +Check out any README.txt files in these s. diff --git a/nuttx/configs/z80sim/README.txt b/nuttx/configs/z80sim/README.txt index 5026b23d8..77972c2d4 100644 --- a/nuttx/configs/z80sim/README.txt +++ b/nuttx/configs/z80sim/README.txt @@ -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 ^^^^^^^^^^^^^^^^^ diff --git a/nuttx/examples/README.txt b/nuttx/examples/README.txt index e71d3f823..39dee7f8f 100644 --- a/nuttx/examples/README.txt +++ b/nuttx/examples/README.txt @@ -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: -- cgit v1.2.3