summaryrefslogtreecommitdiff
path: root/nuttx/arch/hc
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-12-03 17:24:42 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-12-03 17:24:42 +0000
commita3b5fe36549ce9aea15ed0cc84f479207efb27f6 (patch)
treefcc3088c4f75b922e459c340f524b781d4b729c2 /nuttx/arch/hc
parent4c194976e7e58913101fab5dd8318c060bdc5b2f (diff)
downloadpx4-nuttx-a3b5fe36549ce9aea15ed0cc84f479207efb27f6.tar.gz
px4-nuttx-a3b5fe36549ce9aea15ed0cc84f479207efb27f6.tar.bz2
px4-nuttx-a3b5fe36549ce9aea15ed0cc84f479207efb27f6.zip
Add framework to support HC12
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2301 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/hc')
-rwxr-xr-xnuttx/arch/hc/include/hc12/irq.h112
-rwxr-xr-xnuttx/arch/hc/include/irq.h98
-rwxr-xr-xnuttx/arch/hc/include/mc9s12ne64/irq.h130
-rwxr-xr-xnuttx/arch/hc/src/Makefile143
-rwxr-xr-xnuttx/arch/hc/src/mc9s12ne64/Make.defs42
-rwxr-xr-xnuttx/arch/hc/src/mc9s12ne64/chip.h62
-rwxr-xr-xnuttx/arch/hc/src/mc9s12ne64/mc9s12ne64_start.S68
-rwxr-xr-xnuttx/arch/hc/src/mc9s12ne64/mc9s12ne64_vectors.S237
8 files changed, 892 insertions, 0 deletions
diff --git a/nuttx/arch/hc/include/hc12/irq.h b/nuttx/arch/hc/include/hc12/irq.h
new file mode 100755
index 000000000..08d991031
--- /dev/null
+++ b/nuttx/arch/hc/include/hc12/irq.h
@@ -0,0 +1,112 @@
+/************************************************************************************
+ * arch/hc/include/hc12/irq.h
+ *
+ * Copyright (C) 2009 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.
+ *
+ ************************************************************************************/
+
+/* This file should never be included directed but, rather,
+ * only indirectly through nuttx/irq.h
+ */
+
+#ifndef __ARCH_HC_INCLUDE_HC12_IRQ_H
+#define __ARCH_HC_INCLUDE_HC12_IRQ_H
+
+/************************************************************************************
+ * Included Files
+ ************************************************************************************/
+
+#include <nuttx/config.h>
+#include <sys/types.h>
+#include <nuttx/irq.h>
+
+/************************************************************************************
+ * Definitions
+ ************************************************************************************/
+
+/************************************************************************************
+ * Public Types
+ ************************************************************************************/
+
+/* This structure defines the way the registers are stored. */
+
+#ifndef __ASSEMBLY__
+struct xcptcontext
+{
+ int dummy; /* For now */
+};
+
+/****************************************************************************
+ * Inline functions
+ ****************************************************************************/
+
+/* Save the current interrupt enable state & disable IRQs */
+
+static inline irqstate_t irqsave(void)
+{
+ /* To be provided */
+}
+
+/* Restore saved IRQ & FIQ state */
+
+static inline void irqrestore(irqstate_t flags)
+{
+ /* To be provided */
+}
+
+static inline void system_call(swint_t func, int parm1,
+ int parm2, int parm3)
+{
+ /* To be provided */
+}
+
+/************************************************************************************
+ * Public Data
+ ************************************************************************************/
+
+#ifdef __cplusplus
+#define EXTERN extern "C"
+extern "C" {
+#else
+#define EXTERN extern
+#endif
+
+/************************************************************************************
+ * Public Functions
+ ************************************************************************************/
+
+#undef EXTERN
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __ASSEMBLY__ */
+#endif /* __ARCH_HC_INCLUDE_HC12_IRQ_H */
diff --git a/nuttx/arch/hc/include/irq.h b/nuttx/arch/hc/include/irq.h
new file mode 100755
index 000000000..a649ee9d4
--- /dev/null
+++ b/nuttx/arch/hc/include/irq.h
@@ -0,0 +1,98 @@
+/****************************************************************************
+ * arch/hc/include/irq.h
+ *
+ * Copyright (C) 2009 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.
+ *
+ ****************************************************************************/
+
+/* This file should never be included directed but, rather, only indirectly
+ * through nuttx/irq.h
+ */
+
+#ifndef __ARCH_HC_INCLUDE_IRQ_H
+#define __ARCH_HC_INCLUDE_IRQ_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+/* Include NuttX-specific IRQ definitions */
+
+#include <nuttx/irq.h>
+
+/* Include chip-specific IRQ definitions (including IRQ numbers) */
+
+#include <arch/chip/irq.h>
+
+/* Include architecture-specific IRQ definitions (including register
+ * save structure and irqsave()/irqrestore() macros
+ */
+
+#ifdef CONFIG_ARCH_HC12
+# include <arch/hc12/irq.h>
+#endif
+
+/****************************************************************************
+ * Definitions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Types
+ ****************************************************************************/
+
+/****************************************************************************
+ * Inline functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Variables
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+#ifndef __ASSEMBLY__
+#ifdef __cplusplus
+#define EXTERN extern "C"
+extern "C" {
+#else
+#define EXTERN extern
+#endif
+
+#undef EXTERN
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+#endif /* __ARCH_HC_INCLUDE_IRQ_H */
+
diff --git a/nuttx/arch/hc/include/mc9s12ne64/irq.h b/nuttx/arch/hc/include/mc9s12ne64/irq.h
new file mode 100755
index 000000000..ed13dafcc
--- /dev/null
+++ b/nuttx/arch/hc/include/mc9s12ne64/irq.h
@@ -0,0 +1,130 @@
+/************************************************************************************
+ * arch/hc/include/mc9s12ne64/irq.h
+ *
+ * Copyright (C) 2009 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.
+ *
+ ************************************************************************************/
+
+/* This file should never be included directed but, rather,
+ * only indirectly through nuttx/irq.h
+ */
+
+#ifndef __ARCH_HC_INCLUDE_MC9S12NE64_IRQ_H
+#define __ARCH_HC_INCLUDE_MC9S12NE64_IRQ_H
+
+/************************************************************************************
+ * Included Files
+ ************************************************************************************/
+
+#include <nuttx/config.h>
+#include <sys/types.h>
+#include <nuttx/irq.h>
+
+/************************************************************************************
+ * Definitions
+ ************************************************************************************/
+
+/* IRQ Numbers */
+
+#define HC12_IRQ_VRESET 0 /* fffe: External reset, power on reset orlow voltage reset */
+#define HC12_IRQ_VCLKMON 1 /* fffc: Clock monitor fail reset */
+#define HC12_IRQ_VCOP 2 /* fffa: COP failure reset*/
+#define HC12_IRQ_VTRAP 3 /* fff8: Unimplemented instruction trap */
+#define HC12_IRQ_VSWI 4 /* fff6: SWI */
+#define HC12_IRQ_VXIRQ 5 /* fff4: XIRQ */
+#define HC12_IRQ_VIRQ 6 /* fff2: IRQ */
+#define HC12_IRQ_VRTI 7 /* fff0: Real-time interrupt */
+ /* ffe8-ffef: Reserved */
+#define HC12_IRQ_VTIMCH4 8 /* ffe6: Standard timer channel 4 */
+#define HC12_IRQ_VTIMCH5 9 /* ffe4: Standard timer channel 5 */
+#define HC12_IRQ_VTIMCH6 10 /* ffe2: Standard timer channel 6 */
+#define HC12_IRQ_VTIMCH7 11 /* ffe0: Standard timer channel 7 */
+#define HC12_IRQ_VTIMOVF 12 /* ffde: Standard timer overflow */
+#define HC12_IRQ_VTIMPAOVF 13 /* ffdc: Pulse accumulator overflow */
+#define HC12_IRQ_VTIMPAIE 14 /* ffda: Pulse accumulator input edge */
+#define HC12_IRQ_VSPI 15 /* ffd8: SPI */
+#define HC12_IRQ_VSCI0 16 /* ffd6: SCI0 */
+#define HC12_IRQ_VSCI1 17 /* ffd4: SCI1 */
+#define HC12_IRQ_VATD 18 /* ffd2: ATD */
+ /* ffd0: Reserved */
+#define HC12_IRQ_VPORTJ 19 /* ffce: Port J */
+#define HC12_IRQ_VPORTH 20 /* ffcc: Port H */
+#define HC12_IRQ_VPORTG 21 /* ffca: Port G */
+ /* ffc8: Reserved */
+#define HC12_IRQ_VCRGPLLLCK 22 /* ffc6: CRG PLL lock */
+#define HC12_IRQ_VCRGSCM 23 /* ffc4: CRG self clock mode */
+ /* ffc2: Reserved */
+#define HC12_IRQ_VIIC 24 /* ffc0: IIC bus */
+ /* ffba-ffbf: Reserved */
+#define HC12_IRQ_VFLASH 25 /* ffb8: FLASH */
+#define HC12_IRQ_VEPHY 26 /* ffb6: EPHY interrupt */
+#define HC12_IRQ_VEMACCRXBAC 27 /* ffb4: EMAC receive buffer A complete */
+#define HC12_IRQ_VEMACCRXBBC 28 /* ffb2: EMAC receive buffer B complete */
+#define HC12_IRQ_VEMACTXC 29 /* ffb0: EMAC frame transmission complete */
+#define HC12_IRQ_VEMACRXFC 30 /* ffae: EMAC receive flow control */
+#define HC12_IRQ_VEMACMII 31 /* ffac: EMAC MII management transfer complete */
+#define HC12_IRQ_VEMACRXERR 32 /* ffaa: EMAC receive error */
+#define HC12_IRQ_VEMACRXBAO 33 /* ffa8: EMAC receive buffer A overrun */
+#define HC12_IRQ_VEMACRXBBO 34 /* ffa6: EMAC receive buffer B overrun */
+#define HC12_IRQ_VEMACBRXERR 35 /* ffa4: EMAC babbling receive error */
+#define HC12_IRQ_VEMACLC 36 /* ffa2: EMAC late collision */
+#define HC12_IRQ_VEMACEC 37 /* ffa0: EMAC excessive collision */
+ /* ff80-ff9f: Reserved */
+#define HC12_IRQ_VILLEGAL 38 /* Any reserved vector */
+#define NR_IRQS 39
+
+/************************************************************************************
+ * Public Types
+ ************************************************************************************/
+
+/************************************************************************************
+ * Public Data
+ ************************************************************************************/
+
+#ifndef __ASSEMBLY__
+#ifdef __cplusplus
+#define EXTERN extern "C"
+extern "C" {
+#else
+#define EXTERN extern
+#endif
+
+/************************************************************************************
+ * Public Functions
+ ************************************************************************************/
+
+#undef EXTERN
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+#endif /* __ARCH_HC_INCLUDE_MC9S12NE64_IRQ_H */
diff --git a/nuttx/arch/hc/src/Makefile b/nuttx/arch/hc/src/Makefile
new file mode 100755
index 000000000..27816b730
--- /dev/null
+++ b/nuttx/arch/hc/src/Makefile
@@ -0,0 +1,143 @@
+############################################################################
+# arch/hc/src/Makefile
+#
+# Copyright (C) 2009 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.
+#
+############################################################################
+
+-include $(TOPDIR)/Make.defs
+-include chip/Make.defs
+
+ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src
+ifeq ($(CONFIG_ARCH_HC12),y)
+ARCH_SUBDIR = hc12
+endif
+
+ifeq ($(WINTOOL),y)
+ NUTTX = "${shell cygpath -w $(TOPDIR)/nuttx}"
+ CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}" \
+ -I "${shell cygpath -w $(ARCH_SRCDIR)/common}" \
+ -I "${shell cygpath -w $(ARCH_SRCDIR)/$(ARCH_SUBDIR)}" \
+ -I "${shell cygpath -w $(TOPDIR)/sched}"
+else
+ NUTTX = $(TOPDIR)/nuttx
+ CFLAGS += -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common \
+ -I$(ARCH_SRCDIR)/$(ARCH_SUBDIR) -I$(TOPDIR)/sched
+endif
+
+HEAD_AOBJ = $(HEAD_ASRC:.S=$(OBJEXT))
+
+ASRCS = $(CHIP_ASRCS) $(CMN_ASRCS)
+AOBJS = $(ASRCS:.S=$(OBJEXT))
+
+CSRCS = $(CHIP_CSRCS) $(CMN_CSRCS)
+COBJS = $(CSRCS:.c=$(OBJEXT))
+
+SRCS = $(ASRCS) $(CSRCS)
+OBJS = $(AOBJS) $(COBJS)
+
+LDFLAGS = $(ARCHSCRIPT)
+EXTRA_LIBS =
+
+LINKLIBS =
+ifeq ($(WINTOOL),y)
+ LIBPATHS = ${shell for path in $(LINKLIBS); do dir=`dirname $(TOPDIR)/$$path`;echo "-L\"`cygpath -w $$dir`\"";done}
+ LIBPATHS += -L"${shell cygpath -w $(BOARDDIR)}"
+else
+ LIBPATHS = $(addprefix -L$(TOPDIR)/,$(dir $(LINKLIBS)))
+ LIBPATHS += -L"$(BOARDDIR)"
+endif
+LDLIBS = $(patsubst lib%,-l%,$(basename $(notdir $(LINKLIBS))))
+
+BOARDDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src/board
+
+LIBGCC = "${shell $(CC) -print-libgcc-file-name}"
+
+VPATH = chip:common:$(ARCH_SUBDIR)
+
+all: $(HEAD_OBJ) libarch$(LIBEXT)
+
+$(AOBJS) $(HEAD_AOBJ): %$(OBJEXT): %.S
+ $(call ASSEMBLE, $<, $@)
+
+$(COBJS): %$(OBJEXT): %.c
+ $(call COMPILE, $<, $@)
+
+libarch$(LIBEXT): $(OBJS)
+ @( for obj in $(OBJS) ; do \
+ $(call ARCHIVE, $@, $${obj}); \
+ done ; )
+
+board/libboard$(LIBEXT):
+ @$(MAKE) -C board TOPDIR="$(TOPDIR)" libboard$(LIBEXT)
+
+nuttx: $(HEAD_AOBJ) board/libboard$(LIBEXT)
+ @echo "LD: nuttx"
+ @$(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) -o $(NUTTX)$(EXEEXT) $(HEAD_AOBJ) \
+ --start-group $(LDLIBS) -lboard --end-group $(EXTRA_LIBS) $(LIBGCC)
+ifeq ($(CONFIG_BOOT_RUNFROMFLASH),y)
+ @export flashloc=`$(OBJDUMP) --all-headers $(NUTTX)$(EXEEXT) | grep _eronly | cut -d' ' -f1`; \
+ $(OBJCOPY) $(OBJCOPYARGS) --adjust-section-vma=.data=0x$$flashloc $(NUTTX)$(EXEEXT) $(NUTTX).flashimage
+ @mv $(NUTTX).flashimage $(NUTTX)$(EXEEXT)
+endif
+ @$(NM) $(NUTTX)$(EXEEXT) | \
+ grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
+ sort > $(TOPDIR)/System.map
+ @export vflashstart=`$(OBJDUMP) --all-headers $(NUTTX)$(EXEEXT) | grep _vflashstart | cut -d' ' -f1`; \
+ if [ ! -z "$$vflashstart" ]; then \
+ $(OBJCOPY) $(OBJCOPYARGS) --adjust-section-vma=.vector=0x$$vflashstart $(NUTTX)$(EXEEXT) $(NUTTX).flashimage; \
+ mv $(NUTTX).flashimage $(NUTTX)$(EXEEXT); \
+ fi
+
+.depend: Makefile chip/Make.defs $(SRCS)
+ @if [ -e board/Makefile ]; then \
+ $(MAKE) -C board TOPDIR="$(TOPDIR)" depend ; \
+ fi
+ @$(MKDEP) --dep-path chip --dep-path common --dep-path $(ARCH_SUBDIR) \
+ $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
+ @touch $@
+
+depend: .depend
+
+clean:
+ @if [ -e board/Makefile ]; then \
+ $(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \
+ fi
+ @rm -f libarch$(LIBEXT) *~ .*.swp
+ $(call CLEAN)
+
+distclean: clean
+ @if [ -e board/Makefile ]; then \
+ $(MAKE) -C board TOPDIR="$(TOPDIR)" distclean ; \
+ fi
+ @rm -f Make.dep .depend
+
+-include Make.dep
diff --git a/nuttx/arch/hc/src/mc9s12ne64/Make.defs b/nuttx/arch/hc/src/mc9s12ne64/Make.defs
new file mode 100755
index 000000000..7bcad4a9b
--- /dev/null
+++ b/nuttx/arch/hc/src/mc9s12ne64/Make.defs
@@ -0,0 +1,42 @@
+############################################################################
+# arch/arm/src/stm32/Make.defs
+#
+# Copyright (C) 2009 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.
+#
+############################################################################
+
+HEAD_ASRC = mc9s12ne64_vectors.S
+
+CMN_ASRCS =
+CMN_CSRCS =
+
+CHIP_ASRCS = mc9s12ne64_start.S
+CHIP_CSRCS =
diff --git a/nuttx/arch/hc/src/mc9s12ne64/chip.h b/nuttx/arch/hc/src/mc9s12ne64/chip.h
new file mode 100755
index 000000000..a7dfdb26a
--- /dev/null
+++ b/nuttx/arch/hc/src/mc9s12ne64/chip.h
@@ -0,0 +1,62 @@
+/************************************************************************************
+ * arch/hc/src/mc9s12ne64/chip.h
+ *
+ * Copyright (C) 2009 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.
+ *
+ ************************************************************************************/
+
+#ifndef __ARCH_HC_SRC_MC9S12NE64_CHIP_H
+#define __ARCH_HC_SRC_MC9S12NE64_CHIP_H
+
+/************************************************************************************
+ * Included Files
+ ************************************************************************************/
+
+#include <nuttx/config.h>
+#include <sys/types.h>
+
+/************************************************************************************
+ * Definitions
+ ************************************************************************************/
+
+/************************************************************************************
+ * Public Types
+ ************************************************************************************/
+
+/************************************************************************************
+ * Public Data
+ ************************************************************************************/
+
+/************************************************************************************
+ * Public Functions
+ ************************************************************************************/
+
+#endif /* __ARCH_HC_SRC_MC9S12NE64_CHIP_H */
diff --git a/nuttx/arch/hc/src/mc9s12ne64/mc9s12ne64_start.S b/nuttx/arch/hc/src/mc9s12ne64/mc9s12ne64_start.S
new file mode 100755
index 000000000..5f5830e2b
--- /dev/null
+++ b/nuttx/arch/hc/src/mc9s12ne64/mc9s12ne64_start.S
@@ -0,0 +1,68 @@
+/****************************************************************************
+ * arch/hc/src/mc9s12ne64/mc9s12ne64_start.S
+ * arch/hc/src/chip/mc9s12ne64_start.S
+ *
+ * Copyright (C) 2009 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>
+#include <sys/types.h>
+
+/****************************************************************************
+ * Private Definitions
+ ****************************************************************************/
+
+/************************************************************************************
+ * Global Symbols
+ ************************************************************************************/
+
+ .globl __start
+ .file "mc9s12ne64_start.S"
+
+/****************************************************************************
+ * .text
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: __start
+ *
+ * Description:
+ * Power-up reset entry point
+ *
+ ****************************************************************************/
+
+__start:
+ .end
diff --git a/nuttx/arch/hc/src/mc9s12ne64/mc9s12ne64_vectors.S b/nuttx/arch/hc/src/mc9s12ne64/mc9s12ne64_vectors.S
new file mode 100755
index 000000000..42dbe0fd9
--- /dev/null
+++ b/nuttx/arch/hc/src/mc9s12ne64/mc9s12ne64_vectors.S
@@ -0,0 +1,237 @@
+/************************************************************************************
+ * arch/hc/src/mc9s12ne64/mc9s12ne64_vectors.S
+ * arch/hc/src/chip/mc9s12ne64_vectors.S
+ *
+ * Copyright (C) 2009 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>
+#include <arch/irq.h>
+
+/************************************************************************************
+ * Pre-processor Definitions
+ ************************************************************************************/
+
+/************************************************************************************
+ * Global Symbols
+ ************************************************************************************/
+
+ .globl __start
+ .file "mc9shc12ne64_vectors.S"
+
+/************************************************************************************
+ * Macros
+ ************************************************************************************/
+
+ .macro HANDLER, label, irqno
+\label:
+ .endm
+
+/************************************************************************************
+ * Vectors
+ ************************************************************************************/
+
+ .section .vectors, "rd"
+ .align 2
+ .globl hc12_vectors
+ .type hc12_vectors, function
+
+hc12_vectors:
+ /* ff80-ff9f: Reserved */
+ .hword villegal /* ff80: Reserved*/
+ .hword villegal /* ff82: Reserved */
+ .hword villegal /* ff84: Reserved */
+ .hword villegal /* ff86: Reserved */
+ .hword villegal /* ff88: Reserved */
+ .hword villegal /* ff8a: Reserved */
+ .hword villegal /* ff8c: Reserved */
+ .hword villegal /* ff9e: Reserved */
+ .hword villegal /* ff90: Reserved */
+ .hword villegal /* ff92: Reserved */
+ .hword villegal /* ff94: Reserved */
+ .hword villegal /* ff96: Reserved */
+ .hword villegal /* ff98: Reserved */
+ .hword villegal /* ff9a: Reserved */
+ .hword villegal /* ff9c: Reserved */
+ .hword villegal /* ff9e: Reserved */
+ .hword vemacec /* ffa0: EMAC excessive collision */
+ .hword vemaclc /* ffa2: EMAC late collision*/
+ .hword vemacbrxerr /* ffa4: MAC babbling receive error*/
+ .hword vemacrxbbo /* ffa6: EMAC receive buffer B overrun */
+ .hword vemacrxbao /* ffa8: EMAC receive buffer A overrun */
+ .hword vemacrxerr /* ffaa: EMAC receive error */
+ .hword vemacmii /* ffac: EMAC MII management transfer complete */
+ .hword vemacrxfc /* ffae: EMAC receive flow control */
+ .hword vemactxc /* ffb0: EMAC frame transmission complete */
+ .hword vemaccrxbbc /* ffb2: EMAC receive buffer B complete */
+ .hword vemaccrxbac /* ffb4: EMAC receive buffer A complete */
+ .hword vephy /* ffb6: EPHY interrupt */
+ .hword vflash /* ffb8: FLASH */
+ .hword villegal /* ffba: Reserved */
+ .hword villegal /* ffbc: Reserved */
+ .hword villegal /* ffbe: Reserved */
+ .hword viic /* ffc0: IIC bus */
+ .hword villegal /* ffc2: Reserved */
+ .hword vcrgscm /* ffc4: CRG self clock mode */
+ .hword vcrgplllck /* ffc6: CRG PLL lock */
+ .hword villegal /* ffc8: Reserved */
+ .hword vportg /* ffca: Port G */
+ .hword vporth /* ffcc: Port H */
+ .hword vportj /* ffcd: Port J */
+ .hword villegal /* ffd0: Reserved */
+ .hword vatd /* ffd2: ATD */
+ .hword vsci1 /* ffd4: SCI1 */
+ .hword vsci0 /* ffd6: SCI0 */
+ .hword vspi /* ffd8: SPI */
+ .hword vtimpaie /* ffda: Pulse accumulator input edge */
+ .hword vtimpaovf /* ffdc: Pulse accumulator overflow */
+ .hword vtimovf /* ffde: Standard timer overflow */
+ .hword vtimch7 /* ffe0: Standard timer channel 7 */
+ .hword vtimch6 /* ffe2: Standard timer channel 6 */
+ .hword vtimch5 /* ffe4: Standard timer channel 5 */
+ .hword vtimch4 /* ffe6: Standard timer channel 4 */
+ .hword villegal /* ffe8: Reserved */
+ .hword villegal /* ffea: Reserved */
+ .hword villegal /* ffec: Reserved */
+ .hword villegal /* ffee: Reserved */
+ .hword vrti /* fff0: Real-time interrupt */
+ .hword virq /* fff2: IRQ */
+ .hword vxirq /* fff4: XIRQ */
+ .hword vswi /* fff6: SWI */
+ .hword vtrap /* fff8: Unimplemented instruction trap */
+ .hword vcop /* fffa: COP failure reset */
+ .hword vclkmon /* fffc: Clock monitor fail reset */
+ .hword __start /* fffe: Reset vector */
+
+ .size hc12_vectors, .-hc12_vectors
+
+/************************************************************************************
+ * .text
+ ************************************************************************************/
+
+ .text
+ .type handlers, function
+handlers:
+
+ HANDLER vemacec, HC12_IRQ_VEMACEC /* EMAC excessive collision */
+ HANDLER vemaclc, HC12_IRQ_VEMACLC /* EMAC late collision */
+ HANDLER vemacbrxerr, HC12_IRQ_VEMACBRXERR /* EMAC babbling receive error */
+ HANDLER vemacrxbbo, HC12_IRQ_VEMACRXBBO /* EMAC receive buffer B overrun */
+ HANDLER vemacrxbao, HC12_IRQ_VEMACRXBAO /* EMAC receive buffer A overrun */
+ HANDLER vemacrxerr, HC12_IRQ_VEMACRXERR /* EMAC receive error */
+ HANDLER vemacmii, HC12_IRQ_VEMACMII /* EMAC MII management transfer complete */
+ HANDLER vemacrxfc, HC12_IRQ_VEMACRXFC /* EMAC receive flow control */
+ HANDLER vemactxc, HC12_IRQ_VEMACTXC /* EMAC frame transmission complete */
+ HANDLER vemaccrxbbc, HC12_IRQ_VEMACCRXBBC /* EMAC receive buffer B complete */
+ HANDLER vemaccrxbac, HC12_IRQ_VEMACCRXBAC /* EMAC receive buffer A complete */
+ HANDLER vephy, HC12_IRQ_VEPHY /* EPHY interrupt */
+ HANDLER vflash, HC12_IRQ_VFLASH /* FLASH */
+ HANDLER viic, HC12_IRQ_VIIC /* IIC bus */
+ HANDLER vcrgscm, HC12_IRQ_VCRGSCM /* CRG self clock mode */
+ HANDLER vcrgplllck, HC12_IRQ_VCRGPLLLCK /* CRG PLL lock */
+ HANDLER vportg, HC12_IRQ_VPORTG /* Port G */
+ HANDLER vporth, HC12_IRQ_VPORTH /* Port H */
+ HANDLER vportj, HC12_IRQ_VPORTJ /* Port J */
+ HANDLER vatd, HC12_IRQ_VATD /* ATD */
+ HANDLER vsci1, HC12_IRQ_VSCI1 /* SCI1 */
+ HANDLER vsci0, HC12_IRQ_VSCI0 /* SCI0 */
+ HANDLER vspi, HC12_IRQ_VSPI /* SPI */
+ HANDLER vtimpaie, HC12_IRQ_VTIMPAIE /* Pulse accumulator input edge */
+ HANDLER vtimpaovf, HC12_IRQ_VTIMPAOVF /* Pulse accumulator overflow */
+ HANDLER vtimovf, HC12_IRQ_VTIMOVF /* Standard timer overflow */
+ HANDLER vtimch7, HC12_IRQ_VTIMCH7 /* Standard timer channel 7 */
+ HANDLER vtimch6, HC12_IRQ_VTIMCH6 /* Standard timer channel 6 */
+ HANDLER vtimch5, HC12_IRQ_VTIMCH5 /* Standard timer channel 5 */
+ HANDLER vtimch4, HC12_IRQ_VTIMCH4 /* Standard timer channel 4 */
+ HANDLER vrti, HC12_IRQ_VRTI /* Real-time interrupt */
+ HANDLER virq, HC12_IRQ_VIRQ /* IRQ */
+ HANDLER vxirq, HC12_IRQ_VXIRQ /* XIRQ */
+ HANDLER vswi, HC12_IRQ_VSWI /* SWI */
+ HANDLER vtrap, HC12_IRQ_VTRAP /* Unimplemented instruction trap */
+ HANDLER vcop, HC12_IRQ_VCOP /* COP failure reset*/
+ HANDLER vclkmon, HC12_IRQ_VCLKMON /* Clock monitor fail reset */
+ HANDLER villegal, HC12_IRQ_VILLEGAL /* Any reserved vector */
+
+/************************************************************************************
+ * Common IRQ handling logic
+ *
+ * Description:
+ * To be provided
+ *
+ ************************************************************************************/
+
+vcommon:
+ .size handlers, .-handlers
+
+/************************************************************************************
+ * Name: up_interruptstack/g_userstack
+ *
+ * Description:
+ * Shouldn't happen
+ *
+ ************************************************************************************/
+
+#if CONFIG_ARCH_INTERRUPTSTACK > 1
+ .bss
+ .align 2
+up_interruptstack:
+ .skip (CONFIG_ARCH_INTERRUPTSTACK & ~1)
+up_interruptstack_base:
+ .size up_interruptstack, .-up_interruptstack
+#endif
+
+/************************************************************************************
+ * .rodata
+ ************************************************************************************/
+
+ .section .rodata, "a"
+
+/* Variables: _sbss is the start of the BSS region (see ld.script) _ebss is the end
+ * of the BSS regsion (see ld.script). The idle task stack starts at the end of BSS
+ * and is of size CONFIG_IDLETHREAD_STACKSIZE. The IDLE thread is the thread that
+ * the system boots on and, eventually, becomes the idle, do nothing task that runs
+ * only when there is nothing else to run. The heap continues from there until the
+ * end of memory. See g_heapbase below.
+ */
+
+ .globl g_heapbase
+ .type g_heapbase, object
+g_heapbase:
+ .long _ebss+CONFIG_IDLETHREAD_STACKSIZE
+ .size g_heapbase, .-g_heapbase
+
+ .end
+