ARM Cortex-M3 内核结构
ARM Cortex-M3 处理器简介
2.1.1 概述
ARM公司成立于上个世纪九十年代初,致力于处理器内核研究,ARM 即 Advanced RISC Machines 的缩写,ARM公司本身不生产芯片,只设计内核,靠转让设计许可,由合作伙伴公司来生产各具特色的 芯片。这种运行模式运营的成果受到全球半导公司以及用户的青睐。目前ARM体系结构的处理器内核有: ARM7TDMI、ARM9TDMI、ARM10TDMI、ARM11以及Cortex等。2005年ARM推出的ARM Cortex系列内核,分别
为:A系列、R系列和M系列,其中A系列是针对可以运行复杂操作系统(Linux、Windows CE、Symbian 等)的处理器;R系列是主要针对处理实时性要求较高的处理器(汽车电子、网络、影像系统);M系列 又叫微控制器,对开发费用敏感,对性能要求较高的场合。
Cortex-M系列目前的产品有M0、M1、M3,其中M1用在FPGA中。Cortex-M系列对微控制器和低成本应 用提供优化,具有低成本、低功耗和高性能的特点,能够满足微控制器设计师进行创新设计的需求。其 中,ARM Cortex-M3处理器的性能是ARM7的两倍,而功耗却只有ARM7的1/3,适用于众多高性能、极其低 成本需求的嵌入式应用,如微控制器、汽车系统、大型家用电器、网络装置等,ARM Cortex-M3提供了 32位微控制器市场前所未有的优势。
Cortex-M3内核,内部的数据路径为32位,寄存器为32位,存储器接口也是32位。Cortex-M3采用了 哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问分开进行。Cortex-M3还提供一个 可选的MPU,对存储器进行保护,而且在需要的情况下也可以使用外部的cache。另外在Cortex-M3中, 存储器支持小端模式和大端存储格式。Cortex-M3内部还附赠了很多调试组件,用于在硬件水平上支持 调试操作,如指令断点,数据观察点等。另外,为支持更高级的调试,还有其它可选组件,包括指令跟 踪和多种类型的调试接口。
2.1.2 内核结构组成及功能描述
Cortex-M3微控制器内核包括处理核心和许多的组件,目的是用于系统管理和调试支持。如图2.1为 Cortex-M3内核方框图。
NMI 中断号[239:0]
SLEEPING SLEEPDEEP
NVIC
SysTick
中断
睡眠CM3核
调试
指令数据
MPU
Cortex-M3
触发
ETM
TPIU
FPB
DWTITM
专用外 设总线
SW-DP JTAG-DP
专用外设总线(内部) AHB-AP
APB
ROM表
总线矩阵
I-code总线D-code总线系统总线
总线矩阵
系统总线(AHB)
静态 RAM外部 RAM外部
控制器设备
AHB to APB 总线
Flash 存 储器
SRAM 可
选配
外部 RAM
I/O
外设总线
UARTPWMTimer
图 2.1 Cortex-M3 内核方框图
1.处理器内核
Cortex-M3处理器内核采用ARMv7-M架构,其主要特性如下:
?Thumb-2指令集架构(ISA)的子集,包含所有基本的16位和32位Thumb-2指令;
?哈佛处理器架构,在加载/存储数据的同时能够执行指令取指;
?带分支预测的三级流水线;
?32位单周期乘法;
?硬件除法;
?Thumb状态和调试状态;
?处理模式和线程模式;
?ISR的低延迟进入和退出;
可中断-可继续(interruptible-continued)的LDM/STM、PUSH/POP;
支持ARMv6类型BE8/LE;
?支持ARMv6非对齐访问。
2.NVIC(嵌套向量中断控制器)
NVIC与处理器内核是紧密耦合的,这样可实现快速、低延迟的异常处理。在Cortex-M微控制器此功 能非常强大。
3.总线矩阵
总线矩阵用来将处理器和调试接口与外部总线相连。 处理器包含4 个总线接口:
?ICode 存储器接口:从Code 存储器空间(0x0000000–0x1FFFFFFF)的取指都在这条32 位 AHBLite 总线上执行。
?DCode 存储器接口:对Code 存储器空间(0x0000000–0x1FFFFFFF)进行数据和调试访问都 在这条32 位AHBLite 总线上执行。
?系统接口:对系统空间(00xDFFFFFFF)进行取指、数据和调试访问都在这条32 位 AHBLite 总线上执行。
?外部专用外设总线(PPB):对外部PPB 空间(0xE0040000–0xE00FFFF