diff options
-rw-r--r-- | nuttx/arch/z16/src/Makefile | 29 | ||||
-rw-r--r-- | nuttx/arch/z16/src/z16f/Make.defs | 6 | ||||
-rwxr-xr-x | nuttx/arch/z16/src/z16f/z16f_head.S | 140 | ||||
-rw-r--r-- | nuttx/arch/z80/src/common/up_head.asm | 2 | ||||
-rw-r--r-- | nuttx/configs/z16f2800100zcog/ostest/Make.defs | 8 |
5 files changed, 168 insertions, 17 deletions
diff --git a/nuttx/arch/z16/src/Makefile b/nuttx/arch/z16/src/Makefile index 0cae1cf8a..9b36d826e 100644 --- a/nuttx/arch/z16/src/Makefile +++ b/nuttx/arch/z16/src/Makefile @@ -41,18 +41,20 @@ WARCHSRCDIR = ${shell cygpath -w $(ARCHSRCDIR)} USRINCLUDES = -usrinc:'.;$(WTOPDIR)\sched;$(WARCHSRCDIR)\chip;$(WARCHSRCDIR)\common' INCLUDES = $(ARCHSTDINCLUDES) $(USRINCLUDES) CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(INCLUDES) $(ARCHDEFINES) -WLINKLIBS = -LDFLAGS = @${shell cypath -w $(ARCHSRCDIR)/nuttx.linkcmd} +WLINKLIBS = +LDFLAGS = @"${shell cygpath -w $(ARCHSRCDIR)/nuttx.linkcmd}" -HEAD_AOBJ = $(HEAD_ASRC:.S=$(OBJEXT)) +HEAD_ASRC = $(HEAD_SSRC:.S=$(ASMEXT)) +HEAD_AOBJ = $(HEAD_SSRC:.S=$(OBJEXT)) -ASRCS = $(CHIP_ASRCS) $(CMN_ASRCS) -AOBJS = $(ASRCS:.S=$(OBJEXT)) +SSRCS = $(CHIP_SSRCS) $(CMN_SSRCS) +ASRCS = $(SSRCS:.S=$(ASMEXT)) +AOBJS = $(SSRCS:.S=$(OBJEXT)) CSRCS = $(CHIP_CSRCS) $(CMN_CSRCS) COBJS = $(CSRCS:.c=$(OBJEXT)) -SRCS = $(ASRCS) $(CSRCS) +DEPSRCS = $(SSRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) BOARDDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src/board @@ -61,7 +63,12 @@ VPATH = chip:common all: $(HEAD_OBJ) libarch$(LIBEXT) -$(AOBJS) $(HEAD_AOBJ): %$(OBJEXT): %.S +$(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 @@ -85,14 +92,14 @@ nuttx.linkcmd: $(LINKCMDTEMPLATE) @echo " ${shell cygpath -w $(ARCHSRCDIR)/board/libboard$(LIBEXT)}" >>nuttx.linkcmd nuttx$(EXEEXT): $(HEAD_AOBJ) board/libboard$(LIBEXT) nuttx.linkcmd - @echo "LD: nuttx.hex" + @echo "LD: nuttx.hex" @$(LD) $(LDFLAGS) -.depend: Makefile chip/Make.defs $(SRCS) +.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) -- $(SRCS) >Make.dep + @$(MKDEP) --dep-path chip --dep-path common $(CC) -- $(CFLAGS) -- $(DEPSRCS) >Make.dep @touch $@ depend: .depend @@ -101,7 +108,7 @@ clean: @if [ -e board/Makefile ]; then \ $(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \ fi - @rm -f libarch$(LIBEXT) nuttx.linkcmd *~ .*.swp + @rm -f libarch$(LIBEXT) nuttx.linkcmd *~ .*.swp *.asm *.tmp $(call CLEAN) distclean: clean diff --git a/nuttx/arch/z16/src/z16f/Make.defs b/nuttx/arch/z16/src/z16f/Make.defs index dcd2381ac..dd22460b8 100644 --- a/nuttx/arch/z16/src/z16f/Make.defs +++ b/nuttx/arch/z16/src/z16f/Make.defs @@ -33,10 +33,10 @@ # ############################################################################ -HEAD_ASRC = +HEAD_SSRC = z16f_head.S -CMN_ASRCS = +CMN_SSRCS = CMN_CSRCS = -CHIP_ASRCS = +CHIP_SSRCS = CHIP_CSRCS = diff --git a/nuttx/arch/z16/src/z16f/z16f_head.S b/nuttx/arch/z16/src/z16f/z16f_head.S new file mode 100755 index 000000000..02f1a387a --- /dev/null +++ b/nuttx/arch/z16/src/z16f/z16f_head.S @@ -0,0 +1,140 @@ +/**************************************************************************
+ * arch/z16/src/z16f/z16f_head.S
+ * Z16F Reset Entry Point
+ *
+ * Copyright (C) 2008 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+ *
+ * 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.
+ *
+ **************************************************************************/
+
+/**************************************************************************
+ * Included Files
+ **************************************************************************/
+
+#include <nuttx/config.h>
+
+/**************************************************************************
+ * External References / External Definitions
+ **************************************************************************/
+
+ xref _z16f_lowinit:EROM
+ xref _os_start:EROM
+ xdef _default_handler
+ xdef _reset
+
+/**************************************************************************
+ * Flash Option Byte Setup
+ **************************************************************************/
+
+ define FOPTIONSEG, SPACE=ROM, ORG=0
+ segment FOPTIONSEG
+ db %FF
+ db %FF
+ db %FF
+ db %FF
+
+/**************************************************************************
+ * vectors
+ **************************************************************************/
+
+ vector RESET=_reset
+ vector SYSEXC=_default_handler
+ vector TIMER2=_default_handler
+ vector TIMER1=_default_handler
+ vector TIMER0=_default_handler
+ vector UART0_RX=_default_handler
+ vector UART0_TX=_default_handler
+ vector I2C=_default_handler
+ vector SPI=_default_handler
+ vector ADC=_default_handler
+ vector P7AD=_default_handler
+ vector P6AD=_default_handler
+ vector P5AD=_default_handler
+ vector P4AD=_default_handler
+ vector P3AD=_default_handler
+ vector P2AD=_default_handler
+ vector P1AD=_default_handler
+ vector P0AD=_default_handler
+ vector PWM_TIMER=_default_handler
+ vector UART1_RX=_default_handler
+ vector UART1_TX=_default_handler
+ vector PWM_FAULT=_default_handler
+ vector C3=_default_handler
+ vector C2=_default_handler
+ vector C1=_default_handler
+ vector C0=_default_handler
+
+/**************************************************************************
+ * Equates
+ **************************************************************************/
+
+STACK_TOP equ %FFC000
+
+/**************************************************************************
+ * Data Allocation
+ **************************************************************************/
+
+/**************************************************************************
+ * Code
+ **************************************************************************/
+
+ define CODESEG, SPACE=EROM
+ segment CODESEG
+
+/**************************************************************************
+ * Name: _reset
+ *
+ * Description:
+ * Reset entry point
+ *
+ **************************************************************************/
+
+_reset:
+ ld sp, #STACK_TOP /* Set Stack Pointer */
+
+ call _z16f_lowinit /* call _z16f_lowinit */
+ call _os_start /* Start the operating system */
+_halted: /* _os_start() should not return */
+ halt
+ jp _halted
+
+/**************************************************************************
+ * Name: _default_handler
+ *
+ * Description:
+ * This is where interrupts will go if they have not yet been intialize
+ *
+ **************************************************************************/
+
+_default_handler:
+ nop
+ iret
+
+ end
diff --git a/nuttx/arch/z80/src/common/up_head.asm b/nuttx/arch/z80/src/common/up_head.asm index b9abf69f7..6ebbe2ba4 100644 --- a/nuttx/arch/z80/src/common/up_head.asm +++ b/nuttx/arch/z80/src/common/up_head.asm @@ -1,5 +1,5 @@ ;**************************************************************************
-; arch/z80/src/common/up_head.S
+; arch/z80/src/common/up_head.asm
;
; Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
; Author: Gregory Nutt <spudmonkey@racsa.co.cr>
diff --git a/nuttx/configs/z16f2800100zcog/ostest/Make.defs b/nuttx/configs/z16f2800100zcog/ostest/Make.defs index 3dd0ae9eb..758416249 100644 --- a/nuttx/configs/z16f2800100zcog/ostest/Make.defs +++ b/nuttx/configs/z16f2800100zcog/ostest/Make.defs @@ -92,6 +92,10 @@ ARCHINCLUDES = $(ARCHSTDINCLUDES) $(ARCHUSRINCLUDES) CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \ $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) +CPPDEFINES = -D_Z16F2811AL -D_Z16K_SERIES -D_Z16F_SERIES -D__ASSEMBLY__ +CPPINCLUDES = -I$(TOPDIR)/include +CPPFLAGS = $(CPPDEFINES) $(CPPINCLUDES) + # Librarian definitions ARFLAGS = -quiet -warn @@ -104,7 +108,7 @@ LINKCMDTEMPLATE = $(TOPDIR)/configs/z16f2800100zcog/ostest/ostest.linkcmd CROSSDEV = CC = $(ZDSBINDIR)/zneocc.exe -CPP = $(ZDSBINDIR)/zneoasm.exe +CPP = gcc -E LD = $(ZDSBINDIR)/zneolink.exe AS = $(ZDSBINDIR)/zneoasm.exe AR = $(ZDSBINDIR)/zneolib.exe @@ -136,7 +140,7 @@ define ARCHIVE endef define CLEAN - @rm -f *.obj *.src *.lib *.hex + @rm -f *.obj *.src *.lib *.hex *.lst endef # This is the tool to use for dependencies (i.e., none) |