嵌入式系统学习笔记(Part.2)

ARM7微处理器系列

ARM7系列是低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7系列有如下特点:

  • 具有嵌入式ICE-RT逻辑,调试开发方便;
  • 极低的功耗,适合对功耗要求较高的应用,如便携式产品;
  • 能够提供0.9MIPS/ MHz的三级流水线结构;
  • 兼容16位的Thumb指令集,代码密度高;
  • 对操作系统的支持广泛,如Windows CE、Linux、Palm OS等;
  • 指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代;
  • 主频最高可达130M,高速的运算处理能力能胜任绝大多数的复杂应用。

ARM7系列微处理器包括如下几种类型的核:
ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。
TDMI的基本含义为:
T:支持16位压缩指令集Thumb;
D:支持片上Debug;
M:内嵌硬件乘法器(Multiplier)
I:嵌入式ICE,支持片上断点和调试点

ARM9微处理器系列

ARM9系列微处理器在高性能和低功耗特性方面提供最佳的表现。具有以下特点:

  • 5级流水线,指令执行效率更高。
  • 提供1.1MIPS/MHz的哈佛结构。
  • 支持32位ARM指令集和16位Thumb指令集。
  • 支持32位的高速AMBA总线接口。
  • 全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
  • MPU支持实时操作系统。
  • 支持数据Cache和指令Cache。

ARM9E微处理器系列

ARM9E系列微处理器的主要特点如下:

  • 支持DSP指令集,适合于需高速数字信号处理的场合。
  • 5级流水线,指令执行效率更高。
  • 支持32位ARM指令集和16位Thumb指令集。
  • 支持32位的高速AMBA总线接口。
  • 支持VFP9浮点处理协处理器。
  • 全性能的MMU,支持众多主流嵌入式操作系统。
  • 支持数据Cache和指令Cache,具有更高的处理能力。
  • 主频最高可达300M

ARM10E微处理器系列

ARM10E系列微处理器的主要特点如下:

  • 支持DSP指令集,适合于需要高速数字信号处理的场合。
  • 6级流水线,指令执行效率更高。
  • 支持32位ARM指令集和16位Thumb指令集。
  • 支持32位的高速AMBA总线接口。
  • 支持VFP10浮点处理协处理器。
  • 全性能的MMU,支持众多主流嵌入式操作系统。
  • 支持数据Cache和指令Cache,具有更高的处理能力
  • 主频最高可达400M。 内嵌并行读/写操作部件

ARM920T简介

ARM920T提供完善的高性能CPU 子系统, 包括如下方面:
● ARM9TDMI RISC 整数CPU
● 16K字节指令与16K 字节数据缓存
● 指令与数据存储器管理单元(MMUs)
● 写缓冲器
● 高级微处理器总线架构(AMBA™)总线接口
● ETM(内置追踪宏单元) 接口

ARM9TDMI采用5级流水线,具体如下
(1)取指:从存储器中取出指令,并将其放入指令流水线。
(2)译码:对指令进行译码。
(3)执行:把一个操作数移位,产生ALU的结果。
(4)缓冲/数据:如果需要,则访问数据存储器;否则ALU的结果只是简单地缓冲1个时钟周期,以便所有的指令具有同样的流水线流程。
(5)回写:将指令产生的结果回写到寄存器,包括任何从存储器中读取的数据

嵌入式系统学习笔记(Part.2)

ARM920T内核编程模型

字(Word)—— 字的长度为32位
半字(Half-Word)—— 半字的长度为16位
字节(Byte)——字节的长度均为8位
指令长度:
在ARM状态下是32位
在Thumb状态下为16位

ARM微处理器的工作状态
ARM状态:处理器执行32位的、字对齐的ARM指令;
Thumb状态:处理器执行16位的、半字对齐的Thumb指令

ARM体系结构的存储器格式
ARM920T体系结构将存储器看做是从零地址开始的字节的线性组合。
从0字节到3字节放置第1个存储的字数据;
从第4个字节到第7个字节放置第2个存储的字数据,依次排列。
作为32位的微处理器,ARM920T体系结构所支持的最大寻址空间为4GB(232字节)

ARM920T体系结构有用两种方法存储字数据:
大端格式和小端格式
大端格式中字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中, 小端格式则正好相反

处理器模式
ARM920T支持7种运行模式,分别为:

  • 用户模式(usr),ARM处理器正常的程序执行状态;
  • 快速中断模式(fiq),用于高速数据传输或通道处理;
  • 外部中断模式(irq),用于通用的中断处理;
  • 管理模式(svc),操作系统使用的保护模式;
  • 数据访问终止模式(abt),当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护;
  • 系统模式(sys),运行具有特权的操作系统任务;
  • 未定义指令中止模式(und),当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。

除用户模式以外,其余的6种模式称为非用户模式或特权模式;
其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及访问受保护的系统资源等情况

寄存器组织
ARM微处理器共有37个32位寄存器,其中:
31个为通用寄存器
6个为状态寄存器
通用寄存器R14~R0
程序计数器PC
一个或两个状态寄存器都是可访问的。

未分组寄存器R0~R7:
在所有的运行模式下,未分组寄存器都指向同一个物理寄存器;
在中断或异常处理进行运行模式转换时,由于不同的处理器运行模式均使用相同的物理寄存器;

分组寄存器R8~R14:
R8~R12在不同模式下对应不同的物理寄存器
R13、R14 分别对应6个不同的物理寄存器,其中的一个是用户模式与系统模式共用,另外5个物理寄存器对应于其他5种不同的运行模式。

Thumb 状态下的寄存器组织
Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可直接访问如下寄存器:
8个通用寄存器(R7~R0)
程序计数器(PC)
堆栈指针(SP)
连接寄存器(LR)
CPSR