Verify that z8 targets still build (under Cygwin)

git-svn-id: http://svn.code.sf.net/p/nuttx/code/trunk@5396 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2012-11-28 15:53:42 +00:00
parent 6c26fa6537
commit 18b90c8848
14 changed files with 334 additions and 101 deletions

View File

@ -203,6 +203,7 @@ static int keypad_open(file_t * filep)
register uint16_t reg; register uint16_t reg;
/* Unmask keypad interrupt */ /* Unmask keypad interrupt */
reg = readw(ARMIO_REG(KBD_GPIO_MASKIT)); reg = readw(ARMIO_REG(KBD_GPIO_MASKIT));
writew(reg & ~KBD_INT, ARMIO_REG(KBD_GPIO_MASKIT)); writew(reg & ~KBD_INT, ARMIO_REG(KBD_GPIO_MASKIT));

View File

@ -84,7 +84,7 @@ FAR chipreg_t *up_doirq(uint8_t irq, FAR chipreg_t *regs)
#else #else
if (irq < NR_IRQS) if (irq < NR_IRQS)
{ {
FAR chipreg_t *savestate; DECL_SAVESTATE();
/* Indicate that we have entered IRQ processing logic */ /* Indicate that we have entered IRQ processing logic */
@ -106,4 +106,3 @@ FAR chipreg_t *up_doirq(uint8_t irq, FAR chipreg_t *regs)
return regs; return regs;
#endif #endif
} }

View File

@ -2,7 +2,7 @@
* arch/z80/src/ez80/switch.h * arch/z80/src/ez80/switch.h
* arch/z80/src/chip/switch.h * arch/z80/src/chip/switch.h
* *
* Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. * Copyright (C) 2008-2009, 2011-2012 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org> * Author: Gregory Nutt <gnutt@nuttx.org>
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -69,6 +69,9 @@
/* The following macro is used when the system enters interrupt handling logic */ /* The following macro is used when the system enters interrupt handling logic */
#define DECL_SAVESTATE() \
FAR chipreg_t *savestate
#define IRQ_ENTER(irq, regs) \ #define IRQ_ENTER(irq, regs) \
do { \ do { \
savestate = (FAR chipreg_t *)current_regs; \ savestate = (FAR chipreg_t *)current_regs; \

View File

@ -2,7 +2,7 @@
* arch/z80/src/z8/switch.h * arch/z80/src/z8/switch.h
* arch/z80/src/chip/switch.h * arch/z80/src/chip/switch.h
* *
* Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. * Copyright (C) 2008-2009, 2011-2012 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org> * Author: Gregory Nutt <gnutt@nuttx.org>
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -114,10 +114,8 @@
/* The following macro is used when the system enters interrupt handling logic */ /* The following macro is used when the system enters interrupt handling logic */
#define IRQ_SAVE(irq, regs) savestate = (FAR chipreg_t *)current_regs; #define DECL_SAVESTATE() \
#define IRQ_ENTER(irq, regs) current_regs = (regs) struct z8_irqstate_s savestate
/* The following macro is used when the system exits interrupt handling logic */
#define IRQ_ENTER(irq, regs) \ #define IRQ_ENTER(irq, regs) \
do { \ do { \

View File

@ -2,7 +2,7 @@
* arch/z80/src/z80/switch.h * arch/z80/src/z80/switch.h
* arch/z80/src/chip/switch.h * arch/z80/src/chip/switch.h
* *
* Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. * Copyright (C) 2008-2009, 2011-2012 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org> * Author: Gregory Nutt <gnutt@nuttx.org>
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -68,6 +68,9 @@
/* The following macro is used when the system enters interrupt handling logic */ /* The following macro is used when the system enters interrupt handling logic */
#define DECL_SAVESTATE() \
FAR chipreg_t *savestate
#define IRQ_ENTER(irq, regs) \ #define IRQ_ENTER(irq, regs) \
do { \ do { \
savestate = (FAR chipreg_t *)current_regs; \ savestate = (FAR chipreg_t *)current_regs; \

View File

@ -4,7 +4,7 @@ README.txt
ZDS-II Compiler Versions ZDS-II Compiler Versions
^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^
4.10.1 Version 4.10.1
The ZDS-II version 4.10.2 will not compile NuttX. It reports "internal The ZDS-II version 4.10.2 will not compile NuttX. It reports "internal
errors" on one of the files, mm/mm_initialize.c. Below is a simple work- errors" on one of the files, mm/mm_initialize.c. Below is a simple work-
around. With this work-around in place, NuttX builds successfully with around. With this work-around in place, NuttX builds successfully with
@ -23,12 +23,23 @@ ZDS-II Compiler Versions
/* Set up global variables */ /* Set up global variables */
4.9.5 Version 4.9.5
This is the latest tool version listed on the ZiLOG site for the Z8F6403. This is the latest tool version listed on the ZiLOG site for the Z8F6403.
However, it uses different compiler command line arguments. However, it uses different compiler command line arguments.
Version 5.0.0
On November 18, 2012, all of the z8 configurations were converted to use 5.0.0,
but have not been verified on a running target.
Paths were also updated that are specific to a 32-bit toolchain running on
a 64 bit windows platform. Change to a different toolchain, you will need
to modify the versioning in Make.defs and setenv.sh; if you want to build
on a different platform, you will need to change the path in the ZDS binaries
in those same files.
Other Versions Other Versions
If you use any version of ZDS-II other than 4.10.1 or if you install ZDS-II If you use any version of ZDS-II other than 5.0.0 or if you install ZDS-II
at any 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/z8encore000zco/*/setenv.sh and (2) two files: (1) configs/z8encore000zco/*/setenv.sh and (2)
configs/z8encore000zco/*/Make.defs. configs/z8encore000zco/*/Make.defs.
@ -57,4 +68,44 @@ available:
This builds the examples/ostest application for execution from FLASH. This builds the examples/ostest application for execution from FLASH.
See examples/README.txt for information about ostest. See examples/README.txt for information about ostest.
NOTES:
1. This configuration uses the mconf-based configuration tool. To
change this configuration using that tool, you should:
a. Build and install the mconf tool. See nuttx/README.txt and
misc/tools/
b. Execute 'make menuconfig' in nuttx/ in order to start the
reconfiguration process.
2. By default, this configuration assumes that you are using the
Cygwin environment on Windows. An option is to use the native
CMD.exe window build as described in the top-level README.txt
file. To set up that configuration:
-CONFIG_WINDOWS_CYGWIN=y
+CONFIG_WINDOWS_NATIVE=y
And after configuring, make sure that CONFIG_APPS_DIR uses
the back slash character. For example:
CONFIG_APPS_DIR="..\apps"
NOTES:
a. If you need to change the toolchain path used in Make.defs, you
will need to use the short 8.3 filenames to avoid spaces. On my
PC, C:\PROGRA~1\ is is C:\Program Files\ and C:\PROGRA~2\ is
C:\Program Files (x86)\
b. You can't use setenv.sh in the native Windows environment. Try
scripts/setenv.bat instead.
c. At present, the native Windows build fails at the final link stages.
The failure is due to problems in arch/z80/src/nuttx/linkcmd that
is autogenerated by arch/z80/src/Makefile.zdsii. The basic program
is the spurious spaces and and carrirage returns are generated at
the end of the lines after a line continuation (\ ^M). If these
trailing bad characters are manually eliminated, then the build
will succeed on the next try.
Check out any README.txt files in these <sub-directory>s. Check out any README.txt files in these <sub-directory>s.

View File

@ -1,7 +1,7 @@
############################################################################ ############################################################################
# configs/z8encore000zco/ostest/Make.defs # configs/z8encore000zco/ostest/Make.defs
# #
# Copyright (C) 2008 Gregory Nutt. All rights reserved. # Copyright (C) 2008, 2012 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org> # Author: Gregory Nutt <gnutt@nuttx.org>
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
@ -33,27 +33,44 @@
# #
############################################################################ ############################################################################
include ${TOPDIR}/.config include $(TOPDIR)/.config
include ${TOPDIR}/tools/Config.mk include $(TOPDIR)/tools/Config.mk
# These are the directories where the ZDS-II toolchain is installed # These are the directories where the ZDS-II toolchain is installed. NOTE
# that short 8.3 path names are used in order to avoid spaces. On my machine
# I have:
#
# C:\PROGRA~1\ = C:\Profram Files\
# C:\PROGRA~2\ = C:\Program Files (x86)\
#
# Your PC may be configured differently.
ZDSINSTALLDIR := C:/Program Files (x86)/ZiLOG/ZDSII_Z8Encore!_4.10.1 ZDSVERSION := 5.0.0
ifeq ($(CONFIG_WINDOWS_NATIVE),y) ifeq ($(CONFIG_WINDOWS_NATIVE),y)
ZDSBINDIR := $(ZDSINSTALLDIR)\bin ZDSINSTALLDIR := C:/PROGRA~2/ZiLOG/ZDSII_Z8Encore!_$(ZDSVERSION)
ZDSSTDINCDIR := $(ZDSINSTALLDIR)\include\std INSTALLDIR = ${shell echo $(ZDSINSTALLDIR)| sed -e "s/\//\\/g"}
ZDSZILOGINCDIR := $(ZDSINSTALLDIR)\include\zilog ZDSBINDIR := $(INSTALLDIR)\bin
ZDSSTDINCDIR := $(INSTALLDIR)\include\std
ZDSZILOGINCDIR := $(INSTALLDIR)\include\zilog
ifeq ($(CONFIG_ARCH_CHIP_Z8F642X),y) ifeq ($(CONFIG_ARCH_CHIP_Z8F642X),y)
ZDSDEVINCDIR := $(ZDSZILOGINCDIR)\Z8Encore_F642X ZDSDEVINCDIR := $(INSTALLDIR)\Z8Encore_F642X
endif endif
ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y) ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y)
ZDSDEVINCDIR := $(ZDSZILOGINCDIR)\Z8Encore_F640X ZDSDEVINCDIR := $(INSTALLDIR)\Z8Encore_F640X
endif endif
ZDSSTDLIBDIR := $(ZDSINSTALLDIR)\lib\std ZDSSTDLIBDIR := $(INSTALLDIR)\lib\std
ZDSZILOGLIBDIR := $(ZDSINSTALLDIR)\lib\zilog ZDSZILOGLIBDIR := $(INSTALLDIR)\lib\zilog
# CFLAGs
ARCHASMINCLUDES = -include:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
EARCHASMINCLUDES = -include:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
ARCHSTDINCLUDES = -stdinc:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
ARCHUSRINCLUDES = -usrinc:.
else else
WINTOOL := y WINTOOL := y
ZDSINSTALLDIR := C:/PROGRA~2/ZiLOG/ZDSII_Z8Encore!_$(ZDSVERSION)
INSTALLDIR = ${shell cygpath -u "$(ZDSINSTALLDIR)"} INSTALLDIR = ${shell cygpath -u "$(ZDSINSTALLDIR)"}
ZDSBINDIR := $(INSTALLDIR)/bin ZDSBINDIR := $(INSTALLDIR)/bin
ZDSSTDINCDIR := $(INSTALLDIR)/include/std ZDSSTDINCDIR := $(INSTALLDIR)/include/std
@ -66,43 +83,50 @@ ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y)
endif endif
ZDSSTDLIBDIR := $(INSTALLDIR)/lib/std ZDSSTDLIBDIR := $(INSTALLDIR)/lib/std
ZDSZILOGLIBDIR := $(INSTALLDIR)/lib/zilog ZDSZILOGLIBDIR := $(INSTALLDIR)/lib/zilog
# These are the same directories but with the directory separator
# character swapped as needed by the ZDS-II compiler
WTOPDIR := ${shell cygpath -w "$(TOPDIR)"}
WZDSSTDINCDIR := ${shell cygpath -w "$(ZDSSTDINCDIR)"}
WZDSZILOGINCDIR := ${shell cygpath -w "$(ZDSZILOGINCDIR)"}
WZDSDEVINCDIR := ${shell cygpath -w "$(ZDSDEVINCDIR)"}
WZDSSTDLIBDIR := ${shell cygpath -w "$(ZDSSTDLIBDIR)"}
WZDSZILOGLIBDIR := ${shell cygpath -w "$(ZDSZILOGLIBDIR)"}
# Escaped versions
ETOPDIR := ${shell echo "$(WTOPDIR)" | sed -e "s/ /%20/g"}
EZDSSTDINCDIR := ${shell echo "$(WZDSSTDINCDIR)" | sed -e "s/ /%20/g"}
EZDSZILOGINCDIR := ${shell echo "$(WZDSZILOGINCDIR)" | sed -e "s/ /%20/g"}
# CFLAGs
ARCHASMINCLUDES = -include:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR)'
EARCHASMINCLUDES = -include:'$(ETOPDIR)\include;$(EZDSSTDINCDIR);$(EZDSZILOGINCDIR)'
ARCHSTDINCLUDES = -stdinc:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR)'
ARCHUSRINCLUDES = -usrinc:'.'
endif endif
# These are the same directories but with the directory separator
# character swapped as needed by the ZDS-II compiler
WTOPDIR := ${shell cygpath -w "$(TOPDIR)"}
WZDSSTDINCDIR := ${shell cygpath -w "$(ZDSSTDINCDIR)"}
WZDSZILOGINCDIR := ${shell cygpath -w "$(ZDSZILOGINCDIR)"}
WZDSDEVINCDIR := ${shell cygpath -w "$(ZDSDEVINCDIR)"}
WZDSSTDLIBDIR := ${shell cygpath -w "$(ZDSSTDLIBDIR)"}
WZDSZILOGLIBDIR := ${shell cygpath -w "$(ZDSZILOGLIBDIR)"}
# Escaped versions
ETOPDIR := ${shell echo "$(WTOPDIR)" | sed -e "s/ /%20/g"}
EZDSSTDINCDIR := ${shell echo "$(WZDSSTDINCDIR)" | sed -e "s/ /%20/g"}
EZDSZILOGINCDIR := ${shell echo "$(WZDSZILOGINCDIR)" | sed -e "s/ /%20/g"}
# Assembler definitions # Assembler definitions
ifeq ($(CONFIG_ARCH_CHIP_Z8F642X),y) ifeq ($(CONFIG_ARCH_CHIP_Z8F642X),y)
ARCHFAMILYDEF = _Z8ENCORE_F642X ARCHFAMILYDEF = _Z8ENCORE_F642X
ARCHSERIESDEF = _Z8ENCORE_64K_SERIES ARCHSERIESDEF = _Z8ENCORE_64K_SERIES
ARCHREVAA = -NOrevaa ARCHREVAA = -NOrevaa
ifeq ($(CONFIG_ARCH_CHIP_Z8F6423),y) ifeq ($(CONFIG_ARCH_CHIP_Z8F6423),y)
ARCHCPU = Z8F6423 ARCHCPU = Z8F6423
ARCHCPUDEF = _Z8F6423 ARCHCPUDEF = _Z8F6423
endif endif
endif endif
ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y) ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y)
ARCHFAMILYDEF = _Z8ENCORE_F640X ARCHFAMILYDEF = _Z8ENCORE_F640X
ARCHSERIESDEF = _Z8ENCORE_640_FAMILY ARCHSERIESDEF = _Z8ENCORE_640_FAMILY
ARCHREVAA = -revaa ARCHREVAA = -revaa
ifeq ($(CONFIG_ARCH_CHIP_Z8F6403),y) ifeq ($(CONFIG_ARCH_CHIP_Z8F6403),y)
ARCHCPU = Z8F6403 ARCHCPU = Z8F6403
ARCHCPUDEF = _Z8F6403 ARCHCPUDEF = _Z8F6403
endif endif
endif endif
@ -116,8 +140,6 @@ ARCHASMCPUFLAGS = -cpu:$(ARCHCPU) -NOigcase $(ARCHREVAA)
ARCHASMLIST = -list -NOlistmac -name -pagelen:56 -pagewidth:80 -quiet ARCHASMLIST = -list -NOlistmac -name -pagelen:56 -pagewidth:80 -quiet
ARCHASMWARNINGS = -warn ARCHASMWARNINGS = -warn
ARCHASMDEFINES = -define:$(ARCHCPUDEF)=1 -define:$(ARCHSERIESDEF)=1 -define:$(ARCHFAMILYDEF)=1 -define:__ASSEMBLY__ ARCHASMDEFINES = -define:$(ARCHCPUDEF)=1 -define:$(ARCHSERIESDEF)=1 -define:$(ARCHFAMILYDEF)=1 -define:__ASSEMBLY__
ARCHASMINCLUDES = -include:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR)'
EARCHASMINCLUDES = -include:'$(ETOPDIR)\include;$(EZDSSTDINCDIR);$(EZDSZILOGINCDIR)'
AFLAGS = $(ARCHASMCPUFLAGS) $(ARCHASMINCLUDES) $(ARCHASMLIST) $(ARCHASMWARNINGS) $(ARCHASMOPTIMIZATION) AFLAGS = $(ARCHASMCPUFLAGS) $(ARCHASMINCLUDES) $(ARCHASMLIST) $(ARCHASMWARNINGS) $(ARCHASMOPTIMIZATION)
# Compiler definitions # Compiler definitions
@ -135,12 +157,11 @@ ARCHPICFLAGS =
ARCHWARNINGS = -warn ARCHWARNINGS = -warn
ARCHDEFINES = -define:$(ARCHFAMILYDEF) -define:$(ARCHCPUDEF) -define:$(ARCHSERIESDEF) ARCHDEFINES = -define:$(ARCHFAMILYDEF) -define:$(ARCHCPUDEF) -define:$(ARCHSERIESDEF)
ARCHSTDINCLUDES = -stdinc:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR);$(WZDSDEVINCDIR)' ARCHSTDINCLUDES = -stdinc:'$(WTOPDIR)\include;$(WZDSSTDINCDIR);$(WZDSZILOGINCDIR);$(WZDSDEVINCDIR)'
ARCHUSRINCLUDES = -usrinc:'.'
ARCHINCLUDES = $(ARCHSTDINCLUDES) $(ARCHUSRINCLUDES) ARCHINCLUDES = $(ARCHSTDINCLUDES) $(ARCHUSRINCLUDES)
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHLIST) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHLIST) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
CPPDEFINES = -D$(ARCHFAMILYDEF) -D$(ARCHCPUDEF) -D$(ARCHSERIESDEF) -D__ASSEMBLY__ CPPDEFINES = -D$(ARCHFAMILYDEF) -D$(ARCHCPUDEF) -D$(ARCHSERIESDEF) -D__ASSEMBLY__
CPPINCLUDES = -I$(TOPDIR)/include CPPINCLUDES = -I$(TOPDIR)$(DELIM)include
CPPFLAGS = $(CPPDEFINES) $(CPPINCLUDES) CPPFLAGS = $(CPPDEFINES) $(CPPINCLUDES)
# Librarian definitions # Librarian definitions
@ -149,16 +170,16 @@ ARFLAGS = -quiet -warn
# Linker definitions # Linker definitions
LINKCMDTEMPLATE = $(TOPDIR)/configs/z8encore000zco/ostest/ostest.linkcmd LINKCMDTEMPLATE = $(TOPDIR)$(DELIM)configs$(DELIM)z8encore000zco$(DELIM)ostest$(DELIM)ostest.linkcmd
# Tool names/pathes # Tool names/pathes
CROSSDEV = CROSSDEV =
CC = $(ZDSBINDIR)/ez8cc.exe CC = ez8cc.exe
CPP = gcc -E CPP = gcc -E
LD = $(ZDSBINDIR)/ez8link.exe LD = ez8link.exe
AS = $(ZDSBINDIR)/ez8asm.exe AS = ez8asm.exe
AR = $(ZDSBINDIR)/ez8lib.exe AR = ez8lib.exe
# File extensions # File extensions
@ -171,51 +192,89 @@ EXEEXT = .hex
# to compile and assembly source files and to insert the resulting # to compile and assembly source files and to insert the resulting
# object files into an archive # object files into an archive
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
define PREPROCESS
@echo CPP: $1->$2
$(Q) "$(CPP)" $(CPPFLAGS) $1 -o $2
endef
define COMPILE
$(Q) "$(CC)" $(CFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
endef
define ASSEMBLE
$(Q) "$(AS)" $(AFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
endef
define ARCHIVE
echo AR: $2
$(Q) for %%G in ($(2)) do ( "$(AR)" $(ARFLAGS) $1=-+%%G )
endef
define CLEAN
$(Q) if exist *.obj (del /f /q *.obj)
$(Q) if exist *.src (del /f /q *.src)
$(Q) if exist *.lib (del /f /q *.lib)
$(Q) if exist *.hex (del /f /q *.hex)
$(Q) if exist *.lod (del /f /q *.lod)
$(Q) if exist *.lst (del /f /q *.lst)
endef
else
define PREPROCESS define PREPROCESS
@echo "CPP: $1->$2" @echo "CPP: $1->$2"
$(Q) "$(CPP)" $(CPPFLAGS) $1 -o $2 $(Q) "$(CPP)" $(CPPFLAGS) $1 -o $2
endef endef
define COMPILE define COMPILE
@#echo "CC: $1"
$(Q) (wfile=`cygpath -w "$1"`; "$(CC)" $(CFLAGS) $$wfile) $(Q) (wfile=`cygpath -w "$1"`; "$(CC)" $(CFLAGS) $$wfile)
endef endef
define ASSEMBLE define ASSEMBLE
@#echo "AS: $1"
$(Q) (wfile=`cygpath -w "$1"`; "$(AS)" $(AFLAGS) $$wfile) $(Q) (wfile=`cygpath -w "$1"`; "$(AS)" $(AFLAGS) $$wfile)
endef endef
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
define ARCHIVE
echo "AR: $2";
$(Q) for %%G in ($(2)) do ( "$(AR)" $(ARFLAGS) $1=-+%%G )
endef
else
define ARCHIVE define ARCHIVE
$(Q) for __obj in $(2) ; do \ $(Q) for __obj in $(2) ; do \
echo "AR: $$__obj"; \ echo "AR: $$__obj"; \
"$(AR)" $(ARFLAGS) $1=-+$$__obj || { echo "$(AR) $1=-+$$__obj FAILED!" ; exit 1 ; } \ "$(AR)" $(ARFLAGS) $1=-+$$__obj || { echo "$(AR) $1=-+$$__obj FAILED!" ; exit 1 ; } \
done done
endef endef
endif
define CLEAN define CLEAN
$(Q) rm -f *.obj *.src *.lib *.hex *.lst $(Q) rm -f *.obj *.src *.lib *.hex *.lod *.lst
endef endef
endif
# This is the tool to use for dependencies (i.e., none) # Windows native host tool definitions
MKDEP = $(TOPDIR)/tools/mknulldeps.sh ifeq ($(CONFIG_WINDOWS_NATIVE),y)
HOSTCC = mingw32-gcc.exe
HOSTINCLUDES = -I.
HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe
HOSTLDFLAGS =
HOSTEXEEXT = .exe
# ZDS-II cannot follow Cygwin soft links, so we will have to use directory copies # Windows-native host tools
DIRLINK = $(TOPDIR)/tools/winlink.sh MKDEP = $(TOPDIR)\tools\mkdeps.exe --winnative
DIRUNLINK = $(TOPDIR)/tools/unlink.sh else
# Linux/Cygwin host tool definitions # Linux/Cygwin host tool definitions
HOSTCC = gcc HOSTCC = gcc
HOSTINCLUDES = -I. HOSTINCLUDES = -I.
HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe
HOSTLDFLAGS = HOSTLDFLAGS =
# This is the tool to use for dependencies (i.e., none)
MKDEP = $(TOPDIR)$(DELIM)tools$(DELIM)mknulldeps.sh
# ZDS-II cannot follow Cygwin soft links, so we will have to use directory copies
DIRLINK = $(TOPDIR)$(DELIM)tools$(DELIM)winlink.sh
DIRUNLINK = $(TOPDIR)$(DELIM)tools$(DELIM)unlink.sh
endif

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# configs/z8encore000zco/ostest/setenv.sh # configs/z8encore000zco/ostest/setenv.sh
# #
# Copyright (C) 2008 Gregory Nutt. All rights reserved. # Copyright (C) 2008, 2009, 2012 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org> # Author: Gregory Nutt <gnutt@nuttx.org>
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without
@ -33,20 +33,31 @@
# #
# Check how we were executed # Check how we were executed
# #
if [ "$(basename $0)" = "setenv.sh" ] ; then if [ "$_" = "$0" ] ; then
echo "You must source this script, not run it!" 1>&2 echo "You must source this script, not run it!" 1>&2
exit 1 exit 1
fi fi
# WD=`pwd`
# The ZDS-II toolchain lies outside of the Cygwin "sandbox" and if [ ! -x "setenv.sh" ]; then
# attempts to set the PATH variable do not have the desired effect. echo "This script must be executed from the top-level NuttX build directory"
# Instead, alias are provided for all of the ZDS-II command line tools. exit 1
# Version 4.10.1 installed in the default location is assumed here. fi
#
ZDSBINDIR="C:/Program\ Files/ZiLOG/ZDSII_Z8Encore!_4.10.1/bin"
alias ez8asm="${ZDSBINDIR}/ez8asm.exe"
alias ez8cc="${ZDSBINDIR}/ez8cc.exe"
alias ez8lib="${ZDSBINDIR}/ez8lib.exe"
alias ez8link="${ZDSBINDIR}/ez8link.exe"
if [ -z "${PATH_ORIG}" ]; then
export PATH_ORIG="${PATH}"
fi
#
# This is the Cygwin path to location where the XDS-II tools were installed
#
TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/ZiLOG/ZDSII_Z8Encore!_5.0.0/bin"
#
# Add the path to the toolchain to the PATH varialble. NOTE that /bin and /usr/bin
# preceded the toolchain bin directory. This is because the ZDSII bin directory
# includes binaries like make.exe that will interfere with the normal build process
# if we do not give priority to the versions at /bin and /usr/bin.
#
export PATH="/bin:/usr/bin:${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"
echo "PATH : ${PATH}"

View File

@ -0,0 +1,50 @@
@echo off
rem configs/z8encore000zco/scripts/setenv.bat
rem
rem Copyright (C) 2012 Gregory Nutt. All rights reserved.
rem Author: Gregory Nutt <gnutt@nuttx.org>
rem
rem Redistribution and use in source and binary forms, with or without
rem modification, are permitted provided that the following conditions
rem are met:
rem
rem 1. Redistributions of source code must retain the above copyright
rem notice, this list of conditions and the following disclaimer.
rem 2. Redistributions in binary form must reproduce the above copyright
rem notice, this list of conditions and the following disclaimer in
rem the documentation and/or other materials provided with the
rem distribution.
rem 3. Neither the name NuttX nor the names of its contributors may be
rem used to endorse or promote products derived from this software
rem without specific prior written permission.
rem
rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
rem FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
rem COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
rem INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
rem BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
rem OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
rem AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
rem LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
rem ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
rem POSSIBILITY OF SUCH DAMAGE.
rem This is the location where I installed in the MinGW compiler. With
rem this configuration, it is recommended that you do NOT install the
rem MSYS tools; they conflict with the GNUWin32 tools. See
rem http://www.mingw.org/ for further info.
set PATH=C:\MinGW\bin;%PATH%
rem This is the location where I installed the ZDS-II toolchain.
set PATH=C:\Program Files (x86)\ZiLOG\ZZDSII_Z8Encore!_5.0.0\bin;%PATH%
rem This is the location where I installed the GNUWin32 tools. See
rem http://gnuwin32.sourceforge.net/.
set PATH=C:\gnuwin32\bin;%PATH%
echo %PATH%

View File

@ -23,12 +23,23 @@ ZDS-II Compiler Versions
/* Set up global variables */ /* Set up global variables */
4.9.5 Version 4.9.5
This is the latest tool version listed on the ZiLOG site for the Z8F6403. This is the latest tool version listed on the ZiLOG site for the Z8F6403.
However, it uses different compiler command line arguments. However, it uses different compiler command line arguments.
Version 5.0.0
On November 18, 2012, all of the z8 configurations were converted to use 5.0.0,
but have not been verified on a running target.
Paths were also updated that are specific to a 32-bit toolchain running on
a 64 bit windows platform. Change to a different toolchain, you will need
to modify the versioning in Make.defs and setenv.sh; if you want to build
on a different platform, you will need to change the path in the ZDS binaries
in those same files.
Other Versions Other Versions
If you use any version of ZDS-II other than 4.10.1 or if you install ZDS-II If you use any version of ZDS-II other than 5.0.0 or if you install ZDS-II
at any 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/z8f64200100kit/*/setenv.sh and (2) two files: (1) configs/z8f64200100kit/*/setenv.sh and (2)
configs/z8f64200100kit/*/Make.defs. configs/z8f64200100kit/*/Make.defs.
@ -57,4 +68,44 @@ available:
This builds the examples/ostest application for execution from FLASH. This builds the examples/ostest application for execution from FLASH.
See examples/README.txt for information about ostest. See examples/README.txt for information about ostest.
NOTES:
1. This configuration uses the mconf-based configuration tool. To
change this configuration using that tool, you should:
a. Build and install the mconf tool. See nuttx/README.txt and
misc/tools/
b. Execute 'make menuconfig' in nuttx/ in order to start the
reconfiguration process.
2. By default, this configuration assumes that you are using the
Cygwin environment on Windows. An option is to use the native
CMD.exe window build as described in the top-level README.txt
file. To set up that configuration:
-CONFIG_WINDOWS_CYGWIN=y
+CONFIG_WINDOWS_NATIVE=y
And after configuring, make sure that CONFIG_APPS_DIR uses
the back slash character. For example:
CONFIG_APPS_DIR="..\apps"
NOTES:
a. If you need to change the toolchain path used in Make.defs, you
will need to use the short 8.3 filenames to avoid spaces. On my
PC, C:\PROGRA~1\ is is C:\Program Files\ and C:\PROGRA~2\ is
C:\Program Files (x86)\
b. You can't use setenv.sh in the native Windows environment. Try
scripts/setenv.bat instead.
c. At present, the native Windows build fails at the final link stages.
The failure is due to problems in arch/z80/src/nuttx/linkcmd that
is autogenerated by arch/z80/src/Makefile.zdsii. The basic program
is the spurious spaces and and carrirage returns are generated at
the end of the lines after a line continuation (\ ^M). If these
trailing bad characters are manually eliminated, then the build
will succeed on the next try.
Check out any README.txt files in these <sub-directory>s. Check out any README.txt files in these <sub-directory>s.

View File

@ -36,7 +36,14 @@
include $(TOPDIR)/.config include $(TOPDIR)/.config
include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/tools/Config.mk
# These are the directories where the ZDS-II toolchain is installed # These are the directories where the ZDS-II toolchain is installed. NOTE
# that short 8.3 path names are used in order to avoid spaces. On my machine
# I have:
#
# C:\PROGRA~1\ = C:\Profram Files\
# C:\PROGRA~2\ = C:\Program Files (x86)\
#
# Your PC may be configured differently.
ZDSVERSION := 5.0.0 ZDSVERSION := 5.0.0
@ -63,7 +70,7 @@ endif
ARCHUSRINCLUDES = -usrinc:. ARCHUSRINCLUDES = -usrinc:.
else else
WINTOOL := y WINTOOL := y
ZDSINSTALLDIR := C:/Program Files (x86)/ZiLOG/ZDSII_Z8Encore!_$(ZDSVERSION) ZDSINSTALLDIR := C:/PROGRA~2/ZiLOG/ZDSII_Z8Encore!_$(ZDSVERSION)
INSTALLDIR = ${shell cygpath -u "$(ZDSINSTALLDIR)"} INSTALLDIR = ${shell cygpath -u "$(ZDSINSTALLDIR)"}
ZDSBINDIR := $(INSTALLDIR)/bin ZDSBINDIR := $(INSTALLDIR)/bin
ZDSSTDINCDIR := $(INSTALLDIR)/include/std ZDSSTDINCDIR := $(INSTALLDIR)/include/std
@ -179,7 +186,7 @@ AR = ez8lib.exe
ASMEXT = .asm ASMEXT = .asm
OBJEXT = .obj OBJEXT = .obj
LIBEXT = .lib LIBEXT = .lib
EXEXT = .hex EXEEXT = .hex
# These are the macros that will be used in the NuttX make system # These are the macros that will be used in the NuttX make system
# to compile and assembly source files and to insert the resulting # to compile and assembly source files and to insert the resulting

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# configs/ez80f910200kitg/ostest/setenv.sh # configs/z8f64200100kit/ostest/setenv.sh
# #
# Copyright (C) 2008, 2009 Gregory Nutt. All rights reserved. # Copyright (C) 2008, 2009, 2012 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org> # Author: Gregory Nutt <gnutt@nuttx.org>
# #
# Redistribution and use in source and binary forms, with or without # Redistribution and use in source and binary forms, with or without

View File

@ -1,7 +1,7 @@
/************************************************************ /************************************************************
* libc/string/lib_memcmp.c * libc/string/lib_memcmp.c
* *
* Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. * Copyright (C) 2007, 2011-2012 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org> * Author: Gregory Nutt <gnutt@nuttx.org>
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -50,7 +50,7 @@
************************************************************/ ************************************************************/
#ifndef CONFIG_ARCH_MEMCMP #ifndef CONFIG_ARCH_MEMCMP
int memcmp(const void *s1, const void *s2, size_t n) int memcmp(FAR const void *s1, FAR const void *s2, size_t n)
{ {
unsigned char *p1 = (unsigned char *)s1; unsigned char *p1 = (unsigned char *)s1;
unsigned char *p2 = (unsigned char *)s2; unsigned char *p2 = (unsigned char *)s2;

View File

@ -50,7 +50,7 @@
************************************************************/ ************************************************************/
#ifndef CONFIG_ARCH_MEMMOVE #ifndef CONFIG_ARCH_MEMMOVE
void *memmove(void *dest, const void *src, size_t count) FAR void *memmove(FAR void *dest, FAR const void *src, size_t count)
{ {
char *tmp, *s; char *tmp, *s;
if (dest <= src) if (dest <= src)