Chinaunix首页 | 论坛 | 博客
  • 博客访问: 520500
  • 博文数量: 52
  • 博客积分: 1223
  • 博客等级: 少尉
  • 技术积分: 751
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-23 21:32
文章分类

全部博文(52)

文章存档

2016年(1)

2015年(5)

2013年(1)

2012年(45)

分类: 嵌入式

2012-04-21 17:42:08

1、之所以设立处理器多种模式主要是安全考虑,用户程序运行在user态运行,操作系统运行在特权态(比如我们usoc运行在svc状态下)
 
2、模式切换
 
主动切换,在异常态下,我们可以设置cpsr某些位,来转换处理状态,在user下不能访问cpsr,不能主动发起切换
 
被动切换,产生异常时,自动切掉异常模式,比如从user态来中断后直接切换到fiq态
 
3、在异常模式下,通常有些自己的寄存器,比如r8-r12,spsr,
 
r8-r12通常是用来加速操作的,比如我在产生中断的时候,可以直接用我自己的r8-r12,不用先保存user状态下的r8-r12再用
 
spsr用于保存cprs的,用于主动切换模式,比如在中断处理后将spsr->cpsr,完成从FIQ态到USER态的转换
 
 
 
我们就可以理解,为什么在异常产生时要主动切换处理器模式到svc,因为ucos要跑到svc模式下。
阅读(2925) | 评论(0) | 转发(0) |
0

上一篇:spi flash 调试总结

下一篇:802.11n 协议浅析

给主人留下些什么吧!~~