ARM处理器共有7种运行模式如表。
处理器模式 描 述
用户模式(User,usr) 正常程序执行的模式
快速中断模式(FIQ,fiq) 用于高速数据传输和通道处理
外部中断模式(IRQ,irq) 户通常的中断使用
特权模式(Supervisor,sve) 供操作系统使用的一种保护模式
数据访问中止模式(Abort,abt)用于虚拟存储及存储保护
未定义指令中止模式(Undefin- ed,und) 用于支持通过软件仿真硬件的协处理器
系统模式(System,sys) 用于运行特权级的操作系统任务
除了用户模式以外,其他6种处理器模式可以称为特权模式,在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。
其中除了系统模式外的其他5种特权模式又称为异常模式。
处理器模式可以通过软件来切换,在ARM Linux操作系统中,只有运行在内核态的程序才有可能更改处理器模式,用户态的程序是不能访问受操作系统保护的系统资源的,更不能直接进行处理器模式的切换。当需要处理器模式切换的时候,用户态的程序可以中断,内核态的中断处理程序开始响应并做出处理。
以上7种模式对应了系统中的中断向量表,这在移植操作系统的时候值得注意的。系统中所有的调度都是围绕着中断向量表展开的。在不用操作系统的系统中也就是通常所谓的裸机系统程序中,对于中断向量表的处理也很关键。这种情况下,这个向量表一般加载在CPU复位执行的开始地址的一段空间(这与单片机一致)。
在移植ARM Linux操作系统时,Boot Loader程序的移植需要考虑这些问题,而一旦Boot Loader移植成功,运行起来以后,开发人员就不需要再考虑这个问题了。
2008年10月26日星期日
订阅:
博文评论 (Atom)
没有评论:
发表评论