⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 platform.inc

📁 eCos操作系统源码
💻 INC
字号:
#ifndef CYGONCE_HAL_PLATFORM_INC#define CYGONCE_HAL_PLATFORM_INC##=============================================================================####	platform.inc####	REFIDT334 board assembler header file####=============================================================================#####ECOSGPLCOPYRIGHTBEGIN###### -------------------------------------------## This file is part of eCos, the Embedded Configurable Operating System.## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.#### 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## 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## WARRANTY; without even the implied warranty of MERCHANTABILITY or## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License## for more details.#### You should have received a copy of the GNU General Public License along## with eCos; if not, write to the Free Software Foundation, Inc.,## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.#### 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## 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## License. However the source code for this file must still be made available## 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 file might be covered by the GNU General Public License.#### Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.## at http://sources.redhat.com/ecos/ecos-license/## -------------------------------------------#####ECOSGPLCOPYRIGHTEND######=============================================================================#######DESCRIPTIONBEGIN######## Author(s): 	 tmichals## Contributors: nickg## Date:	 2003-02-13## Purpose:	 IDT32334 board definitions.## Description:	 This file contains various definitions and macros that are##               useful for writing assembly code for the IDT32334 reference##               board.## Usage:##		 #include <cyg/hal/platform.inc>##		 ...##		########DESCRIPTIONEND########=============================================================================#include <cyg/hal/mips.inc>#------------------------------------------------------------------------------# Monitor initialization.	#ifndef CYGPKG_HAL_MIPS_MON_DEFINED#if	defined(CYG_HAL_STARTUP_ROM) ||			\	(	defined(CYG_HAL_STARTUP_RAM) &&		\		!defined(CYGSEM_HAL_USE_ROM_MONITOR))		# If we are starting up from ROM, or we are starting in	# RAM and NOT using a ROM monitor, initialize the VSR table.	.macro	hal_mon_init	la	a0,__default_interrupt_vsr	la	a1,__default_exception_vsr	la	a3,hal_vsr_table	sw	a0,0(a3)	sw	a1,1*4(a3)	sw	a1,2*4(a3)	sw	a1,3*4(a3)	sw	a1,4*4(a3)	sw	a1,5*4(a3)	sw	a1,6*4(a3)	sw	a1,7*4(a3)	sw	a1,8*4(a3)	sw	a1,9*4(a3)	sw	a1,10*4(a3)	sw	a1,11*4(a3)	sw	a1,12*4(a3)	sw	a1,13*4(a3)	sw	a1,14*4(a3)	sw	a1,15*4(a3)	sw	a1,32*4(a3)	sw	a1,33*4(a3)	.endm	#elif defined(CYG_HAL_STARTUP_RAM) && defined(CYGSEM_HAL_USE_ROM_MONITOR)	# Initialize the VSR table entries	# We only take control of the interrupt vector,	# the rest are left to the ROM for now...	.macro	hal_mon_init	la	a0,__default_interrupt_vsr	la	a3,hal_vsr_table	sw	a0,0(a3)	.endm#else	.macro	hal_mon_init	.endm#endif			#define CYGPKG_HAL_MIPS_MON_DEFINED#endif	#------------------------------------------------------------------------------# Decide whether the VSR table is defined externally, or is to be defined# here.#if defined(CYGPKG_HAL_MIPS_SIM) ||        \    ( defined(CYGPKG_HAL_MIPS_TX3904) &&   \      defined(CYG_HAL_STARTUP_RAM) &&      \      !defined(CYGSEM_HAL_USE_ROM_MONITOR) \    )## VSR table defined in linker script#else#define CYG_HAL_MIPS_VSR_TABLE_DEFINED#endif#if defined(CYG_HAL_STARTUP_ROMRAM) || defined(CYG_HAL_STARTUP_ROM)#ifndef CYGPKG_HAL_MIPS_MEMC_DEFINED.macro	hal_memc_init        .extern hal_memc_setup        lar     t0,hal_memc_setup        jalr    t0        nop#if defined(CYG_HAL_STARTUP_ROMRAM)		# Having got the RAM working, we must now relocate the Entire	# ROM into it and then continue execution from RAM.	la	t0,0x80000000		# dest addr	la	t1,0xbfc00000		# source addr	la	t3,__ram_data_end	# end dest addr1:		lw	v0,0(t1)		# get word	addi	t1,t1,4	sw	v0,0(t0)		# write word	addi	t0,t0,4	bne	t0,t3,1b	nop/* set up and move interrupts *//* setup and move the vector table into ram *//* This allows execptions to happen in ROM first** then when running in RAM, they are switched */        mfc0    v0, status        nop        li      v1, ~0x00400000        and   v0, v0,v1        mtc0    v0, status        nop        la      t0, hal_vsr_table        la      t1,__default_interrupt_vsr        sw      t1, 0(t0)        la      t1,__default_exception_vsr        li      t2, 62        li      t3, 0        addi    t0,t0,412:        sw      t1,0(t0)        addi    t3,t3,1        addi    t0,t0,4        bne     t3,t2, 12b        nop	la	v0,2f			# RAM address to go to	jr	v0	nop2:		# We are now executing out of RAM!#endif.endm#define CYGPKG_HAL_MIPS_MEMC_DEFINED#endif#endif#------------------------------------------------------------------------------#endif // ifndef CYGONCE_HAL_PLATFORM_INC# end of platform.inc

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -