首页 理论教育 嵌入式系统原理与应用:异常中断指令解析

嵌入式系统原理与应用:异常中断指令解析

时间:2023-11-23 理论教育 版权反馈
【摘要】:Thumb 软件中断指令Thumb 软中断指令的行为和ARM 等价指令完全相同,进入异常的指令,使微处理器进入ARM 执行状态。图4.6Thumb 软件中断指令的二进制编码SWI 指令引起SWI 异常。这条指令不影响条件码标志。正常地返回指令将恢复Thumb 执行状态。图4.7Thumb 断点指令二进制编码当硬件调试单元作适当配置时,断点指令会使微处理器放弃指令预取。

嵌入式系统原理与应用:异常中断指令解析

(1)Thumb 软件中断指令

Thumb 软中断指令的行为和ARM 等价指令完全相同,进入异常的指令,使微处理器进入ARM 执行状态。

Thumb 软件中断指令的二进制编码如图4.6 所示。

图4.6 Thumb 软件中断指令的二进制编码

SWI 指令引起SWI 异常。 这意味着:①处理器状态切换到ARM 状态;②处理器模式切换到管理模式;③CPSR 保存到管理模式下的SPSR 中;④执行转移到SWI 向量地址。 处理器忽略immed_8,但immed_8 出现在指令操作码的位[7:0]中,而异常处理程序用它来确定正在请求何种服务。 这条指令不影响条件码标志。

这条指令将引起下列动作:

a.将下一条Thumb 指令的地址保存到r14_svc;

b.将CPSR 寄存器保存到SPSR_svc;

c.微处理器关闭IRQ,清Thumb 位,并通过修改CPSR 的相关位进入监控模式;

d.强制将PC 值被置为地址0x08,然后进入ARM 指令SWI 的处理程序。 正常地返回指令将恢复Thumb 执行状态。

指令格式如下:(www.xing528.com)

SWI <8 位立即数>

其中:<8 位立即数>为数字表达式,其取值为0 ~255 范围内的整数。

(2)Thumb 断点指令

Thumb 断点指令的行为与等价的ARM 指令完全相同。 断点指令用于软件调试,可以使微处理器中断正常指令执行,进入相应的调试程序。

Thumb 断点指令二进制编码如图4.7 所示。

图4.7 Thumb 断点指令二进制编码

当硬件调试单元作适当配置时,断点指令会使微处理器放弃指令预取。 BKPT 指令引起处理器进入调试模式,调试工具利用BKPT 指令来调查到达特定地址时的系统状态。 处理器忽略immed_8,但immed_8 出现在指令操作码的位[7:0]中。 调试器用它来保存断点的信息。

指令格式如下:

注意:等价的ARM 指令与Thumb 指令有完全相同的汇编语法。 只有实现了v5T 结构的ARM 处理器才支持BKPT 指令。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈