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

📄 irq.s

📁 ADuC7020/26是ADI模拟公司开发的ARM7TDMI内核
💻 S
字号:
;/*****************************************************************************/
;/* IRQ.S: IRQ Handler                                                        */
;/*****************************************************************************/
;/* This file is part of the uVision/ARM development tools.                   */
;/* Copyright (c) 2005-2006 Keil Software. All rights reserved.               */
;/* This software may only be used under the terms of a valid, current,       */
;/* end user licence from KEIL for a compatible version of KEIL software      */
;/* development tools. Nothing else gives you the right to use this software. */
;/*****************************************************************************/


IRQSTA_ADR      EQU     0xFFFF0000             ; IRQSTA Address


; User Interrupt Functions                
;  extern __irq void IRQx (void);
;  extern __irq void IRQy (void);

;               IMPORT  IRQx                   ; User IRQx Function
;               IMPORT  IRQy                   ; User IRQx Function

;mIRQx          EQU     0x00000080             ; User IRQx Mask
;mIRQy          EQU     0x00004000             ; User IRQy Mask


; OS Interrupt Functions

                IMPORT  os_clock_interrupt
                IMPORT  os_def_interrupt

mIRQ_OS         EQU     0x00000006             ; OS IRQ Mask (SWI + Timer)


                AREA    IRQ, CODE, READONLY
                ARM

                PRESERVE8
                ALIGN
                EXPORT  IRQ_Handler
IRQ_Handler

                STMDB   SP!,{R0}               ; Save R0
                LDR     R0,=IRQSTA_ADR         ; Load IRQSTA Address
                LDR     R0,[R0]                ; Load IRQSTA Value

;               TST     R0,#mIRQx              ; Check IRQx Flag
;               LDMNEIA SP!,{R0}               ; Restore R0
;               LDRNE   PC,=IRQx               ; IRQx Function

;               TST     R0,#mIRQy              ; Check IRQy Flag
;               LDMNEIA SP!,{R0}               ; Restore R0
;               LDRNE   PC,=IRQy               ; IRQy Function

                TST     R0,#mIRQ_OS            ; Check OS IRQ Flag
                LDMNEIA SP!,{R0}               ; Restore R0
                LDRNE   PC,=os_clock_interrupt ; OS Clock IRQ Function

                LDMIA   SP!,{R0}               ; Restore R0
                LDR     PC,=os_def_interrupt   ; OS Default IRQ Function


                END

⌨️ 快捷键说明

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