diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2008-01-04 22:52:02 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2008-01-04 22:52:02 +0000 |
commit | eca8fc5427fae36404c8f3772f8ed4f2f36100ea (patch) | |
tree | 15ba7e23c47bc4d4b4fdc59d730c3e0eb7b03fa6 /misc/pascal/nuttx | |
parent | 2d2c6392898b29ae89d41a779ef712fb901900ac (diff) | |
download | px4-nuttx-eca8fc5427fae36404c8f3772f8ed4f2f36100ea.tar.gz px4-nuttx-eca8fc5427fae36404c8f3772f8ed4f2f36100ea.tar.bz2 px4-nuttx-eca8fc5427fae36404c8f3772f8ed4f2f36100ea.zip |
Pascal
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@485 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'misc/pascal/nuttx')
-rwxr-xr-x | misc/pascal/nuttx/INSTALL.sh | 143 | ||||
-rw-r--r-- | misc/pascal/nuttx/Makefile | 89 | ||||
-rw-r--r-- | misc/pascal/nuttx/README.txt | 31 | ||||
-rw-r--r-- | misc/pascal/nuttx/keywords.h | 64 |
4 files changed, 327 insertions, 0 deletions
diff --git a/misc/pascal/nuttx/INSTALL.sh b/misc/pascal/nuttx/INSTALL.sh new file mode 100755 index 000000000..71509827f --- /dev/null +++ b/misc/pascal/nuttx/INSTALL.sh @@ -0,0 +1,143 @@ +############################################################################ +# nuttx/INSTALL.sh +# Install the pascaldirl runtime into the NuttX source tree +# +# 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. +# +############################################################################ + +# Parse command arguments + +wd=`pwd` + +modeldir=insn16 +unset nuttxdir +while [ ! -z "$1" ]; do + case "$1" in + -d ) + set -x + ;; + -16 ) + modeldir=insn16 + ;; + -32 ) + modeldir=insn32 + ;; + -h ) + echo "USAGE: $0 [-16|-32] <NuttX-path>" + exit 0 + ;; + *) + nuttxdir=$1 + ;; + esac + shift +done + +echo "Installing model $modeldir to $nuttxdir" + +# Verify that required parameters were provided + +if [ -z "${nuttxdir}" ]; then + echo "USAGE: $0 [-16|-32] <NuttX-path>" + exit 1 +fi + +# Find the directory we were executed from and that things look sane + +myname=`basename $0` + +if [ -x ${wd}/${myname} ] ; then + pascaldir=`dirname ${wd}` +else + if [ -x ${wd}/nuttx/${myname} ] ; then + pascaldir=${wd} + else + echo "You must cd into the pascal directory to execute this script." + exit 1 + fi +fi + +if [ ! -d ${pascaldir}/${modeldir} ]; then + echo "Subdirectory ${modeldir} does not exist" + exit 1 +fi + +if [ ! -d ${nuttxdir} ]; then + echo "NuttX directory ${nuttxdir} does not exist" + exit 1 +fi + +if [ -d ${nuttxdir}/pcode ]; then + echo "${nuttxdir}/pcode already exists. Remove it and try again." + exit 1 +fi + +# Looks good enough. Create NuttX directories + +mkdir ${nuttxdir}/pcode || \ + { echo "mkdir ${nuttxdir}/pcode failed" ; exit 1 ; } + +mkdir ${nuttxdir}/pcode/include || \ + { echo "mkdir ${nuttxdir}/pcode/include failed" ; exit 1 ; } + +mkdir ${nuttxdir}/pcode/insn || \ + { echo "mkdir ${nuttxdir}/pcode/insn failed" ; exit 1 ; } + +# Copy runtime files + +cp -a ${pascaldir}/include/poff.h ${nuttxdir}/pcode/include/. || \ + { echo "Failed to copy ${pascaldir}/include/poff.h" ; exit 1; } + +cp -a ${pascaldir}/include/pofflib.h ${nuttxdir}/pcode/include/. || \ + { echo "Failed to copy ${pascaldir}/include/poff.h" ; exit 1; } + +cp -a ${pascaldir}/nuttx/Makefile ${nuttxdir}/pcode/. || \ + { echo "Failed to copy ${pascaldir}/nuttx/Makefile" ; exit 1; } + +cp -a ${pascaldir}/nuttx/keywords.h ${nuttxdir}/pcode/include/. || \ + { echo "Failed to copy ${pascaldir}/nuttx/keywords.h" ; exit 1; } + +cp -a ${pascaldir}/libpoff ${nuttxdir}/pcode/. || \ + { echo "Failed to copy ${pascaldir}/libpoff" ; exit 1; } + +rm -f ${nuttxdir}/pcode/libpoff/Makefile || \ + { echo "Failed to remove ${nuttxdir}/pcode/libpoff/Makefile" ; exit 1; } + +cp -a ${pascaldir}/${modeldir}/include ${nuttxdir}/pcode/insn/. || \ + { echo "Failed to copy ${pascaldir}/${modeldir}/include" ; exit 1; } + +cp -a ${pascaldir}/${modeldir}/prun ${nuttxdir}/pcode/insn/. || \ + { echo "Failed to copy ${pascaldir}/${modeldir}/prun" ; exit 1; } + +rm -f ${nuttxdir}/pcode/insn/Makefile || \ + { echo "Failed to remove ${nuttxdir}/pcode/insn/Makefile" ; exit 1; } + diff --git a/misc/pascal/nuttx/Makefile b/misc/pascal/nuttx/Makefile new file mode 100644 index 000000000..055e719c6 --- /dev/null +++ b/misc/pascal/nuttx/Makefile @@ -0,0 +1,89 @@ +############################################################################ +# pcode/Makefile +# +# 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. +# +############################################################################ + +-include $(TOPDIR)/Make.defs + +MKDEP = $(TOPDIR)/tools/mkdeps.sh +CFLAGS += -Iinclude -Iinsn/include + +ifeq ($(CONFIG_NET),y) +include insn/Make.defs +include libpoff/Make.defs +endif + +ASRCS = $(INSN_ASRCS) $(POFF_ASRCS) +AOBJS = $(ASRCS:.S=$(OBJEXT)) + +CSRCS = $(INSN_CSRCS) $(POFF_CSRCS) +COBJS = $(CSRCS:.c=$(OBJEXT)) + +SRCS = $(ASRCS) $(CSRCS) +OBJS = $(AOBJS) $(COBJS) + +BIN = libpcode$(LIBEXT) + +VPATH = insn:libpoff + +all: $(BIN) + +$(AOBJS): %$(OBJEXT): %.S + $(CC) -c $(CFLAGS) -D__ASSEMBLY__ $< -o $@ + +$(COBJS): %$(OBJEXT): %.c + $(CC) -c $(CFLAGS) $< -o $@ + +$(BIN): $(OBJS) + ( for obj in $(OBJS) ; do \ + $(AR) $@ $${obj} || \ + { echo "$(AR) $@ $obj FAILED!" ; exit 1 ; } ; \ + done ; ) + +.depend: Makefile $(SRCS) +ifeq ($(CONFIG_NET),y) + $(MKDEP) --dep-path . --dep-path insn --dep-path liboff $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep +else + $(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep +endif + touch $@ + +depend: .depend + +clean: + rm -f $(BIN) *.o *.rel *.asm *.lst *.sym *.adb *~ + +distclean: clean + rm -f Make.dep .depend + +-include Make.dep diff --git a/misc/pascal/nuttx/README.txt b/misc/pascal/nuttx/README.txt new file mode 100644 index 000000000..ca18eb830 --- /dev/null +++ b/misc/pascal/nuttx/README.txt @@ -0,0 +1,31 @@ +README.txt +^^^^^^^^^^ + +This directory contains miscellaneous files needed to install +pascal runtime logic into the NuttX source tree. After +installation, the NuttX source tree contain the following files + +pcode +|-- Makefile +|-- include +| `-- Common header files +|-- libboff +| `-- Pascal object format (POFF) library +`--insn + |-- include + | `-- model-specific header files + `-- prun + `-- model-specific source files + +This directory contains: + +INSTALL.sh -- The script that performs the operation. Usage: + + ./INSTALL.sh [-16|-32] <NuttX-path> + +Makefile -- The NuttX makefile for the runtime logic + +keywords.h -- A version that adjusts build context for the NuttX + environment. + + diff --git a/misc/pascal/nuttx/keywords.h b/misc/pascal/nuttx/keywords.h new file mode 100644 index 000000000..e8ad91461 --- /dev/null +++ b/misc/pascal/nuttx/keywords.h @@ -0,0 +1,64 @@ +/*************************************************************
+ * keywords.h
+ * This file defines the pascal compilation environment
+ *
+ * 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.
+ *************************************************************/
+
+#ifndef __KEYWORDS_H
+#define __KEYWORDS_H
+
+/*************************************************************
+ * Included Files
+ *************************************************************/
+
+#include <nuttx/config.h>
+#include <sys/types.h>
+#include <debug.h>
+
+/*************************************************************
+ * Definitions
+ *************************************************************/
+
+#ifndef CONFIG_DEBUG
+# define CONFIG_DEBUG 0
+#endif
+
+#define DEBUG(stream, format, arg...) dbg(format, ##arg)
+
+#ifndef CONFIG_TRACE
+# define CONFIG_TRACE 0
+#endif
+
+#define TRACE(stream, format, arg...) dbg(format, ##arg)
+#define errno *get_errno_ptr()
+
+#endif /* __KEYWORDS_H */
|