summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-02-11 20:31:36 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-02-11 20:31:36 +0000
commitbec5afdfb8ac3ef9abf83433f09bc711951479f1 (patch)
treeb5b62d62fe4c8eb9761abb6dd697784572e425bb
parent86afffb7b3441d1ac33e5b82136bd58c3b0e8a97 (diff)
downloadnuttx-bec5afdfb8ac3ef9abf83433f09bc711951479f1.tar.gz
nuttx-bec5afdfb8ac3ef9abf83433f09bc711951479f1.tar.bz2
nuttx-bec5afdfb8ac3ef9abf83433f09bc711951479f1.zip
Fixes for z8 compilation
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@669 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r--nuttx/arch/z80/src/Makefile.sdcc16
-rw-r--r--nuttx/arch/z80/src/Makefile.zdsii28
-rw-r--r--nuttx/arch/z80/src/common/up_allocateheap.c6
-rw-r--r--nuttx/arch/z80/src/common/up_arch.h2
-rw-r--r--nuttx/arch/z80/src/common/up_assert.c2
-rw-r--r--nuttx/arch/z80/src/common/up_exit.c2
-rw-r--r--nuttx/arch/z80/src/common/up_internal.h6
-rw-r--r--nuttx/arch/z80/src/common/up_releasepending.c2
-rw-r--r--nuttx/arch/z80/src/common/up_reprioritizertr.c2
-rw-r--r--nuttx/arch/z80/src/common/up_unblocktask.c2
-rw-r--r--nuttx/arch/z80/src/z8/Make.defs6
-rw-r--r--nuttx/arch/z80/src/z80/Make.defs13
-rw-r--r--nuttx/arch/z80/src/z80/z80_initialstate.c (renamed from nuttx/arch/z80/src/common/up_initialstate.c)2
-rw-r--r--nuttx/configs/z8encore000zco/include/board.h12
-rw-r--r--nuttx/configs/z8encore000zco/ostest/defconfig2
-rw-r--r--nuttx/include/nuttx/compiler.h25
16 files changed, 82 insertions, 46 deletions
diff --git a/nuttx/arch/z80/src/Makefile.sdcc b/nuttx/arch/z80/src/Makefile.sdcc
index d45be7f93..13e56c4bf 100644
--- a/nuttx/arch/z80/src/Makefile.sdcc
+++ b/nuttx/arch/z80/src/Makefile.sdcc
@@ -104,15 +104,17 @@ $(SDCCLIBDIR)/myz80.lib: $(SDCCLIBDIR)/$(SDCCLIB)
# 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 "#ifndef __UP_MEM_H" >up_mem.h
+ @echo "#define __UP_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 "#include <nuttx/config.h>
@echo "" >>up_mem.h
- @echo "#endif /* __ARCH_MEM_H */" >>up_mem.h
+ @echo "#define CONFIG_STACK_END $(CONFIG_DRAM_SIZE)" >> up_mem.h
+ @echo "#define CONFIG_STACK_BASE (CONFIG_STACK_END - $(CONFIG_PROC_STACK_SIZE))" >> up_mem.h
+ @echo "#define CONFIG_HEAP1_END CONFIG_STACK_BASE" >> up_mem.h
+ @echo "#define CONFIG_HEAP1_BASE $(HEAP_BASE)" >> up_mem.h
+ @echo "" >>up_mem.h
+ @echo "#endif /* __UP_MEM_H */" >>up_mem.h
asm_mem.h:
@echo " UP_COMPILER_OTHER == 0" > asm_mem.h
diff --git a/nuttx/arch/z80/src/Makefile.zdsii b/nuttx/arch/z80/src/Makefile.zdsii
index 199293ef3..c6dcf653c 100644
--- a/nuttx/arch/z80/src/Makefile.zdsii
+++ b/nuttx/arch/z80/src/Makefile.zdsii
@@ -77,12 +77,30 @@ $(AOBJS) $(HEAD_AOBJ): %$(OBJEXT): %$(ASMEXT)
$(COBJS): %$(OBJEXT): %.c
$(call COMPILE, `cygpath -w $<`, $@)
-libarch$(LIBEXT): $(OBJS)
+up_mem.h:
+ @echo "#ifndef __UP_MEM_H" >up_mem.h
+ @echo "#define __UP_MEM_H" >>up_mem.h
+ @echo "" >>up_mem.h
+ @echo "#include <nuttx/config.h>" >>up_mem.h
+ @echo "" >>up_mem.h
+ @echo "#ifndef CONFIG_HEAP1_BASE" >>up_mem.h
+ @echo " extern far unsigned long far_heapbot;" >>up_mem.h
+ @echo "# define CONFIG_HEAP1_BASE ((unsigned long)&far_heapbot)" >>up_mem.h
+ @echo "#endif" >>up_mem.h
+ @echo "" >>up_mem.h
+ @echo "#ifndef CONFIG_HEAP1_END" >>up_mem.h
+ @echo " extern far unsigned long far_heaptop;" >>up_mem.h
+ @echo "# define CONFIG_HEAP1_END ((unsigned long)&far_heaptop)" >>up_mem.h
+ @echo "#endif" >>up_mem.h
+ @echo "" >>up_mem.h
+ @echo "#endif /* __UP_MEM_H */" >>up_mem.h
+
+libarch$(LIBEXT): up_mem.h $(OBJS)
@( for obj in $(OBJS) ; do \
$(call ARCHIVE, $@, $${obj}); \
done ; )
-board/libboard$(LIBEXT):
+board/libboard$(LIBEXT): up_mem.h
@$(MAKE) -C board TOPDIR="$(TOPDIR)" libboard$(LIBEXT)
nuttx.linkcmd: $(LINKCMDTEMPLATE)
@@ -98,11 +116,11 @@ nuttx.linkcmd: $(LINKCMDTEMPLATE)
@echo " \"${shell cygpath -w $(ZDSSTDLIBDIR)/csioLDD$(LIBEXT)}\", \\" >>nuttx.linkcmd
@echo " \"${shell cygpath -w $(ZDSSTDLIBDIR)/zsldevinitdummy.lib$(LIBEXT)}\" \\" >>nuttx.linkcmd
-nuttx$(EXEEXT): $(HEAD_AOBJ) board/libboard$(LIBEXT) nuttx.linkcmd
+nuttx$(EXEEXT): up_mem.h $(HEAD_AOBJ) board/libboard$(LIBEXT) nuttx.linkcmd
@echo "LD: nuttx.hex"
@$(LD) $(LDFLAGS)
-.depend: Makefile chip/Make.defs $(DEPSRCS)
+.depend: Makefile up_mem.h chip/Make.defs $(DEPSRCS)
@if [ -e board/Makefile ]; then \
$(MAKE) -C board TOPDIR="$(TOPDIR)" depend ; \
fi
@@ -116,7 +134,7 @@ clean:
$(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \
fi
@rm -f libarch$(LIBEXT) *~ .*.swp
- @rm -f nuttx.linkcmd *.asm *.tmp *.map
+ @rm -f nuttx.linkcmd up_mem.h *.asm *.tmp *.map
$(call CLEAN)
distclean: clean
diff --git a/nuttx/arch/z80/src/common/up_allocateheap.c b/nuttx/arch/z80/src/common/up_allocateheap.c
index 0c5f9fc30..4b21b575c 100644
--- a/nuttx/arch/z80/src/common/up_allocateheap.c
+++ b/nuttx/arch/z80/src/common/up_allocateheap.c
@@ -76,8 +76,8 @@
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
{
- *heap_start = (FAR void*)UP_HEAP1_BASE;
- *heap_size = UP_HEAP1_END - UP_HEAP1_BASE;
+ *heap_start = (FAR void*)CONFIG_HEAP1_BASE;
+ *heap_size = CONFIG_HEAP1_END - CONFIG_HEAP1_BASE;
up_ledon(LED_HEAPALLOCATE);
}
@@ -93,6 +93,6 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
#if CONFIG_MM_REGIONS > 1
void up_addregion(void)
{
- mm_addregion((FAR void*)UP_HEAP2_BASE, UP_HEAP2_END - UP_HEAP2_BASE);
+ mm_addregion((FAR void*)CONFIG_HEAP2_BASE, CONFIG_HEAP2_END - CONFIG_HEAP2_BASE);
}
#endif
diff --git a/nuttx/arch/z80/src/common/up_arch.h b/nuttx/arch/z80/src/common/up_arch.h
index b0158325a..5ef0b932c 100644
--- a/nuttx/arch/z80/src/common/up_arch.h
+++ b/nuttx/arch/z80/src/common/up_arch.h
@@ -46,7 +46,7 @@
#endif
#include <arch/board/board.h>
-#include "chip.h"
+#include "chip/chip.h"
/************************************************************************************
* Definitions
diff --git a/nuttx/arch/z80/src/common/up_assert.c b/nuttx/arch/z80/src/common/up_assert.c
index f226c9431..c1e2e4a8c 100644
--- a/nuttx/arch/z80/src/common/up_assert.c
+++ b/nuttx/arch/z80/src/common/up_assert.c
@@ -46,8 +46,8 @@
#include <nuttx/irq.h>
#include <nuttx/arch.h>
-#include <chip/chip.h>
+#include "chip/chip.h"
#include "up_arch.h"
#include "os_internal.h"
#include "up_internal.h"
diff --git a/nuttx/arch/z80/src/common/up_exit.c b/nuttx/arch/z80/src/common/up_exit.c
index d8c94fece..45409800e 100644
--- a/nuttx/arch/z80/src/common/up_exit.c
+++ b/nuttx/arch/z80/src/common/up_exit.c
@@ -44,8 +44,8 @@
#include <debug.h>
#include <nuttx/arch.h>
-#include <chip/chip.h>
+#include "chip/chip.h"
#include "os_internal.h"
#include "up_internal.h"
diff --git a/nuttx/arch/z80/src/common/up_internal.h b/nuttx/arch/z80/src/common/up_internal.h
index d340a5631..e90bec766 100644
--- a/nuttx/arch/z80/src/common/up_internal.h
+++ b/nuttx/arch/z80/src/common/up_internal.h
@@ -41,7 +41,7 @@
****************************************************************************/
#include <arch/irq.h>
-#include <chip/chip.h>
+#include "chip/chip.h"
/****************************************************************************
* Definitions
@@ -111,8 +111,8 @@ extern int up_restoreusercontext(chipreg_t *regs);
extern FAR chipreg_t *up_decodeirq(uint8 rstno, FAR chipreg_t *regs);
extern void up_irqinitialize(void);
extern int up_timerisr(int irq, FAR chipreg_t *regs);
-extern void up_lowputc(char ch) __naked;
-extern char up_lowgetc(void) __naked;
+extern void up_lowputc(char ch) naked_function;
+extern char up_lowgetc(void) naked_function;
/* Defined in up_doirq.c */
diff --git a/nuttx/arch/z80/src/common/up_releasepending.c b/nuttx/arch/z80/src/common/up_releasepending.c
index 3b2b119a3..853cc7350 100644
--- a/nuttx/arch/z80/src/common/up_releasepending.c
+++ b/nuttx/arch/z80/src/common/up_releasepending.c
@@ -44,8 +44,8 @@
#include <debug.h>
#include <nuttx/arch.h>
-#include <chip/chip.h>
+#include "chip/chip.h"
#include "os_internal.h"
#include "up_internal.h"
diff --git a/nuttx/arch/z80/src/common/up_reprioritizertr.c b/nuttx/arch/z80/src/common/up_reprioritizertr.c
index b5961d92d..3adf33735 100644
--- a/nuttx/arch/z80/src/common/up_reprioritizertr.c
+++ b/nuttx/arch/z80/src/common/up_reprioritizertr.c
@@ -44,8 +44,8 @@
#include <debug.h>
#include <nuttx/arch.h>
-#include <chip/chip.h>
+#include "chip/chip.h"
#include "os_internal.h"
#include "up_internal.h"
diff --git a/nuttx/arch/z80/src/common/up_unblocktask.c b/nuttx/arch/z80/src/common/up_unblocktask.c
index 93bfdf472..1ce672a5d 100644
--- a/nuttx/arch/z80/src/common/up_unblocktask.c
+++ b/nuttx/arch/z80/src/common/up_unblocktask.c
@@ -44,8 +44,8 @@
#include <debug.h>
#include <nuttx/arch.h>
-#include <chip/chip.h>
+#include "chip/chip.h"
#include "os_internal.h"
#include "clock_internal.h"
#include "up_internal.h"
diff --git a/nuttx/arch/z80/src/z8/Make.defs b/nuttx/arch/z80/src/z8/Make.defs
index 8488efc96..3c48749d7 100644
--- a/nuttx/arch/z80/src/z8/Make.defs
+++ b/nuttx/arch/z80/src/z8/Make.defs
@@ -36,9 +36,9 @@
HEAD_ASRC = z8_head.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 \
+CMN_CSRCS = up_initialize.c up_allocateheap.c up_createstack.c \
+ up_releasestack.c up_interruptcontext.c up_blocktask.c \
+ up_unblocktask.c up_exit.c up_releasepending.c \
up_reprioritizertr.c up_copystate.c up_irq.c up_idle.c \
up_assert.c up_mdelay.c up_udelay.c \
up_schedulesigaction.c up_sigdeliver.c \
diff --git a/nuttx/arch/z80/src/z80/Make.defs b/nuttx/arch/z80/src/z80/Make.defs
index 1d4d5c29e..ae5bdf56b 100644
--- a/nuttx/arch/z80/src/z80/Make.defs
+++ b/nuttx/arch/z80/src/z80/Make.defs
@@ -36,14 +36,13 @@
HEAD_ASRC = z80_head.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 \
+CMN_CSRCS = up_initialize.c up_allocateheap.c up_createstack.c \
+ up_releasestack.c up_interruptcontext.c up_blocktask.c \
+ up_unblocktask.c up_exit.c up_releasepending.c \
up_reprioritizertr.c up_copystate.c up_irq.c up_idle.c \
- up_assert.c up_mdelay.c up_udelay.c \
- up_schedulesigaction.c up_sigdeliver.c \
- up_registerdump.c up_usestack.c
+ up_assert.c up_mdelay.c up_udelay.c up_schedulesigaction.c \
+ up_sigdeliver.c up_registerdump.c up_usestack.c
CHIP_ASRCS = z80_saveusercontext.asm z80_restoreusercontext.asm
-CHIP_CSRCS =
+CHIP_CSRCS = z80_initialstate.c
diff --git a/nuttx/arch/z80/src/common/up_initialstate.c b/nuttx/arch/z80/src/z80/z80_initialstate.c
index 0e26af9a2..767c7b605 100644
--- a/nuttx/arch/z80/src/common/up_initialstate.c
+++ b/nuttx/arch/z80/src/z80/z80_initialstate.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * common/up_initialstate.c
+ * arch/z80/src/z80/up_initialstate.c
*
* Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
diff --git a/nuttx/configs/z8encore000zco/include/board.h b/nuttx/configs/z8encore000zco/include/board.h
index 800752318..64632bee4 100644
--- a/nuttx/configs/z8encore000zco/include/board.h
+++ b/nuttx/configs/z8encore000zco/include/board.h
@@ -43,6 +43,18 @@
/****************************************************************************
* Definitions
****************************************************************************/
+
+/* LED pattern definitions */
+
+#define LED_STARTED 0
+#define LED_HEAPALLOCATE 1
+#define LED_IRQSENABLED 2
+#define LED_STACKCREATED 3
+#define LED_IDLE 4
+#define LED_INIRQ 5
+#define LED_ASSERTION 6
+#define LED_SIGNAL 6
+#define LED_PANIC 7
/****************************************************************************
* Public Functions
diff --git a/nuttx/configs/z8encore000zco/ostest/defconfig b/nuttx/configs/z8encore000zco/ostest/defconfig
index ad5c6a47e..5fa382a59 100644
--- a/nuttx/configs/z8encore000zco/ostest/defconfig
+++ b/nuttx/configs/z8encore000zco/ostest/defconfig
@@ -66,7 +66,7 @@ CONFIG_ARCH_BOARD_Z8ENCORE000ZCO=y
CONFIG_BOARD_LOOPSPERMSEC=1250
CONFIG_ENDIAN_BIG=y
CONFIG_DRAM_SIZE=65536
-CONFIG_ARCH_LEDS=y
+CONFIG_ARCH_LEDS=n
#
# Z16F specific device driver settings
#
diff --git a/nuttx/include/nuttx/compiler.h b/nuttx/include/nuttx/compiler.h
index 7183288cb..d14f816c0 100644
--- a/nuttx/include/nuttx/compiler.h
+++ b/nuttx/include/nuttx/compiler.h
@@ -59,9 +59,8 @@
/* Attributes
*
- * GCC supports weak symbols which can be used to reduce
- * code size because unnecessary "weak" functions can be
- * excluded from the link.
+ * GCC supports weak symbols which can be used to reduce code size because
+ * unnecessary "weak" functions can be excluded from the link.
*/
# ifndef __CYGWIN__
@@ -77,21 +76,20 @@
# define weak_const_function
#endif
-/* The noreturn attribute informs GCC that the function will
- * not return.
- */
+/* The noreturn attribute informs GCC that the function will not return. */
# define noreturn_function __attribute__ ((noreturn))
-/* The packed attribute informs GCC that the stucture elements
- * are packed, ignoring other alignment rules.
+/* The packed attribute informs GCC that the stucture elements are packed,
+ * ignoring other alignment rules.
*/
# define packed_struct __attribute__ ((packed))
-/* GCC does not support the reentrant attribute */
+/* GCC does not support the reentrant or naked attributes */
# define reentrant_function
+# define naked_function
/* GCC has does not use storage classes to qualify addressing */
@@ -158,6 +156,10 @@
# define noreturn_function
# define packed_struct
+/* SDCC does support "naked" function s*/
+
+# define naked_function __naked
+
/* The reentrant attribute informs SDCC that the function
* must be reentrant. In this case, SDCC will store input
* arguments on the stack to support reentrancy.
@@ -249,10 +251,11 @@
# define weak_function
# define weak_const_function
-/* The Zilog compiler does not support the noreturn or packed attributes */
+/* The Zilog compiler does not support the noreturn, packed, or naked attributes */
# define noreturn_function
# define packed_struct
+# define naked_function
/* The Zilog compiler does not support the reentrant attribute */
@@ -317,6 +320,8 @@
# define noreturn_function
# define packed_struct
# define reentrant_function
+# define naked_function
+
# define FAR
# define NEAR