首页 > 学院 > 开发设计 > 正文

ARM—工作状态,工作模式

2019-11-06 09:49:38
字体:
来源:转载
供稿:网友
ARM32位ARM指令集Thumb指令集(一个不完整的)区别:Thumb指令集是ARM指令集的空间压缩的子集,Thumb指令集不能替代ARM指令集由于Thumb指令的长度为16位,即只用ARM指令一半的位数来实现同样的功能,所以,要实现特定的程序功能,所需的Thumb指令的条数较ARM指令多。在一般的情况下,Thumb指令与ARM指令的时间效率和空间效率关系为:— Thumb代码所需的存储空间约为ARM代码的60%~70%— Thumb代码使用的指令数比ARM代码多约30%~40%— 若使用32位的存储器,ARM代码比Thumb代码快约40%(当使用32位的机器时,thumb指令集就没有什么太大优势了,除了功耗)— 若使用16位的存储器,Thumb代码比ARM代码快约40%~50%— 与ARM代码相比较,使用Thumb代码,存储器的功耗会降低约30%显然,ARM指令集和Thumb指令集各有其优点,若对系统的性能有较高要求,应使用32位的存储系统和ARM指令集,若对系统的成本及功耗有较高要求,则应使用16位的存储系统和Thumb指令集。当然,若两者结合使用,充分发挥其各自的优点,会取得更好的效果。Jazelle指令集:为java字节码提供硬件加速的功能,提高了Java代码的执行效率。处理器工作模式:(8种)用户模式:User特权模式:FIQ(快速中断)IRQ(外部中断)Supervisor(管理模式)Abort(异常模式) Undef(未定义指令终止模式)System(系统模式)Monitor(代码监控)ARM寄存器:Cortex-A系列有40个寄存器重点分析5个寄存器:r13,r14,r15r13:---sp:指向栈顶元素的一个堆栈指针r14:---lr:链接寄存器,保存下一条指令的地址r15:---pc:程序计数器,pc指向当前正在执行的指令(记录我们程序运行到什么位置)cpsr(currented PRograms status register):当前程序状态寄存器(公有)spsr(saved programs status register):保存当前程序状态寄存器(私有)重点:异常处理流程ARM状态:3种状态ARM工作状态是由cpsr的两位进行控制(T位和J位)ARMThumbJazelle(J位控制,T=0,J=1)T = 0; J = 0; 处理器处于 ARM 状态T = 1; J = 0; 处理器处于 Thumb 状态T = 1; J = 1; 处理器处于 ThumbEE 状态T = 0; J = 1; 处理器处于 Jazelle状态
上一篇:防火墙

下一篇:ARM的异常响应

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表