ARM七种运行模式.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《ARM七种运行模式.pdf》由会员分享,可在线阅读,更多相关《ARM七种运行模式.pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.s3c2440 中断体系构造:如何用中断?1.中断发生:保存别人的状态如何中断可以事先设置,对程序初始化,使能中断。中断发生后,进入中断模式2.中断处理分辨中断源进展不同的处理清理工作3.恢复别人的状态过程:外界信号上升沿、下降沿,高电平、低电平都可以设置成信号引脚设置,再进入状态存放器。状态存放器连接屏蔽存放器进入第二个状态存放器,储存各种中断,可以储存多个中断进入优先级存放器,判断中断运行顺序再进入屏蔽使能存放器和模式存放器进入优先级存放器进入 cpu 处理cpu 的处理:进入入口地址b handleIRQ计算返回地址,被中断处地址保存现场,即各存放器状态调用处理函数函数运行完后恢复现场
2、函数的处理:分辨终端处理中断去除数据,即去除中断1.中断存放器arm 的七种模式1.usr用户模式r0-r152.fiq快中断模式r0-r7专用存放器 r8-r15,3.svc管理模式专用存放器 r13-r14,4.abt数据访问终止模式5.sys系统模式6.und未定义指令终止模式7.irq中断模式几种模式的区别:.word.zl.嵌入式的中断:嵌入式的中断:a.不同的存放器b.不同的权限c.触发条件不一样何时使用几种模式:usr用户模式 :arm 处理器正常的程序执行状态fiq快中断模式:高速数据传输和通道处理svc管理模式 :操作系统使用的保护模式abt数据访问终止模式:数据或者指令终止
3、时进入,用于虚拟存储或者存储保护sys系统模式:运行具有特权的操作系统任务und未定义指令终止模式:未定义的指令执行时进入该模式,用于支持硬件处理器的软件仿真.irq中断模式:用于通用的中断处理后六种是特权模式,用于处理中断、异常和特殊权限处理用户模式是最常见的模式2.中断中的异常中断是一种异常。当发生中断时,cpu 进入中断模式cpu 进入异常入口,异常入口是硬件规定的一个地址运行模式ARM920T 支持 7 种运行模式:用户 usr :正常 ARM 程序执行状态快中断 fiq :为支持数据传输或通道处理设计中断 irq :用于一般用途的中断处理管理 svc :操作系统保护模式中止 abt
4、: 数据或指令预取中止后进入系统 sys :操作系统的特权用户模式未定义 und :执行了一个未定义指令时进入模式的改变可由软件控制, 或者由外部中断或进入异常引起。 大局部应用程序都将在用户模式执行。被称为特权模式的非用户模式,都将进入到中断效劳或异常中去,或者访问受保护的资源。部存放器部存放器ARM920T 总共有 37 个存放器, 其中 31 通用 32 位存放器和 6 个状态存放器, 但不能在同一时刻对所有的存放器可见。处理器状态和运行模式决定了哪些存放器对程序员可见。ARM 状态时部存放器集在 ARM 状态, 16 个通用存放器和一个状态存放器在任意时刻都可见。在特权非用户模式下,将
5、切换到指定模式的分组 banked存放器。图 2-3 显示了哪些存放器在各模式下是可见的:.word.zl.分组存放器被标记了阴影三角形。ARM 状态时存放器被设为包含 16 个直接可以访问的存放器:R0 到 R15。除了 R15,其他全部存放器都为通用存放器,如可能用于保存数据或地址值。除此之外,还有第 17 个存放器用于存储状态信息。FIQ 模式包含 7 个分组存放器,分别映射到 R8-14R8_fiq-R14_fiq 。在 ARM 状态,有很多不需要保存存放器的 FIQ 处理程序。用户,IRQ,管理中止和未定义模式都包含两个分组存放器映射到 R13 和 R14,允许这些模式都都包含私有堆
6、栈指针和存放器。.word.zl.ThumbThumb状态时部状态时部 存放器集存放器集Thumb 状态时的存放器集为 ARM 状态时的存放器的分配的一个子集。程序员能够直接访问 8 个通用存放器 R0 至 R7,还有程序计数器PC ,一个堆栈指针存放器SP ,一个存放器LR和 CPSR。各自特权模式还分别有分组堆栈指针, 存放器和进程保存状态存放器(SPSR)。 如图 2-4 所示。ThumbThumb状态访问高存放器状态访问高存放器 Hi-RegistersHi-Registers 在 Thumb 状态,存放器 R8-R15 “Hi registers不是标准的存放器集的一局部。然而,汇编
7、语言程序员可以受限的对它们的进展访问,可以将它们用于快速暂存。使用 MOV 指令的特殊变量可以将一个值从 R0-R7 “Lo register 围的存放器传送到高存放器或从高存放器到第低存放器。使用 CMP 和 ADD 指令也可以对高存放器的值与存放器的值进展比拟以或相加。更多容请参考表 3-34。程序状态存放器程序状态存放器.word.zl.ARM920T 包含了一个当前程序状态存放器Current Program Status Register-CPSR ,还有 5 个用于异常程序处理的程序状态保存存放器Saved Program Status Registers-SPSR 。这些存放器的
8、功能为:保存最近已处理的 ALU 操作的信息控制中断的使能与制止设置处理器的运行模式图 2-6 显示了各位的编排状态代码标志位N,Z,C 和 V 位为状态代码标志位。算术或逻辑操作结果可能会改变这些位,并检验以决定是否应该执行某条指令。在 ARM 状态,所有指令都可能为条件执行:详情见表 3-2。在 Thumb 状态,只有分支指令才能条件执行:详情见表 3-46。控制位PSR (包含 I,F,T 和 M4:0)的末端 8 位,统称为控制位。当发生异常时将会改变这些位。如果处理器运行在特权模式,它们也可由软件控制。.word.zl.异常:程序暂时停顿异常:程序暂时停顿当正常程序流程被暂时停顿发生
9、异常,例如响应一个来自外设的中断。在处理异常前,必须保护当前的处理器状态,以便在完成处理程序后能恢复到原来的程序。如果同时发生好几个异常,将会按照固定的顺序来分配,见 P2-13 的异常优先级。进入异常行为当处理一个异常时,ARM920T 将会进展以下活动:1. 相应存放器保存下条指令的地址。如果在 ARM 状态进入异常,下条指令的地址将会复制到存放器当前 PC+4 或 PC+8,由异常决定。详情见表 2-2中。如果在 Thumb 状态进入异常,写入存放器的值那么为当前 PC 偏移一个值,这样异常返回后程序能从正确的位置恢复。这意味着异常处理不需要确定异常是从什么状态进入的。例如,在 SWI
10、的情况,无论是在 ARM 状态还是 Thumb 状态执行 SWI,MOVS PC,R14_svc 语句都将返回到下一条指令。2. 复制 CPSR 的容到相应 SPSR 中。3. 根据异常类型强制将 CPSR 模式位设为某一个值。4. 强制 PC 从相关异常向量处取下条指令。通常也会置位中断制止标志位,以防止不同的难处理的异常嵌套。如果一个异常发生时处理器处于 Thumb 状态,当装载异常向量地址到 PC 时会自动切换到 ARM 状态。离开异常行为:离开异常行为:当异常完毕,异常处理程序将会:1. 将存放器适当减去一个偏移量并放入到 PC 中。 偏移量由异常类型决定2. 复制 SPSR 的容返回
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 运行 模式
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内