1、嵌入式系统设计嵌入式系统设计成都理工大学工程技术学院成都理工大学工程技术学院电子信息与计算机工程系电子信息与计算机工程系第第2章章 ARM Cortex-M体系结构体系结构2.1 ARM Cortex体系概述体系概述2.2 Cortex-M4内核基础内核基础2.3 存储器系统存储器系统2.4异常和中断异常和中断习题习题电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.1 ARM Cortex体系体系概概述述电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式
2、系统设计2.1 ARM Cortex体系体系概述概述ARM公司在经典公司在经典处理器处理器ARM11以后的产品都改用以后的产品都改用Cortex命名命名,主要分成,主要分成A、R和和M三类,旨在为各种不同的市场提供服务,三类,旨在为各种不同的市场提供服务,A系列处理器面向尖端的基于虚拟内存的操作系统和用户应用系列处理器面向尖端的基于虚拟内存的操作系统和用户应用;R系列处理器针对系列处理器针对实时系统实时系统;M系列处理器针对系列处理器针对微控制器微控制器。电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.1 ARM C
3、ortex体系体系概述概述指令的强弱是指令的强弱是CPU的重要指标,指令集是提高微处理器效率的最有效工具的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构来讲,指令集可分为复杂指令集(之一。从现阶段的主流体系结构来讲,指令集可分为复杂指令集(CISC)和精简指令集(和精简指令集(RISC)两部分。)两部分。2.1.1 CISC和和RISC1CISC机器机器CISC体系的指令特征为使用微代码,计算机性能的提高往往是通过增加体系的指令特征为使用微代码,计算机性能的提高往往是通过增加硬件的复杂性来获得的。硬件的复杂性来获得的。优点:指令丰富,功能强大,寻址方式灵活,能够有效
4、缩短新指令的微优点:指令丰富,功能强大,寻址方式灵活,能够有效缩短新指令的微代码设计时间,允许设计师实现代码设计时间,允许设计师实现CISC体系机器的向上相容。体系机器的向上相容。缺点:指令集及晶片的设计比上一代产品更复杂,不同的指令需要不同缺点:指令集及晶片的设计比上一代产品更复杂,不同的指令需要不同的时钟周期来完成,执行较慢的指令,将影响整台机器的执行效率。的时钟周期来完成,执行较慢的指令,将影响整台机器的执行效率。电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.1 ARM Cortex体系体系概述概述2.1.1
5、 CISC和和RISC2RISC机器机器RISC体系的指令特征:体系的指令特征:RISC包含简单、基本的指令,这些简单、基本的包含简单、基本的指令,这些简单、基本的指令可以组合成复杂指令。指令可以组合成复杂指令。优点:在使用相同的晶片技术和相同运行时钟下,优点:在使用相同的晶片技术和相同运行时钟下,RISC系统的运行速系统的运行速度是度是CISC系统的运行速度的系统的运行速度的24倍。由于倍。由于RISC处理器的指令集是精简处理器的指令集是精简的,它的存储管理单元、浮点单元等都能设计在同一块芯片上。的,它的存储管理单元、浮点单元等都能设计在同一块芯片上。缺点:多指令的操作使得程式开发者必须小心
6、地选用合适的编译器,而缺点:多指令的操作使得程式开发者必须小心地选用合适的编译器,而且编写的代码量会变得非常大。另外就是且编写的代码量会变得非常大。另外就是RISC处理器需要更快的存储处理器需要更快的存储器,并将其集成于处理器内部,如一级缓存(器,并将其集成于处理器内部,如一级缓存(L1Cache)。)。电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.1 ARM Cortex体系体系概述概述2.1.1 CISC和和RISC3RISC和和CISC比较比较项目项目RISCCISC指令系统简单、精简复杂、丰富指令数目一般小
7、于100条一般大于200条指令格式少多寻址方式少多指令字长基本等长不固定可访存指令主要是Load/Store不加限制各种指令使用频率相差不大相差很大各种指令执行时间大部分单周期相差很大优化编译实现较容易难表表2-1RISC和和CISC特点对比特点对比电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.1 ARM Cortex体系体系概述概述l 1985年,年,Roger Wilson和和Steve Furber设计了第一代设计了第一代32位、位、6MHz的处理器,做出了一台的处理器,做出了一台RISC指令集的计算机,简称
8、指令集的计算机,简称ARM(Acorn RISC Machine)ARM的由来。的由来。l 1990年,年,Acorn公司正式改组为公司正式改组为ARM计算机公司。计算机公司。l ARM公司生产的芯片,称为公司生产的芯片,称为ARM芯片。芯片。l ARM公司的业务一直是出售公司的业务一直是出售IP核。核。l ARM控股的控股的ARM处理器家庭的突出例子包括处理器家庭的突出例子包括ARM7,ARM9,ARM11 and Cortex-M,Cortex-A系列系列。2.1.2 ARM架构发展史架构发展史电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌
9、入式系统设计嵌入式系统设计ARM推出新款推出新款ARMv8架构。包括架构。包括Cortex-A53、Cortex-A57、Cortex-A73、Cortex-A75、Cortex-A76等等处理处理器器。ARM处理器处理器架构发展进程架构发展进程2.1 ARM系统概述系统概述2.1.2 ARM架构发展史架构发展史电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.1 ARM系统概述系统概述2.1.3 ARM体系结构类型体系结构类型ARM处理器分为处理器分为6类:类:Cortex-A系列处理器、系列处理器、Cortex-R
10、系列处系列处理器、理器、Cortex-M系列处理器、系列处理器、MachineLearning系列处理器系列处理器、SecurCore系列处理器、系列处理器、Neoverse系列处理器。系列处理器。项目项目Cortex-A系列处理器系列处理器Cortex-R系列处理器系列处理器Cortex-M系列处理器系列处理器设计特点高时钟频率,长流水线,高性能,对媒体处理支持(NEON指令集扩展)高时钟频率,较长的流水线,高确定性(中断延迟低)较短的流水线,超低功耗系统特性内存管理单元(MMU),c a c h e m e m o r y,A R M TrustZone安全扩展内存保护单元(MPU),ca
11、che memory,紧耦合内存(TCM)内存保护单元(MPU),嵌套向量中断控制器(NVIC),唤醒中断控制器(WIC),最新ARM TrustZone安全扩展目标市场移动计算、智能手机、高能效服务器、高端微处理器工业微控制器、汽车电子、硬盘控制器微控制器、深度嵌入系统(如传感器、MEMS、混合信号IC、IoT)表表2-2Cortex系列处理器的主要特征系列处理器的主要特征电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.1 ARM系统概述系统概述2.1.3 ARM体系结构类型体系结构类型图图2-1Cortex系列处
12、理器发展历程简图系列处理器发展历程简图电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.1 ARM系统概述系统概述2.1.4 Cortex-M系列处理器系列处理器表表2-2Cortex系列处理器的主要特征系列处理器的主要特征处理器处理器主要特性主要特性Cortex-M0处理器面向低成本,超低功耗的微控制器和深度嵌入应用的非常小的处理器(最小12K门电路)Cortex-M0+处理器针对小型嵌入式系统的最高能效的处理器,尺寸大小和编程模式与Cortex-M0处理器相近,但是具有扩展功能,如单周期I/O接口和向量表重定位功能
13、Cortex-M1处理器针对FPGA设计优化的小处理器,利用FPGA上的存储器块实现了紧耦合内存(TCM)和Cortex-M0处理器有相同的指令集Cortex-M3处理器针对低功耗微控制器设计的处理器,面积小但是性能强劲,支持可以处理器快速处理复杂任务的丰富指令集,具有硬件除法器和乘加指令(MAC)。并且,由于Cortex-M3处理器支持全面的调试和跟踪功能,软件开发者可以快速地开发他们的应用电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.1 ARM系统概述系统概述2.1.4 Cortex-M系列处理器系列处理器表表
14、2-2Cortex系列处理器的主要特征系列处理器的主要特征-续续处理器处理器主要特性主要特性Cortex-M4处理器不但具备Cortex-M3处理器的所有功能,而且扩展了面向数字信号处理(DSP)的指令集,如单指令多数据指令(SMID)和更快的单周期MAC操作。此外,它还有一个可选的支持IEEE754浮点标准的单精度浮点运算单元Cortex-M7处理器针对高端微控制器和数据处理密集的应用开发的高性能处理器,具备Cortex-M4处理器支持的所有指令功能,扩展支持双精度浮点运算,并且具备扩展的存储器功能,如Cache和紧耦合存储器(TCM)Cortex-M23处理器面向超低功耗、低成本应用设计的
15、小尺寸处理器,和Cortex-M0处理器相似,但是支持各种增强的指令集和系统层面的功能特性。Cortex-M23处理器还支持TrustZone安全扩展Cortex-M33处理器主流的处理器设计,与之前的Cortex-M3处理器和Cortex-M4处理器类似,但系统设计更灵活,能耗比更高效,性能更高。Cortex-M33处理器还支持TrustZone安全扩展电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.2 Cortex-M4内核基础内核基础电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工
16、大学工程技术学院嵌入式系统设计嵌入式系统设计2.2 Cortex-M4内核基础内核基础Cortex-M4处理器已设计具有适用于数字信号控制市场的多种高效处理器已设计具有适用于数字信号控制市场的多种高效信号处信号处理理功能。功能。Cortex-M4处理器采用扩展的单周期处理器采用扩展的单周期MAC指令、优化的指令、优化的SIMD指指令、饱和运算指令和一个可选的单精度浮点单元(令、饱和运算指令和一个可选的单精度浮点单元(FPU)。)。硬件体系结构硬件体系结构单周期单周期16位、位、32位位MAC用于指令提取的32位AHB-Lite接口用于数据和调试访问的32位AHB-Lite接口大范围的MAC32
17、位或64位累加选择指令在单个周期中执行单周期SIMD单周期双16位MAC4路并行8位加法或减法2路并行16位加法或减法指令在单个周期中执行2路并行16位MAC32位或64位累加选择指令在单个周期中执行浮点单元其他符合IEEE 754标准单精度浮点单元用于获得更高精度的融合MAC饱和数学桶形移位器 表表2-4Cortex-M4系列处理器数字信号处理功能系列处理器数字信号处理功能图图2-2Cortex-M4系列微控制器内部构造系列微控制器内部构造电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计基于基于Cortex-M3/M4
18、的微控制器芯片的微控制器芯片2.2 Cortex-M4内核基础内核基础电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.2 Cortex-M4内核基础内核基础1.32-bit微控制微控制器器:32-bit 寄存器寄存器组、存储器接口。组、存储器接口。2.哈佛架构:独立的指令总线和数据总线。哈佛架构:独立的指令总线和数据总线。3.存储空间:存储空间:4GB。4.寄存器:寄存器寄存器:寄存器(R0 到到 R15)和和 特殊功能寄存器。特殊功能寄存器。5.运行模式:运行模式:线程模式和处理模式线程模式和处理模式;特权级和用户
19、级。特权级和用户级。6.中断和异常:内置嵌套向量中断控制器;支持中断和异常:内置嵌套向量中断控制器;支持11 种系统异常外加种系统异常外加240 种外部种外部 IRQ。7.总线接口:若干总线接口允许总线接口:若干总线接口允许 Cortex-M4。8.MPU:一个可选的存储器保护单元允许对特权访问和用户程序访问:一个可选的存储器保护单元允许对特权访问和用户程序访问制定访问规则。制定访问规则。9.指令集:指令集:Thumb-2 指令集指令集;允许;允许 32位指令和位指令和16位指令被同时使用。位指令被同时使用。10.内部内部调试组件:调试组件:提供在线调试功能,例如:断点、单步、变量查看。提供在
20、线调试功能,例如:断点、单步、变量查看。电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.2.1 寄存器组寄存器组r0r12,为为13个通用目的寄存器个通用目的寄存器 低组寄存器低组寄存器,r0-r7可以被指定通可以被指定通用寄存器的所有指令访问用寄存器的所有指令访问 高组寄存器高组寄存器,r8-r12可以被指定可以被指定通用寄存器的所有通用寄存器的所有32位指令访问位指令访问,16位位Thumb指令不能访问它们,指令不能访问它们,32位的位的Thumb2指令则不受限制。指令则不受限制。2.2 Cortex-M4内核基
21、础内核基础1、R0-R12电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2、R13,两个堆栈指针,两个堆栈指针处理模式处理模式线程模式线程模式可用可用 MSP始终使用主堆栈指针始终使用主堆栈指针(MSP)也可用进程堆栈指针也可用进程堆栈指针(PSP)2.2 Cortex-M4内核基础内核基础电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计主堆栈和进程堆栈主堆栈和进程堆栈l Cortex-M3内核有两个堆栈指针:内核有两个堆栈指针:MSP和和PSP
22、l 结束复位后,所有代码都使用主堆栈结束复位后,所有代码都使用主堆栈 l 所有异常都使用主堆栈所有异常都使用主堆栈 l 异常处理程序(例如异常处理程序(例如SVC)可以通过改变其在退出时使用的)可以通过改变其在退出时使用的EXC_RETURN值来改变线程模式使用的堆栈。值来改变线程模式使用的堆栈。l 在线程模式中,使用在线程模式中,使用MSR指令对指令对CONTROL1执行写操作也可执行写操作也可以从主堆栈切换到进程堆栈。以从主堆栈切换到进程堆栈。l 堆栈指针堆栈指针r13是分组寄存器,在是分组寄存器,在SP_main和和SP_process之间切换之间切换。在任何时候,进程堆栈和主堆栈中只有
23、一个是可见的,由。在任何时候,进程堆栈和主堆栈中只有一个是可见的,由r13指示。指示。2.2 Cortex-M4内核基础内核基础2、R13,两个堆栈,两个堆栈指针指针电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计堆栈与微控制器模式的堆栈与微控制器模式的对应关系对应关系2.2 Cortex-M4内核基础内核基础通过通过MSR指令修改指令修改CONTROL1进行堆栈切换进行堆栈切换CONTROL1主堆栈主堆栈进程堆栈进程堆栈10控制寄存器的第控制寄存器的第1 1位位一般通过中断返回进行堆栈切换,一般通过中断返回进行堆栈切换
24、,MSRMSR指令切指令切换用的极少。换用的极少。2、R13,两个堆栈,两个堆栈指针指针电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计CONTROL1=0:使用使用MSP线程模式线程模式handler模式模式线程模式线程模式(使用使用MSP)(使用使用MSP)(使用使用MSP)线程模式线程模式handler模式模式线程模式线程模式(使用使用PSP)(使用使用MSP)(使用使用PSP)CONTROL1=1:线程模式使用线程模式使用PSPHandler模式使用模式使用MSP2.2 Cortex-M4内核基础内核基础2、R1
25、3,两个堆栈,两个堆栈指针指针电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计int main().delay();SetLED1();void delay().BL delaydelay:.BX LR .0X20F00X20F4地址地址0X10F40X10F4执行执行BL指令,指令,LR的值同的值同时更新(时更新(0X20F4)2.2 Cortex-M4内核基础内核基础3、链接链接寄存器(寄存器(LR)C代码代码汇编代码汇编代码电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学
26、院嵌入式系统设计嵌入式系统设计程序计数器程序计数器(PC)程序计数器程序计数器 总是指向正在取指的指令总是指向正在取指的指令。该寄存器的位该寄存器的位0始终为始终为0,因此,指令始,因此,指令始终与字或半字边界对齐。终与字或半字边界对齐。2.2 Cortex-M4内核基础内核基础4、程序寄存器程序寄存器(PC)R15 是程序计数器。可以在汇编语言中是程序计数器。可以在汇编语言中通过通过R15或或PC访问。访问。电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.2 Cortex-M4内核基础内核基础2.2.2 堆栈操作堆
27、栈操作1栈的作用栈的作用(1)用于在正在执行的函数需要使用寄存器(寄存器组)进行数据处理时)用于在正在执行的函数需要使用寄存器(寄存器组)进行数据处理时,临时存储数据的初始值,这些数据在函数结束时可以被恢复出来,以免调,临时存储数据的初始值,这些数据在函数结束时可以被恢复出来,以免调用函数的程序丢失数据。用函数的程序丢失数据。(2)用于函数或子程序中的信息传递。)用于函数或子程序中的信息传递。(3)用于存储局部变量。)用于存储局部变量。(4)用于在中断等异常产生时保存处理器状态和寄存器数值。)用于在中断等异常产生时保存处理器状态和寄存器数值。满递减堆栈。满递减堆栈。满递增堆栈。满递增堆栈。空递
28、增堆栈。空递增堆栈。空递减堆栈。空递减堆栈。四种类型四种类型:电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.2 Cortex-M4内核基础内核基础默认:满递减堆栈默认:满递减堆栈2、入栈入栈3、出栈出栈2.2.2 堆栈操作堆栈操作电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计链接寄存器链接寄存器(LR)在执行分支在执行分支(branch)和链接和链接(BL)指令或带有交换的分支指令或带有交换的分支和链接指令和链接指令(BLX)时,时,LR用
29、用于保存于保存PC的返回地址。的返回地址。主要用于保存子程序的主要用于保存子程序的 返返回地址。回地址。LR也用于异常返回。也用于异常返回。2.2 Cortex-M4内核基础内核基础3、链接链接寄存器(寄存器(LR)电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.2.3 特殊功能特殊功能寄存器寄存器2.2 Cortex-M4内核基础内核基础在Cortex-M3/M4处理器中的特殊寄存器包括:1.程序状态寄存器(PSRs)2.中断屏蔽寄存器(PRIMASK,FAULTMASK,and BASEPRI)3.控制寄存器(C
30、ONTROL)电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计1 程序状态程序状态寄存器寄存器(PSRs)313029282726:252423:2019:1615:109 8 7 6 5 4:0 xPSRNZCVQICI/ITTICI/ITException No.313029282726:252423:2019:1615:10987654:0APSRNZCVQIPSRException No.EPSRICI/ITTICI/IT2.2 Cortex-M4内核基础内核基础程序状态寄存器可以分为三个状态寄存器:1.应用 P
31、SR(APSR)负、零、进/借、溢、饱和(用于饱和运算)2.中断 PSR(IPSR)3.执行 PSR(EPSR)ICI/IT:ICI指令/IT指令状态位;T总为1电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2 中断屏蔽中断屏蔽寄存器寄存器PRIMASK、FAULTMASK 和和 BASEPRI用来开放/禁用异常Cortex-M3/M4中断屏蔽寄存器中断屏蔽寄存器寄存器名描 述PRIMASK一个1-bit 寄存器。1:仅允许NMI 和硬件默认异常,所有其他的中断和异常将被屏蔽;0:开放中断FAULTMASK一个1-bi
32、t 寄存器。1:仅允许NMI,所有中断和默认异常处理包括硬件异常被忽略。BASEPRI一个9位寄存器。它定义了屏蔽优先级。当设置为某值时,所有大于或等于该值的中断被屏蔽(值越大,优先级越低)。全为0(默认值):不屏蔽任何中断。2.2 Cortex-M4内核基础内核基础电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计3 控制寄存器控制寄存器Cortex-M3/M4控制寄存器控制寄存器位功能CONTROL1 堆栈指针选择0=选择主堆栈指针MSP(复位后缺省值)1=选择进程堆栈指针PSP在线程或基础级(没有在响应异常),可以使
33、用PSP。在handler 模式下,只允许使用MSP,所以此时不得往该位写1。CONTROL0 0=特权级的线程模式1=用户级的线程模式handler 模式永远都是特权级的。2.2 Cortex-M4内核基础内核基础被用来定义特权级和堆栈指针的选择。这个寄存器有两位。特权级用户级主堆栈进程堆栈电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.3.4 操作模式操作模式两种模式和两种特权等级。操作模式决定控制器运行正常程序或运行异常处理程序。特权用户当运行一个异常(中断)程序处理者模式错误的用法当运行主应用程序线程模式线程
34、模式在在Cortex-M3/M4中的操作模式和权限级别中的操作模式和权限级别特权级别提供了一种机制来保障访问存储器的关键区域,同时还提供了特权级别提供了一种机制来保障访问存储器的关键区域,同时还提供了一个基本的安全模式。通过写一个基本的安全模式。通过写Control register0=1Control register0=1,软件在,软件在特权访问特权访问级别级别可以使程序转换到用户访问级别。可以使程序转换到用户访问级别。用户程序不能够通过写控制寄存器直接变回特权状态用户程序不能够通过写控制寄存器直接变回特权状态。它要经过一个异。它要经过一个异常处理程序设置常处理程序设置Control re
35、gister0=0Control register0=0使得处理器切换回特权访问级别使得处理器切换回特权访问级别。2.2 Cortex-M4内核基础内核基础特权级用户级线程模式处理器模式电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计工作模式和特权级别工作模式和特权级别处理器模式处理器模式线程模式线程模式特权级特权级用户级用户级始终特权级始终特权级工作模式工作模式用于区别普通用于区别普通应用程序应用程序的代码和异常服务的代码和异常服务例程的代码例程的代码(包括中包括中断服务例程的代码断服务例程的代码)特权级别特权级别可以
36、提供一种存储器访问的可以提供一种存储器访问的,使得普通的用户程序,使得普通的用户程序代码不能意外地,甚至是恶意地代码不能意外地,甚至是恶意地执行涉及到要害的操作。执行涉及到要害的操作。2.2 Cortex-M4内核基础内核基础2.3.4操作模式操作模式电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计l 特权执行可以访问所有资源。特权执行可以访问所有资源。l 非特权执行时对有些资源的访问受到限制或不允许访问。非特权执行时对有些资源的访问受到限制或不允许访问。特权访问和用户访问特权访问和用户访问(非特权访问非特权访问)的区别
37、的区别用户访问用户访问特权访问特权访问2.2 Cortex-M4内核基础内核基础1 特权级别特权级别电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计l 线程模式线程模式线程模式和处理线程模式和处理器器模式模式 l 处理器模式处理器模式u 在复位时控制器进入线程模式在复位时控制器进入线程模式u 异常返回时异常返回时控制控制器进入线程模式器进入线程模式u 特权和用户(非特权)代码能够在线程模式下运行特权和用户(非特权)代码能够在线程模式下运行u 出现异常时控制器进入处理出现异常时控制器进入处理器器模式模式u 在处理器模式中,
38、所有代码都是特权访问的在处理器模式中,所有代码都是特权访问的2 工作模式工作模式2.2 Cortex-M4内核基础内核基础电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计CONTROL0特权访问特权访问用户访问用户访问10控制寄存器的第控制寄存器的第0位位3 特权级和工作模式转换特权级和工作模式转换2.2 Cortex-M4内核基础内核基础工作模式状态转换工作模式状态转换特权模式下通过特权模式下通过MSR指指令修改令修改CONTROL0状态状态电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工
39、大学工程技术学院嵌入式系统设计嵌入式系统设计3 特权级和工作模式转换特权级和工作模式转换2.2 Cortex-M4内核基础内核基础电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计当CONTROL0=0 时,在异常处理的始末,只发生了工作模式的转换。线程模式线程模式handler模式模式线程模式线程模式(特权级特权级)(特权级特权级)(特权级特权级)线程模式线程模式handler模式模式线程模式线程模式(用户级用户级)(特权级特权级)(用户级用户级)若若CONTROL0=1CONTROL0=1(线程模式线程模式+用户级),
40、用户级),则在中断响应的始末,则在中断响应的始末,工作模式和特权等极都工作模式和特权等极都要发生变化要发生变化。2.2 Cortex-M4内核基础内核基础3 特权级和工作模式转换特权级和工作模式转换电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.3 存储器系统存储器系统电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2.3 存储器系统存储器系统Cortex-M4内核的存储器系统的主要特性如下内核的存储器系统的主要特性如下:(1)可寻址)可寻址4
41、GB线性地址物理空间。线性地址物理空间。(2)支持小端和大端的存储器系统。)支持小端和大端的存储器系统。Cortex-M4处理器可以选择使处理器可以选择使用小端或者大端的存储器系统。用小端或者大端的存储器系统。(3)位段访问。)位段访问。(4)写缓冲。对可缓冲存储器区域写操作需要花费几个周期时间,)写缓冲。对可缓冲存储器区域写操作需要花费几个周期时间,Cortex-M4处理器的写缓冲可以把写操作缓存起来,因此处理器可以处理器的写缓冲可以把写操作缓存起来,因此处理器可以继续执行下一条指令,从而提高了程序的执行速度。继续执行下一条指令,从而提高了程序的执行速度。(5)存储器保护单元()存储器保护单
42、元(MPU)。)。MPU定义了各存储器区域的访问权定义了各存储器区域的访问权限,且为可编程。限,且为可编程。Cortex-M4处理器中的处理器中的MPU支持支持8个可编程区域,个可编程区域,可在嵌入式操作系统中提高系统的健壮性。可在嵌入式操作系统中提高系统的健壮性。Cortex-M4处理器中的处理器中的MPU是可选的。多数应用不会用到是可选的。多数应用不会用到MPU,可以忽略。,可以忽略。(6)非对齐传输支持。)非对齐传输支持。ARMv7-M架构的所有处理器(包括架构的所有处理器(包括Cortex-M4处理器)支持非对齐传输。处理器)支持非对齐传输。电子信息与计算机工程系电子信息与计算机工程系
43、 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计2 存储器格式存储器格式字节字节字节字节字节字节字节字节A+3A+2A+1A存储器存储器半字半字半字半字字字Cortex-M4处理器支持以下数处理器支持以下数据类型:据类型:32位字、位字、16位半字、位半字、8位字节。位字节。2.3 存储器系统存储器系统2.3.1数据类型数据类型存储器介质存储器介质:RAM:SRAM和和DRAMROM:ROM、PROM、EPROM、EEPROMFLASH:NOR FLASH、NAND FLASH电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技
44、术学院嵌入式系统设计嵌入式系统设计2 存储器格式存储器格式字节字节字节字节字节字节字节字节A+3A+2A+1A存储器存储器半字半字半字半字字字存储器介质存储器介质RAM SRAM和和DRAMROM ROM、PROM、EPROM、EEPROMFLASH NOR FLASH、NAND FLASH2.3 存储器系统存储器系统电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计小端存储小端存储A+3A+2A+1A存储器存储器0 x120 x340 x560 x78A+3A+2A+1A存储器存储器0 x780 x560 x340 x1
45、22.3 存储器系统存储器系统大端存储大端存储0 x12345678存存储储器器地地址址存存储储器器地地址址2.3.2存储形式存储形式电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计Cortex-M4 Cortex-M4 处理器处理器有一个固定的存储有一个固定的存储映射。这一点极大映射。这一点极大地方便了软件在各地方便了软件在各种种M4 M4 微控制器间的微控制器间的移植。移植。例:各款例:各款M4M4微控制微控制器的器的NVIC NVIC 和和MPU MPU 都在相同的位置布都在相同的位置布设寄存器,使得它设寄存器,使
46、得它们变得通用。们变得通用。2.3.3 存储器映射存储器映射2.3 存储器系统存储器系统Block0Block1Block2Block3-4Block5-6Block7电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计lCortex-M4支持位带操作,可以使用普通的加载支持位带操作,可以使用普通的加载/存储指令来对单一的比特进行存储指令来对单一的比特进行读写。读写。l在在Cortex-M4中,有两个区中实现了位带:中,有两个区中实现了位带:(1)SRAM区的最低区的最低1MB范围(范围(0 x200000000 x2010
47、0000)。)。(2)片内外设区的最低)片内外设区的最低1MB范围(范围(0 x400000000 x40100000)。)。l这两个区中的地址除了可以像普通的这两个区中的地址除了可以像普通的RAM 一样使用外,它们还都有自己的一样使用外,它们还都有自己的“位带别名区位带别名区”,位带别名区把每个比特膨胀成一个,位带别名区把每个比特膨胀成一个32 位的字。位的字。(1)32MB SRAM位带别名区(位带别名区(0 x220000000 x23FFFFFF)。)。(2)32MB外设位带别名区(外设位带别名区(0 x420000000 x43FFFFFF)。)。l它们可以通过一个单独的被称为它们可
48、以通过一个单独的被称为bit-band alias的存储区域被访问。的存储区域被访问。2.3 存储器系统存储器系统2.3.4 位带区位带区电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计位通过位通过Bit-Band Alias访问访问Bit-Band Region 2.3 存储器系统存储器系统位带位带别名别名区区SRAM位带区位带区电子信息与计算机工程系电子信息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计位位带别名区中的字与带别名区中的字与位位带带区区的位映射公式的位映射公
49、式bit_word_addr=bit_band_base+(byte_offset x 32)+bit_number 42.3 存储器系统存储器系统例如:例如:SRAM 位带区中地址为 0 x20000300 的字节中的位 2 被映射到别名区中的地址为:0 x22006008(=0 x22000000+(0 x300*32)+(2*4))的字。7 6 5 4 3 2 1 0位位带带区区别名区别名区一个存储单元的一个存储单元的8个位个位一个字(一个字(4个字节)个字节)0 x200003000 x22006008一个字(一个字(4个字节)个字节)0 x22006004电子信息与计算机工程系电子信
50、息与计算机工程系 成都理工大学工程技术学院成都理工大学工程技术学院嵌入式系统设计嵌入式系统设计SRAM 区域的区域的Bit-Band 地址重映射地址重映射外设外设存储区存储区 Bit-Band 地址重映射地址重映射 Bit-Band 区域 别名等效0 x20000000 bit00 x22000000 bit00 x20000000 bit10 x22000004 bit00 x20000000 bit20 x22000008 bit00 x20000000 bit310 x2200007C bit00 x20000004 bit00 x22000080 bit00 x20000004 bit
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。