summaryrefslogtreecommitdiff
path: root/nuttx/arch
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-09-01 12:27:17 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-09-01 12:27:17 -0600
commit9ee5cfaffa313949563fb37f7cd39a2b7620a4dd (patch)
treec4ac8ef00bbc20cd9d265d6fdc1e917f3a96eb37 /nuttx/arch
parente21b9a799cafb19d617995579d5b16739a34f2bb (diff)
downloadnuttx-9ee5cfaffa313949563fb37f7cd39a2b7620a4dd.tar.gz
nuttx-9ee5cfaffa313949563fb37f7cd39a2b7620a4dd.tar.bz2
nuttx-9ee5cfaffa313949563fb37f7cd39a2b7620a4dd.zip
Obsolete support for the 8051 family. Trying to maintain compatibility with this family is too much effort and there has never really been a successful NuttX impplementation on these parts
Diffstat (limited to 'nuttx/arch')
-rw-r--r--nuttx/arch/8051/Kconfig48
-rw-r--r--nuttx/arch/8051/include/arch.h86
-rw-r--r--nuttx/arch/8051/include/irq.h206
-rw-r--r--nuttx/arch/8051/include/limits.h84
-rw-r--r--nuttx/arch/8051/include/syscall.h82
-rw-r--r--nuttx/arch/8051/include/types.h98
-rw-r--r--nuttx/arch/8051/src/.gitignore16
-rw-r--r--nuttx/arch/8051/src/Makefile54
-rw-r--r--nuttx/arch/8051/src/Makefile.sdccl278
-rw-r--r--nuttx/arch/8051/src/up_allocateheap.c89
-rw-r--r--nuttx/arch/8051/src/up_assert.c145
-rw-r--r--nuttx/arch/8051/src/up_blocktask.c167
-rw-r--r--nuttx/arch/8051/src/up_debug.c255
-rw-r--r--nuttx/arch/8051/src/up_delay.c93
-rw-r--r--nuttx/arch/8051/src/up_exit.c106
-rw-r--r--nuttx/arch/8051/src/up_head.S471
-rw-r--r--nuttx/arch/8051/src/up_idle.c95
-rw-r--r--nuttx/arch/8051/src/up_initialize.c144
-rw-r--r--nuttx/arch/8051/src/up_initialstate.c119
-rw-r--r--nuttx/arch/8051/src/up_internal.h153
-rw-r--r--nuttx/arch/8051/src/up_interruptcontext.c70
-rw-r--r--nuttx/arch/8051/src/up_irq.c152
-rw-r--r--nuttx/arch/8051/src/up_irqtest.c272
-rw-r--r--nuttx/arch/8051/src/up_putc.c81
-rw-r--r--nuttx/arch/8051/src/up_releasepending.c135
-rw-r--r--nuttx/arch/8051/src/up_reprioritizertr.c190
-rw-r--r--nuttx/arch/8051/src/up_restorecontext.c296
-rw-r--r--nuttx/arch/8051/src/up_savecontext.c362
-rw-r--r--nuttx/arch/8051/src/up_timerisr.c147
-rw-r--r--nuttx/arch/8051/src/up_unblocktask.c161
30 files changed, 0 insertions, 4655 deletions
diff --git a/nuttx/arch/8051/Kconfig b/nuttx/arch/8051/Kconfig
deleted file mode 100644
index 9c389b959..000000000
--- a/nuttx/arch/8051/Kconfig
+++ /dev/null
@@ -1,48 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see misc/tools/kconfig-language.txt.
-#
-
-if ARCH_8051
-comment "ARM Options"
-
-choice
- prompt "8051 Chip Selection"
- default ARCH_CHIP_8052
-
-config ARCH_CHIP_8051
- bool "8051"
-
-config ARCH_CHIP_8052
- bool "8052"
-
-endchoice # 8051 Chip Selection
-
-comment "Bring-up Debug Options"
-
-config ARCH_8051_BRINGUP
- bool "Bring-up debug"
- default n
- ---help---
- Enable bring-up debug instrumentation
-
-config ARCH_8051_NOSYSTIMER
- bool "No system timer"
- ---help---
- By default, Timer0 will be used as the system timer. Use of the
- system timer can be suppressed with the setting. This is useful
- during bring-up.
-
-config ARCH_8051_BRINGUP
- bool "Bring-up debug"
- default n
- ---help---
- Enable bring-up debug instrumentation
-
-config ARCH_8051_SUPRESS_INTERRUPTS
- bool "Suppress interrupts"
- default n
- ---help---
- It is useful during low-level bring-up to suppress all interrupts.
-
-endif # ARCH_8051
diff --git a/nuttx/arch/8051/include/arch.h b/nuttx/arch/8051/include/arch.h
deleted file mode 100644
index 48ab2b331..000000000
--- a/nuttx/arch/8051/include/arch.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/************************************************************************
- * arch.h
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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/arch.h
- */
-
-#ifndef __ARCH_ARCH_H
-#define __ARCH_ARCH_H
-
-/************************************************************************
- * Included Files
- ************************************************************************/
-
-#include <stdint.h>
-
-/************************************************************************
- * Definitions
- ************************************************************************/
-
-/************************************************************************
- * Public Types
- ************************************************************************/
-
-/************************************************************************
- * Public Variables
- ************************************************************************/
-
-/************************************************************************
- * Public Function Prototypes
- ************************************************************************/
-
-#ifdef __cplusplus
-#define EXTERN extern "C"
-extern "C"
-{
-#else
-#define EXTERN extern
-#endif
-
-/* The 805x family has a tiny, 256 stack and can be easily
- * overflowed. The following macro can be used to instrument
- * code to dump the stack pointer at critical locations.
- */
-
-void up_showsp(uint8_t ch) __naked;
-
-#undef EXTERN
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ARCH_ARCH_H */
-
diff --git a/nuttx/arch/8051/include/irq.h b/nuttx/arch/8051/include/irq.h
deleted file mode 100644
index da7513530..000000000
--- a/nuttx/arch/8051/include/irq.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/************************************************************************
- * irq.h
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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_IRQ_H
-#define __ARCH_IRQ_H
-
-/************************************************************************
- * Included Files
- ************************************************************************/
-
-#include <nuttx/config.h>
-#ifndef __ASSEMBLY__
-# include <stdint.h>
-#endif
-
-/************************************************************************
- * Definitions
- ************************************************************************/
-
-#define EXT_INT0_IRQ 0
-#define TIMER0_IRQ 1
-#define EXT_INT1_IRQ 2
-#define TIMER1_IRQ 3
-#define UART_IRQ 4
-#define TIMER2_IRQ 5
-
-#define NR_IRQS 6
-
-/* The stack for all tasks/threads lie at the same position
- * in IRAM. On context switches, the STACK contents will be
- * copied into the TCB.
- */
-
-#define IRAM_BASE 0x0000
-#ifdef CONFIG_ARCH_CHIP_8052
-# define IRAM_SIZE 0x0100
-#else
-# define IRAM_SIZE 0x0080
-#endif
-
-#define STACK_BASE 0x0024
-#define STACK_SIZE (IRAM_SIZE - STACK_BASE)
-
-/* This is the form of initial stack frame
- *
- * This initial stack frame will be configured to hold.
- * (1) The 16-bit return address of either:
- *
- * void task_start(void);
- * void pthread_start(void)
- *
- * The return address is stored at the top of stack.
- * so that the RETI instruction will work:
- *
- * PC15-8 <- ((SP))
- * (SP) <- (SP) -1
- * PC7-0 <- ((SP))
- * (SP) <- (SP) -1
- */
-
-#define FRAME_RETLS 0
-#define FRAME_RETMS 1
-
-/* Then a partial context context save area that can be
- * indexed with the following definitions (relative to the
- * beginning of the initial frame.
- */
-
-#define FRAME_ACC 2
-#define FRAME_IE 3
-#define FRAME_DPL 4
-#define FRAME_DPH 5
-
-#define FRAME_SIZE 6
-
-/* The remaining registers are not saved on the stack (due
- * to the limited stack size of the 8051/2) but in an array
- * in the TCB:
- */
-
-#define REGS_B 0
-#define REGS_R2 1
-#define REGS_R3 2
-#define REGS_R4 3
-#define REGS_R5 4
-#define REGS_R6 5
-#define REGS_R7 6
-#define REGS_R0 7
-#define REGS_R1 8
-#define REGS_PSW 9
-#define REGS_BP 10
-
-#define REGS_SIZE 11
-
-/* Note that the stack pointer is not saved. Rather, the
- * size of the saved stack frame is saved in the 'nbytes'
- * field. Since that stack begins at a fixed location, the
- * top-of-stack pointer can be derived from the saved size.
- */
-
-/* These are offsets into struct xcptcontext that can be
- * used from assembly language to access the structure.
- */
-
-#define XCPT_NBYTES 0
-#define XCPT_STACK 1
-#define XCPT_REGS (STACK_SIZE+1)
-
-#define XCPT_SIZE (STACK_SIZE+REGS_SIZE+1)
-
-/************************************************************************
- * Public Types
- ************************************************************************/
-
-/* This struct defines the way the registers are stored */
-
-#ifndef __ASSEMBLY__
-struct xcptcontext
-{
- /* This is the number of valid bytes currently saved in
- * stack[]. Since that stack begins at a fixed location,
- * the top-of-stack pointer can be derived from this size.
- */
-
- uint8_t nbytes;
-
- /* This is the saved stack. Space is allocated for the
- * entire 256 byte IRAM (minus register and bit usage at
- * the beginning).
- */
-
- uint8_t stack[STACK_SIZE];
-
- /* These are save 8051/2 registers. These are saved
- * separately from the stack to increase the effective
- * stack size.
- */
-
- uint8_t regs[REGS_SIZE];
-};
-#endif /* __ASSEMBLY */
-
-/************************************************************************
- * Public Variables
- ************************************************************************/
-
-/************************************************************************
- * Public Function Prototypes
- ************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-#ifdef __cplusplus
-#define EXTERN extern "C"
-extern "C" {
-#else
-#define EXTERN extern
-#endif
-
-EXTERN irqstate_t irqsave(void);
-EXTERN void irqrestore(irqstate_t flags);
-
-#undef EXTERN
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __ASSEMBLY */
-#endif /* __ARCH_IRQ_H */
-
diff --git a/nuttx/arch/8051/include/limits.h b/nuttx/arch/8051/include/limits.h
deleted file mode 100644
index 5c8116e07..000000000
--- a/nuttx/arch/8051/include/limits.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/************************************************************
- * arch/8051/include/limits.h
- *
- * Copyright (C) 2007, 2009, 2011-2012 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 Gregory Nutt 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_8051_INCLUDE_LIMITS_H
-#define __ARCH_8051_INCLUDE_LIMITS_H
-
-/************************************************************
- * Included Files
- ************************************************************/
-
-/************************************************************
- * Definitions
- ************************************************************/
-
-#define CHAR_BIT 8
-#define SCHAR_MIN (-SCHAR_MAX - 1)
-#define SCHAR_MAX 127
-#define UCHAR_MAX 255
-
-/* These could be different on machines where char is unsigned */
-
-#ifdef __CHAR_UNSIGNED__
-#define CHAR_MIN 0
-#define CHAR_MAX UCHAR_MAX
-#else
-#define CHAR_MIN SCHAR_MIN
-#define CHAR_MAX SCHAR_MAX
-#endif
-
-#define SHRT_MIN (-SHRT_MAX - 1)
-#define SHRT_MAX 32767
-#define USHRT_MAX 65535U
-
-#define INT_MIN (-INT_MAX - 1)
-#define INT_MAX 32767
-#define UINT_MAX 65535U
-
-/* These change on 32-bit and 64-bit platforms */
-
-#define LONG_MIN (-LONG_MAX - 1)
-#define LONG_MAX 2147483647L
-#define ULONG_MAX 4294967295UL
-
-/* For SDCC, a Generic pointer is 3 bytes in length with the
- * first byte holding data space information.
- */
-
-#define PTR_MIN (-PTR_MAX - 1)
-#define PTR_MAX 8388607
-#define UPTR_MAX 16777215U
-
-#endif /* __ARCH_8051_INCLUDE_LIMITS_H */
diff --git a/nuttx/arch/8051/include/syscall.h b/nuttx/arch/8051/include/syscall.h
deleted file mode 100644
index 2c85fb420..000000000
--- a/nuttx/arch/8051/include/syscall.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
- * arch/8051/include/syscall.h
- *
- * Copyright (C) 2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 include/syscall.h or include/sys/sycall.h
- */
-
-#ifndef __ARCH_8051_INCLUDE_SYSCALL_H
-#define __ARCH_8051_INCLUDE_SYSCALL_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-/****************************************************************************
- * 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_8051_INCLUDE_SYSCALL_H */
-
diff --git a/nuttx/arch/8051/include/types.h b/nuttx/arch/8051/include/types.h
deleted file mode 100644
index a3865e978..000000000
--- a/nuttx/arch/8051/include/types.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/************************************************************************
- * arch/8051/include/types.h
- *
- * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 sys/types.h
- */
-
-#ifndef __ARCH_8051_INCLUDE_TYPES_H
-#define __ARCH_8051_INCLUDE_TYPES_H
-
-/************************************************************************
- * Included Files
- ************************************************************************/
-
-/************************************************************************
- * Definitions
- ************************************************************************/
-
-/************************************************************************
- * Type Declarations
- ************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-/* These are the sizes of the standard integer types. NOTE that these type
- * names have a leading underscore character. This file will be included
- * (indirectly) by include/stdint.h and typedef'ed to the final name without
- * the underscore character. This roundabout way of doings things allows
- * the stdint.h to be removed from the include/ directory in the event that
- * the user prefers to use the definitions provided by their toolchain header
- * files
- *
- *
- * For SDCC, sizeof(int) is 16 and sizeof(long) is 32.
- * long long and double are not supported.
- */
-
-typedef signed char _int8_t;
-typedef unsigned char _uint8_t;
-
-typedef signed int _int16_t;
-typedef unsigned int _uint16_t;
-
-typedef signed long _int32_t;
-typedef unsigned long _uint32_t;
-
-/* For SDCC, a Generic pointer is 3 bytes in length with the
- * first byte holding data space information.
- */
-
-typedef signed long _intptr_t;
-typedef unsigned long _uintptr_t;
-
-/* This is the size of the interrupt state save returned by
- * irqsave()
- */
-
-typedef unsigned char irqstate_t;
-
-#endif /* __ASSEMBLY__ */
-
-/************************************************************************
- * Global Function Prototypes
- ************************************************************************/
-
-#endif /* __ARCH_8051_INCLUDE_TYPES_H */
diff --git a/nuttx/arch/8051/src/.gitignore b/nuttx/arch/8051/src/.gitignore
deleted file mode 100644
index 63526d43f..000000000
--- a/nuttx/arch/8051/src/.gitignore
+++ /dev/null
@@ -1,16 +0,0 @@
-Make.dep
-.depend
-up_mem.h
-*.sym
-*.asm
-*.rel
-*.lst
-*.adb
-*.rst
-*.lib
-*.lnk
-*.map
-*.mem
-*.ihx
-*.hex
-
diff --git a/nuttx/arch/8051/src/Makefile b/nuttx/arch/8051/src/Makefile
deleted file mode 100644
index 867024b62..000000000
--- a/nuttx/arch/8051/src/Makefile
+++ /dev/null
@@ -1,54 +0,0 @@
-############################################################################
-# arch/8051/src/Makefile
-#
-# Copyright (C) 2007, 2008, 2011-2012 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <gnutt@nuttx.org>
-#
-# 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.
-#
-############################################################################
-
-# Makefile fragments
-
--include $(TOPDIR)/Make.defs
--include chip/Make.defs
--include board/Make.defs
-
-# Check for SDCC native windows build
-
-ifeq ($(CONFIG_WINDOWS_NATIVE),y)
-
- # SDCC Windows native build
-
- include Makefile.sdccw
-else
-
- # SDCC in a POSIX environment (Linux, OSX, or Cygwin/MSYS)
-
- include Makefile.sdccl
-endif
diff --git a/nuttx/arch/8051/src/Makefile.sdccl b/nuttx/arch/8051/src/Makefile.sdccl
deleted file mode 100644
index 0e424924b..000000000
--- a/nuttx/arch/8051/src/Makefile.sdccl
+++ /dev/null
@@ -1,278 +0,0 @@
-############################################################################
-# arch/8051/src/Makefile.sdccl
-#
-# Copyright (C) 2007, 2008, 2011-2012, 2014 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <gnutt@nuttx.org>
-#
-# 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
-
-# Tools
-# CFLAGS, CPPFLAGS, ASFLAGS, LDFLAGS are set in $(TOPDIR)/Make.defs
-
-CFLAGS += -I$(TOPDIR)/sched
-CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -D__ASSEMBLY__
-
-LDFLAGS += --model-large --nostdlib --data-loc $(DEF_STACK_BASE) \
- --iram-size $(IRAM_SIZE) --code-loc 0x2100 --code-size 0x5f40 \
- --xram-loc $(IRAM_SIZE) --xram-size 0x1f00
-
-# Files and directories
-# There should be one head source (.asm file)
-
-HEAD_SSRC = up_head.S
-HEAD_ASRC = $(HEAD_SSRC:.S=$(ASMEXT))
-HEAD_OBJ = $(HEAD_ASRC:$(ASMEXT)=$(OBJEXT))
-
-# Assembly sources and objects
-
-SSRCS =
-ASRCS = $(SSRCS:.S=$(ASMEXT))
-AOBJS = $(ASRCS:$(ASMEXT)=$(OBJEXT))
-
-# C sources and objects
-
-CSRCS = up_initialize.c up_idle.c up_interruptcontext.c up_initialstate.c \
- up_unblocktask.c up_blocktask.c up_releasepending.c \
- up_reprioritizertr.c up_exit.c up_assert.c up_allocateheap.c \
- up_irq.c up_savecontext.c up_restorecontext.c up_putc.c \
- up_debug.c up_delay.c
-
-ifneq ($(CONFIG_SCHED_TICKLESS),y)
-CSRCS += up_timerisr.c
-endif
-
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-# All sources and objcts
-
-SRCS = $(SSRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-DEPSRCS = $(SRCS) $(HEAD_SSRC)
-
-# Board path
-
-BOARDDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src/board
-
-# Source path
-
-VPATH = chip:common:board
-
-# Libraries
-
-SDCCLIBS = -llibfloat.lib -llibint.lib -lliblong.lib -llibmysdcc.lib -lmcs51.lib
-
-LINKLIBS ?=
-LIBPATHS = -L"$(TOPDIR)/lib"
-LDLIBS = $(patsubst %.a,%,$(patsubst lib%,-l%,$(LINKLIBS)))
-
-# Test sources
-
-TESTSRCS = up_irqtest.c
-TESTOBJS = $(TESTSRCS:.c=$(OBJEXT))
-TESTLINKOBJS = up_head$(OBJEXT)
-TESTEXTRAOBJS = up_savecontext$(OBJEXT) up_restorecontext$(OBJEXT)
-
-# Memory
-
-HEAP1_BASE = ${shell \
- if [ -e pass1.mem ]; then \
- cat pass1.mem | grep "EXTERNAL RAM" | \
- sed -e "s/[ ][ ]*/ /g" | cut -d' ' -f5 ; \
- else \
- echo $(IRAM_SIZE) ; \
- fi \
- }
-DEF_HEAP2_BASE = 0x6000
-HEAP2_BASE = ${shell \
- if [ -e pass1.mem ]; then \
- cat pass1.mem | grep "ROM/EPROM/FLASH" | \
- sed -e "s/[ ][ ]*/ /g" | cut -d' ' -f4 ; \
- else \
- echo $(DEF_HEAP2_BASE) ; \
- fi \
- }
-STACK_BASE = ${shell \
- if [ -e pass1.mem ]; then \
- cat pass1.mem | grep "Stack starts" | \
- cut -d' ' -f4 ; \
- else \
- echo $(DEF_STACK_BASE) ; \
- fi \
- }
-
-# Targets
-
-all: up_head$(OBJEXT) libarch$(LIBEXT)
-
-.PHONY: board/libboard$(LIBEXT)
-
-$(ASRCS) $(HEAD_ASRC): %$(ASMEXT): %.S
- $(CPP) -P $(CPPFLAGS) $< -o $@
-
-$(AOBJS) $(HEAD_OBJ): $(ASRCS) $(HEAD_ASRC)
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS) $(TESTOBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-# This is a kludge to work around some conflicting symbols in the SDCC libraries
-
-$(TOPDIR)/lib/$(SDCCLIB): $(SDCC_LIBDIR)/$(SDCCLIB)
- $(Q) cp $(SDCC_LIBDIR)/$(SDCCLIB) $(TOPDIR)/lib/$(SDCCLIB)
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _calloc.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _malloc.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _realloc.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _free.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) printf_large.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) sprintf.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) vprintf.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) strcpy.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) strlen.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _strcat.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _strchr.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _strcmp.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _strcspn.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _strncat.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _strncmp.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _strncpy.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _strpbrk.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _strrchr.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _strspn.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _strstr.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _strtok.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _memchr.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _memcmp.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _memcpy.rel
- $(Q) sdar d $(TOPDIR)/lib/$(SDCCLIB) _memset.rel
-
-# Create a header file that contains addressing information needed by the code
-
-up_mem.h: pass1.mem
- @echo "#ifndef __ARCH_MEM_H" >up_mem.h
- @echo "#define __ARCH_MEM_H" >>up_mem.h
- @echo "" >>up_mem.h
- @echo "#define UP_DEFAULT_STACK_BASE $(DEF_STACK_BASE)" >>up_mem.h
- @echo "#define UP_DEFAULT_HEAP1_BASE $(IRAM_SIZE)" >> up_mem.h
- @echo "#define UP_DEFAULT_HEAP2_BASE $(DEF_HEAP2_BASE)" >> up_mem.h
- @echo "" >>up_mem.h
- @echo "#define UP_STACK_BASE $(STACK_BASE)" >>up_mem.h
- @echo "#if UP_STACK_BASE > UP_DEFAULT_STACK_BASE" >>up_mem.h
- @echo "# error \"Stack overlap: $(DEF_STACK_BASE) < $(STACK_BASE)\"" >>up_mem.h
- @echo "#elif UP_STACK_BASE < UP_DEFAULT_STACK_BASE" >>up_mem.h
- @echo "# warning \"Wasted stack: $(DEF_STACK_BASE) > $(STACK_BASE)\"" >>up_mem.h
- @echo "#endif" >>up_mem.h
- @echo "" >>up_mem.h
- @echo "#define UP_HEAP1_BASE $(HEAP1_BASE)" >> up_mem.h
- @echo "#define UP_HEAP1_END 0x2000" >> up_mem.h
- @echo "" >>up_mem.h
- @echo "#define UP_HEAP2_BASE $(HEAP2_BASE)" >> up_mem.h
- @echo "#define UP_HEAP2_END 0x8000" >> up_mem.h
- @echo "" >>up_mem.h
- @echo "#endif /* __ARCH_MEM_H */" >>up_mem.h
-
-# Combine all objects in this directory into a library
-
-libarch$(LIBEXT): up_mem.h $(OBJS)
- $(call ARCHIVE, $@, $(OBJS))
-
-# This builds the libboard library in the board/ subdirectory
-
-board/libboard$(LIBEXT):
- $(Q) $(MAKE) -C board TOPDIR="$(TOPDIR)" libboard$(LIBEXT) EXTRADEFINES=$(EXTRADEFINES)
-
-# This target builds the final executable
-
-pass1.hex: up_mem.h $(TOPDIR)/lib/$(SDCCLIB) $(HEAD_OBJ) board/libboard$(LIBEXT)
- @echo "LD: $@"
- $(Q) "$(CC)" $(LDFLAGS) $(LIBPATHS) -L$(BOARDDIR) $(SDCCPATH) $(HEAD_OBJ) \
- $(LDLIBS) -llibboard$(LIBEXT) $(SDCCLIBS) -o $@
- $(Q) rm -f up_mem.h
- $(Q) rm -f up_allocateheap$(OBJEXT) libarch$(LIBEXT)
- $(Q) $(MAKE) TOPDIR=$(TOPDIR) libarch$(LIBEXT)
-
-nuttx.hex: up_mem.h $(TOPDIR)/lib/$(SDCCLIB) $(HEAD_OBJ)
- @echo "LD: $@"
- $(Q) "$(CC)" $(LDFLAGS) $(LIBPATHS) -L$(BOARDDIR) $(SDCCPATH) $(HEAD_OBJ) \
- $(LDLIBS) -llibboard$(LIBEXT) $(SDCCLIBS) -o $@
-
-nuttx$(EXEEXT): pass1.hex nuttx.hex
- $(Q) rm -f pass1.*
- $(Q) packihx nuttx.hex > $(TOPDIR)/nuttx$(EXEEXT)
- $(Q) cp -f nuttx.map $(TOPDIR)/.
-
-# This is part of the top-level export target
-
-export_head: board/libboard$(LIBEXT) p_head$(OBJEXT)
- $(Q) if [ -d "$(EXPORT_DIR)/startup" ]; then \
- cp -f up_head$(OBJEXT) "$(EXPORT_DIR)/startup"; \
- else \
- echo "$(EXPORT_DIR)/startup does not exist"; \
- exit 1; \
- fi
-
-# This target builds a test program to verify interrupt context switching. irqtest is
-# a PHONY target that just sets upt the up_irqtest build correctly
-
-up_irqtest.hex: $(TESTOBJS)
- $(Q) "$(CC)" $(LDFLAGS) -L. $(SDCCPATH) $(TESTLINKOBJS) $(TESTOBJS) $(TESTEXTRAOBJS) $(SDCCLIBS) -o $@
-
-irqtest:
- $(Q) $(MAKE) TOPDIR=../../.. up_irqtest.hex
-
-# Build dependencies
-
-.depend: Makefile up_mem.h $(DEPSRCS)
- $(Q) if [ -e board/Makefile ]; then \
- $(MAKE) -C board TOPDIR=$(TOPDIR) depend ; \
- fi
- $(Q) $(MKDEP) "$(CC)" -- $(CFLAGS) -- $(SRCS) >Make.dep
- $(Q) touch $@
-
-depend: .depend
-
-clean:
- $(Q) if [ -e board/Makefile ]; then \
- $(MAKE) -C board TOPDIR=$(TOPDIR) clean ; \
- fi
- $(call DELFILE, libarch$(LIBEXT))
- $(call DELFILE, up_mem.h)
- $(call CLEAN)
-
-distclean: clean
- $(Q) if [ -e board/Makefile ]; then \
- $(MAKE) -C board TOPDIR=$(TOPDIR) distclean ; \
- fi
- $(call DELFILE, Make.dep)
- $(call DELFILE, .depend)
-
--include Make.dep
diff --git a/nuttx/arch/8051/src/up_allocateheap.c b/nuttx/arch/8051/src/up_allocateheap.c
deleted file mode 100644
index 0b00f88ec..000000000
--- a/nuttx/arch/8051/src/up_allocateheap.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/************************************************************
- * up_allocateheap.c
- *
- * Copyright (C) 2007, 2013 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 Gregory Nutt 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>
-#include <sched.h>
-#include <debug.h>
-
-#include <nuttx/arch.h>
-#include <nuttx/kmalloc.h>
-
-#include "up_internal.h"
-#include "up_mem.h"
-
-/************************************************************
- * Private Definitions
- ************************************************************/
-
-/************************************************************
- * Private Data
- ************************************************************/
-
-/************************************************************
- * Private Functions
- ************************************************************/
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
-/************************************************************
- * Name: up_allocate_heap
- *
- * Description:
- * This function will be called to dynamically set aside
- * the heap region.
- *
- ************************************************************/
-
-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;
- board_led_on(LED_HEAPALLOCATE);
-}
-
-#if CONFIG_MM_REGIONS > 1
-void up_addregion(void)
-{
- kmm_addregion((FAR void*)UP_HEAP2_BASE, UP_HEAP2_END - UP_HEAP2_BASE);
-}
-#endif
diff --git a/nuttx/arch/8051/src/up_assert.c b/nuttx/arch/8051/src/up_assert.c
deleted file mode 100644
index ca0be70bb..000000000
--- a/nuttx/arch/8051/src/up_assert.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/************************************************************************
- * up_assert.c
- *
- * Copyright (C) 2007, 2009, 2012-2014 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <stdlib.h>
-#include <assert.h>
-#include <sched.h>
-#include <debug.h>
-
-#include <nuttx/usb/usbdev_trace.h>
-
-#include <8052.h>
-
-#include "sched/sched.h"
-#include "up_internal.h"
-#include "up_mem.h"
-
-/************************************************************************
- * Pre-processor Definitions
- ************************************************************************/
-/* USB trace dumping */
-
-#ifndef CONFIG_USBDEV_TRACE
-# undef CONFIG_ARCH_USBDUMP
-#endif
-
-/************************************************************************
- * Private Data
- ************************************************************************/
-
-/************************************************************************
- * Private Functions
- ************************************************************************/
-
-/************************************************************************
- * Name: _up_assert
- ************************************************************************/
-
-static void _up_assert(int errorcode) noreturn_function;
-static void _up_assert(int errorcode)
-{
- /* Are we in an interrupt handler or the idle task? */
-
- if (g_irqtos || ((FAR struct tcb_s*)g_readytorun.head)->pid == 0)
- {
- (void)irqsave();
- for (;;)
- {
-#ifdef CONFIG_ARCH_LEDS
- board_led_on(LED_PANIC);
- up_delay(250);
- board_led_off(LED_PANIC);
- up_delay(250);
-#endif
- }
- }
- else
- {
- exit(errorcode);
- }
-}
-
-/****************************************************************************
- * Name: assert_tracecallback
- ****************************************************************************/
-
-#ifdef CONFIG_ARCH_USBDUMP
-static int assert_tracecallback(struct usbtrace_s *trace, void *arg)
-{
- usbtrace_trprintf((trprintf_t)lowsyslog, trace->event, trace->value);
- return 0;
-}
-#endif
-
-/************************************************************************
- * Public Functions
- ************************************************************************/
-
-/************************************************************************
- * Name: up_assert
- ************************************************************************/
-
-void up_assert(const uint8_t *filename, int lineno)
-{
-#if CONFIG_TASK_NAME_SIZE > 0
- struct tcb_s *rtcb = (struct tcb_s*)g_readytorun.head;
-#endif
-
- board_led_on(LED_ASSERTION);
-
-#if CONFIG_TASK_NAME_SIZE > 0
- lldbg("Assertion failed at file:%s line: %d task: %s\n",
- filename, lineno, rtcb->name);
-#else
- lldbg("Assertion failed at file:%s line: %d\n",
- filename, lineno);
-#endif
-
- up_dumpstack();
-
-#ifdef CONFIG_ARCH_USBDUMP
- /* Dump USB trace data */
-
- (void)usbtrace_enumerate(assert_tracecallback, NULL);
-#endif
-
- _up_assert(EXIT_FAILURE);
-}
diff --git a/nuttx/arch/8051/src/up_blocktask.c b/nuttx/arch/8051/src/up_blocktask.c
deleted file mode 100644
index 72a519b2b..000000000
--- a/nuttx/arch/8051/src/up_blocktask.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/************************************************************************
- * up_blocktask.c
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <stdbool.h>
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-
-#include "sched/sched.h"
-#include "up_internal.h"
-
-/************************************************************************
- * Private Definitions
- ************************************************************************/
-
-/************************************************************************
- * Private Data
- ************************************************************************/
-
-/************************************************************************
- * Private Funtions
- ************************************************************************/
-
-/************************************************************************
- * Public Funtions
- ************************************************************************/
-
-/************************************************************************
- * Name: up_block_task
- *
- * Description:
- * The currently executing task at the head of
- * the ready to run list must be stopped. Save its context
- * and move it to the inactive list specified by task_state.
- *
- * Inputs:
- * tcb: Refers to a task in the ready-to-run list (normally
- * the task at the head of the list). It most be
- * stopped, its context saved and moved into one of the
- * waiting task lists. It it was the task at the head
- * of the ready-to-run list, then a context to the new
- * ready to run task must be performed.
- * task_state: Specifies which waiting task list should be
- * hold the blocked task TCB.
- *
- ************************************************************************/
-
-void up_block_task(FAR struct tcb_s *tcb, tstate_t task_state)
-{
- FAR struct tcb_s *rtcb = (FAR struct tcb_s*)g_readytorun.head;
- bool switch_needed;
-
- /* Verify that the context switch can be performed */
-
- ASSERT((tcb->task_state >= FIRST_READY_TO_RUN_STATE) &&
- (tcb->task_state <= LAST_READY_TO_RUN_STATE));
-
- dbg("Blocking TCB=%p\n", tcb);
-
- /* Remove the tcb task from the ready-to-run list. If we
- * are blocking the task at the head of the task list (the
- * most likely case), then a context switch to the next
- * ready-to-run task is needed. In this case, it should
- * also be true that rtcb == tcb.
- */
-
- switch_needed = sched_removereadytorun(tcb);
-
- /* Add the task to the specified blocked task list */
-
- sched_addblocked(tcb, (tstate_t)task_state);
-
- /* If there are any pending tasks, then add them to the g_readytorun
- * task list now
- */
-
- if (g_pendingtasks.head)
- {
- switch_needed |= sched_mergepending();
- }
-
- /* Now, perform the context switch if one is needed */
-
- if (switch_needed)
- {
- /* Are we in an interrupt handler? */
-
- if (g_irqtos)
- {
- /* Yes, then we have to do things differently.
- * Just copy the current registers into the OLD rtcb.
- */
-
- up_saveirqcontext(&tcb->xcp);
-
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (FAR struct tcb_s*)g_readytorun.head;
- dbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then setup so that the context will be performed on exit
- * from the interrupt.
- */
-
- g_irqcontext = &rtcb->xcp;
- }
-
- /* Copy the user C context into the TCB at the (old) head of the
- * g_readytorun Task list. if up_savecontext returns a non-zero
- * value, then this is really the previously running task restarting!
- */
-
- else if (!up_savecontext(&rtcb->xcp))
- {
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (FAR struct tcb_s*)g_readytorun.head;
- dbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_restorecontext(&rtcb->xcp);
- }
- }
-}
diff --git a/nuttx/arch/8051/src/up_debug.c b/nuttx/arch/8051/src/up_debug.c
deleted file mode 100644
index 35a5d1d50..000000000
--- a/nuttx/arch/8051/src/up_debug.c
+++ /dev/null
@@ -1,255 +0,0 @@
-/************************************************************************
- * arch/8051/src/up_debug.c
- *
- * Copyright (C) 2007, 2009, 2014 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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>
-#include <stdint.h>
-#include <debug.h>
-
-#include <8052.h>
-#include <nuttx/arch.h>
-#include <arch/irq.h>
-
-#include "up_internal.h"
-#include "up_mem.h"
-
-/************************************************************************
- * Definitions
- ************************************************************************/
-
-/************************************************************************
- * Private Data
- ************************************************************************/
-
-/************************************************************************
- * Private Functions
- ************************************************************************/
-
-#if defined(CONFIG_FRAME_DUMP) && defined(CONFIG_ARCH_8051_BRINGUP)
-static void up_putspace(void) __naked
-{
- _asm
- mov a, #0x20
- ljmp PM2_ENTRY_COUT
- _endasm;
-}
-
-static void _up_putcolon(void) __naked
-{
- _asm
- mov a, #0x3a
- ljmp PM2_ENTRY_COUT
- _endasm;
-}
-
-static void _up_dump16(__code char *ptr, uint8_t msb, uint8_t lsb)
-{
- up_puts(ptr);
- up_puthex(msb);
- up_puthex(lsb);
- up_putnl();
-}
-
-static void _up_dump8(__code char *ptr, uint8_t b)
-{
- up_puts(ptr);
- up_puthex(b);
- up_putnl();
-}
-#endif
-
-/************************************************************************
- * Public Functions
- ************************************************************************/
-
-/************************************************************************
- * Name: up_puthex, up_puthex16, up_putnl, up_puts
- ************************************************************************/
-
-#if defined(CONFIG_ARCH_8051_BRINGUP)
-void up_puthex(uint8_t hex) __naked
-{
- hex; /* To avoid unreferenced argument warning */
- _asm
- mov a, dpl
- ljmp PM2_ENTRY_PHEX
- _endasm;
-}
-
-void up_puthex16(int hex) __naked
-{
- hex; /* To avoid unreferenced argument warning */
- _asm
- ljmp PM2_ENTRY_PHEX16
- _endasm;
-}
-
-void up_putnl(void) __naked
-{
- _asm
- ljmp PM2_ENTRY_NEWLINE
- _endasm;
-}
-
-void up_puts(__code char *ptr)
-{
- for (; *ptr; ptr++)
- {
- up_putc(*ptr);
- }
-}
-#endif
-
-/************************************************************************
- * Name: up_dumpstack
- ************************************************************************/
-
-#if defined(CONFIG_FRAME_DUMP) && defined(CONFIG_ARCH_8051_BRINGUP)
-void up_dumpstack(void)
-{
- NEAR uint8_t *start = (NEAR uint8_t *)(STACK_BASE & 0xf0);
- NEAR uint8_t *end = (NEAR uint8_t *)SP;
- uint8_t i;
-
- while (start < end)
- {
- up_puthex((uint8_t)start);
- _up_putcolon();
-
- for (i = 0; i < 8; i++)
- {
- up_putspace();
- if (start < (NEAR uint8_t *)(STACK_BASE) ||
- start > end)
- {
- up_putspace();
- up_putspace();
- }
- else
- {
- up_puthex(*start);
- }
- start++;
- }
- up_putnl();
- }
-}
-#endif
-
-/************************************************************************
- * Name: up_dumpframe
- ************************************************************************/
-
-#if defined(CONFIG_FRAME_DUMP) && defined(CONFIG_ARCH_8051_BRINGUP)
-void up_dumpframe(FAR struct xcptcontext *context)
-{
-#ifdef CONFIG_FRAME_DUMP_SHORT
- FAR uint8_t *stack = &context->stack[context->nbytes - FRAME_SIZE];
- FAR uint8_t *regs = context->regs;
-
- _up_dump16(" RET ", stack[FRAME_RETMS], stack[FRAME_RETLS]);
- _up_dump8 (" IE ", stack[FRAME_IE]);
- _up_dump16(" DPTR ", stack[FRAME_DPH], stack[FRAME_DPL]);
- _up_dump8 (" PSW ", regs[REGS_PSW]);
- _up_dump8 (" SP ", context->nbytes + (STACK_BASE-1));
-#else
- FAR uint8_t *stack = &context->stack[context->nbytes - FRAME_SIZE];
- FAR uint8_t *regs = context->regs;
- uint8_t i, j, k;
-
- _up_dump8 (" NBYTES ", context->nbytes);
-
- for (i = 0; i < context->nbytes; i += 8)
- {
- up_puthex(i);
- _up_putcolon();
-
- for (j = 0; j < 8; j++)
- {
- k = i + j;
- up_putspace();
- if (k >= context->nbytes)
- {
- up_putspace();
- up_putspace();
- }
- else
- {
- up_puthex(context->stack[k]);
- }
- }
- up_putnl();
- }
-
- up_puts(" REGS:");
- for (i = 0; i < REGS_SIZE; i++)
- {
- up_putspace();
- up_puthex(context->regs[i]);
- }
- up_putnl();
-#endif
-}
-#endif
-
-/************************************************************************
- * Name: up_dumpframe
- ************************************************************************/
-
-/* The 805x family has a tiny, 256 stack and can be easily
- * overflowed. The following macro can be used to instrument
- * code to dump the stack pointer at critical locations.
- */
-
-#ifdef CONFIG_ARCH_8051_BRINGUP
-void up_showsp(uint8_t ch) __naked
-{
- ch;
- _asm
- mov a, dpl
- lcall PM2_ENTRY_COUT
- mov a, sp
- lcall PM2_ENTRY_PHEX
- lcall PM2_ENTRY_NEWLINE
- _endasm;
-}
-#endif
-
-
diff --git a/nuttx/arch/8051/src/up_delay.c b/nuttx/arch/8051/src/up_delay.c
deleted file mode 100644
index ad8950e86..000000000
--- a/nuttx/arch/8051/src/up_delay.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/************************************************************************
- * up_delay.c
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <stdint.h>
-#include "up_internal.h"
-
-/************************************************************************
- * Definitions
- ************************************************************************/
-
-/************************************************************************
- * Private Types
- ************************************************************************/
-
-/************************************************************************
- * Private Function Prototypes
- ************************************************************************/
-
-/************************************************************************
- * Private Variables
- ************************************************************************/
-
-/************************************************************************
- * Private Functions
- ************************************************************************/
-
-
-/************************************************************************
- * Public Funtions
- ************************************************************************/
-
-/************************************************************************
- * Name: up_delay
- *
- * Description:
- * Delay inline for the requested number of milliseconds.
- * NOT multi-tasking friendly.
- *
- ************************************************************************/
-
-void up_delay(uint8_t milliseconds) __naked
-{
- _asm
- mov r0, dpl
-00001$: mov r1, #230
-00002$: nop
- nop
- nop
- nop
- nop
- nop
- djnz r1, 00002$
- djnz r0, 00001$
- ret
- _endasm;
-}
diff --git a/nuttx/arch/8051/src/up_exit.c b/nuttx/arch/8051/src/up_exit.c
deleted file mode 100644
index 29fe790fb..000000000
--- a/nuttx/arch/8051/src/up_exit.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************************
- * up_exit.c
- *
- * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <sched.h>
-#include <debug.h>
-
-#include <8052.h>
-#include <nuttx/arch.h>
-
-#include "task/task.h"
-#include "sched/sched.h"
-#include "up_internal.h"
-
-/****************************************************************************************
- * Private Definitions
- ****************************************************************************************/
-
-/****************************************************************************************
- * Private Data
- ****************************************************************************************/
-
-/****************************************************************************************
- * Private Functions
- ****************************************************************************************/
-
-/****************************************************************************************
- * Public Functions
- ****************************************************************************************/
-
-/****************************************************************************************
- * Name: _exit
- *
- * Description:
- * This function causes the currently executing task to cease
- * to exist. This is a special case of task_delete() where the task to
- * be deleted is the currently executing task. It is more complex because
- * a context switch must be perform to the next ready to run task.
- *
- ****************************************************************************************/
-
-void _exit(int status)
-{
- FAR struct tcb_s* tcb;
-
- dbg("TCB=%p exiting\n", tcb);
-
- /* Disable interrupts. Interrupts will remain disabled until
- * the new task is resumed below when the save IE is restored.
- */
-
- EA = 0;
-
- /* Destroy the task at the head of the ready to run list. */
-
- (void)task_exit();
-
- /* Now, perform the context switch to the new ready-to-run task at the
- * head of the list.
- */
-
- tcb = (FAR struct tcb_s*)g_readytorun.head;
- dbg("New Active Task TCB=%p\n", tcb);
-
- /* Then switch contexts */
-
- up_restorecontext(&tcb->xcp);
-}
-
diff --git a/nuttx/arch/8051/src/up_head.S b/nuttx/arch/8051/src/up_head.S
deleted file mode 100644
index d4e2ba6e7..000000000
--- a/nuttx/arch/8051/src/up_head.S
+++ /dev/null
@@ -1,471 +0,0 @@
-/************************************************************
- * arch/8051/src/up_head.S
- *
- * Copyright (C) 2007, 2014 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 Gregory Nutt 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 <nuttx/irq.h>
-#include "up_internal.h"
-
- .module up_head
- .optsdcc -mmcs51 --model-large
-
-/************************************************************
- * Private Data
- ************************************************************/
-
- .area REG_BANK_0 (REL,OVR,DATA)
- .ds 8
-
-#ifndef CONFIG_ARCH_8051_NOSYSTIMER
- .area XSEG
-_g_timer0tick:
- .ds 1
-#endif
-
-/************************************************************
- * Public Data
- ************************************************************/
-
- .globl _g_irqtos
- .globl _g_irqcontext
- .globl _g_irqregs
-
-/************************************************************
- * Public Functions
- ************************************************************/
-
- .globl _irq_dispatch
- .globl _up_restoreregisters
-
-/************************************************************
- * Program entry points
- ************************************************************/
-
-/* Program entry is through PROGRAM_BASE. This is just a
- * branch to our start up logic.
- */
-
- .area CODE1 (ABS)
- .org PROGRAM_BASE
- ljmp start
-
-/* These are indirect interrupt vectors. Logic in PAULMON2,
- * captures the interrupt vectors (near address 0x0000) and
- * re-routes them through the following entry points.
- *
- * Each of these saves acc and ie then passes the IRQ number
- * to higher level logic in a
- */
-
- .org PM2_VECTOR_EXTINT0
- push acc
- mov a, #EXT_INT0_IRQ
- ljmp _up_interrupt
-
- .org PM2_VECTOR_TIMER0
- push acc
-#ifdef CONFIG_ARCH_8051_NOSYSTIMER
- mov a, #TIMER0_IRQ
- ljmp _up_interrupt
-#else
- ljmp _up_timer0
-#endif
- .org PM2_VECTOR_EXTINT1
- push acc
- mov a, #EXT_INT1_IRQ
- ljmp _up_interrupt
-
- .org PM2_VECTOR_TIMER1
- push acc
- mov a, #TIMER1_IRQ
- ljmp _up_interrupt
-
- .org PM2_VECTOR_UART
- push acc
- mov a, #UART_IRQ
- ljmp _up_interrupt
-
- .org PM2_VECTOR_TIMER2
- push acc
- mov a, #TIMER2_IRQ
- ljmp _up_interrupt
-
-/************************************************************
- * Name: start
- *
- * Description:
- * This is the initial entry point into NuttX
- *
- ************************************************************/
-
-start:
- mov sp, #(STACK_BASE-1)
-
-#ifdef CONFIG_ARCH_LEDS
- lcall _board_led_initialize
-#endif
-
- ljmp _os_start
-
-/************************************************************
- * Name: up_timer0
- *
- * Description:
- * Timer 0, mode 0 can be used as a system timer. In that
- * mode, the 1.8432 MHz clock is divided by 32. A single
- * 8-bit value is incremented at 57600 Hz, which results
- * in 225 Timer 0 overflow interrupts per second.
- *
- * The Timer0 interrupt vectors to this point which then
- * does a software divide by 2 to get a system timer of
- * 112.5Hz.
- *
- * On Entry:
- *
- * (1) acc on the stack and
- * (2) the IRQ number(TIMER0_IRQ) in the accumulator
- *
- ************************************************************/
-
-#ifndef CONFIG_ARCH_8051_NOSYSTIMER
-_up_timer0:
- ar2 = 0x02
- ar3 = 0x03
- ar4 = 0x04
- ar5 = 0x05
- ar6 = 0x06
- ar7 = 0x07
- ar0 = 0x00
- ar1 = 0x01
-
- /* ACC already on the stack; push IE. Then disable interrupts */
-
- push ie
- clr ea
-
- /* Save the remaining registers with interrupts disabled
- *
- * a, ie, and dptr go on the stack.
- */
-
- push dpl
- push dph
-
- /* Increment the tick counter */
-
- mov dptr, #_g_timer0tick
- movx a, @dptr
- inc a
- movx @dptr, a
-
- /* If bit 0 is '0', then just return from the interrupt */
-
- anl a, #0x01
- jnz 00101$
- ljmp _up_timer0exit
-
- /* If bit 0 is '1', then process the interrupt */
-
-00101$:
- mov a, #TIMER0_IRQ
- sjmp _up_timer0join
-#endif
-
-/************************************************************
- * Name: up_interrupt
- *
- * Description:
- * All interrupts vector to this point with:
- *
- * (1) acc on the stack and
- * (2) the IRQ number in the accumulator
- *
- ************************************************************/
-
-_up_interrupt:
- ar2 = 0x02
- ar3 = 0x03
- ar4 = 0x04
- ar5 = 0x05
- ar6 = 0x06
- ar7 = 0x07
- ar0 = 0x00
- ar1 = 0x01
-
- /* ACC already on the stack; push IE. Then disable interrupts */
-
- push ie
- clr ea
-
- /* Save the remaining registers with interrupts disabled
- *
- * a, ie, and dptr go on the stack.
- */
-
- push dpl
- push dph
-
-_up_timer0join:
- /* Other registers go into the IRQ register save area */
-
- push acc
- mov dptr, #_g_irqregs
- lcall _up_saveregisters
-
- /* Show interrupt status on the LEDs */
-
-#ifdef CONFIG_ARCH_LEDS
- mov dpl, #LED_INIRQ
- lcall _board_led_on
-#endif
-
- /* Save the IRQ number in r2 */
-
- pop ar2
-
- /* Mark that we are in an interrupt and provide the top
- * of stack pointer to the context switching logic.
- */
-
- mov dptr, #_g_irqtos
- mov a, sp
- movx @dptr, a
-
- /* Nullify the context pointer. If a context switch is
- * needed, this will be set to the address of the context
- * structure.
- */
-
- mov dptr, #_g_irqcontext
- clr a
- movx @dptr,a
- inc dptr
- movx @dptr,a
-
- /* Now call void irq_dispatch(int irq, FAR void *context)
- *
- * First, create the first argument as (int)irqno
- */
-
- mov dpl, r2
- mov dph, #0
-
- /* Create the second argument (void *context) on the stack */
-
- push sp
- clr a
- push acc
-
- /* Then dispatch the IRQ. */
-
- lcall _irq_dispatch
- pop acc
- pop acc
-
- /* Indicate that we are no longer in an interrupt */
-
- mov dptr, #_g_irqtos
- clr a
- movx @dptr, a
-
- /* Check if a context switch is pending */
-
- mov dptr,#_g_irqcontext
- movx a, @dptr
- mov r2, a
- inc dptr
- movx a, @dptr
- mov r3, a
-
- orl a, r2
- jnz 00001$
-
- /* No context switch is pending. Restore registers
- * from the interrupt register save area.
- */
-
- mov dptr, #_g_irqregs
- sjmp 00004$
-
-00001$: /****************************************************/
-
- /* A context switch is pending, clear g_irqcontext */
-
- mov dpl, r2
- mov dph, r3
- clr a
- movx @dptr, a
- inc dptr
- movx @dptr, a
-
-#ifdef CONFIG_INTERRUPT_FRAME_DUMP
- mov dpl, r2
- mov dph, r3
- push ar2
- push ar3
- lcall _up_dumpframe
- pop ar3
- pop ar2
-#endif
-
- /* Register usage in the following:
- *
- * R0 - Holds working the 8-bit IRAM pointer
- * R1 - Not used
- * R2-3 - Holds the working 16-bit XRAM pointer
- * R4 - Holds the working byte count
- * R5 - Holds the new stack pointer
- * R6-7 - Not used
- */
-
- /* Fetch r4 = context->nbytes */
-
- mov dpl, r2
- mov dph, r3
- movx a, @dptr
- mov r4, a
-
- /* Save the new stack pointer in r5 */
-
- add a, #(STACK_BASE-1)
- mov r5, a
-
- /* Save r2-3 = &context->stack */
-
- inc dptr
- push dpl
- push dph
- mov r2, dpl
- mov r3, dph
-
- /* Set r0 = stack base address */
-
- mov r0, #STACK_BASE
-
- /* Top of the copy loop */
-00002$:
- mov a, r4 /* a = bytes left to transfer */
- dec r4 /* (for next time through the loop) */
- jz 00003$ /* Jump if a = 0 (done) */
-
- /* Fetch the next byte from context->stack */
-
- mov dpl, r2
- mov dph, r3
- movx a,@dptr
-
- /* Increment the XRAM pointer */
-
- inc dptr
- mov r2, dpl
- mov r3, dph
-
- /* Save the next byte into IRAM */
-
- mov @r0, a
-
- /* Increment the IRAM pointer */
-
- inc r0
- sjmp 00002$
-
- /* The entire stack has been copied from XRAM into
- * IRAM. Set the new stack pointer
- */
-
-00003$:
- pop dph
- pop dpl
- mov sp, r5
-
-#ifdef CONFIG_INTERRUPT_FRAME_DUMP
- push dpl
- push dph
- lcall _up_dumpstack
- pop dph
- pop dpl
-#endif
- /* Get the pointer to the register save area */
-
- mov a, #STACK_SIZE
- add a, dpl
- mov dpl, a
- clr a
- addc a, dph
- mov dph, a
-
-00004$: /****************************************************/
-
- /* Restore the context from the register save area
- * and return from the interrupt. At this point, dptr
- * holds the pointer to the memory region that holds
- * the register save area. This could be either
- * g_irqregs (no context switch) or &g_irqcontext->regs
- * (context switch).
- */
-
-#ifdef CONFIG_ARCH_LEDS
- push dpl
- push dph
- mov dpl, #LED_INIRQ
- lcall _board_led_off
- pop dph
- pop dpl
-#endif
- /* Restore registers from the register save area */
-
- lcall _up_restoreregisters
-
-_up_timer0exit:
- /* Restore registers from the stack and return */
-
- pop dph
- pop dpl
-
- /* Restore the interrupt state per the stored IE value */
-
- pop acc
- jb acc.7,00005$
- clr ie.7
- sjmp 00006$
-00005$:
- setb ie.7
-
-00006$:
- pop acc
- reti
diff --git a/nuttx/arch/8051/src/up_idle.c b/nuttx/arch/8051/src/up_idle.c
deleted file mode 100644
index a5d39bcfb..000000000
--- a/nuttx/arch/8051/src/up_idle.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/************************************************************************
- * arch/8051/src/up_idle.c
- *
- * Copyright (C) 2007, 2009, 2014 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <stdint.h>
-#include <nuttx/arch.h>
-
-#include "up_internal.h"
-
-/************************************************************************
- * Pre-processor Definitions
- ************************************************************************/
-
-/************************************************************************
- * Private Data
- ************************************************************************/
-
-#if defined(CONFIG_ARCH_LEDS) && defined(CONFIG_ARCH_8051_BRINGUP)
-static uint8_t g_ledtoggle = 0;
-#endif
-
-/************************************************************************
- * Private Functions
- ************************************************************************/
-
-/************************************************************************
- * Public Functions
- ************************************************************************/
-
-/************************************************************************
- * Name: up_idle
- *
- * Description:
- * up_idle() is the logic that will be executed when their
- * is no other ready-to-run task. This is processor idle
- * time and will continue until some interrupt occurs to
- * cause a context switch from the idle task.
- *
- * Processing in this state may be processor-specific. e.g.,
- * this is where power management operations might be
- * performed.
- *
- ************************************************************************/
-
-void up_idle(void)
-{
-#if defined(CONFIG_ARCH_LEDS) && defined(CONFIG_ARCH_8051_BRINGUP)
- g_ledtoggle++;
- if (g_ledtoggle == 0x80)
- {
- board_led_on(LED_IDLE);
- }
- else if (g_ledtoggle == 0x00)
- {
- board_led_off(LED_IDLE);
- }
-#endif
-}
diff --git a/nuttx/arch/8051/src/up_initialize.c b/nuttx/arch/8051/src/up_initialize.c
deleted file mode 100644
index bf461a09c..000000000
--- a/nuttx/arch/8051/src/up_initialize.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/************************************************************************
- * arch/8051/src/up_initialize.c
- *
- * Copyright (C) 2007, 2009, 2011, 2014 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <stdint.h>
-
-#include <nuttx/arch.h>
-#include <nuttx/fs/fs.h>
-
-#include "up_internal.h"
-
-/************************************************************************
- * Private Definitions
- ************************************************************************/
-
-/************************************************************************
- * Private Data
- ************************************************************************/
-
-/* This is the top of the stack containing the interrupt
- * stack frame. It is set when processing an interrupt. It
- * is also cleared when the interrupt returns so this can
- * also be used like a boolean indication that we are in an
- * interrupt.
- */
-
-volatile uint8_t g_irqtos;
-
-/* Registers are saved in the following global array during
- * interrupt processing. If a context switch is performed
- * during the interrupt handling, these registers will be
- * copied into the TCB again (NOTE: We could save a copy
- * if the interrupt handling logic saved the registers
- * directly into (struct tcb_s*)g_readytorun.head->xcp.regs).
- */
-
-uint8_t g_irqregs[REGS_SIZE];
-
-/* If during execution of an interrup handler, a context
- * switch must be performed, the follwing will be set to
- * to that address of the relevant context structure. The
- * actual switch will be deferred until the time that the
- * the interrupt exits.
- */
-
-FAR struct xcptcontext *g_irqcontext;
-
-/* It is faster to look up 8-bit shifts in this table than
- * to comput them.
- */
-
-const uint8_t g_ntobit[8] =
- { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 };
-
-/************************************************************************
- * Private Functions
- ************************************************************************/
-
-/************************************************************************
- * Public Functions
- ************************************************************************/
-
-/************************************************************************
- * Name: up_initialize
- *
- * Description:
- * up_initialize will be called once during OS
- * initialization after the basic OS services have been
- * initialized. The architecture specific details of
- * initializing the OS will be handled here. Such things as
- * setting up interrupt service routines, starting the
- * clock, and registering device drivers are some of the
- * things that are different for each processor and hardware
- * platform.
- *
- * up_initialize is called after the OS initialized but
- * before the init process has been started and before the
- * libraries have been initialized. OS services and driver
- * services are available.
- *
- ************************************************************************/
-
-void up_initialize(void)
-{
- /* Initialize global variables */
-
- g_irqtos = 0;
-
- /* Add extra memory fragments to the memory manager */
-
-#if CONFIG_MM_REGIONS > 1
- up_addregion();
-#endif
-
- /* Initialize the interrupt subsystem */
-
- up_irqinitialize();
-
- /* Initialize the system timer interrupt */
-
-#ifndef CONFIG_ARCH_8051_SUPRESS_INTERRUPTS
- up_timer_initialize();
-#endif
-
- board_led_on(LED_IRQSENABLED);
-}
-
diff --git a/nuttx/arch/8051/src/up_initialstate.c b/nuttx/arch/8051/src/up_initialstate.c
deleted file mode 100644
index d0d568981..000000000
--- a/nuttx/arch/8051/src/up_initialstate.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/************************************************************************
- * up_initialstate.c
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <stdint.h>
-#include <sched.h>
-
-#include "up_internal.h"
-
-/************************************************************************
- * Private Definitions
- ************************************************************************/
-
-/************************************************************************
- * Private Data
- ************************************************************************/
-
-/************************************************************************
- * Private Functions
- ************************************************************************/
-
-/************************************************************************
- * Public Functions
- ************************************************************************/
-
-/************************************************************************
- * Name: up_initial_state
- *
- * Description:
- * A new thread is being started and a new TCB
- * has been created. This function is called to initialize
- * the processor specific portions of the new TCB.
- *
- * This function must setup the intial architecture registers
- * and/or stack so that execution will begin at tcb->start
- * on the next context switch.
- *
- ************************************************************************/
-
-void up_initial_state(FAR struct tcb_s *tcb)
-{
- FAR uint8_t *frame = tcb->xcp.stack;
- FAR uint8_t *regs = tcb->xcp.regs;
-
- /* This is the form of initial stack frame
- *
- * This initial stack frame will be configured to hold.
- * (1) The 16-bit return address of either:
- *
- * void task_start(void);
- * void pthread_start(void)
- *
- * The return address is stored at the top of stack.
- * so that the RETI instruction will work:
- *
- * PC15-8 <- ((SP))
- * (SP) <- (SP) -1
- * PC7-0 <- ((SP))
- * (SP) <- (SP) -1
- */
-
- frame[FRAME_RETLS] = (((uint16_t)tcb->start) & 0xff);
- frame[FRAME_RETMS] = (((uint16_t)tcb->start) >> 8);
-
- /* The context save area for registers a, ie, and dpstr
- * follows the return address in the stack frame.
- */
-
- frame[FRAME_IE] = 0x80;
-
- /* Save the number of bytes in the frame (which will be used
- * to initialize the stack pointer when the task is started).
- */
-
- tcb->xcp.nbytes = FRAME_SIZE;
-
- /* Initialize the remaining register save area which is
- * outside of the stack save area.
- */
-
- tcb->xcp.regs[REGS_PSW] = 0;
-}
diff --git a/nuttx/arch/8051/src/up_internal.h b/nuttx/arch/8051/src/up_internal.h
deleted file mode 100644
index d4bde5923..000000000
--- a/nuttx/arch/8051/src/up_internal.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/**************************************************************************
- * arch/8051/src/up_internal.h
- *
- * Copyright (C) 2007, 2009, 2011, 2014 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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_8051_SRC_UP_INTERNAL_H
-#define __ARCH_8051_SRC_UP_INTERNAL_H
-
-/**************************************************************************
- * Included Files
- **************************************************************************/
-
-#include <nuttx/config.h>
-#include <stdint.h>
-#include <stdbool.h>
-#include <arch/irq.h>
-
-#if defined(CONFIG_ARCH_BOARD_PJRC_87C52)
-# include <arch/board/pjrc.h>
-#else
-# warning "805x board not recognized"
-#endif
-
-/**************************************************************************
- * Public Definitions
- **************************************************************************/
-
-/**************************************************************************
- * Public Types
- **************************************************************************/
-
-/**************************************************************************
- * Public Variables
- **************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-/* This is the top of the stack containing the interrupt
- * stack frame. It is set when processing an interrupt. It
- * is also cleared when the interrupt returns so this can
- * also be used like a boolean indication that we are in an
- * interrupt.
- */
-
-extern volatile uint8_t g_irqtos;
-
-/* Registers are saved in the following global array during
- * interrupt processing. If a context switch is performed
- * during the interrupt handling, these registers will be
- * copied into the TCB again (NOTE: We could save a copy
- * if the interrupt handling logic saved the registers
- * directly into (struct tcb_s*)g_readytorun.head->xcp.regs).
- */
-
-extern uint8_t g_irqregs[REGS_SIZE];
-
-/* If during execution of an interrup handler, a context
- * switch must be performed, the follwing will be set to
- * to that address of the relevant context structure. The
- * actual switch will be deferred until the time that the
- * the interrupt exits.
- */
-
-extern FAR struct xcptcontext *g_irqcontext;
-
-/* It is faster to look up 8-bit shifts in this table than
- * to comput them.
- */
-
-extern const uint8_t g_ntobit[8];
-
-#endif /* __ASSEMBLY */
-
-/**************************************************************************
- * Public Function Prototypes
- **************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-#if CONFIG_MM_REGIONS > 1
-void up_addregion(void);
-#endif
-void up_delay(uint8_t milliseconds) __naked;
-void up_irqinitialize(void);
-void up_restorecontext(FAR struct xcptcontext *context) _naked;
-void up_restoreregisters(FAR uint8_t *regs) _naked;
-uint8_t up_savecontext(FAR struct xcptcontext *context) __naked;
-void up_saveregisters(FAR uint8_t *regs) _naked;
-void up_saveirqcontext(FAR struct xcptcontext *context);
-void up_timer_initialize(void);
-
-/* Defined in up_debug.c */
-
-#if defined(CONFIG_ARCH_8051_BRINGUP)
-void up_puthex(uint8_t hex) __naked;
-void up_puthex16(int hex) __naked;
-void up_putnl(void) __naked;
-void up_puts(__code char *ptr);
-void up_showsp(uint8_t ch) __naked;
-#endif
-
-#if defined(CONFIG_FRAME_DUMP) && defined(CONFIG_ARCH_8051_BRINGUP)
-void up_dumpstack(void);
-void up_dumpframe(FAR struct xcptcontext *context);
-#else
-# define up_dumpstack()
-# define up_dumpframe(x)
-#endif
-
-/* Defined in board/up_leds.c */
-
-#ifdef CONFIG_ARCH_LEDS
-void board_led_initialize(void);
-void board_led_on(uint8_t led);
-void board_led_off(uint8_t led);
-#else
-# define board_led_initialize()
-# define board_led_on(led)
-# define board_led_off(led)
-#endif
-
-#endif /* __ASSEMBLY */
-#endif /* __ARCH_8051_SRC_UP_INTERNAL_H */
diff --git a/nuttx/arch/8051/src/up_interruptcontext.c b/nuttx/arch/8051/src/up_interruptcontext.c
deleted file mode 100644
index bcc9e4cd9..000000000
--- a/nuttx/arch/8051/src/up_interruptcontext.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/************************************************************************
- * up_interruptcontext.c
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <stdbool.h>
-#include <nuttx/arch.h>
-#include <nuttx/irq.h>
-
-#include "up_internal.h"
-
-/************************************************************************
- * Private Types
- ************************************************************************/
-
-/************************************************************************
- * Private Function Prototypes
- ************************************************************************/
-
-/************************************************************************
- * Global Functions
- ************************************************************************/
-
-/************************************************************************
- * Name: up_interrupt_context
- *
- * Description: Return true is we are currently executing in
- * the interrupt handler context.
- ************************************************************************/
-
-bool up_interrupt_context(void)
-{
- return g_irqtos != 0;
-}
diff --git a/nuttx/arch/8051/src/up_irq.c b/nuttx/arch/8051/src/up_irq.c
deleted file mode 100644
index 85b30aeaf..000000000
--- a/nuttx/arch/8051/src/up_irq.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/************************************************************************
- * arch/8051/src/up_irq.c
- *
- * Copyright (C) 2007, 2009, 2014 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <nuttx/irq.h>
-#include <debug.h>
-
-#include <8052.h>
-
-#include "up_internal.h"
-
-extern int g_nints;
-
-/************************************************************************
- * Definitions
- ************************************************************************/
-
-/************************************************************************
- * Public Data
- ************************************************************************/
-
-/************************************************************************
- * Private Data
- ************************************************************************/
-
-/************************************************************************
- * Private Functions
- ************************************************************************/
-
-/************************************************************************
- * Public Funtions
- ************************************************************************/
-
-/************************************************************************
- * Name: irq_initialize
- ************************************************************************/
-
-void up_irqinitialize(void)
-{
- /* Set interrupt priorities (all low) */
-
- IP = 0;
-
-#ifdef CONFIG_ARCH_8051_SUPRESS_INTERRUPTS
- /* Disable all interrupts */
-
- IE = 0;
-#else
- /* Enable interrupts globally, but disable all interrupt
- * sources.
- */
-
- IE = 0x80;
-#endif
-}
-
-/************************************************************************
- * Name: irqsave
- *
- * Description:
- * Disable all IRQs
- *
- ************************************************************************/
-
-irqstate_t irqsave(void)
-{
- irqstate_t ret = IE;
- EA = 0;
- return ret;
-}
-
-/************************************************************************
- * Name: irqrestore
- *
- * Description:
- * Restore a previous interrupt state
- *
- ************************************************************************/
-
-void irqrestore(irqstate_t flags)
-{
- IE = flags;
-}
-
-/************************************************************************
- * Name: up_disable_irq
- *
- * Description:
- * Disable the IRQ specified by 'irq'
- *
- ************************************************************************/
-
-void up_disable_irq(int irq)
-{
- if ((unsigned)irq < NR_IRQS)
- {
- IE &= ~(g_ntobit[irq]);
- }
-}
-
-/************************************************************************
- * Name: up_enable_irq
- *
- * Description:
- * Enable the IRQ specified by 'irq'
- *
- ************************************************************************/
-
-void up_enable_irq(int irq)
-{
- if ((unsigned)irq < NR_IRQS)
- {
- IE |= g_ntobit[irq];
- }
-}
diff --git a/nuttx/arch/8051/src/up_irqtest.c b/nuttx/arch/8051/src/up_irqtest.c
deleted file mode 100644
index be8f6d00b..000000000
--- a/nuttx/arch/8051/src/up_irqtest.c
+++ /dev/null
@@ -1,272 +0,0 @@
-/************************************************************************
- * arch/8051/src/up_irqtest.c
- *
- * Copyright (C) 2007, 2011, 2014 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <stdint.h>
-#include <stdbool.h>
-
-#include <nuttx/arch.h>
-#include <8052.h>
-
-#include "up_internal.h"
-
-/************************************************************************
- * Definitions
- ************************************************************************/
-
-#define up_extint0 ((vector_t)PM2_VECTOR_EXTINT0)
-#define up_timer0 ((vector_t)PM2_VECTOR_TIMER0)
-#define up_extint1 ((vector_t)PM2_VECTOR_EXTINT1)
-#define up_timer1 ((vector_t)PM2_VECTOR_TIMER1)
-#define up_uart ((vector_t)PM2_VECTOR_UART)
-#define up_timer2 ((vector_t)PM2_VECTOR_TIMER2)
-
-/************************************************************************
- * Private Types
- ************************************************************************/
-
-typedef void (*vector_t)(void);
-
-/************************************************************************
- * Public Variables
- ************************************************************************/
-
-bool g_irqtest;
-volatile uint8_t g_irqtos;
-uint8_t g_irqregs[REGS_SIZE];
-int g_nirqs;
-FAR struct xcptcontext *g_irqcontext;
-
-/************************************************************************
- * Private Functions
- ************************************************************************/
-
-/************************************************************************
- * Name: utility functions
- ************************************************************************/
-
-static void _up_putc(uint8_t ch) __naked
-{
- ch; /* To avoid unreferenced argument warning */
- _asm
- mov a, dpl
- ljmp PM2_ENTRY_COUT
- _endasm;
-}
-
-void _up_puthex(uint8_t hex) __naked
-{
- hex; /* To avoid unreferenced argument warning */
- _asm
- mov a, dpl
- ljmp PM2_ENTRY_PHEX
- _endasm;
-}
-
-void _up_puthex16(int hex) __naked
-{
- hex; /* To avoid unreferenced argument warning */
- _asm
- ljmp PM2_ENTRY_PHEX16
- _endasm;
-}
-
-void _up_putnl(void) __naked
-{
- _asm
- ljmp PM2_ENTRY_NEWLINE
- _endasm;
-}
-
-void _up_puts(__code char *ptr)
-{
- for (; *ptr; ptr++)
- {
- _up_putc(*ptr);
- }
-}
-
-void _up_delay(uint8_t milliseconds) __naked
-{
- _asm
- mov r0, dpl
-00001$: mov r1, #230
-00002$: nop
- nop
- nop
- nop
- nop
- nop
- djnz r1, 00002$
- djnz r0, 00001$
- ret
- _endasm;
-}
-
-/************************************************************************
- * Public Functions
- ************************************************************************/
-
-/************************************************************************
- * Name: os_start
- *
- * Description:
- * "Fake" OS entry point.
- *
- ************************************************************************/
-
-void os_start(void)
-{
- int i;
-
- /* Disable all interrupts */
-
- IE = 0;
-
- /* Then verify all of the interrupts */
-
- g_irqtest = false;
-
- up_extint0();
-#ifdef CONFIG_ARCH_8051_NOSYSTIMER
- up_timer0();
-#endif
- up_extint1();
- up_timer1();
- up_uart();
- up_timer2();
-
- /* Now a real interrupt ... */
-
- /* Configure timer 0 */
-
- TR0 = 0; /* Make sure timer 0 is stopped */
- TF0 = 0; /* Clear the overflow flag */
- TMOD &= 0xF0; /* Set to mode 0 (without changing timer1) */
- TL0 = 0; /* Clear timer 0 value */
- TH0 = 0;
- TR0 = 1; /* Start the timer */
-
- /* Start timer interrupts */
-
- g_irqtest = true;
- g_nirqs = 0;
- IE = 0x82; /* Enable interrupts */
-
- /* Wait a about 500 MS */
-
- _up_delay(500);
-
- /* Disable the timer */
-
- TR0 = 0; /* Stop timer 0 */
- IE = 0; /* Disable interrupts */
-
- _up_puts("IRQs in 500 MS=");
- _up_puthex16(g_nirqs);
- _up_putnl();
-
- /* end of test */
-
- _up_puts("Test complete");
- _up_putnl();
- for (;;);
-}
-
-/************************************************************************
- * Name: irq_dispatch
- *
- * Description:
- * "Fake" IRQ dispatcher
- *
- ***********************************************************************/
-
-void irq_dispatch(int irq, FAR void *context)
-{
- context;
- if (g_irqtest)
- {
- g_nirqs++;
- }
- else
- {
- _up_puts("Dispatch IRQ=");
- _up_puthex(irq);
- _up_putnl();
- }
-}
-
-/************************************************************************
- * Name: up_dumpstack / up_dumpframe
- *
- * Description:
- * "Fake" debug routines if needed.
- *
- ************************************************************************/
-
-void up_dumpstack(void)
-{
-}
-
-void up_dumpframe(FAR struct xcptcontext *context)
-{
-}
-
-/************************************************************************
- * Name: board_led_initialize, board_led_on, board_led_off
- *
- * Description:
- * "Fake" LED routines if needed
- *
- ************************************************************************/
-
-void board_led_initialize(void)
-{
-}
-
-void board_led_on(uint8_t led)
-{
- led;
-}
-
-void board_led_off(uint8_t led)
-{
- led;
-}
diff --git a/nuttx/arch/8051/src/up_putc.c b/nuttx/arch/8051/src/up_putc.c
deleted file mode 100644
index bf2edb5e1..000000000
--- a/nuttx/arch/8051/src/up_putc.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/************************************************************************
- * up_putc.c
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <nuttx/arch.h>
-#include "up_internal.h"
-
-/************************************************************************
- * Private Functions
- ************************************************************************/
-
-static void _up_putc(int ch) __naked
-{
-#if 1
- ch; /* To avoid unreferenced argument warning */
- _asm
- mov a, dpl
- ljmp PM2_ENTRY_COUT
- _endasm;
-#else
- ch; /* To avoid unreferenced argument warning */
- _asm
- mov a, dpl
-cout: jnb ti, cout
- clr ti
- mov sbuf, a
- ret
- _endasm;
-#endif
-}
-
-/************************************************************************
- * Public Functions
- ************************************************************************/
-
-int up_putc(int ch)
-{
- _up_putc(ch);
- if (ch == '\n')
- {
- _up_putc('\r');
- }
- return ch;
-}
-
diff --git a/nuttx/arch/8051/src/up_releasepending.c b/nuttx/arch/8051/src/up_releasepending.c
deleted file mode 100644
index ebb5271a6..000000000
--- a/nuttx/arch/8051/src/up_releasepending.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/************************************************************************
- * up_releasepending.c
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <sched.h>
-#include <debug.h>
-
-#include <nuttx/arch.h>
-
-#include "sched/sched.h"
-#include "up_internal.h"
-
-/************************************************************************
- * Private Definitions
- ************************************************************************/
-
-/************************************************************************
- * Private Data
- ************************************************************************/
-
-/************************************************************************
- * Private Funtions
- ************************************************************************/
-
-/************************************************************************
- * Public Funtions
- ************************************************************************/
-
-/************************************************************************
- * Name: up_release_pending
- *
- * Description:
- * Release and ready-to-run tasks that have
- * collected in the pending task list. This can call a
- * context switch if a new task is placed at the head of
- * the ready to run list.
- *
- ************************************************************************/
-
-void up_release_pending(void)
-{
- FAR struct tcb_s *rtcb = (FAR struct tcb_s*)g_readytorun.head;
-
- dbg("From TCB=%p\n", rtcb);
-
- /* Merge the g_pendingtasks list into the g_readytorun task list */
-
- /* sched_lock(); */
- if (sched_mergepending())
- {
- /* The currently active task has changed! We will need to
- * switch contexts. First check if we are operating in
- * interrupt context:
- */
-
- if (g_irqtos)
- {
- /* Yes, then we have to do things differently.
- * Just copy the current registers into the OLD rtcb.
- */
-
- up_saveirqcontext(&rtcb->xcp);
-
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (FAR struct tcb_s*)g_readytorun.head;
- dbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then setup so that the context will be performed on exit
- * from the interrupt.
- */
-
- g_irqcontext = &rtcb->xcp;
- }
-
- /* Copy the exception context into the TCB of the task that
- * was currently active. if up_savecontext returns a non-zero
- * value, then this is really the previously running task
- * restarting!
- */
-
- else if (!up_savecontext(&rtcb->xcp))
- {
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (FAR struct tcb_s*)g_readytorun.head;
- dbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_restorecontext(&rtcb->xcp);
- }
- }
-}
diff --git a/nuttx/arch/8051/src/up_reprioritizertr.c b/nuttx/arch/8051/src/up_reprioritizertr.c
deleted file mode 100644
index 7f28c711b..000000000
--- a/nuttx/arch/8051/src/up_reprioritizertr.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/****************************************************************************
- * up_reprioritizertr.c
- *
- * Copyright (C) 2007, 2009, 2013 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <stdint.h>
-#include <stdbool.h>
-#include <sched.h>
-#include <debug.h>
-
-#include <nuttx/arch.h>
-
-#include "sched/sched.h"
-#include "up_internal.h"
-
-/****************************************************************************
- * Private Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Funtions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Funtions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_reprioritize_rtr
- *
- * Description:
- * Called when the priority of a running or
- * ready-to-run task changes and the reprioritization will
- * cause a context switch. Two cases:
- *
- * 1) The priority of the currently running task drops and the next
- * task in the ready to run list has priority.
- * 2) An idle, ready to run task's priority has been raised above the
- * the priority of the current, running task and it now has the
- * priority.
- *
- * Inputs:
- * tcb: The TCB of the task that has been reprioritized
- * priority: The new task priority
- *
- ****************************************************************************/
-
-void up_reprioritize_rtr(FAR struct tcb_s *tcb, uint8_t priority)
-{
- /* Verify that the caller is sane */
-
- if (tcb->task_state < FIRST_READY_TO_RUN_STATE ||
- tcb->task_state > LAST_READY_TO_RUN_STATE
-#if SCHED_PRIORITY_MIN > 0
- || priority < SCHED_PRIORITY_MIN
-#endif
-#if SCHED_PRIORITY_MAX < UINT8_MAX
- || priority > SCHED_PRIORITY_MAX
-#endif
- )
- {
- PANIC();
- }
- else
- {
- FAR struct tcb_s *rtcb = (FAR struct tcb_s*)g_readytorun.head;
- bool switch_needed;
-
- dbg("TCB=%p PRI=%d\n", tcb, priority);
-
- /* Remove the tcb task from the ready-to-run list.
- * sched_removereadytorun will return true if we just
- * remove the head of the ready to run list.
- */
-
- switch_needed = sched_removereadytorun(tcb);
-
- /* Setup up the new task priority */
-
- tcb->sched_priority = (uint8_t)priority;
-
- /* Return the task to the specified blocked task list.
- * sched_addreadytorun will return true if the task was
- * added to the new list. We will need to perform a context
- * switch only if the EXCLUSIVE or of the two calls is non-zero
- * (i.e., one and only one the calls changes the head of the
- * ready-to-run list).
- */
-
- switch_needed ^= sched_addreadytorun(tcb);
-
- /* Now, perform the context switch if one is needed */
-
- if (switch_needed)
- {
- /* If we are going to do a context switch, then now is the right
- * time to add any pending tasks back into the ready-to-run list.
- * task list now
- */
-
- if (g_pendingtasks.head)
- {
- sched_mergepending();
- }
-
- /* Are we in an interrupt handler? */
-
- if (g_irqtos)
- {
- /* Yes, then we have to do things differently.
- * Just copy the current registers into the OLD rtcb.
- */
-
- up_saveirqcontext(&tcb->xcp);
-
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (FAR struct tcb_s*)g_readytorun.head;
- dbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then setup so that the context will be performed on exit
- * from the interrupt.
- */
-
- g_irqcontext = &tcb->xcp;
- }
-
- /* Copy the exception context into the TCB at the (old) head of the
- * g_readytorun Task list. if up_savecontext returns a non-zero
- * value, then this is really the previously running task restarting!
- */
-
- else if (!up_savecontext(&rtcb->xcp))
- {
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (FAR struct tcb_s*)g_readytorun.head;
- dbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_restorecontext(&rtcb->xcp);
- }
- }
- }
-}
diff --git a/nuttx/arch/8051/src/up_restorecontext.c b/nuttx/arch/8051/src/up_restorecontext.c
deleted file mode 100644
index 6966866ee..000000000
--- a/nuttx/arch/8051/src/up_restorecontext.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/**************************************************************************
- * up_restorecontext.c
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <stdint.h>
-#include <nuttx/irq.h>
-#include "up_internal.h"
-
-/**************************************************************************
- * Private Definitions
- **************************************************************************/
-
-/**************************************************************************
- * Private Types
- **************************************************************************/
-
-/**************************************************************************
- * Private Function Prototypes
- **************************************************************************/
-
-/**************************************************************************
- * Global Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-/**************************************************************************
- * Public Functions
- **************************************************************************/
-
-/**************************************************************************
- * Name: up_restoreregisters
- *
- * Description:
- * Restore the saved registers from the context save area. This function
- * is called from up_restorecontext (below) and also from interrupt
- * handling logic.
- *
- * Note that this function does not restore:
- * a, dptr, ie - these are saved in the stack area
- * sp - this can be inferred from g_irqtos or struct xcptontext.nbytes.
- *
- * Inputs:
- * context - the context register array from which to restore the
- * register values
- *
- * Return:
- * None
- *
- **************************************************************************/
-
-void up_restoreregisters(FAR uint8_t *regs) _naked
-{
- _asm
- movx a, @dptr
- mov b, a
- inc dptr
- movx a, @dptr
- mov r2, a
- inc dptr
- movx a, @dptr
- mov r3, a
- inc dptr
- movx a, @dptr
- mov r4, a
- inc dptr
- movx a, @dptr
- mov r5, a
- inc dptr
- movx a, @dptr
- mov r6, a
- inc dptr
- movx a, @dptr
- mov r7, a
- inc dptr
- movx a, @dptr
- mov r0, a
- inc dptr
- movx a, @dptr
- mov r1, a
- inc dptr
- movx a, @dptr
- mov psw, a
- inc dptr
- movx a, @dptr
- mov _bp, a
- ret
- _endasm;
-}
-
-/**************************************************************************
- * Name: up_restorecontext
- *
- * Description:
- * Restore the stack specified in the context structure and return to
- * that context
- *
- * Inputs:
- * context - Holds the stack content of the context to return to
- *
- * Return:
- * This function does not return.
- *
- **************************************************************************/
-
-void up_restorecontext(FAR struct xcptcontext *context) __naked
-{
- _asm
- ar2 = 0x02
- ar3 = 0x03
- ar4 = 0x04
- ar5 = 0x05
- ar6 = 0x06
- ar7 = 0x07
- ar0 = 0x00
- ar1 = 0x01
-
- /* Dump the contents of the saved frame before it is copied back
- * to memory/registers.
- */
-
-#ifdef CONFIG_SWITCH_FRAME_DUMP
- push dpl
- push dph
- lcall _up_dumpframe
- pop dph
- pop dpl
-#endif
-
- /* Interrupts should be disabled for the following. up_popcontext() will
- * set the new interrupt state correctly.
- */
-
- clr ea
-
- /* The following logic will copy the stack from the
- * context save structure into IRAM. We cannot use
- * the stack in anyway during this copy. Instead,
- * we will use registers as follows:
- *
- * R0 - Holds the working 8-bit IRAM pointer
- * R1 - Not used
- * R2-3 - Holds the working 16-bit XRAM pointer
- * R4 - Holds the working byte count
- * R5 - Holds the new stack pointer
- * R6-7 - Saved context pointer
- */
-
- /* Fetch r4 = context->nbytes */
-
- movx a, @dptr
- mov r4, a
-
- /* Save the new stack pointer in r5 */
-
- add a, #(STACK_BASE-1)
- mov r5, a
-
- /* Save r2-3 and r6-r7 = &context->stack */
-
- inc dptr
- mov r2, dpl
- mov r3, dph
- mov r6, dpl
- mov r7, dph
-
- /* Set r0 = stack base address */
-
- mov r0, #STACK_BASE
-
- /* Top of the copy loop -- we cannot use the stack
- * again until we finish the copy and set the new
- * stack pointer (saved in r5)
- */
-00001$:
- mov a, r4 /* a = bytes left to transfer */
- dec r4 /* (for next time through the loop) */
- jz 00002$ /* Jump if a = 0 (done) */
-
- /* Fetch the next byte from context->stack */
-
- mov dpl, r2
- mov dph, r3
- movx a, @dptr
-
- /* Increment the XRAM pointer */
-
- inc dptr
- mov r2, dpl
- mov r3, dph
-
- /* Save the next byte into IRAM */
-
- mov @r0, a
-
- /* Increment the IRAM pointer */
-
- inc r0
- sjmp 00001$
-00002$:
-
- /* Set the new stack pointer and recover the
- * context->stack pointer.
- */
-
- mov sp, r5
- mov dpl, r6
- mov dph, r7
-
- /* Dump the stack contents after they have
- * been restored to IRAM
- */
-
-#ifdef CONFIG_SWITCH_FRAME_DUMP
- push dpl
- push dph
- lcall _up_dumpstack
- pop dph
- pop dpl
-#endif
- /* Get the pointer to the register save area */
-
- mov a, #STACK_SIZE
- add a, dpl
- mov dpl, a
- clr a
- addc a, dph
- mov dph, a
-
- /* Restore registers from the register save area */
-
- lcall _up_restoreregisters
-
- /* Restore registers from the new stack */
-
- pop dph
- pop dpl
-
- /* Restore the interrupt state per the stored IE value */
-
- pop acc
- jb acc.7,00003$
- clr ie.7
- sjmp 00004$
- 00003$:
- setb ie.7
-
- 00004$:
- pop acc
- ret
- _endasm;
-}
-
-
diff --git a/nuttx/arch/8051/src/up_savecontext.c b/nuttx/arch/8051/src/up_savecontext.c
deleted file mode 100644
index c5d0ae1c7..000000000
--- a/nuttx/arch/8051/src/up_savecontext.c
+++ /dev/null
@@ -1,362 +0,0 @@
-/**************************************************************************
- * up_savecontext.c
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <stdint.h>
-#include <nuttx/irq.h>
-#include "up_internal.h"
-
-/**************************************************************************
- * Private Definitions
- **************************************************************************/
-
-/**************************************************************************
- * Private Types
- **************************************************************************/
-
-/**************************************************************************
- * Private Function Prototypes
- **************************************************************************/
-
-/**************************************************************************
- * Global Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-/**************************************************************************
- * Name: up_savestack
- *
- * Description:
- * Save the entire interrupt stack contents in the provided context
- * structure.
- *
- * Inputs:
- * context - the context structure in which to save the stack info
- *
- * Return:
- * None
- *
- * Assumptions:
- * - Interrupts are disabled
- *
- **************************************************************************/
-
-static void up_savestack(FAR struct xcptcontext *context, uint8_t tos)
-{
- /* Copy the current stack frame from internal RAM to XRAM. */
-
- uint8_t nbytes = tos - (STACK_BASE-1);
- NEAR uint8_t *src = (NEAR uint8_t*)STACK_BASE;
- FAR uint8_t *dest = context->stack;
-
- context->nbytes = nbytes;
- while (nbytes--)
- {
- *dest++ = *src++;
- }
-}
-
-/**************************************************************************
- * Name: up_saveregs
- *
- * Description:
- * Save the interrupt registers into the TCB.
- *
- * Inputs:
- * context - the context structure in which to save the register info
- *
- * Return:
- * None
- *
- * Assumptions:
- * - Interrupts are disabled
- *
- **************************************************************************/
-
-static void up_saveregs(FAR struct xcptcontext *context, uint8_t tos)
-{
- /* Copy the irq register save area into the TCB */
-
- FAR uint8_t *src = g_irqregs;
- FAR uint8_t *dest = context->regs;
- uint8_t nbytes = REGS_SIZE;
-
- while (nbytes--)
- {
- *dest++ = *src++;
- }
-}
-
-/**************************************************************************
- * Public Functions
- **************************************************************************/
-
-/**************************************************************************
- * Name: up_saveregisters
- *
- * Description:
- * Save the current registers in the context save area. This function
- * is called from up_savecontext (below) and also from interrupt
- * handling logic.
- *
- * Note that this function does not save:
- * a, dptr, ie - these are saved in the stack area
- * sp - this can be inferred from g_irqtos or struct xcptontext.nbytes.
- *
- * Inputs:
- * regs - the context register array in which to save the register info
- *
- * Return:
- * None
- *
- **************************************************************************/
-
-void up_saveregisters(FAR uint8_t *regs) _naked
-{
- _asm
- mov a, b
- movx @dptr, a
- inc dptr
- mov a, r2
- movx @dptr, a
- inc dptr
- mov a, r3
- movx @dptr, a
- inc dptr
- mov a, r4
- movx @dptr, a
- inc dptr
- mov a, r5
- movx @dptr, a
- inc dptr
- mov a, r6
- movx @dptr, a
- inc dptr
- mov a, r7
- movx @dptr, a
- inc dptr
- mov a, r0
- movx @dptr, a
- inc dptr
- mov a, r1
- movx @dptr, a
- inc dptr
- mov a, psw
- movx @dptr, a
- clr psw
- inc dptr
- mov a, _bp
- movx @dptr, a
- ret
- _endasm;
-}
-
-/**************************************************************************
- * Name: up_savecontext
- *
- * Description:
- * Push the current execution context onto the stack, then save the
- * entire stack contents in the provided context structure.
- *
- * Inputs:
- * context - the context structure in which to save the stack info
- *
- * Return:
- * 0 = Normal state save return
- * 1 = This is the matching return from up_restorecontext()
- *
- **************************************************************************/
-
-uint8_t up_savecontext(FAR struct xcptcontext *context) _naked
-{
- _asm
- /* Create the stack frame that we want when it is time to restore
- * this context. The return address will be the return address
- * of this function, the return value will be zero.
- *
- * ...
- * return address (2 bytes, already on the stack)
- * register a=0 (1 byte)
- * register ie (1 byte)
- * register dptr (2 bytes)
- */
-
- clr a
- push acc /* ACC = 0 */
- push ie
- mov a, #1
- push acc /* DPL = 1 */
- clr a
- push acc /* DPH = 0 */
-
- /* Dump the stack contents before they are occupied into XRAM */
-
-#ifdef CONFIG_SWITCH_FRAME_DUMP
- push dpl
- push dph
- lcall _up_dumpstack
- pop dph
- pop dpl
-#endif
- /* Disable interrupts while we create a snapshot of the stack
- * and registers. At this point, we have 5 bytes on the stack
- * to account for.
- */
-
- push ie
- mov ea, 0
-
- /* Save the registers in the context save area */
-
- push dpl
- push dph
- mov a, #XCPT_REGS
- add a, dpl
- mov dpl, a
- clr a
- addc a, dph
- mov dph, a
- lcall _up_saveregisters
- pop dph
- pop dpl
-
-#ifdef CONFIG_SWITCH_FRAME_DUMP
- /* Save the address of the context structure. We will
- * need this later to dump the saved frame. Now we have
- * 7 bytes on the stack to account for.
- */
-
- push dpl
- push dph
-
- /* Push the top of frame stack pointer. We need to
- * decrement the current SP value by three to account
- * for dptr+IE on the stack above the end of the frame.
- */
-
- mov a, sp
- subb a, #3
-#else
- /* Push the top of frame stack pointer. We need to
- * decrement the current stack pointer by one to account
- * for IE that we saved on the stack.
- */
-
- mov a, sp
- dec a
-#endif
- push acc
-
- /* Copy the current stack frame from internal RAM to XRAM. */
-
- lcall _up_savestack
- pop acc
-
- /* Dump the contents of the saved frame after it has been
- * copied from memory/registers.
- */
-
-#ifdef CONFIG_SWITCH_FRAME_DUMP
- pop dph
- pop dpl
- push dpl
- push dph
- lcall _up_dumpframe
- pop dph
- pop dpl
- lcall _up_dumpstack
-#endif
-
- /* Restore the interrupt state */
-
- pop ie
-
- /* Now that we have a snapshot of the desired stack frame saved,
- * we can release the stack frame (all but the return address)
- */
-
- mov a, sp
- subb a, #4
- mov sp, a
- mov dpl,#0
- ret
- _endasm;
-}
-
-/**************************************************************************
- * Name: up_saveirqcontext
- *
- * Description:
- * The interrupt context was saved in g_irqtos and g_irqregs when the
- * interrupt was taken. If a context switch from the interrupted task
- * will be made at the interrupt level, then these saved values must be
- * copied into the TCB.
- *
- * Inputs:
- * context - the structure in which to save the context info
- *
- * Return:
- * None
- *
- * Assumptions:
- * - Interrupts are disabled
- *
- **************************************************************************/
-
-void up_saveirqcontext(FAR struct xcptcontext *context)
-{
- /* Save the number of bytes in the stack */
-
- context->nbytes = g_irqtos - (STACK_BASE-1);
-
- /* Copy the current stack frame from internal RAM to XRAM. */
-
- up_savestack(context, g_irqtos);
-
- /* Copy the saved registers into the TCB */
-
- up_saveregisters(context->regs);
-}
diff --git a/nuttx/arch/8051/src/up_timerisr.c b/nuttx/arch/8051/src/up_timerisr.c
deleted file mode 100644
index 7abe5d2fe..000000000
--- a/nuttx/arch/8051/src/up_timerisr.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/************************************************************************
- * arch/8051/src/up_timerisr.c
- *
- * Copyright (C) 2007, 2009, 2014 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <stdint.h>
-#include <debug.h>
-
-#include <nuttx/arch.h>
-#include <8052.h>
-
-#include "clock/clock.h"
-#include "up_internal.h"
-
-/************************************************************************
- * Definitions
- ************************************************************************/
-
-/************************************************************************
- * Private Types
- ************************************************************************/
-
-/************************************************************************
- * Private Function Prototypes
- ************************************************************************/
-
-/************************************************************************
- * Global Functions
- ************************************************************************/
-
-/************************************************************************
- * Function: up_timerisr
- *
- * Description:
- * The timer ISR will perform a variety of services for
- * various portions of the systems.
- *
- ************************************************************************/
-
-int up_timerisr(int irq, FAR uint8_t *frame)
-{
- /* Process timer interrupt */
-
- sched_process_timer();
- return 0;
-}
-
-/************************************************************************
- * Function: up_timer_initialize
- *
- * Description:
- * This function is called during start-up to initialize
- * the timer interrupt.
- *
- ************************************************************************/
-
-void up_timer_initialize(void)
-{
-#ifdef CONFIG_ARCH_8051_NOSYSTIMER
- up_disable_irq(TIMER2_IRQ);
-
- /* Set up timer 2 -- See pjrc.h for details */
-
- T2MOD = 0;
-
- /* Set up the capture count to generate 100Hz system
- * interrupts.
- */
-
- RCAP2L = TIMER2_CAPTURE_LOW;
- RCAP2H = TIMER2_CAPTURE_HIGH;
-
- TL2 = TIMER2_CAPTURE_LOW;
- TH2 = TIMER2_CAPTURE_HIGH;
-
- /* Configure for interrupts */
-
- T2CON = 0x04;
-
- /* Attach and enable the timer interrupt */
-
- irq_attach(TIMER2_IRQ, (xcpt_t)up_timerisr);
- up_enable_irq(TIMER2_IRQ);
-
-#else
- /* Timer 0, mode 0 can be used as a system timer. In that mode, the
- * 1.8432 MHz clock is divided by 32. A single 8-bit value is incremented
- * at 57600 Hz, which results in 225 Timer 0 overflow interrupts per
- * second.
- */
-
- up_disable_irq(TIMER0_IRQ);
-
- /* Initialize timer 0 */
-
- TR0 = 0; /* Make sure timer 0 is stopped */
- TF0 = 0; /* Clear the overflow flag */
- TMOD &= 0xF0; /* Set to mode 0 (without changing timer1) */
- TL0 = 0; /* Clear timer 0 value */
- TH0 = 0;
-
- /* Attach and enable the timer interrupt */
-
- irq_attach(TIMER0_IRQ, (xcpt_t)up_timerisr);
-
- TR0 = 1; /* Start the timer */
- up_enable_irq(TIMER0_IRQ);
-
-#endif
-}
-
diff --git a/nuttx/arch/8051/src/up_unblocktask.c b/nuttx/arch/8051/src/up_unblocktask.c
deleted file mode 100644
index 36d6ed1ef..000000000
--- a/nuttx/arch/8051/src/up_unblocktask.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/************************************************************************
- * up_unblocktask.c
- *
- * Copyright (C) 2007, 2009, 2013 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * 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 <sched.h>
-#include <debug.h>
-
-#include <nuttx/arch.h>
-
-#include "clock/clock.h"
-#include "sched/sched.h"
-#include "up_internal.h"
-
-/************************************************************************
- * Private Definitions
- ************************************************************************/
-
-/************************************************************************
- * Private Data
- ************************************************************************/
-
-/************************************************************************
- * Private Funtions
- ************************************************************************/
-
-/************************************************************************
- * Public Funtions
- ************************************************************************/
-
-/************************************************************************
- * Name: up_unblock_task
- *
- * Description:
- * A task is currently in an inactive task list
- * but has been prepped to execute. Move the TCB to the
- * ready-to-run list, restore its context, and start execution.
- *
- * Inputs:
- * tcb: Refers to the tcb to be unblocked. This tcb is
- * in one of the waiting tasks lists. It must be moved to
- * the ready-to-run list and, if it is the highest priority
- * ready to run taks, executed.
- *
- ************************************************************************/
-
-void up_unblock_task(FAR struct tcb_s *tcb)
-{
- FAR struct tcb_s *rtcb = (FAR struct tcb_s*)g_readytorun.head;
-
- /* Verify that the context switch can be performed */
-
- ASSERT((tcb->task_state >= FIRST_BLOCKED_STATE) &&
- (tcb->task_state <= LAST_BLOCKED_STATE));
-
- dbg("Unblocking TCB=%p\n", tcb);
-
- /* Remove the task from the blocked task list */
-
- sched_removeblocked(tcb);
-
- /* Reset its timeslice. This is only meaningful for round
- * robin tasks but it doesn't here to do it for everything
- */
-
-#if CONFIG_RR_INTERVAL > 0
- tcb->timeslice = MSEC2TICK(CONFIG_RR_INTERVAL);
-#endif
-
- /* Add the task in the correct location in the prioritized
- * g_readytorun task list
- */
-
- if (sched_addreadytorun(tcb))
- {
- /* The currently active task has changed! We need to do
- * a context switch to the new task.
- *
- * Are we in an interrupt handler?
- */
-
- if (g_irqtos)
- {
- /* Yes, then we have to do things differently.
- * Just copy the current stack into the OLD rtcb.
- */
-
- up_saveirqcontext(&rtcb->xcp);
-
- /* Restore the exception context of the rtcb at the (new) head
- * of the g_readytorun task list.
- */
-
- rtcb = (FAR struct tcb_s*)g_readytorun.head;
- dbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then setup so that the context will be performed on exit
- * from the interrupt.
- */
-
- g_irqcontext = &rtcb->xcp;
- }
-
- /* We are not in an interrupt andler. Copy the user C context
- * into the TCB of the task that was previously active. if
- * up_savecontext returns a non-zero value, then this is really the
- * previously running task restarting!
- */
-
- else if (!up_savecontext(&rtcb->xcp))
- {
- /* Restore the exception context of the new task that is ready to
- * run (probably tcb). This is the new rtcb at the head of the
- * g_readytorun task list.
- */
-
- rtcb = (FAR struct tcb_s*)g_readytorun.head;
- dbg("New Active Task TCB=%p\n", rtcb);
-
- /* Then switch contexts */
-
- up_restorecontext(&rtcb->xcp);
- }
- }
-}