Board logo

标题: ARM基本知识 [打印本页]

作者: look_w    时间: 2017-9-23 12:48     标题: ARM基本知识

嵌入式系统的特点
专用、软硬件可剪裁可配置
低功耗、高可靠性、高稳定性
软件代码短小精悍
代码可固化
实时性
弱交互性
软件开发需要专门的开发工具和开发环境
要求开发、设计人员有较高的技能
嵌入式系统发展的4个阶段:
以单芯片为核心的可编程控制器形式的系统
以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统
以嵌入式操作系统为标志的嵌入式系统
Internet为标志的嵌入式系统
嵌入式操作系统软硬实时定义和区别
具有强(硬)实时特点的嵌入式操作系统
系统在指定的时间内未能实现某个确定的任务,会导致系统的全面失败,则被称为硬(强)实时系统。硬实时系统,其系统响应时间在毫秒或微秒级(数控机床)。一个硬实时系统通常在硬件上需要添加专门用于时间和优先级管理的控制芯片, uc/osVxWorks是典型的实时操作系统。
具有弱(软)实特点的嵌入式操作系统
在软实时系统中,虽然响应时间同样重要,但是超时却不会发生致命的错误。软实时系统则主要在软件方面通过编程实现现实的管理。比如Windows CEuCLinu是一个多任务分时系统。系统响应时间在毫秒或几秒的数量级上

ARM体系结构的命名规则
ARM {x} {y} {z} {T} {D} {M} {I} {E} {J} {F} {-S}
大括号内的字母可选
x —— 系列号,例如:ARM9中的“9”;
y —— 内部存储管理/保护单元,例如ARM92中的“2”、ARM94中的“4”;
z —— 内含有高速缓存Cache
T —— 支持16位的Thumb指令集;
D ——支持JTAG片上调试;
M ——支持用于长乘法操作(64位结果)的ARM指令,包含快速乘法器;
I —— 带有嵌入式追踪宏单元ETMEmbedded Trace Macro),用来设置断点和观察点的调试硬件;
E —— 增强型DSP指令(基于TDMI);
J —— 含有Java加速器Jazelle,与Java虚拟机相比,Java加速器Jazelle使Java代码运行速度提高了8倍,功耗降低到原来的80%
F——向量浮点单元;
S——可综合版本,意味着处理器内核是以源代码形式提供的。这种源代码形式又可以被编译成一种易于EDA工具使用的形式。

ARM9流水线:
5级流水线结构,分别是取指,译码、执行、存储器访问、寄存器写操作。
3级对比,5级将存储器访问和寄存器写操作分别由流水线来处理,增加处理指令的执行效率。
取指:从指令Cache中读取指令。
译码:对指令进行译码,识别出是对哪个寄存器进行操作并从通用寄存器中读取操作数。
执行:进行ALU运算和移位操作,如果是对存储器操作的指令,则在ALU中计算出要访问的存储器地址。
存储器访问:如果是对存储器访问的指令,用来实现数据缓冲功能(通过数据Cache)。
寄存器回写:将指令运算或操作结果写回到目标寄存器中。

例子:MOV R0,R1   ADD R5,R5,#1  LDR R3,[R4]  STR R9,[R13]  MOV R6,R7  MOV R8,R7  ADD R0, R0, R2
5级流水线互锁分析:当前指令的执行可能需要前面指令的执行结果,当这时前面的指令没有执行完毕,从而会导致当前指令的执行无法获得合法的操作数,这时就会引起流水线的等待,这种现象在流水线机制里称为互锁。

ARM微处理器的工作模式(7)
User-用户模式(usr
    ARM处理器正常的程序执行状态
FIQ-快速中断模式(fiq
    用于高速数据传输或通道处理
IRQ-外部中断模式(irq
    用于通用的中断处理
Supervisor-管理模式(svc
    操作系统使用的保护模式
    复位、软中断调用(SWI
Abort-中止模式(abt)
    当数据访问或指令预取中止时进入该模式
    可用于虚拟存储及存储保护
Undefined-未定义指令异常模式(und
    当未定义的指令执行时进入该模式
    可用于支持硬件协处理器的软件仿真
System-系统模式(sys
    运行具有特权的操作系统任务
    使用和User模式相同寄存器组


嵌入式处理器的特点
对实时多任务有很强的支持能力
具有功能很强的存储区保护功能
可扩展的处理器结构
嵌入式微处理器必须功耗很低。
ARM异常处理
异常进入
异常(Exception)通常定义为:处理器需要中止指令正常执行的任何情形并转向相应的处理,包括ARM内核产生复位,取指或存储器访问失败,遇到未定义指令,执行软件中断指令,或者出现外部中断等。
在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行
处理器允许多个异常同时发生,它们将会按固定的优先级进行处理
异常返回
异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回(编程完成)
1SPSR复制回CPSR
2将链接寄存器LR的值减去相应偏移量(偏移量计算不作要求)后送到PC

ARM通用寄存器,专用寄存器
ARM 3732-Bits长的寄存器
30 个通用寄存器
1个用作CPSR(current program status register)
5个用作SPSR(saved program status registers)
1 个用作PC( program counter)
这些寄存器不能被同时访问取决于处理器的工作状态和工作模式


通用寄存器包括R0R14,可以分为两类
未分组寄存器R0R7
分组寄存器R8R14


未分组寄存器R0R7
在所有的工作模式下,每个未分组寄存器都指向对应的一个物理寄存器
在中断或异常处理进行工作模式转换时,由于不同的处理器工作模式均使用相同的物理寄存器,可能会造成寄存器中数据的破坏




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0