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

📄 asm_irq.s

📁 COG-VP12864液晶屏驱动代码及对应RTC实例
💻 S
字号:
/*
********************************************************
// Copyright (c)2004 Ark Pioneer Microelectronics Ltd.,
// All Rights Reserved
//
// Filename: asm_irq.S
// Version: 1.0
// Created: 2004.01.19   By: Philip
*********************************************************
*/

#include <stackframe.h>
#include <asm.h>

		
	.globl ExceptionProcess
	.ent ExceptionProcess

	.extern OtherExcProcess	
	.extern Check_Exception

ExceptionProcess:
	/* so we can see cp0_cause exc code*/
	/*
			mfc0  k1, CP0_CAUSE
			li    k0, 0xa1110000
			sw    k1, 0x0(k0)		
	*/

	/* cache use to save all */
			la    k1, Protect
			li    k0, 0x9fffffff
			and   k1, k1, k0
			jr    k1
			nop
	/* save all cpu registers and disable interrupt */
	Protect:
			.set noat
			
			SAVE_SOME
			SAVE_AT
			SAVE_TEMP
       		SAVE_STATIC

			/* Multiple Interrupt can in after below */
       		/* KSU are: 00; ERL bit: 0; EXL bit: 0; IE bit: 1*/
       		/*
       		STI
       		nop
       		*/

       		/* when EXL='1', IE is not effect */
       		
       		
	/* 	
	 *	Check cause register to find whether interrupt has 
	 *	occured, and then process it 
	 */
   	CheckIrq:
    		.set	noreorder
    		.set	noat

			mfc0	a0, CP0_CAUSE
			nop
			nop
			jal 	Check_Exception
			nop                
                
    clearIrq:
  	/* clear cp0 irq status registers */              
       		mtc0	zero, CP0_CAUSE		# clear s/w interrupts
			nop
		
	/* enable interrupt, because EXL is set, intr can't in */
	/* restore cp0_status and cp0_epc registers */
		    lw      v0, PT_STATUS(sp)
	   		ori	    v0, STATUSF_IP4 | ST0_IE
		    mtc0    v0, CP0_STATUS
		    nop
		    lw      v1, PT_EPC(sp)
	    	mtc0    v1, CP0_EPC
		    nop
		    
	/* restore all cpu registers and return */
   	Restore:
    		RESTORE_SOME
            RESTORE_AT
            RESTORE_TEMP
            RESTORE_STATIC            
            /* should set CPU mode to User mode before eret */
            RESTORE_SP_AND_RET
    		
	.end ExceptionProcess
	

⌨️ 快捷键说明

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