曲径通幽论坛

标题: ARM 异常处理伪代码 [打印本页]

作者: beyes    时间: 2009-11-12 17:43
标题: ARM 异常处理伪代码
ARM 对于异常处理过程,可用以下伪代码表示
R14_< 异常模式 > = Return Link 
SPSR_< 异常模式 > = CPSR

CPSR[4:0] = 异常模式编码
CPSR[5] = 0

if < 异常模式 > == Reset or fiq then {
        /*当复位或响应fiq异常时,禁止新的 fiq 和 irq 异常*/
        CPSR[6] = 1;
        CPSR[7] = 1;
} else if < 异常模式 > == irq then {
        /*当响应 irq 异常时, 禁止新的 irq 异常*/
        CPSR[7] = 1;
}

PC = 异常向量地址
R14 寄存器一般用于保存返回地址,又叫做 lr (连接寄存器) 。
每个异常模式都有自己的 SPSR,在进入到异常时,就把 CPSR 保存到相应异常的 SPSR 中。
CPSR 的内容为:





欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2