Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3471009
  • 博文数量: 1450
  • 博客积分: 11163
  • 博客等级: 上将
  • 技术积分: 11101
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-25 14:40
文章分类

全部博文(1450)

文章存档

2017年(5)

2014年(2)

2013年(3)

2012年(35)

2011年(39)

2010年(88)

2009年(395)

2008年(382)

2007年(241)

2006年(246)

2005年(14)

分类: LINUX

2012-01-20 22:50:45

ARM包括以下几种异常类型:1.复位(如加电,系统复位等)2.未定义指令 3.软中断 4.指令预取中止 5.数据访问中止 7.外部中断请求 8.快速中断请求

中断处理过程:
1.保存处理器当前状态,中断屏蔽以及各条件标志位。即将CPSR寄存器中的值保存到SPSR寄存器中。
2.设置CPSR寄存器中的CPU运行模式位,使之切换到相应模式中去,并且关中断。
3.将寄存器 lr_mode(即 r14)寄存器设置成返回地址。
4.将指令指针寄存器设置成该异常中断的中断向量地址。从而跳转到相应的异常中断处理程序处执行。

从异常中断处理程序中返回
1.恢复被中断程序的状态,即将SPSR寄存器内容复制到CPSR中
2.返回到发生中断异常指令的下一条指令处执行。即将 lr_mode寄存器的内容复制到指令指针寄存器中。

阅读(2602) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~