第二章ARM_Cortex-M3内核结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章ARM Cortex-M3内核结构教学目标
通过本章的学习,要理解ARM Cortex-M3内核结构,结合MCS-51单片机,分析其优缺点;掌握ARM Cortex-M3内核寄存器组织、处理器运行模式、存储器映象、异常及其操作;了解存储器保护单元及应用;了解ARM Cortex-M3调试组件的工作原理及应用。
本章是ARM Cortex-M3微控制器体系结构分析,内容涉及内核结构、CPU寄存器组织、存储器映射、异常形为及操作,在学习过程中与8位单片机(MCS-51单片机、PIC系列单片机等)结合分析,以期达到良好学习效果。
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微控制器内核包括处理核心和许多的组件,目的是用于系统管理和调试支持。如图为Cortex-M3内核方框图。
图 Cortex-M3内核方框图
1.处理器内核
Cortex-M3处理器内核采用ARMv7-M 架构,其主要特性如下:
Thumb-2指令集架构(ISA )的子集,包含所有基本的16位和32位Thumb-2指令; 哈佛处理器架构,在加载/存储数据的同时能够执行指令取指; 带分支预测的三级流水线; 32位单周期乘法; 硬件除法;
Thumb 状态和调试状态; 处理模式和线程模式; ISR 的低延迟进入和退出;
NV IC
CM3核
MP
FP
AHB-AP
DW
IT
AP B ET
M T
RO M 表
SW-DP JTA
专
用外设
I-code
D-code 总线
系统中睡调
NM
SLEE
SLEEPDE
指
数
触
专用外设总线(内
Cortex-中断号[239:0]
总线矩阵
总线矩阵
Fla sh 存储器
SRA M 可选配
系统总线(AHB )
静态RAM
外部RAM 控制器 外部RAM
外部设备
AHB to APB 总
外设总线
U ART
P
WM Ti mer
SysTi
I /O
可中断-可继续(interruptible-continued)的LDM/STM、PUSH/POP;
支持ARMv6类型BE8/LE;
支持ARMv6非对齐访问。
(嵌套向量中断控制器)
NVIC与处理器内核是紧密耦合的,这样可实现快速、低延迟的异常处理。在Cortex-M微控制器此功能非常强大。
3.总线矩阵
总线矩阵用来将处理器和调试接口与外部总线相连。
处理器包含4 个总线接口:
ICode 存储器接口:从Code 存储器空间(0x0000000–0x1FFFFFFF)的取指都在这条
32 位AHBLite 总线上执行。
DCode 存储器接口:对Code 存储器空间(0x0000000–0x1FFFFFFF)进行数据和调试访问都在这条32 位AHBLite 总线上执行。
系统接口:对系统空间(0x–0xDFFFFFFF)进行取指、数据和调试访问都在这条32 位AHBLite 总线上执行。
外部专用外设总线(PPB):对外部PPB 空间(0xE0040000–0xE00FFFFF)进行数据和调试访问都在这条32 位APB 总线(AMBA )上执行。跟踪端口接口单元(TPIU)和厂商特
定的外围器件都在这条总线上。
注:处理器包含一条内部专用外设总线,用来访问嵌套向量中断控制器(NVIC)、数据观察点和触发(DWT)、Flash 修补和断点(FPB),以及存储器保护单元(MPU)。
FPB单元实现硬件断点以及从代码空间到系统空间的修补访问,FPB有8个比较器。
数据观察点和跟踪,调试功能部件。
ITM是一个应用导向(application driven)的跟踪源,支持对应用事件的跟踪和printf类型的调试。