📄 intv.s
字号:
/* * arch/v850/kernel/intv.S -- Interrupt vectors * * Copyright (C) 2001,2002 NEC Corporation * Copyright (C) 2001,2002 Miles Bader <miles@gnu.org> * * This file is subject to the terms and conditions of the GNU General * Public License. See the file COPYING in the main directory of this * archive for more details. * * Written by Miles Bader <miles@gnu.org> */#include <asm/clinkage.h>#include <asm/irq.h>#include <asm/machdep.h>#include <asm/entry.h>#ifdef CONFIG_V850E_MA1_HIGHRES_TIMER#include <asm/highres_timer.h>#endif/* Jump to an interrupt/trap handler. These handlers (defined in entry.S) expect the stack-pointer to be saved in ENTRY_SP, so we use sp to do an indirect jump (which avoids problems when the handler is more than a signed 22-bit offset away). */#define JUMP_TO_HANDLER(name, sp_save_loc) \ st.w sp, sp_save_loc; \ mov hilo(name), sp; \ jmp [sp] /* Reset vector. */ .section .intv.reset, "ax" .org 0x0 mov hilo(C_SYMBOL_NAME(start)), r1; jmp [r1] /* Generic interrupt vectors. */ .section .intv.common, "ax" .balign 0x10 JUMP_TO_HANDLER (nmi, NMI_ENTRY_SP) // NMI0 .balign 0x10 JUMP_TO_HANDLER (nmi, NMI_ENTRY_SP) // NMI1 .balign 0x10 JUMP_TO_HANDLER (nmi, NMI_ENTRY_SP) // NMI2 .balign 0x10 JUMP_TO_HANDLER (trap, ENTRY_SP) // TRAP0n .balign 0x10 JUMP_TO_HANDLER (trap, ENTRY_SP) // TRAP1n .balign 0x10 JUMP_TO_HANDLER (illegal_instruction, ENTRY_SP) // illegal insn trap .balign 0x10 JUMP_TO_HANDLER (dbtrap, ENTRY_SP) // DBTRAP insn /* Hardware interrupt vectors. */ .section .intv.mach, "ax" .org 0x0#if defined (CONFIG_V850E_MA1_HIGHRES_TIMER) && defined (IRQ_INTCMD) /* Interrupts before the highres timer interrupt. */ .rept IRQ_INTCMD (HIGHRES_TIMER_TIMER_D_UNIT) .balign 0x10 JUMP_TO_HANDLER (irq, ENTRY_SP) .endr /* The highres timer interrupt. */ .balign 0x10 JUMP_TO_HANDLER (C_SYMBOL_NAME (highres_timer_slow_tick_irq), ENTRY_SP) /* Interrupts after the highres timer interrupt. */ .rept NUM_CPU_IRQS - IRQ_INTCMD (HIGHRES_TIMER_TIMER_D_UNIT) - 1 .balign 0x10 JUMP_TO_HANDLER (irq, ENTRY_SP) .endr#else /* No highres timer */ .rept NUM_CPU_IRQS .balign 0x10 JUMP_TO_HANDLER (irq, ENTRY_SP) .endr#endif /* Highres timer */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -