Chinaunix
标题:
关于ARM中断处理中的寄存器预留问题
[打印本页]
作者:
lli_njupt
时间:
2011-11-30 14:53
标题:
关于ARM中断处理中的寄存器预留问题
内核版本2.6.28
在arch/arm/kernel/entry-armv.S文件中中断处理中的irq_handler宏中:
/*
* Interrupt handling. Preserves r7, r8, r9
*/
.macro irq_handler
get_irqnr_preamble r5, lr
1: get_irqnr_and_base r0, r6, r5, lr
movne r1, sp
@
@ routine called with r0 = irq number, r1 = struct pt_regs *
@
adrne lr, 1b
bne asm_do_IRQ
复制代码
在注释中说明对irq_handler的调用需要预留r7-r9寄存器,因为它们用来做内核抢占用,那么编译如何做到在asm_do_IRQ
处理中不使用这三个寄存器的呢? 请分析过ARM中断处理流程的高手不吝赐教!
作者:
塑料袋
时间:
2011-12-02 14:09
ARM中,被调用者用到那个寄存器,就会入栈那个寄存器;在返回到调用者之前恢复这些寄存器。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2