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

📄 abort.s

📁 这是单板上DPRAM的驱动程序
💻 S
字号:
* @(#) pSOSystem PowerPC/V2.2.2: bsps/fuc8xx/src/abort.s              *
***********************************************************************
*                                                                     *
*   MODULE:  abort.s                                                  *
*   DATE:    98/7/1                                                   *
*   AUTHOR:  Shan Zhengguang                                          *
*   PURPOSE: Check for abort interrupt                                *
*                                                                     *
*---------------------------------------------------------------------*
*                                                                     *
*           Copyright 1991 - 1997, ZHONGXING TELECOM CO.,LTD.         *
*                      ALL RIGHTS RESERVED                            *
*                                                                     *
*---------------------------------------------------------------------*
*                                                                     *
*                                                                     *
***********************************************************************
        .include "macros.ia"
        .include "board.ia"
	.include "powerpc/cpuarch.ia"

	.extern  anchor
	.extern	_START

	.text
        .align  2


#************************************************************************
#   AbortCheck: Check whether an abort interrupt has occurred.          *
#                                                                       *
#       SYNTAX: blr AbortCheck                                          *
#       INPUTS:                                                         *
#      RETURNS:                                                         *
#      OUTPUTS:                                                         *
#      NOTE(S):                                                         *
#                                                                       *
#************************************************************************
	.globl	AbortCheck
AbortCheck:

#SS, temp code, need to code this function later....

	blr


#************************************************************************
# Abort  Switch Handler
#  r29, r30 is saved. r31 points to the stack frame
#************************************************************************
	.globl	HwAbortHandler
HwAbortHandler:

#-----------------------------------------------------------------------*
# Check the source of interrupt
#-----------------------------------------------------------------------*
	mfspr   r29, 638
	andis.  r29, r29, 0xFFF0     # IO Memory map mask
        lbz     r30, RSR(r29)	     # Get the RSR contents

	andi.	r30, r30, 0x40
	cmpi	r30, 0
	beq	AbortDetected

	LA	r29, _START
        mtlr    r29
	blr	

AbortDetected:

#-----------------------------------------------------------------------*
# Check if pROBE exists
#-----------------------------------------------------------------------*
        LA      r29, anchor          #
        lwz     r29, 0(r29)
        lwz     r29, NC_PROBECT(r29) # Get Probe code address
#
        cmpwi   r29, 0               # No Probe in the system
        beq     restore              # restore and RFI
#
        lwz     r29, RC_CODE(r29)
        addi    r29, r29, RC_MANB
 
        mtlr    r29
        blrl                         # probe returns back to user code
 
restore:
        lwz     r29, STK_STK_LR(r31)               # restore registers
        mtlr    r29                                #
        lwz     r29, STK_STK_SRR1(r31)              #
        mtsrr1  r29                                #
        lwz     r29, STK_STK_SRR0(r31)              #
        mtsrr0  r29                                #
        lwz     r29, STK_STK_CR(r31)                #
        mtcrf   0xFF, r29                          #
        lmw     r29, STK_STK_R29(r31)              #
        sync                                       #
        isync                                      #
        rfi

⌨️ 快捷键说明

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