#ifndef CYGONCE_HAL_ARCH_INC
|
#ifndef CYGONCE_HAL_ARCH_INC
|
#define CYGONCE_HAL_ARCH_INC
|
#define CYGONCE_HAL_ARCH_INC
|
##=============================================================================
|
##=============================================================================
|
##
|
##
|
## arch.inc
|
## arch.inc
|
##
|
##
|
## CalmRISC16 assembler header file
|
## CalmRISC16 assembler header file
|
##
|
##
|
##=============================================================================
|
##=============================================================================
|
#####ECOSGPLCOPYRIGHTBEGIN####
|
#####ECOSGPLCOPYRIGHTBEGIN####
|
## -------------------------------------------
|
## -------------------------------------------
|
## This file is part of eCos, the Embedded Configurable Operating System.
|
## This file is part of eCos, the Embedded Configurable Operating System.
|
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
|
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
|
##
|
##
|
## eCos is free software; you can redistribute it and/or modify it under
|
## eCos is free software; you can redistribute it and/or modify it under
|
## the terms of the GNU General Public License as published by the Free
|
## the terms of the GNU General Public License as published by the Free
|
## Software Foundation; either version 2 or (at your option) any later version.
|
## Software Foundation; either version 2 or (at your option) any later version.
|
##
|
##
|
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
|
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
|
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
## for more details.
|
## for more details.
|
##
|
##
|
## You should have received a copy of the GNU General Public License along
|
## You should have received a copy of the GNU General Public License along
|
## with eCos; if not, write to the Free Software Foundation, Inc.,
|
## with eCos; if not, write to the Free Software Foundation, Inc.,
|
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
##
|
##
|
## As a special exception, if other files instantiate templates or use macros
|
## As a special exception, if other files instantiate templates or use macros
|
## or inline functions from this file, or you compile this file and link it
|
## or inline functions from this file, or you compile this file and link it
|
## with other works to produce a work based on this file, this file does not
|
## with other works to produce a work based on this file, this file does not
|
## by itself cause the resulting work to be covered by the GNU General Public
|
## by itself cause the resulting work to be covered by the GNU General Public
|
## License. However the source code for this file must still be made available
|
## License. However the source code for this file must still be made available
|
## in accordance with section (3) of the GNU General Public License.
|
## in accordance with section (3) of the GNU General Public License.
|
##
|
##
|
## This exception does not invalidate any other reasons why a work based on
|
## This exception does not invalidate any other reasons why a work based on
|
## this file might be covered by the GNU General Public License.
|
## this file might be covered by the GNU General Public License.
|
##
|
##
|
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
|
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
|
## at http://sources.redhat.com/ecos/ecos-license/
|
## at http://sources.redhat.com/ecos/ecos-license/
|
## -------------------------------------------
|
## -------------------------------------------
|
#####ECOSGPLCOPYRIGHTEND####
|
#####ECOSGPLCOPYRIGHTEND####
|
##=============================================================================
|
##=============================================================================
|
#######DESCRIPTIONBEGIN####
|
#######DESCRIPTIONBEGIN####
|
##
|
##
|
## Author(s): msalter
|
## Author(s): msalter
|
## Contributors: nickg, dmoseley
|
## Contributors: nickg, dmoseley
|
## Date: 1997-10-16
|
## Date: 1997-10-16
|
## Purpose: Architecture definitions.
|
## Purpose: Architecture definitions.
|
## Description: This file contains various definitions and macros that are
|
## Description: This file contains various definitions and macros that are
|
## useful for writing assembly code for the CalmRISC16 CPU family.
|
## useful for writing assembly code for the CalmRISC16 CPU family.
|
## Usage:
|
## Usage:
|
## #include
|
## #include
|
## ...
|
## ...
|
##
|
##
|
##
|
##
|
######DESCRIPTIONEND####
|
######DESCRIPTIONEND####
|
##
|
##
|
##=============================================================================
|
##=============================================================================
|
|
|
#include
|
#include
|
|
|
#include
|
#include
|
|
|
##-----------------------------------------------------------------------------
|
##-----------------------------------------------------------------------------
|
## CalmRISC16 thread and interrupt saved state. This must match the layout of
|
## CalmRISC16 thread and interrupt saved state. This must match the layout of
|
## the HAL_SavedRegisters in hal_arch.h. Do not change this without changing
|
## the HAL_SavedRegisters in hal_arch.h. Do not change this without changing
|
## the layout there, or viceversa.
|
## the layout there, or viceversa.
|
|
|
|
|
##-----------------------------------------------------------------------------
|
##-----------------------------------------------------------------------------
|
## CPU specific macros. These provide a common assembler interface to
|
## CPU specific macros. These provide a common assembler interface to
|
## operations that may have CPU specific implementations on different
|
## operations that may have CPU specific implementations on different
|
## variants of the architecture.
|
## variants of the architecture.
|
|
|
# Initialize CPU
|
# Initialize CPU
|
.macro hal_cpu_init
|
.macro hal_cpu_init
|
.endm
|
.endm
|
|
|
# Enable interrupts
|
# Enable interrupts
|
.macro hal_cpu_int_enable
|
.macro hal_cpu_int_enable
|
.endm
|
.endm
|
|
|
# Disable interrupts
|
# Disable interrupts
|
.macro hal_cpu_int_disable
|
.macro hal_cpu_int_disable
|
.endm
|
.endm
|
|
|
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
# MMU macros.
|
# MMU macros.
|
|
|
#ifndef CYGPKG_HAL_CALM16_MMU_DEFINED
|
#ifndef CYGPKG_HAL_CALM16_MMU_DEFINED
|
|
|
.macro hal_mmu_init
|
.macro hal_mmu_init
|
.endm
|
.endm
|
|
|
#endif
|
#endif
|
|
|
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
# MEMC macros.
|
# MEMC macros.
|
|
|
#ifndef CYGPKG_HAL_CALM16_MEMC_DEFINED
|
#ifndef CYGPKG_HAL_CALM16_MEMC_DEFINED
|
|
|
.macro hal_memc_init
|
.macro hal_memc_init
|
.endm
|
.endm
|
|
|
#endif
|
#endif
|
|
|
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
# Cache macros.
|
# Cache macros.
|
|
|
#ifndef CYGPKG_HAL_CALM16_CACHE_DEFINED
|
#ifndef CYGPKG_HAL_CALM16_CACHE_DEFINED
|
|
|
.macro hal_cache_init
|
.macro hal_cache_init
|
.endm
|
.endm
|
#endif
|
#endif
|
|
|
|
|
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
# Diagnostics macros.
|
# Diagnostics macros.
|
|
|
#ifndef CYGPKG_HAL_CALM16_DIAG_DEFINED
|
#ifndef CYGPKG_HAL_CALM16_DIAG_DEFINED
|
|
|
.macro hal_diag_init
|
.macro hal_diag_init
|
.endm
|
.endm
|
|
|
.macro hal_diag_excpt_start
|
.macro hal_diag_excpt_start
|
.endm
|
.endm
|
|
|
.macro hal_diag_intr_start
|
.macro hal_diag_intr_start
|
.endm
|
.endm
|
|
|
.macro hal_diag_restore
|
.macro hal_diag_restore
|
.endm
|
.endm
|
#endif
|
#endif
|
|
|
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
# Timer initialization.
|
# Timer initialization.
|
|
|
#ifndef CYGPKG_HAL_CALM16_TIMER_DEFINED
|
#ifndef CYGPKG_HAL_CALM16_TIMER_DEFINED
|
|
|
.macro hal_timer_init
|
.macro hal_timer_init
|
.endm
|
.endm
|
|
|
#endif
|
#endif
|
|
|
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
# Monitor initialization.
|
# Monitor initialization.
|
|
|
#ifndef CYGPKG_HAL_CALM16_MON_DEFINED
|
#ifndef CYGPKG_HAL_CALM16_MON_DEFINED
|
|
|
.macro hal_mon_init
|
.macro hal_mon_init
|
.endm
|
.endm
|
|
|
#endif
|
#endif
|
|
|
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
#endif // ifndef CYGONCE_HAL_ARCH_INC
|
#endif // ifndef CYGONCE_HAL_ARCH_INC
|
# end of arch.inc
|
# end of arch.inc
|
|
|