Chinaunix首页 | 论坛 | 博客
  • 博客访问: 318894
  • 博文数量: 88
  • 博客积分: 2051
  • 博客等级: 大尉
  • 技术积分: 950
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-14 23:59
文章分类

全部博文(88)

文章存档

2012年(3)

2011年(2)

2010年(9)

2009年(14)

2008年(60)

我的朋友

分类: C/C++

2008-10-16 17:16:53

1.中断

中断都是异步发生的,发生后,cpu需要保存正在执行指令序列的执行条件,如pc,寄存器等,在调用中断isr之前可能会屏蔽掉那些低级别的中断!

2.重启

3.Abort

 当发生严重的不可恢复的错误时候,可能引发这类异常,通常会结束引起该异常的程序!并dump一些错误信息

4.Fault 这类异常可以恢复,如缺页异常

5.Traps

6.programmed exceptions 也就是系统调用

总的来说,中断和异常都会将正在执行的指令序列中断,切换到另一个指令序列去执行!

arm cpu可能处于7种不同的模式 1.user 2.system(symbian没有使用) 3.supervisor(差不多所有内核代码都在这个模式下运行,除了isr和处理异常的代码) 4.abort(基本上很少使用,dump一些寄存器值就会回到svr里去) 5.undefined(未定义的指令集会进入到这个模式,很少使用) 6.interrupt 7.fast interrupt(cpu接受fiq时会进入这个模式)

R14 return address

R13 stack

R15 PC

CPSR 保存处于何种模式

13 14在每种模式下都是分开的

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