summaryrefslogtreecommitdiff
path: root/nuttx/configs/z80sim
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-12-07 19:02:57 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-12-07 19:02:57 +0000
commitbf0e0bb95ec767c971d01d70f1ba027ef585ce14 (patch)
tree59900051a4e3fa3ae3024115f7532c2eeda7aefd /nuttx/configs/z80sim
parent3c5cba9b94c3f5365034f044e18a58d425508c87 (diff)
downloadpx4-nuttx-bf0e0bb95ec767c971d01d70f1ba027ef585ce14.tar.gz
px4-nuttx-bf0e0bb95ec767c971d01d70f1ba027ef585ce14.tar.bz2
px4-nuttx-bf0e0bb95ec767c971d01d70f1ba027ef585ce14.zip
Redesign z80 build so that mkhpbase.sh bash script is not needed; remove support for older SDCC toolchains; Re-verify z80 build on Linux
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5416 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/configs/z80sim')
-rw-r--r--nuttx/configs/z80sim/README.txt72
-rw-r--r--nuttx/configs/z80sim/nsh/Make.defs18
-rw-r--r--nuttx/configs/z80sim/ostest/Make.defs18
-rw-r--r--nuttx/configs/z80sim/pashello/Make.defs18
-rw-r--r--nuttx/configs/z80sim/sdcc-2.6.0-asz80-symlen.patch11
-rw-r--r--nuttx/configs/z80sim/src/z80_lowputc.c19
6 files changed, 18 insertions, 138 deletions
diff --git a/nuttx/configs/z80sim/README.txt b/nuttx/configs/z80sim/README.txt
index c85e236ef..37db83533 100644
--- a/nuttx/configs/z80sim/README.txt
+++ b/nuttx/configs/z80sim/README.txt
@@ -42,10 +42,7 @@ Configuring NuttX
reconfiguration process.
2. The default setup for this configuration uses a windows native build.
- As of this writing, the native Windows build still does not work. This
- is due to issues in arch/z80/src/Makefile and in the Bash script
- arch/z80/src/mkhpbase.sh which, of course, cannot be used in a Windows
- CMD.exe shell. These configuration is broken for the time being.
+ As of this writing, the native Windows build still does not work.
This configuration was last verified sucessfully prior to the
the configure to Kconfig/mconf tool using SDCC 2.6.0 built to run
@@ -104,6 +101,8 @@ selected with:
CONFIG_Z80_TOOLCHAIN_SDCCL=y : SDCC for Linux, MAC OSX or Cygwin (see below)
CONFIG_Z80_TOOLCHAIN_SDCCW=y : SDCC for Win32
+SDCC versions 3.2.0 or higher are recommended.
+
Building the SDCC toolchain
^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -120,12 +119,6 @@ compatible with this build. First start with the usual steps
cd sdcc
./configure
-But before making, we need to apply a patch to the SDCC 2.6.0 source
-so that the z80 assembler can handle long symbol names
-
- Apply sdcc-2.6.0-asz80-symlen.patch
- cd sdcc/device/lib
-
Then make the SDCC binaries
cd sdcc
@@ -135,62 +128,3 @@ and install SDCC:
sudo make install
-SDCC Update
-^^^^^^^^^^^
-
-I have had some problems building sdcc-2.6.0 on my current UBUNTU
-release (9.10). I had other problems building sdcc-2.9.0 on UBUNTU 9.10.
-I suspect that the newer gcc toolchains are causing problems for these
-older SDCC releases.
-
-A 20091106 snapshot did build with no major problems on UBUNTU 9.10, but
-has some compatibilty problems with the older SDCC compiler. For one, you
-will need to change the Z80 assember name and options in the Make.defs
-files as follows:
-
--AS = as-z80
-+AS = sdasz80
-
-- @$(AS) $(ASFLAGS) $2 $1
-+ $(AS) $(ASFLAGS) $1
-
-For another, I had other problems building with that 20091106 that look
-like compiler bugs. If you are using UBUNTU 9.10, you may have to either
-(1) downgrade your GCC compiler to a version 3.x compiler and use one of
-the older stable releases, or (2) wait for the next stable SDCC release
-after 2.9.0.
-
-See below: If you wish to continue using the older SDCC toolchain, you
-must now also add CONFIG_SDCC_OLD=y to your configuration file.
-
-Newer SDCC Versions
-^^^^^^^^^^^^^^^^^^^
-
-This is the text of bug 3468951 reported on the SourceForge website:
-
-"Some obsolete stuff in z80sim port," (submitted by Philipp Klaus Krause):
-
- The simz80 port needs a few updates to work well with current sdcc versions,
- and has some unecessary stuff:
-
- * The linker name for Make.defs should be sdldz80
- * The assembler name for Make.defs should be sdasz80
- * _asm and _endasm in z80_io.c and z80_irq.c should be replaced by __asm
- and __endasm
- * The --stack-auto --int-long-reent --float-reent options or Make.defs should
- be removed, as they have no effect on sdcc's z80 port
- * The current assembler AFAIK can handle long symbol names, so the
- sdcc-2.6.0-asz80-symlen.patch is unnecessary, and it and the corresponding
- section from the README can be removed.
-
-These changes *have* been incorporated but only partially verified. In order
-to get a successful compilation, I had to copy stdarg.h out of the SDCC source
-(at sdcc/device/include/stdarg.h) to include/nuttx/stdarg.h.
-
-There are also some library related issues when you get to the final build
-that I have not looked into yet.
-
-If you want to back out these change and continue to use the older toolchain
-in your build, simpy define the following in your configuration file:
-
- CONFIG_SDCC_OLD=y
diff --git a/nuttx/configs/z80sim/nsh/Make.defs b/nuttx/configs/z80sim/nsh/Make.defs
index 1edd5fdcf..4aa82ae71 100644
--- a/nuttx/configs/z80sim/nsh/Make.defs
+++ b/nuttx/configs/z80sim/nsh/Make.defs
@@ -58,18 +58,10 @@ endif
CROSSDEV =
CC = sdcc
CPP = sdcpp
-
-ifeq ($(CONFIG_SDCC_OLD),y)
- LD = link-z80
- AS = as-z80
- AR = sdcclib -a
- ARCHCPUFLAGS = -mz80 --stack-auto --int-long-reent --float-reent
-else
- LD = sdldz80
- AS = sdasz80
- AR = sdar -r
- ARCHCPUFLAGS = -mz80
-endif
+LD = sdldz80
+AS = sdasz80
+AR = sdar -r
+ARCHCPUFLAGS = -mz80
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
ARCHOPTIMIZATION = --debug
@@ -84,7 +76,7 @@ ARCHINCLUDES = -I. -I$(TOPDIR)$(DELIM)include
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
-AFLAGS = -x -a -l -o -s
+AFLAGS = -x -a -l -o -s -g
SDCCLIB = z80.lib
diff --git a/nuttx/configs/z80sim/ostest/Make.defs b/nuttx/configs/z80sim/ostest/Make.defs
index 91d30a061..be0fc2470 100644
--- a/nuttx/configs/z80sim/ostest/Make.defs
+++ b/nuttx/configs/z80sim/ostest/Make.defs
@@ -58,18 +58,10 @@ endif
CROSSDEV =
CC = sdcc
CPP = sdcpp
-
-ifeq ($(CONFIG_SDCC_OLD),y)
- LD = link-z80
- AS = as-z80
- AR = sdcclib -a
- ARCHCPUFLAGS = -mz80 --stack-auto --int-long-reent --float-reent
-else
- LD = sdldz80
- AS = sdasz80
- AR = sdar -r
- ARCHCPUFLAGS = -mz80
-endif
+LD = sdldz80
+AS = sdasz80
+AR = sdar -r
+ARCHCPUFLAGS = -mz80
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
ARCHOPTIMIZATION = --debug
@@ -84,7 +76,7 @@ ARCHINCLUDES = -I. -I$(TOPDIR)$(DELIM)include
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
-AFLAGS = -x -a -l -o -s
+AFLAGS = -x -a -l -o -s -g
SDCCLIB = z80.lib
diff --git a/nuttx/configs/z80sim/pashello/Make.defs b/nuttx/configs/z80sim/pashello/Make.defs
index 2dca56a0e..05ece7666 100644
--- a/nuttx/configs/z80sim/pashello/Make.defs
+++ b/nuttx/configs/z80sim/pashello/Make.defs
@@ -58,18 +58,10 @@ endif
CROSSDEV =
CC = sdcc
CPP = sdcpp
-
-ifeq ($(CONFIG_SDCC_OLD),y)
- LD = link-z80
- AS = as-z80
- AR = sdcclib -a
- ARCHCPUFLAGS = -mz80 --stack-auto --int-long-reent --float-reent
-else
- LD = sdldz80
- AS = sdasz80
- AR = sdar -r
- ARCHCPUFLAGS = -mz80
-endif
+LD = sdldz80
+AS = sdasz80
+AR = sdar -r
+ARCHCPUFLAGS = -mz80
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
ARCHOPTIMIZATION = --debug
@@ -84,7 +76,7 @@ ARCHINCLUDES = -I. -I$(TOPDIR)$(DELIM)include
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
-AFLAGS = -x -a -l -o -s
+AFLAGS = -x -a -l -o -s -g
SDCCLIB = z80.lib
diff --git a/nuttx/configs/z80sim/sdcc-2.6.0-asz80-symlen.patch b/nuttx/configs/z80sim/sdcc-2.6.0-asz80-symlen.patch
deleted file mode 100644
index d91c18d98..000000000
--- a/nuttx/configs/z80sim/sdcc-2.6.0-asz80-symlen.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- sdcc/as/z80/asm.h 2007-12-30 16:49:53.000000000 -0600
-+++ sdcc.orig/as/z80/asm.h 2007-12-30 16:49:14.000000000 -0600
-@@ -65,7 +65,7 @@
- #define RTTERM ')' /* Right expression delimeter */
-
- #ifdef SDK
--#define NCPS 80 /* characters per symbol */
-+#define NCPS 32 /* characters per symbol */
- #else /* SDK */
- #define NCPS 8 /* Chars. per symbol */
- #endif /* SDK */
diff --git a/nuttx/configs/z80sim/src/z80_lowputc.c b/nuttx/configs/z80sim/src/z80_lowputc.c
index 9b46b4880..9bfe266c1 100644
--- a/nuttx/configs/z80sim/src/z80_lowputc.c
+++ b/nuttx/configs/z80sim/src/z80_lowputc.c
@@ -76,15 +76,6 @@
void z80_lowputc(char ch) __naked
{
-#ifdef CONFIG_SDCC_OLD
- _asm
- ld hl, #2
- add hl, sp
- ld a, (hl)
- out (0xbe), a
- ret
- _endasm;
-#else
__asm__ (
"\tld hl, #2\n"
"\tadd hl, sp\n"
@@ -92,7 +83,6 @@ void z80_lowputc(char ch) __naked
"\tout (0xbe), a\n"
"\tret\n"
);
-#endif
}
/********************************************************************************
@@ -104,19 +94,10 @@ void z80_lowputc(char ch) __naked
char z80_lowgetc(void) __naked
{
-#ifdef CONFIG_SDCC_OLD
- _asm
- in a, (0xbe)
- ld l, a
- ld h, #0
- ret
- _endasm;
-#else
__asm__ (
"\tin a, (0xbe)\n"
"\tld l, a\n"
"\tld h, #0\n"
"\tret\n"
);
-#endif
}