From 1b270afcda91bcebe2674487eabde088993adc38 Mon Sep 17 00:00:00 2001 From: patacongo Date: Thu, 10 Jan 2008 21:10:30 +0000 Subject: Add Z16F head assembly git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@548 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/arch/z16/src/Makefile | 29 +++-- nuttx/arch/z16/src/z16f/Make.defs | 6 +- nuttx/arch/z16/src/z16f/z16f_head.S | 140 +++++++++++++++++++++++++ nuttx/arch/z80/src/common/up_head.asm | 2 +- nuttx/configs/z16f2800100zcog/ostest/Make.defs | 8 +- 5 files changed, 168 insertions(+), 17 deletions(-) create mode 100755 nuttx/arch/z16/src/z16f/z16f_head.S 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 + * + * 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 + +/************************************************************************** + * 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 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) -- cgit v1.2.3