ARM体系结构与接口技术 —— ARM基础 及 指令

一、ARM基础

1、ARM公司讲解

  1. 成立于1990年11月
    1. 前生为Acorn计算机公司;
  2. 主要设计ARM系列RISC处理器内核;
  3. 授权ARM内核给生产和销售半导体的合作伙伴;
    1. ARM公司不生产芯片;

2、ARM产品线

                                ARM体系结构与接口技术 —— ARM基础 及 指令

3、授权的厂家

  1. TI(德州仪器)
    1. Omap3430 Cortex-a8核600MHz(若基亚N96)
    2. Omap3530 Cortex-a8核600MHz(ARM+DSP双核)
  2. Samsung(三星)
    1. S5PC100 Cortex-A8核 600MHz (iphone 3GS和M9都应用此芯片)
    2. S5PC110/S5PV210 Cortex-A8  1GHz (号称世界上最快的ARM处理器)
  3. Freescale(飞思卡尔)
    1. MX512/ i.MX513/ i.MX515 Cortex-A8核 600MHz~1GHz(在多款上网本中得到应用)
  4. Marvell(马维尔)
    1. PXA930 800MHz Cortex-A8核
    2. ARMADA 500/600/1000系列Sheeva PJ4核心 1GHz~1.2GHz(支持ARMv7指令集,架构异同)
  5. Qualcom(高通)
    1. QSD8650A/QSD8672(Snapdragon系列) 1。3GHz~1.5GHz scorpion核心(支持ARMv7指令集,架构异同)
  6. Nvidia(英伟达)
    1. Tegra  ARM11核  700MHz
    2. Tegra2 (下一代产品) Cortex A8(或A9)核

4、体系结构

                 ARM体系结构与接口技术 —— ARM基础 及 指令

注:不同的架构采取不同的指令集;

        哈弗结构是数据和指令分开存储并行;

        冯.若依曼(普林斯顿)结构是混合存储的;

5、ARM系统的硬件组成与运行原理

                                           ARM体系结构与接口技术 —— ARM基础 及 指令

6、安装交叉编译工具链:arm 2011.09.70 arm none linux gnueabi.exe

                                            ARM体系结构与接口技术 —— ARM基础 及 指令

7、ARM工作模式(ARM主要有7个基本工作模式)

  1. User : 非特权模式,大部分任务执行在这种模式;
  2. FIQ :当一个高优先级(fast)中断产生时将会进入这种模式;
  3. IRQ :当一个低优先级(normal)中断产生时将会进入这种模式;
  4. Supervisor : 当复位或软中断指令执行时将会进入这种模式;
  5. Abort  :当存取异常时将会进入这种模式;
  6. Undef :当执行未定义指令时会进入这种模式;
  7. System :使用和User模式相同寄存器集的特权模式;

8、ARM有37个寄存器

  1.    1个用作PC(Program Counter);
  2.    1个用作CPSR(Current Program Status Register);
  3.    5个用作SPSR(Saved Program Status Register);
  4.    30个通用寄存器;

9、ARM工作模式及寄存器框图

                                     ARM体系结构与接口技术 —— ARM基础 及 指令

  • 阴影部分 的寄存器是 —  单片机(MCU)在当前在当前状态下 独有的寄存器;
  • 没有阴影部分的 寄存器,是所有工作模式下公用的 寄存器;
  • CPSR 特殊的寄存器:状态寄存器 ,当前的工作模式;
  • PC 寄存器:当前的 执行位置;

CPSR寄存器:

ARM体系结构与接口技术 —— ARM基础 及 指令

10、结合keill ,ARM中的寄存器具体的运行过程;

ARM体系结构与接口技术 —— ARM基础 及 指令

11、测试:

  1. ARM有哪些工作模式?         
  2. ARM核有多少个寄存器?
  3. PC和LR寄存器的别名?
  4. R13别名是什么?
  5. 哪种模式使用的寄存器是最少的?
  6. 在Thumb和ARM指令的区别?
  7. CPSR的哪位反映了处理器的状态?