From 50a54fc5442cce6ab2b007896be5679c49049e1f Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 11 Feb 2008 17:11:20 +0000 Subject: [PATCH] Adding Z8Encore\! git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@666 42af7a65-404d-4744-a932-0658087f49c3 --- ChangeLog | 3 + Documentation/NuttX.html | 28 ++- Documentation/NuttxPortingGuide.html | 40 +++- arch/z80/src/Makefile | 186 +-------------- arch/z80/src/Makefile.sdcc | 219 ++++++++++++++++++ arch/z80/src/Makefile.zdsii | 126 ++++++++++ arch/z80/src/z80/Make.defs | 12 +- .../{common/up_head.asm => z80/z80_head.asm} | 2 +- .../z80_restoreusercontext.asm} | 2 +- .../z80_saveusercontext.asm} | 6 +- configs/README.txt | 5 + configs/z16f2800100zcog/ostest/setenv.sh | 4 +- configs/z16f2800100zcog/src/z16f_leds.c | 2 +- 13 files changed, 432 insertions(+), 203 deletions(-) create mode 100644 arch/z80/src/Makefile.sdcc create mode 100644 arch/z80/src/Makefile.zdsii rename arch/z80/src/{common/up_head.asm => z80/z80_head.asm} (96%) rename arch/z80/src/{common/up_restoreusercontext.asm => z80/z80_restoreusercontext.asm} (96%) rename arch/z80/src/{common/up_saveusercontext.asm => z80/z80_saveusercontext.asm} (96%) diff --git a/ChangeLog b/ChangeLog index ae4e90a827..5c840fbe56 100644 --- a/ChangeLog +++ b/ChangeLog @@ -336,3 +336,6 @@ 0.3.9 2008-xx-xx Gregory Nutt + * Began adding support for the ZiLOG Z8Encore! microcontroller for the Z8Encore000ZCO + development board and the Z8F642 part. + diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index fc1ad062c5..c7a455600d 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -8,7 +8,7 @@

NuttX RTOS

-

Last Updated: February 10, 2008

+

Last Updated: February 11, 2008

@@ -600,7 +600,28 @@

STATUS: - The preliminary release of support for the z16f was made available in NuttX version 0.3.7. + The initial release of support for the z16f was made available in NuttX version 0.3.7. +

+ + + + + + Zilog Z8Encore! + + + +
+ +

+ Zilog Z8Encore! Microncontroller. + This port use the Zilog z8encore000zco development kit, Z8F642 part, and the Zilog + ZDS-II Windows command line tools. + The development environment is Cygwin under WinXP. +

+

+ STATUS: + The Z8Encore! port is a work in progress and will be released in a future NuttX version.

@@ -969,6 +990,9 @@ buildroot-0.1.0 2007-03-09 <spudmonkey@racsa.co.cr>
    nuttx-0.3.9 2008-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> + * Began adding support for the ZiLOG Z8Encore! microcontroller for the Z8Encore000ZCO + development board and the Z8F642 part. + pascal-0.1.3 2008-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> buildroot-0.1.1 2007-xx-xx <spudmonkey@racsa.co.cr> diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index 0e5963b2a1..9a668d86c5 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -16,7 +16,7 @@

    by

    Gregory Nutt

    -

    Last Update: February 7, 2008

    +

    Last Update: February 11, 2008

    Table of Contents

    @@ -384,7 +384,7 @@ This directory holds common ARM architectures. At present, this includes the following subdirectories:
      -
    • arch/arm/include and arch/arm/common: +
    • arch/arm/include and arch/arm/src/common: Common ARM logic.
    • @@ -426,13 +426,34 @@
    • arch/z16f: Zilog z16f Microcontroller. This port uses the Zilog z16f2800100zcog Development Kit. - This is a work in progress. + This port was released with nuttx-0.3.7.
    • arch/z80: - Zilog z80 Microcontroller. - This port has been verified using only a z80 instruction simulator. -
    • + This directory holds 8-bit ZiLOG architectures. At present, this includes the + Zilog z80 and z8Encore! Microcontrollers. +
        +
      • arch/z80/include and arch/z80/src/common: + Common logic. +
      • + +
      • arch/z80/include/z80 and arch/z80/src/z80: + The Z80 port was released in nuttx-0.3.6 has been verified using only a + z80 instruction simulator. + The set simulator can be found in the NuttX CVS at + http://nuttx.cvs.sourceforge.net/nuttx/misc/sims/z80sim. + This port also the SDCC toolchain (http://sdcc.sourceforge.net/") + (verified with version 2.6.0 and 2.7.0). +
      • + +
      • arch/z80/include/z8 and arch/z80/src/z8: + The Z8Encore! port use the Zilog z8encore000zco + development kit, Z8F642 part, and the Zilog ZDS-II Windows command line + tools. The development environment is Cygwin under WinXP. + This port is in progress and will be released in a future NuttX release. +
      • +
      +

    @@ -621,6 +642,13 @@ This port use the Zilog z16f2800100zcog development kit and the Zilog ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. + + +

  • configs/z8encore000zco + z8Encore! Microncontroller. This port use the Zilog z8encore000zco + development kit, Z8F642 part, and the Zilog ZDS-II Windows command line + tools. The development environment is Cygwin under WinXP. +
  • configs/z80sim: z80 Microcontroller. This port uses a Z80 instruction set simulator. diff --git a/arch/z80/src/Makefile b/arch/z80/src/Makefile index c5f77d180b..39c5697837 100644 --- a/arch/z80/src/Makefile +++ b/arch/z80/src/Makefile @@ -40,186 +40,10 @@ -include chip/Make.defs ############################################################################ -# Tools -# CFLAGS, CPPFLAGS, ASFLAGS, LDFLAGS are set in $(TOPDIR)/Make.defs - -CFLAGS += -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common -I$(TOPDIR)/sched -CPPFLAGS += -D__ASSEMBLY__ - -############################################################################ -# Files and directories - -# There should be one head source (.asm file) - -HEAD_AOBJ = $(HEAD_ASRC:$(ASMEXT)=$(OBJEXT)) - -# Assembly sources and objects - -ASRCS = $(CHIP_ASRCS) $(CMN_ASRCS) -AOBJS = $(ASRCS:$(ASMEXT)=$(OBJEXT)) - -# C sources and objects - -CSRCS = $(CHIP_CSRCS) $(CMN_CSRCS) -COBJS = $(CSRCS:.c=$(OBJEXT)) - -# All sources and objcts - -SRCS = $(ASRCS) $(CSRCS) -OBJS = $(AOBJS) $(COBJS) - -# Sources that can have dependencies (no .asm files) - -DEPSRCS = $(CSRCS) - -# Directories - -ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src -BOARDDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src/board - -VPATH = chip:common - -# Libraries - -LIBGCC = ${shell $(CC) -print-libgcc-file-name} - -# Supports dynamic sizing of HEAP. -# -HEAP_BASE = ${shell ./mkhpbase.sh} - -############################################################################ -# Targets - -all: $(HEAD_AOBJ) libarch$(LIBEXT) - -$(AOBJS) $(HEAD_AOBJ): %$(OBJEXT): %$(ASMEXT) - $(call ASSEMBLE, $<, $@) - -$(COBJS): %$(OBJEXT): %.c - $(call COMPILE, $<, $@) - -# This is a kludge to work around some conflicting symbols in libsdcc.liXqueb - -$(SDCCLIBDIR)/myz80.lib: $(SDCCLIBDIR)/$(SDCCLIB) - @cat $(SDCCLIBDIR)/$(SDCCLIB) | \ - grep -v alloc | grep -v free | grep -v printf | \ - grep -v _str | grep -v _mem | grep -v crt0\.o \ - > myz80.lib - @sudo mv -f myz80.lib $(SDCCLIBDIR)/myz80.lib - -# Create a header file that contains addressing information needed by the code - -up_mem.h: - @echo "#ifndef __ARCH_MEM_H" >up_mem.h - @echo "#define __ARCH_MEM_H" >>up_mem.h - @echo "" >>up_mem.h - @echo "#define UP_STACK_END $(CONFIG_DRAM_SIZE)" >> up_mem.h - @echo "#define UP_STACK_BASE (UP_STACK_END - $(CONFIG_PROC_STACK_SIZE))" >> up_mem.h - @echo "#define UP_HEAP1_END UP_STACK_BASE" >> up_mem.h - @echo "#define UP_HEAP1_BASE $(HEAP_BASE)" >> up_mem.h - @echo "" >>up_mem.h - @echo "#endif /* __ARCH_MEM_H */" >>up_mem.h - -asm_mem.h: - @echo " UP_COMPILER_OTHER == 0" > asm_mem.h - @echo " UP_COMPILER_SDCC == 1" >> asm_mem.h -ifeq ($(CC),sdcc) - @echo " UP_COMPILER == 1" >> asm_mem.h +# Compiler-Dependent Make +COMPILER = ${shell basename $(CC)} +ifeq ($(COMPILER),sdcc) +include Makefile.sdcc else - @echo " UP_COMPILER == 0" >> asm_mem.h +include Makefile.zdsii endif - @echo " UP_STACK_END == ($(CONFIG_DRAM_SIZE) - 1)" >> asm_mem.h - @echo " UP_STACK_BASE == (UP_STACK_END - $(CONFIG_PROC_STACK_SIZE))" >> asm_mem.h - @echo " UP_HEAP1_END == (UP_STACK_END - $(CONFIG_PROC_STACK_SIZE) - 1)" >> asm_mem.h - @echo " UP_HEAP1_BASE == $(HEAP_BASE)" >> asm_mem.h - -# Combine all objects in this directory into a library - -libarch$(LIBEXT): up_mem.h asm_mem.h $(OBJS) - @( for obj in $(OBJS) ; do \ - $(call ARCHIVE, $@, $${obj}); \ - done ; ) - -# This builds the libboard library in the board/ subdirectory - -board/libboard$(LIBEXT): - $(MAKE) -C board TOPDIR="$(TOPDIR)" libboard$(LIBEXT) - -# This target builds the final executable - -pass1.ihx: up_mem.h asm_mem.h $(SDCCLIBDIR)/myz80.lib $(HEAD_AOBJ) board/libboard$(LIBEXT) - @echo "LD: pass1.ihx" - @echo "--" >pass1.lnk # Non-interactive - @echo "-k $(BOARDDIR)" >>pass1.lnk # Path to board library - @echo "-k $(SDCCLIBDIR)" >>pass1.lnk # Path to SDCC z80 library - @echo "-l libboard$(LIBEXT)" >>pass1.lnk # Name of board library - @for LIB in $(LINKLIBS); do \ - echo "-l $(TOPDIR)/$$LIB" >> pass1.lnk ;\ - done - @echo "-l myz80.lib" >>pass1.lnk # Name of SDCC z80 library - @echo "-b START=0" >>pass1.lnk # Start of START area - @echo "-b _CODE=256" >>pass1.lnk # Start of _CODE area - @echo "-i" >>pass1.lnk # Intel hex format - @echo "-x" >>pass1.lnk # Hexadecimal - @echo "-m" >>pass1.lnk # Generate a map file - @echo "-j" >>pass1.lnk # Generate a symbol file - @echo "pass1.ihx" >>pass1.lnk # Path to head object - @echo "$(HEAD_AOBJ)" >>pass1.lnk # Path to head object - @echo "-e" >>pass1.lnk # End of script - @$(LD) -f pass1.lnk - @rm -f up_mem.h asm_mem.h - @rm -f up_allocateheap$(OBJEXT) $(HEAD_AOBJ) libarch$(LIBEXT) - @$(MAKE) TOPDIR="$(TOPDIR)" libarch$(LIBEXT) - @$(MAKE) TOPDIR="$(TOPDIR)" $(HEAD_AOBJ) - -nuttx.ihx: up_mem.h asm_mem.h $(SDCCLIBDIR)/myz80.lib $(HEAD_AOBJ) board/libboard$(LIBEXT) - @echo "LD: nuttx.ihx" - @echo "--" >nuttx.lnk # Non-interactive - @echo "-k $(BOARDDIR)" >>nuttx.lnk # Path to board library - @echo "-k $(SDCCLIBDIR)" >>nuttx.lnk # Path to SDCC z80 library - @echo "-l libboard$(LIBEXT)" >>nuttx.lnk # Name of board library - @for LIB in $(LINKLIBS); do \ - echo "-l $(TOPDIR)/$$LIB" >> nuttx.lnk ;\ - done - @echo "-l myz80.lib" >>nuttx.lnk # Name of SDCC z80 library - @echo "-b START=0" >>nuttx.lnk # Start of START area - @echo "-b _CODE=256" >>nuttx.lnk # Start of _CODE area - @echo "-i" >>nuttx.lnk # Intel hex format - @echo "-x" >>nuttx.lnk # Hexadecimal - @echo "-m" >>nuttx.lnk # Generate a map file - @echo "-j" >>nuttx.lnk # Generate a symbol file - @echo "nuttx.ihx" >>nuttx.lnk # Path to head object - @echo "$(HEAD_AOBJ)" >>nuttx.lnk # Path to head object - @echo "-e" >>nuttx.lnk # End of script - @$(LD) -f nuttx.lnk - -nuttx$(EXEEXT): pass1.ihx nuttx.ihx - @rm -f pass1.* - @packihx nuttx.ihx > $(TOPDIR)/nuttx$(EXEEXT) - @cp -f nuttx.map $(TOPDIR)/. - -# Build dependencies - -.depend: Makefile up_mem.h asm_mem.h chip/Make.defs $(DEPSRCS) - @if [ -e board/Makefile ]; then \ - $(MAKE) -C board TOPDIR="$(TOPDIR)" depend ; \ - fi - @$(MKDEP) --dep-path chip --dep-path common $(CC) -- $(CFLAGS) -- $(DEPSRCS) >Make.dep - @touch $@ - -depend: .depend - -clean: - @if [ -e board/Makefile ]; then \ - $(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \ - fi - @rm -f libarch$(LIBEXT) up_mem.h asm_mem.h pass1.* nuttx.* *~ .*.swp - $(call CLEAN) - -distclean: clean - @if [ -e board/Makefile ]; then \ - $(MAKE) -C board TOPDIR="$(TOPDIR)" distclean ; \ - fi - rm -f Make.dep .depend - --include Make.dep diff --git a/arch/z80/src/Makefile.sdcc b/arch/z80/src/Makefile.sdcc new file mode 100644 index 0000000000..d45be7f933 --- /dev/null +++ b/arch/z80/src/Makefile.sdcc @@ -0,0 +1,219 @@ +############################################################################ +# arch/z80/src/Makefile.sdcc +# +# Copyright (C) 2008 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +############################################################################ +# Tools +# CFLAGS, CPPFLAGS, ASFLAGS, LDFLAGS are set in $(TOPDIR)/Make.defs + +CFLAGS += -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common -I$(TOPDIR)/sched +CPPFLAGS += -D__ASSEMBLY__ + +############################################################################ +# Files and directories + +# There should be one head source (.asm file) + +HEAD_AOBJ = $(HEAD_ASRC:$(ASMEXT)=$(OBJEXT)) + +# Assembly sources and objects + +ASRCS = $(CHIP_ASRCS) $(CMN_ASRCS) +AOBJS = $(ASRCS:$(ASMEXT)=$(OBJEXT)) + +# C sources and objects + +CSRCS = $(CHIP_CSRCS) $(CMN_CSRCS) +COBJS = $(CSRCS:.c=$(OBJEXT)) + +# All sources and objcts + +SRCS = $(ASRCS) $(CSRCS) +OBJS = $(AOBJS) $(COBJS) + +# Sources that can have dependencies (no .asm files) + +DEPSRCS = $(CSRCS) + +# Directories + +ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src +BOARDDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src/board + +VPATH = chip:common + +# Libraries + +LIBGCC = ${shell $(CC) -print-libgcc-file-name} + +# Supports dynamic sizing of HEAP. +# +HEAP_BASE = ${shell ./mkhpbase.sh} + +############################################################################ +# Targets + +all: $(HEAD_AOBJ) libarch$(LIBEXT) + +$(AOBJS) $(HEAD_AOBJ): %$(OBJEXT): %$(ASMEXT) + $(call ASSEMBLE, $<, $@) + +$(COBJS): %$(OBJEXT): %.c + $(call COMPILE, $<, $@) + +# This is a kludge to work around some conflicting symbols in libsdcc.liXqueb + +$(SDCCLIBDIR)/myz80.lib: $(SDCCLIBDIR)/$(SDCCLIB) + @cat $(SDCCLIBDIR)/$(SDCCLIB) | \ + grep -v alloc | grep -v free | grep -v printf | \ + grep -v _str | grep -v _mem | grep -v crt0\.o \ + > myz80.lib + @sudo mv -f myz80.lib $(SDCCLIBDIR)/myz80.lib + +# Create a header file that contains addressing information needed by the code + +up_mem.h: + @echo "#ifndef __ARCH_MEM_H" >up_mem.h + @echo "#define __ARCH_MEM_H" >>up_mem.h + @echo "" >>up_mem.h + @echo "#define UP_STACK_END $(CONFIG_DRAM_SIZE)" >> up_mem.h + @echo "#define UP_STACK_BASE (UP_STACK_END - $(CONFIG_PROC_STACK_SIZE))" >> up_mem.h + @echo "#define UP_HEAP1_END UP_STACK_BASE" >> up_mem.h + @echo "#define UP_HEAP1_BASE $(HEAP_BASE)" >> up_mem.h + @echo "" >>up_mem.h + @echo "#endif /* __ARCH_MEM_H */" >>up_mem.h + +asm_mem.h: + @echo " UP_COMPILER_OTHER == 0" > asm_mem.h + @echo " UP_COMPILER_SDCC == 1" >> asm_mem.h +ifeq ($(CC),sdcc) + @echo " UP_COMPILER == 1" >> asm_mem.h +else + @echo " UP_COMPILER == 0" >> asm_mem.h +endif + @echo " UP_STACK_END == ($(CONFIG_DRAM_SIZE) - 1)" >> asm_mem.h + @echo " UP_STACK_BASE == (UP_STACK_END - $(CONFIG_PROC_STACK_SIZE))" >> asm_mem.h + @echo " UP_HEAP1_END == (UP_STACK_END - $(CONFIG_PROC_STACK_SIZE) - 1)" >> asm_mem.h + @echo " UP_HEAP1_BASE == $(HEAP_BASE)" >> asm_mem.h + +# Combine all objects in this directory into a library + +libarch$(LIBEXT): up_mem.h asm_mem.h $(OBJS) + @( for obj in $(OBJS) ; do \ + $(call ARCHIVE, $@, $${obj}); \ + done ; ) + +# This builds the libboard library in the board/ subdirectory + +board/libboard$(LIBEXT): + $(MAKE) -C board TOPDIR="$(TOPDIR)" libboard$(LIBEXT) + +# This target builds the final executable + +pass1.ihx: up_mem.h asm_mem.h $(SDCCLIBDIR)/myz80.lib $(HEAD_AOBJ) board/libboard$(LIBEXT) + @echo "LD: pass1.ihx" + @echo "--" >pass1.lnk # Non-interactive + @echo "-k $(BOARDDIR)" >>pass1.lnk # Path to board library + @echo "-k $(SDCCLIBDIR)" >>pass1.lnk # Path to SDCC z80 library + @echo "-l libboard$(LIBEXT)" >>pass1.lnk # Name of board library + @for LIB in $(LINKLIBS); do \ + echo "-l $(TOPDIR)/$$LIB" >> pass1.lnk ;\ + done + @echo "-l myz80.lib" >>pass1.lnk # Name of SDCC z80 library + @echo "-b START=0" >>pass1.lnk # Start of START area + @echo "-b _CODE=256" >>pass1.lnk # Start of _CODE area + @echo "-i" >>pass1.lnk # Intel hex format + @echo "-x" >>pass1.lnk # Hexadecimal + @echo "-m" >>pass1.lnk # Generate a map file + @echo "-j" >>pass1.lnk # Generate a symbol file + @echo "pass1.ihx" >>pass1.lnk # Path to head object + @echo "$(HEAD_AOBJ)" >>pass1.lnk # Path to head object + @echo "-e" >>pass1.lnk # End of script + @$(LD) -f pass1.lnk + @rm -f up_mem.h asm_mem.h + @rm -f up_allocateheap$(OBJEXT) $(HEAD_AOBJ) libarch$(LIBEXT) + @$(MAKE) TOPDIR="$(TOPDIR)" libarch$(LIBEXT) + @$(MAKE) TOPDIR="$(TOPDIR)" $(HEAD_AOBJ) + +nuttx.ihx: up_mem.h asm_mem.h $(SDCCLIBDIR)/myz80.lib $(HEAD_AOBJ) board/libboard$(LIBEXT) + @echo "LD: nuttx.ihx" + @echo "--" >nuttx.lnk # Non-interactive + @echo "-k $(BOARDDIR)" >>nuttx.lnk # Path to board library + @echo "-k $(SDCCLIBDIR)" >>nuttx.lnk # Path to SDCC z80 library + @echo "-l libboard$(LIBEXT)" >>nuttx.lnk # Name of board library + @for LIB in $(LINKLIBS); do \ + echo "-l $(TOPDIR)/$$LIB" >> nuttx.lnk ;\ + done + @echo "-l myz80.lib" >>nuttx.lnk # Name of SDCC z80 library + @echo "-b START=0" >>nuttx.lnk # Start of START area + @echo "-b _CODE=256" >>nuttx.lnk # Start of _CODE area + @echo "-i" >>nuttx.lnk # Intel hex format + @echo "-x" >>nuttx.lnk # Hexadecimal + @echo "-m" >>nuttx.lnk # Generate a map file + @echo "-j" >>nuttx.lnk # Generate a symbol file + @echo "nuttx.ihx" >>nuttx.lnk # Path to head object + @echo "$(HEAD_AOBJ)" >>nuttx.lnk # Path to head object + @echo "-e" >>nuttx.lnk # End of script + @$(LD) -f nuttx.lnk + +nuttx$(EXEEXT): pass1.ihx nuttx.ihx + @rm -f pass1.* + @packihx nuttx.ihx > $(TOPDIR)/nuttx$(EXEEXT) + @cp -f nuttx.map $(TOPDIR)/. + +# Build dependencies + +.depend: Makefile up_mem.h asm_mem.h chip/Make.defs $(DEPSRCS) + @if [ -e board/Makefile ]; then \ + $(MAKE) -C board TOPDIR="$(TOPDIR)" depend ; \ + fi + @$(MKDEP) --dep-path chip --dep-path common $(CC) -- $(CFLAGS) -- $(DEPSRCS) >Make.dep + @touch $@ + +depend: .depend + +clean: + @if [ -e board/Makefile ]; then \ + $(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \ + fi + @rm -f libarch$(LIBEXT) up_mem.h asm_mem.h pass1.* nuttx.* *~ .*.swp + $(call CLEAN) + +distclean: clean + @if [ -e board/Makefile ]; then \ + $(MAKE) -C board TOPDIR="$(TOPDIR)" distclean ; \ + fi + rm -f Make.dep .depend + +-include Make.dep diff --git a/arch/z80/src/Makefile.zdsii b/arch/z80/src/Makefile.zdsii new file mode 100644 index 0000000000..afe32ca90a --- /dev/null +++ b/arch/z80/src/Makefile.zdsii @@ -0,0 +1,126 @@ +############################################################################ +# arch/z16/src/Makefile +# +# Copyright (C) 2008 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +############################################################################ +# Tools +ARCHSRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src +WARCHSRCDIR = ${shell cygpath -w $(ARCHSRCDIR)} +USRINCLUDES = -usrinc:'.;$(WTOPDIR)\sched;$(WARCHSRCDIR);$(WARCHSRCDIR)\common' +INCLUDES = $(ARCHSTDINCLUDES) $(USRINCLUDES) +CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(INCLUDES) $(ARCHDEFINES) +CPPFLAGS += -I$(ARCHSRCDIR) +LDFLAGS = @"${shell cygpath -w $(ARCHSRCDIR)/nuttx.linkcmd}" + +############################################################################ +# Files and directories +HEAD_ASRC = $(HEAD_SSRC:.S=$(ASMEXT)) +HEAD_AOBJ = $(HEAD_SSRC:.S=$(OBJEXT)) + +SSRCS = $(CHIP_SSRCS) $(CMN_SSRCS) +ASRCS = $(SSRCS:.S=$(ASMEXT)) +AOBJS = $(SSRCS:.S=$(OBJEXT)) + +CSRCS = $(CHIP_CSRCS) $(CMN_CSRCS) +COBJS = $(CSRCS:.c=$(OBJEXT)) + +DEPSRCS = $(SSRCS) $(CSRCS) +OBJS = $(AOBJS) $(COBJS) + +BOARDDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src/board + +VPATH = chip:common + +############################################################################ +# Targets +all: $(HEAD_OBJ) libarch$(LIBEXT) + +$(ASRCS) $(HEAD_ASRC): %$(ASMEXT): %.S + @$(CPP) $(CPPFLAGS) $< -o $@.tmp + @cat $@.tmp | sed -e "s/^#/;/g" > $@ + @rm $@.tmp + +$(AOBJS) $(HEAD_AOBJ): %$(OBJEXT): %$(ASMEXT) + $(call ASSEMBLE, $<, $@) + +$(COBJS): %$(OBJEXT): %.c + $(call COMPILE, `cygpath -w $<`, $@) + +libarch$(LIBEXT): $(OBJS) + @( for obj in $(OBJS) ; do \ + $(call ARCHIVE, $@, $${obj}); \ + done ; ) + +board/libboard$(LIBEXT): + @$(MAKE) -C board TOPDIR="$(TOPDIR)" libboard$(LIBEXT) + +nuttx.linkcmd: $(LINKCMDTEMPLATE) + @cp -f $(LINKCMDTEMPLATE) nuttx.linkcmd + @echo "\"${shell cygpath -w $(TOPDIR)/nuttx}\"= \\" >>nuttx.linkcmd + @echo " \"${shell cygpath -w $(ARCHSRCDIR)/$(HEAD_AOBJ)}\", \\" >>nuttx.linkcmd + @( for lib in $(LINKLIBS); do \ + echo " \"`cygpath -w $(TOPDIR)/$${lib}`\", \\" >>nuttx.linkcmd; \ + done ; ) + @echo " \"${shell cygpath -w $(ARCHSRCDIR)/board/libboard$(LIBEXT)}\", \\" >>nuttx.linkcmd + @echo " \"${shell cygpath -w $(ZDSSTDLIBDIR)/chelpld$(LIBEXT)}\", \\" >>nuttx.linkcmd + @echo " \"${shell cygpath -w $(ZDSSTDLIBDIR)/fpld$(LIBEXT)}\"" >>nuttx.linkcmd + +nuttx$(EXEEXT): $(HEAD_AOBJ) board/libboard$(LIBEXT) nuttx.linkcmd + @echo "LD: nuttx.hex" + @$(LD) $(LDFLAGS) + +.depend: Makefile chip/Make.defs $(DEPSRCS) + @if [ -e board/Makefile ]; then \ + $(MAKE) -C board TOPDIR="$(TOPDIR)" depend ; \ + fi + @$(MKDEP) --dep-path chip --dep-path common $(CC) -- $(CFLAGS) -- $(DEPSRCS) >Make.dep + @touch $@ + +depend: .depend + +clean: + @if [ -e board/Makefile ]; then \ + $(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \ + fi + @rm -f libarch$(LIBEXT) *~ .*.swp + @rm -f nuttx.linkcmd *.asm *.tmp *.map + $(call CLEAN) + +distclean: clean + @if [ -e board/Makefile ]; then \ + $(MAKE) -C board TOPDIR="$(TOPDIR)" distclean ; \ + fi + @rm -f Make.dep .depend + +-include Make.dep diff --git a/arch/z80/src/z80/Make.defs b/arch/z80/src/z80/Make.defs index 0688d159b3..1d4d5c29ed 100644 --- a/arch/z80/src/z80/Make.defs +++ b/arch/z80/src/z80/Make.defs @@ -1,7 +1,7 @@ ############################################################################ -# sdcc/src/z80/Make.defs +# arch/z80/src/z80/Make.defs # -# Copyright (C) 2007 Gregory Nutt. All rights reserved. +# Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -14,7 +14,7 @@ # notice, this list of conditions and the following disclaimer in # the documentation and/or other materials provided with the # distribution. -# 3. Neither the name Gregory Nutt nor the names of its contributors may be +# 3. Neither the name NuttX nor the names of its contributors may be # used to endorse or promote products derived from this software # without specific prior written permission. # @@ -33,9 +33,9 @@ # ############################################################################ -HEAD_ASRC = up_head.asm +HEAD_ASRC = z80_head.asm -CMN_ASRCS = up_saveusercontext.asm up_restoreusercontext.asm +CMN_ASRCS = CMN_CSRCS = up_initialize.c up_allocateheap.c up_initialstate.c \ up_createstack.c up_releasestack.c up_interruptcontext.c \ up_blocktask.c up_unblocktask.c up_exit.c up_releasepending.c \ @@ -44,6 +44,6 @@ CMN_CSRCS = up_initialize.c up_allocateheap.c up_initialstate.c \ up_schedulesigaction.c up_sigdeliver.c \ up_registerdump.c up_usestack.c -CHIP_ASRCS = +CHIP_ASRCS = z80_saveusercontext.asm z80_restoreusercontext.asm CHIP_CSRCS = diff --git a/arch/z80/src/common/up_head.asm b/arch/z80/src/z80/z80_head.asm similarity index 96% rename from arch/z80/src/common/up_head.asm rename to arch/z80/src/z80/z80_head.asm index 6ebbe2ba44..816cab347a 100644 --- a/arch/z80/src/common/up_head.asm +++ b/arch/z80/src/z80/z80_head.asm @@ -1,5 +1,5 @@ ;************************************************************************** -; arch/z80/src/common/up_head.asm +; arch/z80/src/z80/z80_head.asm ; ; Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved. ; Author: Gregory Nutt diff --git a/arch/z80/src/common/up_restoreusercontext.asm b/arch/z80/src/z80/z80_restoreusercontext.asm similarity index 96% rename from arch/z80/src/common/up_restoreusercontext.asm rename to arch/z80/src/z80/z80_restoreusercontext.asm index 5d34278c2c..5807fa811e 100644 --- a/arch/z80/src/common/up_restoreusercontext.asm +++ b/arch/z80/src/z80/z80_restoreusercontext.asm @@ -1,5 +1,5 @@ ;************************************************************************** -; common/up_restoreusercontext.asm +; arch/z80/src/z80/z80_restoreusercontext.asm ; ; Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved. ; Author: Gregory Nutt diff --git a/arch/z80/src/common/up_saveusercontext.asm b/arch/z80/src/z80/z80_saveusercontext.asm similarity index 96% rename from arch/z80/src/common/up_saveusercontext.asm rename to arch/z80/src/z80/z80_saveusercontext.asm index bd8f548315..886872f37a 100644 --- a/arch/z80/src/common/up_saveusercontext.asm +++ b/arch/z80/src/z80/z80_saveusercontext.asm @@ -1,7 +1,7 @@ ;************************************************************************* -; common/up_saveusercontext.asm +; arch/z80/src/z80/z80_saveusercontext.asm ; -; Copyright (C) 2007 Gregory Nutt. All rights reserved. +; Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved. ; Author: Gregory Nutt ; ; Redistribution and use in source and binary forms, with or without @@ -14,7 +14,7 @@ ; notice, this list of conditions and the following disclaimer in ; the documentation and/or other materials provided with the ; distribution. -; 3. Neither the name Gregory Nutt nor the names of its contributors may be +; 3. Neither the name NuttX nor the names of its contributors may be ; used to endorse or promote products derived from this software ; without specific prior written permission. ; diff --git a/configs/README.txt b/configs/README.txt index e7675a947f..6646c6964c 100644 --- a/configs/README.txt +++ b/configs/README.txt @@ -338,6 +338,11 @@ configs/z16f2800100zcog development kit and the Zilog ZDS-II Windows command line tools. The development environment is Cygwin under WinXP. +configs/z8encore000zco + z8Encore! Microncontroller. This port use the Zilog z8encore000zco + development kit, Z8F642 part, and the Zilog ZDS-II Windows command line + tools. The development environment is Cygwin under WinXP. + configs/z80zim z80 Microcontroller. This port uses a Z80 instruction set simulator. That simulator can be found in the NuttX CVS at diff --git a/configs/z16f2800100zcog/ostest/setenv.sh b/configs/z16f2800100zcog/ostest/setenv.sh index 4a9bf1d3bc..9651536bd0 100755 --- a/configs/z16f2800100zcog/ostest/setenv.sh +++ b/configs/z16f2800100zcog/ostest/setenv.sh @@ -1,5 +1,5 @@ #!/bin/sh -# z16f2800100zcog/setenv.sh +# configs/z16f2800100zcog/ostest/setenv.sh # # Copyright (C) 2008 Gregory Nutt. All rights reserved. # Author: Gregory Nutt @@ -48,4 +48,4 @@ ZDSBINDIR="C:/Program\ Files/ZiLOG/ZDSII_ZNEO_4.11.0/bin" alias zneoasm="${ZDSBINDIR}/zneoasm.exe" alias zneocc="${ZDSBINDIR}/zneocc.exe" alias zneolib="${ZDSBINDIR}/zneolib.exe" -alias zneolink="${ZDSBINDIR}/zneolink.exe" \ No newline at end of file +alias zneolink="${ZDSBINDIR}/zneolink.exe" diff --git a/configs/z16f2800100zcog/src/z16f_leds.c b/configs/z16f2800100zcog/src/z16f_leds.c index 49e47282e8..612e7a86ba 100644 --- a/configs/z16f2800100zcog/src/z16f_leds.c +++ b/configs/z16f2800100zcog/src/z16f_leds.c @@ -1,5 +1,5 @@ /**************************************************************************** - * up_leds.c + * configs/z16f2800100zcog/z16f_leds.c * * Copyright (C) 2008 Gregory Nutt. All rights reserved. * Author: Gregory Nutt