




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1ARM University ProgramCopyright ARM Ltd 2013ARM Cortex-M0 处理器体系结构处理器体系结构第一部分第一部分2ARM University ProgramCopyright ARM Ltd 2013单元大纲单元大纲ARM 体系和处理器什么是ARM架构ARM处理器系列ARM Cortex-M 架构系列Cortex-M0 处理器ARM 处理器 Vs. ARM 体系ARM Cortex-M0 处理器Cortex-M0 处理器概述Cortex-M0 框图Cortex-M0 寄存器Cortex-M0 内存映射Cortex-M0 异常处理3ARM Un
2、iversity ProgramCopyright ARM Ltd 2013ARM 体系和体系和 ARM 处理器处理器4ARM University ProgramCopyright ARM Ltd 2013什么是什么是ARM架构架构ARM 架构是一种基于RISC技术的处理器架构因其低功耗而出名;因此广泛应用在移动设备中,诸如手机和平板中都有由ARM公司设计并授权一个很大的生态圈来生产ARM控股设计基于ARM的处理器的公司;并不生产,但是授权其他半导体合作厂商使用其设计来制造和销售产品给他们的客户;同时还提供其他设计,比如物理IP、图形核和开发工具。5ARM University Progra
3、mCopyright ARM Ltd 2013ARM 处理器系列处理器系列Cortex-A 系列(应用)用于开放操作系统的高性能处理器;应用产品包括手机、数字电视、电子书和家庭网关等。Cortex-R 系列(实时)对于实时应用有杰出的性能;应用产品包括汽车刹车系统、动力传动系统等。Cortex-M 系列 (单片机)用于特定的单片机应用的顾忌成本的解决方案;应用产品包括单片机、混合信号设备、智能传感器、车体电路和气囊等。SecurCore系列高安全性的应用。早期的经典处理器包括ARM7、ARM9、ARM11系列Cortex-ACortex-A57Cortex-A53Cortex-A15Corte
4、x-A9Cortex-A8Cortex-A7Cortex-A5Cortex-R7Cortex-R5Cortex-R4Cortex-M4Cortex-M3Cortex-M1Cortex-M0+Cortex-M0SC000SC100SC300ARM11ARM9ARM7Cortex-RCortex-MSecurCoreClassicAs of Sept 20136ARM University ProgramCopyright ARM Ltd 2013设计一个基于设计一个基于ARM的的SoC从ARM或其他第三方IP厂家获得一组IP核;把这些IP核集成进单个芯片的设计中;把设计交给半导体厂家来做芯片生产
5、。基于基于ARM的的MCU芯片芯片ROMARM处理器RAM系统总线外围部件外部接口SoCSoC 设计设计芯片制造芯片制造可授权的可授权的IPIP 库库Cortex-A9Cortex-R5Cortex-M0ARM7ARM9ARM11AXI 总线AHB 总线APB 总线GPIOI/O 块定时器DRAM 控制 FLASH 控制 SRAM 控制7ARM University ProgramCopyright ARM Ltd 2013ARM Cortex-M 架构系列架构系列Cortex-M 系列: Cortex-M0, M0+, M1, M3, M4.低功耗更低的能耗、更长的电池寿命更小的代码更低的硅
6、片成本易于使用更快的软件开发和重用嵌入式应用智能仪表、人机接口设备、汽车和工业控制系统、白色商品、消费产品和医疗仪器As of Sept 20138ARM University ProgramCopyright ARM Ltd 2013ARM Cortex-M 架构系列架构系列处理器处理器ARM架构架构核心架构核心架构ThumbThumb-2硬件乘法硬件乘法硬件除法硬件除法饱和运算饱和运算DSP扩展扩展浮点运算浮点运算Cortex-M0ARMv6-M冯冯 诺伊曼诺伊曼大多数大多数子集子集1 或或32个个周期周期无无无无无无无无Cortex-M0+ARMv6-M冯冯 诺伊曼诺伊曼大多数大多数子集
7、子集1 或或32个个周期周期无无无无无无无无Cortex-M1ARMv6-M冯冯 诺伊曼诺伊曼大多数大多数子集子集3 或或33 个个周期周期无无无无无无无无Cortex-M3ARMv7-M哈佛哈佛完整完整完整完整1 个周期个周期有有有有无无无无Cortex-M4ARMv7E-M哈佛哈佛完整完整完整完整1个周期个周期有有有有有有可选可选9ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 处理器处理器最小的ARM处理器极小的硅片面积极少的门数量(最低配置大约1.2万个门)代码密度高以16位Thumb指令为基础加上一些强大的32位指令低功耗1
8、6W/MHz (90LP 工艺、最小配置)简单性只有56条指令对C语言友好更确定的响应时间使用ARMv6-M架构10ARM University ProgramCopyright ARM Ltd 2013ARM 处理器处理器Vs. ARM 架构架构ARM 架构定义了指令集的细节、程序的模型、异常模型和内存映射;相关文档在Architecture Reference Manual(架构参考手册)中;ARM 处理器是用一种ARM架构开发出来的;更多的实现细节,比如时序数据以及和实现相关的数据;相关文档在处理器的Technical Reference Manual(技术参考手册)中。ARMv4/ V
9、4t 架构ARMv5/ v4E 架构ARMv6 架构ARMv7架构ARM v6-M如. Cortex-M0, M1如 ARM7TDMI如 ARM9926EJ-S如 ARM1136ARMv8 架构ARMv7-A如 Cortex-A9ARMv7-R如 Cortex-R4ARMv7-M如 Cortex-M3ARMv8-A如 Cortex-A53Cortex-A57ARMv8-R2013年9月的数据11ARM University ProgramCopyright ARM Ltd 2013ARM 处理器处理器Vs. ARM 架构架构Cortex-M0: v6-MARMv6 架构的Thumb指令集;AR
10、Mv7-M架构的内存映射,异常模型和Thumb-2系统;低功耗优化的设计。ARM v6-M架构架构ARM v6架构架构ARM v7-M架构架构ARMCortex-M0Thumb 指令集内存映射异常模型Thumb-2系统低功耗优化的设计12ARM University ProgramCopyright ARM Ltd 2013ARM Cortex-M0 处理器概述处理器概述13ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 概述概述32位精简指令集计算(RISC)处理器冯诺伊曼架构数据和指令共享单个总线接口;指令集56条指令,是Thum
11、b-1 (16位) 和Thumb-2 (16/32位)的子集;支持的中断1个不可屏蔽中断(NMI) + 1 到 32 个物理中断支持睡眠模式14ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 框图框图内部总线系统内部总线系统AHB LITE总线接口总线接口唤醒中断控制器唤醒中断控制器 (WIC)处理器处理器核心核心嵌套向量化嵌套向量化中断控制器中断控制器 (NVIC)调试调试子系统子系统中断请求和NMIARM Cortex-M0 微处理器微处理器内存与外围部件JTAG/串行线调试接口-Wire电源管理接口15ARM Universit
12、y ProgramCopyright ARM Ltd 2013Cortex-M0 框图框图处理器核心包括内部寄存器、ALU、数据通路和一些控制逻辑;三级流水线:取指、译码和执行;寄存器包括16个32位寄存器,都可以用做通用和特殊用途。嵌套向量化中断控制器 (NVIC)最多32个中断请求信号和一个不可屏蔽中断(NMI);自动处理嵌套的中断,比如比较中断请求和当前正在处理的中断的优先级;取指译码执行取指译码执行取指译码执行指令1指令2指令3取指译码执行指令4Time 16ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 框图框图总线系统包括
13、内部总线系统,处理器核心中的数据通路和AHB LITE接口单元;全部都是32位宽度;AHB LITE是许多ARM处理器所采用的片上总线协议,在IC设计业内得到广泛使用。调试子系统处理调试控制、程序断点和数据观察点(watchpoint);当调试事件发生的时候,它可以把处理器核心置于停止状态,让开发人员可以分析处理器此刻的状态,比如查看寄存器和标志的值。唤醒中断控制器(WIC)(可选)对于低功耗应用,单片机可以关闭大多数部件进入睡眠模式。当检测到一个中断请求的时候,WIC可以通知电源管理单元来给系统供电。17ARM University ProgramCopyright ARM Ltd 2013
14、ARM Cortex-M0 处理器的寄存器处理器的寄存器18ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 寄存器寄存器处理器寄存器内部的寄存器是用来存储和处理处理器核心内的临时数据的;所有的寄存器都在处理器核心内,因此能更快地被读写;load-store架构要处理内存中的数据,就必须把数据从内存装载到寄存器中,在处理器中处理,需要的话,再写回到内存中。Cortex-M0 寄存器寄存器组(bank)16个32位寄存器(13个是通用的); 特殊寄存器。19ARM University ProgramCopyright ARM Ltd 2
15、013Cortex-M0 寄存器寄存器R0R1R2R3R4R5R6R7R8R9R10R11R12R13(分组分组)R14R15x PSR堆栈指针 (SP)链接寄存器(LR)程序计数器 (PC)PRIMASKCONTROLProgram Status Registers (PSR)Interrupt mask registerStack definition特殊寄存器特殊寄存器寄存器组寄存器组MSPPSP主堆栈指针进程堆栈指针APSREPSRIPSR应用程序PSR执行PSR终端PSR低段寄存器高段寄存器通用寄存器20ARM University ProgramCopyright ARM Ltd
16、2013Cortex-M0 寄存器寄存器R0 R12: 通用寄存器低段寄存器 (R0 R7)可以由任何指令读写;高段寄存器 (R8 R12) 有时候不能被某些Thumb指令读写。R13: 堆栈指针 (SP)记录堆栈当前的地址;在任务之间切换的时候,用来保存程序的上下文;Cortex-M0有两个 SP:一个是主SP(MSP),用在需要特权访问的程序中,比如OS内核及异常处理程序; 另一个是进程SP(PSP),用在普通的应用程序中(不跑异常处理程序的时候)。程序计数器 (PC)记录当前指令代码的地址;每个取值操作自动递增4(对于32位指令码而言),除非是遇到了跳转指令;像函数调用这样的跳转指令,会
17、把PC变到一个特定的地址,同时把当前的PC保存在链接寄存器(LR)中。数据数据数据PCSP地址低高压栈退栈堆栈代码堆21ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 寄存器寄存器R14: 链接寄存器 (LR)LR用来保存子程序或函数调用时的返回地址;函数结束的时候,程序计数器 (PC) 装入LR中的值。PCLR主程序代码子程序当前PC把LR里的地址装入PC,从而返回到主程序中当前LR从子程序返回主程序从子程序返回主程序PCLR主程序代码子程序当前PC1. 把当前的PC保存到LR中2. 把子程序的起始地址装入PC调用子程序调用子程序代
18、码区代码区22ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 寄存器寄存器xPSR, 混合的程序状态寄存器提供程序运行的信息及ALU标志:应用PSR (APSR)中断PSR (IPSR)执行PSR (EPSR) N Z C VISR 编号保留保留保留T保留TN Z C VISR 编号APSRIPSREPSRxPSR第0位第8位第16位第24位第31位23ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 寄存器寄存器APSRN: 负标志如果ALU的结果是负数就置为1; Z: 零标
19、志如果ALU的结果是0就置为1;C: 进位标志如果无符号数发生了溢出就置为1;V: 溢出标志如果有符号数发生了溢出就置为1。IPSRISR 编号当前正在执行的中断服务程序的编号EPSRT: Thumb 状态因为Cortex-M0只支持Thumb状态,所以始终为124ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 RegistersPRIMASK: 中断屏蔽特殊寄存器1位的PRIMASK置该位为1就阻塞了不可屏蔽中断(NMI)和硬失效异常以外的所有中断。CONTROL: 特殊寄存器1位的堆栈定义置为1:使用进程堆栈指针(PSP);清为0
20、:使用主堆栈指针(MSP)。保留保留PRIMASKPRIMASKCONTROLbit8bit16bit24bit31堆栈定义25ARM University ProgramCopyright ARM Ltd 2013ARM Cortex-M0 处理器内存映射处理器内存映射26ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 内存映射内存映射Cortex-M0处理器有4GB的内存地址空间这4GB的内存空间从架构上被定义成了几块区域每块区域有建议的用途;这样便于软件程序员在不同的芯片之间移植软件不过,尽管有默认的内存映射,内存的实际使用是可
21、以由用户灵活定义的,例外的是一些固定的内存地址,如内部私有外设总线。27ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 内存映射内存映射私有外设,如NVIC、SCS主要用作外部外设,如SD card主要用做外部存储器,如外部DDR、FLASH、LCD主要用做片上外设,如AHB、 APB外围部件主要用做数据存储器,如片上的SRAM、SDRAM主要用做程序代码,如片上FLASH保留外部器件外部RAM外围部件SRAM代码0 xFFFFFFFF0 xE0000000私有外设总线0 xDFFFFFFF0 xA00000000 x9FFFFFFF
22、0 x600000000 x5FFFFFFF0 x400000000 x3FFFFFFF0 x1FFFFFFF0 x200000000 x00000000512MB512MB512MB1GB1GB512MB0 xE00FFFFF0 xE0100000保留做其他用途ROM 表保留保留系统控制区(SCS)保留保留断点单元数据观察指针单元保留调试控制嵌套的向量中断控制器 (NVIC)保留SysTick 定时器保留系统控制块(SCB)28ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 内存映射内存映射代码区主要用于存储程序代码;也可以用来做数
23、据存储;片上的存储器,比如片上的FLASH。SRAM区主要用来存储数据,比如堆和堆栈;也可以用来存储程序代码;片上存储器,尽管名字可能叫做“SRAM”,实际的器件可能是SRAM、SDRAM或其他类型的存储器。外设区主要用做外设,比如先进高性能总线 (AHB) 或先进外设总线 (APB) 上的外围部件;片上外设。29ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 内存映射内存映射外部RAM 区主要用于保存大的数据块,或用作内存cache;片外存储器,比片上SRAM区慢。外部器件区主要用来映射外部器件;片外器件,如SD卡。内部私有外设总线
24、(PPB)在处理器中用于处理器的内部控制;在PPB中,有一块特殊的内存空间是定义做系统控制空间(System Control Space、SCS)的;嵌套的向量化中断控制器(NVIC)是SCS的一部分。30ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 内存映射的例子内存映射的例子AHB bus外部SRAM,FLASH外部LCDSD 卡Cortex-M0PPBSCSNVICDebug Ctrl片上FLASH(代码区)片上SRAM(SRAM区)外设区外部存储器接口(外部RAM 区)外部器件接口(外部器件区)定时器UARTGPIO芯片硅片
25、31ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 程序映像程序映像Cortex-M0里的程序映像包括向量表包括异常的起始地址(向量)和主堆栈指针(MSP)的值;C的启动代码;程序代码应用程序代码和数据;C的库代码C库函数的程序代码。0 x00000000初始的MSP值代码区启动代码和程序代码和C库代码向量表程序映像Reset(启动)向量NMI向量硬失效硬失效向量保留保留SVC向量保留保留PendSV向量SysTick向量中断向量0 x000000000 x000000040 x000000080 x0000000C0 x000000
26、2C0 x000000380 x000000400 x0000003C32ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 程序映像程序映像在启动后:首先读入初始MSP值;然后读入第一个启动向量;跳转到程序执行的初始地址(启动处理程序);依次执行程序指令。启动(重启)获取MSP的初值(读地址0 x00000000)获取启动向量(读地址0 x00000004)获取第一条指令(读启动向量所指出的地址)获取第二条指令(读接下去的地址)33ARM University ProgramCopyright ARM Ltd 2013Cortex-M0
27、 大小端大小端大小端指的是内存中字节存储的顺序小端(低位在前):一个字的数据中最低的字节保存在位0到位7大端(高位在前):一个字的数据中最低的字节保存在位24到31Cortex-M0既支持小端也支持大端不过,大小端只是硬件层面上的事情字节0字节1字节2字节3字节0字节1字节2字节3字节0字节1字节2字节30 x000000000 x000000040 x00000008地址7:015:823:1631:24字节0字节1字节2字节3字节0字节1字节2字节3字节0字节1字节2字节37:015:823:1631:24第1个字第2个字第3个字Word 1Word 2Word 3小端的小端的32位内存位
28、内存大端的大端的32位内存位内存34ARM University ProgramCopyright ARM Ltd 2013ARM Cortex-M0 处理器异常处理器异常35ARM University ProgramCopyright ARM Ltd 2013Cortex-M0 异常处理异常处理异常是一种事件,它导致程序流退出当前的程序线程,转而执行与这个事件相关的一段代码事件可以是内部的也可以是外部的外部的事件也叫做中断 (IRQ).线程线程模式模式异常异常模式模式内部或外部事件执行异常处理程序执行正常代码序列完成处理现场保护现场恢复36ARM University ProgramCop
29、yright ARM Ltd 2013Cortex-M0 异常处理异常处理异常处理程序一小段执行在异常模式的软件代码;如果一个中断请求(IRQ)导致了这个异常,那么也可以被叫做中断处理程序,或中断服务程序(ISR)。上下文切换上下文保存(现场保护):在进入异常模式之前,当前程序的上下文,比如寄存器当前的值要推入堆栈;上下文恢复(现场恢复):在处理程序完成后,之前保存的上下文要从堆栈中弹出到寄存器里去线程线程模式模式异常异常模式模式内部或外部事件执行异常处理程序执行正常代码序列完成处理现场保护现场恢复37ARM University ProgramCopyright ARM Ltd 2013Co
30、rtex-M0 异常处理异常处理异常优先级异常(或中断)一般要划分成几个层次或优先级;更高优先级的异常可以在较低优先级异常处理期间触发并得到服务;常被称作是嵌套的异常;异常可以由软件开启或禁止。 Cortex-M0 中断控制器支持多达32个IRQ输入,和一个不可屏蔽中断(NMI)输入;NMI和IRQ类似,但是不能被禁止,而且具有最高的优先级,在诸如工业控制或汽车这样的安全性很关键的系统中很有用。38ARM University ProgramCopyright ARM Ltd 2013ARMv7-M的向量表的向量表第一项是初始主SP其他所有的都是异常处理程序的地址最低位必须=1(因为是Thumb)这个表最多可以有496个外部中断有具体实现来决定表的大小最大可以2048个字节这个表可以被重定位使用Vector Table Offset(向量表偏移)寄存器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC 19790:2025 FR Information security,cybersecurity and privacy protection - Security requirements for cryptographic modules
- 【正版授权】 ISO 4211-1:2025 EN Furniture - Tests for surface finishes - Part 1: Assessment of resistance to cold liquids
- 【正版授权】 ISO 20579-2:2025 EN Surface chemical analysis - Sample handling,preparation and mounting - Part 2: Documenting and reporting the preparation and mounting of specimens for a
- 【正版授权】 IEC TS 62271-316:2024 EN High-voltage switchgear and controlgear - Part 316: Direct current by-pass switches and paralleling switches
- 【正版授权】 IEC 60071-1:2006 EN-D Insulation co-ordination - Part 1: Definitions,principles and rules
- 护理部副主任竞聘
- 思想政治教育前沿
- 控烟知识讲座2
- 管理体系审核首次会议
- 给绿植浇水课件
- 带状疱疹课件
- 高三数学二轮复习-解三角形课件
- 2024年人力资源社会保障部所属事业单位招聘考试真题
- 2024年山师附小招生简章
- 食堂7s管理标准
- DEEPSEEK了解及使用攻略高效使用技巧培训课件
- 2025年山西电力职业技术学院单招职业技能考试题库含答案
- 2024-2025学年人教版七下地理第一单元测验卷
- 玉盘二部合唱简谱
- 稻田画种植合同5篇
- 共价键+周测卷 高二下学期化学选择性必修2
评论
0/150
提交评论