(9.2)--2 Cortex M3体系结构单片机原理与应用.ppt

上传人:奉*** 文档编号:96451440 上传时间:2023-11-29 格式:PPT 页数:65 大小:1.78MB
返回 下载 相关 举报
(9.2)--2 Cortex M3体系结构单片机原理与应用.ppt_第1页
第1页 / 共65页
(9.2)--2 Cortex M3体系结构单片机原理与应用.ppt_第2页
第2页 / 共65页
点击查看更多>>
资源描述

《(9.2)--2 Cortex M3体系结构单片机原理与应用.ppt》由会员分享,可在线阅读,更多相关《(9.2)--2 Cortex M3体系结构单片机原理与应用.ppt(65页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第2章章Cortex-M3体系结构体系结构Cortex-M3Systemstructure 第第2章章Cotex-M3体系结构体系结构主要内容主要内容1CM3微处理器核结构微处理器核结构2处理器的工作模式和状态处理器的工作模式和状态3寄存器、总线接口寄存器、总线接口4存储器的组织与映射存储器的组织与映射5指令集、流水线、异常和中断指令集、流水线、异常和中断6存储器保护单元存储器保护单元7STM32微控制器概述微控制器概述2.1CM3微处理器核结构微处理器核结构主要主要CM3微处理器结构微处理器结构CM3微处理器核结构微处理器核结构CM3微处理器特点微处理器特点2.1.1CM3内核微控制器结构

2、内核微控制器结构CM3核核调试模块调试模块外设外设存储器存储器时钟和复位时钟和复位I/O内部总线内部总线CM3CPU2.1.2CM3微处理器结构微处理器结构CM3内核内核2.1.3CM3微处理器内核结构微处理器内核结构控制控制逻逻辑辑32位位ALU乘法器乘法器除法器除法器NVIC接口接口总线接口总线接口跟踪调试接口跟踪调试接口Thunb解解码码器器Thunb-2解解码码器器运运算算器器2.1.4CM3微处理器的特点微处理器的特点功耗低功耗低具有门数目少具有门数目少(价格低)(价格低)调试成本低调试成本低(多种先进的调试手段)(多种先进的调试手段)中断延迟短中断延迟短中断响应快速且支持多级中断嵌

3、套中断响应快速且支持多级中断嵌套处理器采用先进的处理器采用先进的ARMv7-M架构架构可裁剪的存储器保护单元(可裁剪的存储器保护单元(MPU)ARMv7-M:Thumb-2ISA子集,包含所有基本子集,包含所有基本的的16位和位和32位位Thumb-2指令指令。只有只有SP是分组的是分组的,寄存器集比,寄存器集比ARM7简单简单。硬件除法指令,硬件除法指令,SDIV和和UDIV(Thumb-2指令)指令)处理模式(处理模式(handlermode)和线程模式()和线程模式(threadmode)Thumb状态和调试状态状态和调试状态可中断可中断-可继续的可继续的LDM/STM、PUSH/POP

4、指令,指令,实现低中断延迟。实现低中断延迟。中断时自动保存和恢复处理器状态中断时自动保存和恢复处理器状态支持支持8位、位、16位和位和32位等位等非对齐访问。非对齐访问。2.1.4CM3微处理器的特点微处理器的特点-指令方面指令方面思考:定义?外部中断可配置为外部中断可配置为1240个个优先级位可配置为优先级位可配置为18位位中断优先级可动态地重新配置。中断优先级可动态地重新配置。优先级分组,分为占先中断等级和非占先优先级分组,分为占先中断等级和非占先中断等级。中断等级。支持末尾连锁(支持末尾连锁(tail-chaining)和迟来)和迟来(latearrival)中断,减少了进出栈时间。)中

5、断,减少了进出栈时间。处理器状态在进入中断时自动保存,中断处理器状态在进入中断时自动保存,中断退出时自动恢复,不需要多余的指令。退出时自动恢复,不需要多余的指令。2.1.4CM3微处理器的特点微处理器的特点-中断方面中断方面8个存储器区。个存储器区。子子区区禁禁止止功功能能(SRD),实实现现对对存存储储器器区区的的有效使用。有效使用。可可使使能能背背景景区区,执执行行默默认认的的存存储储器器映映射射属属性。性。MPU(存储器保护单元)可裁剪(存储器保护单元)可裁剪2.1.4CM3微处理器的特点微处理器的特点-存储器保护方面存储器保护方面AHB标准的标准的ICode、DCode和系统总线接口和

6、系统总线接口APB专用外设总线(专用外设总线(PPB)接口)接口Bitband支持,支持,bit-band的原子写和读访问。的原子写和读访问。存储器访问对齐存储器访问对齐写缓冲区,用于缓冲写数据。写缓冲区,用于缓冲写数据。2.1.4CM3微处理器的特点微处理器的特点-总线方面总线方面当当内内核核正正在在运运行行、被被中中止止、或或处处于于复复位位状状态态时时,能能对对系系统统中中包包括括Cortex-M3寄寄存存器器组组在在内内的的所所有有存存储器和寄存器进行调试访问储器和寄存器进行调试访问。两两 种种 调调 试试 端端 口口:2线线 串串 行行(SW-DP)口口 或或JTAG(JTAG-DP

7、)口。)口。Flash地地址址重重载载和和断断点点单单元元(FPB),实实现现断断点点和和代代码码修补。修补。数据观察点(数据观察点(DWT)程序指令跟踪宏单元程序指令跟踪宏单元(ITM),支持支持printf类型的调试类型的调试可选的嵌入式跟踪宏单元可选的嵌入式跟踪宏单元(ETM),实现指令跟踪。实现指令跟踪。跟踪端口单元跟踪端口单元(TPIU),连接跟踪端口分析仪。连接跟踪端口分析仪。2.1.4CM3微处理器的特点微处理器的特点-调试方面调试方面ARM7TDMICortex-M3架构架构ARMv4T(冯冯.若依曼若依曼)ARMv7-M(哈佛哈佛)ISA支持支持Thumb/ARMThumb/

8、Thumb-2流水线流水线3级级3级级+分支预测分支预测中断中断FIQ/IRQ240个物理中断个物理中断中断延时中断延时2442个时钟周期个时钟周期12个时钟个时钟(末尾连锁仅末尾连锁仅6个个)休眠保护休眠保护无无内置内置存储器保护存储器保护无无8段存储器保护单元段存储器保护单元硬件除法硬件除法无无212个时钟周期个时钟周期运行速度运行速度0.95DMIPS/MHz1.25DMIPS/MHz功耗功耗0.28mW/MHz0.19mW/MHz面积面积0.62mm2(仅内核仅内核)0.86mm2(内核内核+外设外设)2.1.4CM3微处理器的特点微处理器的特点-与与ARM7TDMI比较比较思考:何为

9、分支预测?思考:何为DMIPS/MHz?ARM7TDMI的苦恼执行效率高代码密度低ARM指令执行效率低代码密度高Thumb指令鱼与熊掌不可兼得两者之间的切换相当的麻烦2.2CM3的工作模式及状态的工作模式及状态访问级别:访问级别:特权级和用户级特权级和用户级出于安全考虑,防止意外、恶意访问出于安全考虑,防止意外、恶意访问破坏重要数据。破坏重要数据。工作模式:工作模式:处理模式和线程模式处理模式和线程模式分别用于处理异常和普通程序分别用于处理异常和普通程序工作状态:工作状态:Thumb状态和调试状态状态和调试状态Thumb状态状态:16位和位和32位位“半字对齐半字对齐”的的Thumb和和Thu

10、mb-2指令的执行状态。指令的执行状态。调试状态调试状态:处理器停止并进行调试的:处理器停止并进行调试的状态。状态。特权(级)访问和用户(级)访问处理模式线程模式特权访问用户访问始终特权访问特权执行可以访问所有资源。非特权对有些资源的访问受到限制或不允许访问。如部分指令(设置FAULTMASK和PRIMASK的CPS指令)。对系统控制空间(SCS)的大部分寄存器的访问。特权访问和用户访问(非特权访问)的区别FAULTMASKPRIMASKSCS用户访问特权访问1.线程模式CM3处理器支持两种工作模式:线程模式和处理模式 2.处理模式u在复位时处理器进入线程模式u异常返回时处理器进入线程模式u在

11、线程模式下,所有代码可由特权级和用户级访问u出现异常时处理器进入处理模式u在处理模式中,所有代码只能由特权级访问CM3操作模式的转换操作模式的转换线程模式线程模式特权访问特权访问复位复位处理模式处理模式特权访问特权访问异常异常线程模式线程模式用户访问用户访问异常异常异异常常退退出出CONTROL0=1CONTROL0=0MSR指令置位指令置位CONTROL02.3 Cortex-M3的编程模式通过MSR指令修改CONTROL1进行堆栈切换线程模式主堆栈线程模式进程堆栈CONTROL1主堆栈进程堆栈10控制寄存器的第1位一般通过中断返回进行堆栈切换,MSR指令切换用的极少。2.4CM3的寄存器的

12、寄存器通用寄存器(通用寄存器(R0R7、R8R12)堆栈指针(堆栈指针(R13)链接寄存器(链接寄存器(R14)程序计数器(程序计数器(R15)程序状态寄存器(程序状态寄存器(APSR、IPSR、EPSR)异常中断寄存器(异常中断寄存器(PRIMASK、FAULTMASK、BASEPRI)控制寄存器(控制寄存器(CONTROL)32位通用寄存器R0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)XPSRr0r12,为13个通用寄存器 低寄存器低寄存器,r0-r7可以被指定通用寄存器的所有指令访问 高寄存器高寄存器,r8-r12可以被指定通用寄存器

13、的所有32位指令访问,不能被16位指令访问。SP_processSP_main分组的堆栈指针(SP)R0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)XPSRSP_mainSP_process处理模式处理模式线程模式线程模式可用可用MSP始终使用始终使用MSP也可用也可用PSP进程堆栈指针进程堆栈指针主堆栈指针主堆栈指针进程堆栈指针链接寄存器链接寄存器(LRLR)R0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)XPSR链接寄存器链接寄存器(LR)在执行分支(branch)和链接(BL)指令或带

14、有交换的分支和链接指令(BLX)时,LR用于保存PC的返回地址。主要用于保存子程序的 返回地址。LR也用于异常返回。PCPC和和XPSRXPSRR0R1R2R3R4R5R6R7R8R9R10R11R12R13(SP)R14(LR)R15(PC)XPSR程序计数器程序计数器(PC)程序计数器 总是指向正在取指的指令。程序状态寄存器程序状态寄存器(XPSR)用于指示程序的运行状态。特殊 用途程序状态寄存器寄存器名称功能编号APSR应用状态寄存器 0IAPSRAPSR和IPSR的组合1EAPSR APSR和EPSR的组合2XPSRAPSR、EPSR和IPSR的组合3IPSR中断状态寄存器 5EPSR

15、执行状态寄存器 6IEPSRIPSR和EPSR的组合7MSP主堆栈指针8PSP进程堆栈指针9PRIMASK中断屏蔽寄存器16BASEPRI可屏蔽等于和低于某个优先级的中断17BASEPRI_MAXBASEPRI允许设置的最大值18FAULTMASK错误屏蔽寄存器19CONTROL控制寄存器20APSR的位分配 负数或小于标志:1:结果为负数或小于0:结果为正数或大于 零标志:1:结果为00:结果为非0 溢出标志:1:溢出0:没有溢出进位/借位标志:1:进位或借位0:没有进位或借位饱和(sticky saturation)标志 应用状态寄存器应用状态寄存器(APSR)(APSR)31302928

16、27260NZCVQ保留保留中断状态寄存器中断状态寄存器(IPSR)(IPSR)IPSR为当前激活(被响应)的异常的ISR编号。IPSR的位分配 ISR NUMBER ISR NUMBER 基础级别基础级别 =0=0Reset =1Reset =1NMI =2NMI =2SVCall SVCall 11 11 .31980保保留留中断号中断号执行状态寄存器执行状态寄存器(EPSR)(EPSR)为什么需要执行状态寄存器为什么需要执行状态寄存器EPSREPSR?LDM LDM、STMSTM和和If-thenIf-then指令,为多周期指令,指令,为多周期指令,如果在执行以上多周期指令时发生异常,处

17、如果在执行以上多周期指令时发生异常,处理器会暂时停止以上指令的操作,进入异常,理器会暂时停止以上指令的操作,进入异常,这时需要保护现场。这时需要保护现场。LDM指令STEP1STEP2STEP3STEP4异常 异常程序EPSREPSR使用的是使用的是26:24和和15:10位位特殊功能寄存器特殊功能寄存器中断屏蔽寄存器(PRIMASK)相当于中断总开关,相当于中断总开关,为为1 1,所有中断被屏蔽;,所有中断被屏蔽;为为0 0,中断能正常响应,中断能正常响应。PRIMASK屏蔽所有中断响应中断10只有最低位有效只有最低位有效中断屏蔽寄存器中断屏蔽寄存器BASEPRI 可屏蔽等于和低于某个优先可

18、屏蔽等于和低于某个优先级的中断。级的中断。例如,把例如,把BASEPRIBASEPRI设置为设置为0X400X40(即(即2525),则),则2 2和和2 2以上优先级的中断被屏蔽,以上优先级的中断被屏蔽,只有只有0 0和和1 1优先级的中断不被优先级的中断不被屏蔽。屏蔽。注:注:BASEPRIBASEPRI与优先级分组有关,与优先级分组有关,stellarisstellaris系列处理器使用高系列处理器使用高3 3位来配置。位来配置。BASEPRI2优先级0优先级1优先级2优先级3优先级4.中断被屏蔽中断被屏蔽中断可响应中断可响应控制寄存器控制寄存器CONTROLCONTROLCONTROL

19、1:0 CONTROL1:0 由两个状态位组成:由两个状态位组成:CONTROL1CONTROL00主堆栈主堆栈特权级特权级1进程堆栈进程堆栈用户级用户级2.5CM3的总线接口的总线接口主要内容主要内容ARM的总线标准的总线标准CM3的总线结构的总线结构2.5.1ARM总线标准总线标准ARM微控制器使用的是微控制器使用的是AMBA总线体系结构总线体系结构AMBA(AdvancedMicrocontrollerBusArchitecture)是)是ARM公司公布的总线标准,先进公司公布的总线标准,先进的的AMBA规范定义了三种总线规范定义了三种总线:AHB总线总线(AdvancedHigh-pe

20、rformanceBus):):用于用于连接高性能系统模块连接高性能系统模块。它。它支持突发数据传输支持突发数据传输(不间断的连续传输不间断的连续传输)方式及单个数据传输方式,方式及单个数据传输方式,所有时序所有时序参考同一个时钟沿。参考同一个时钟沿。ASB总线总线(AdvancedSystemBus):):用于用于连接连接高性能系统模块高性能系统模块,它,它支持突发数据传输支持突发数据传输模式。模式。APB总线总线(AdvancePeripheralBus):):是一个是一个简单接口简单接口支持低性能的外围接口支持低性能的外围接口。第二讲到此2定义定义2.5.2CM3总线结构总线结构指令存储

21、区总线指令存储区总线(0 x00 x1fffffff,两条两条AHB)ICode:传送指令:传送指令DCode:传送数据、调试数据:传送数据、调试数据系统总线系统总线(AHB)访问存储区、片上设备、片外设备访问存储区、片上设备、片外设备访问区域:访问区域:0 x200000000 xdfffffff,0 xe01000000 xffffffff内部专用外设总线内部专用外设总线(0 xe0000000-0 xe003ffff,AHB)访问访问CM3内部组件内部组件:NVIC、DWT、FPB、MPU外部专用外设总线外部专用外设总线(0 xe0040000-0 xe00fffff,APB)访问访问C

22、M3外部组件外部组件:ETM、TPIU、ROM表表Cortex-M3模块的内部方框图模块的内部方框图2.8异常和中断异常和中断主要内容主要内容异常和中断的概念异常和中断的概念嵌套式向量中断控制器嵌套式向量中断控制器中断、异常过程中断、异常过程抢占抢占咬尾咬尾晚到晚到返回返回2.8.1异常和中断的概念异常和中断的概念异常概念:异常概念:在正常的程序执行过程中发生非在正常的程序执行过程中发生非正常情况正常情况(包括访问存储器(含取指)失败、遇(包括访问存储器(含取指)失败、遇到未定义指令、执行中断指令、数据溢出、调试到未定义指令、执行中断指令、数据溢出、调试程序、软复位等非正常情况)程序、软复位等

23、非正常情况)使使CPU停止正在执停止正在执行的程序,并转去执行相应的处理程序,这样的行的程序,并转去执行相应的处理程序,这样的情况叫作异常。情况叫作异常。中断:中断:是指各种设备请求是指各种设备请求CPU处理特定的操处理特定的操作,包括传输信息、处理故障等。作,包括传输信息、处理故障等。异常是与程序同步的,中断是异步的随机的。异常是与程序同步的,中断是异步的随机的。异常的处理方法与中断一样,后面不再区分。异常的处理方法与中断一样,后面不再区分。系统异常(中断)什么是异常?只要正常的程序被暂时中止,处理器就进只要正常的程序被暂时中止,处理器就进入异常模式。入异常模式。异常包括复位异常包括复位、系

24、统故障系统故障、外设中断等事件外设中断等事件 ARM Cortex-M3ARM Cortex-M3处理器的所有异常可以通处理器的所有异常可以通过过NVICNVIC(嵌套向量中断控制器)进行控制,(嵌套向量中断控制器)进行控制,通过通过NVICNVIC可以设置各个异常的优先等级并对可以设置各个异常的优先等级并对异常进行处理。异常进行处理。所有异常都在处理器模式(所有异常都在处理器模式(Handler Handler ModeMode)中处理。)中处理。系统异常(中断)Cortex-M3处理器有哪些异常?系统复位、系统复位、NMINMI(不可屏蔽中断)、硬(不可屏蔽中断)、硬件故障、存储器管理、总

25、线故障、使用故障、件故障、存储器管理、总线故障、使用故障、SVCallSVCall(软件中断)、调试监控和(软件中断)、调试监控和IRQIRQ中断中断等。等。IRQIRQ中断也分为中断也分为CortexM3CortexM3内自带的内自带的PendSVPendSV(系统服务请求)、(系统服务请求)、SysTick(SysTick(系统节系统节拍定时器拍定时器),和与芯片外设相关的外部中断,和与芯片外设相关的外部中断。异常类型表异常类型表异常异常类型类型位位置置优先优先级级描描述述-0-向量表的第一项,作为栈顶地址向量表的第一项,作为栈顶地址复位复位1-3(高高)在上电和热复位时调用。这是异步的。

26、在上电和热复位时调用。这是异步的。不可不可屏蔽屏蔽中断中断2-2不可屏蔽(不可屏蔽(NMI),也不会被复位之外的任何异常抢,也不会被复位之外的任何异常抢占。可由软件通过占。可由软件通过NVIC中断控制状态寄存器产生。中断控制状态寄存器产生。异步的。异步的。硬故障硬故障3-1当故障由于优先级或者是可配置的故障处理程序被禁当故障由于优先级或者是可配置的故障处理程序被禁能而无法激活时,都会以硬故障的方式激活。同步的。能而无法激活时,都会以硬故障的方式激活。同步的。存储器存储器管理管理4可调可调MPU不匹配,包括访问冲突和不匹配。是同步的。不匹配,包括访问冲突和不匹配。是同步的。总线总线故障故障5可调

27、可调预取指、存储器访问,即与地址预取指、存储器访问,即与地址/数据(代码)相关的数据(代码)相关的故障。精确的总线故障是同步的,不精确的总线故障故障。精确的总线故障是同步的,不精确的总线故障是异步的。是异步的。异常类型表异常类型表异常异常类型类型位置位置优先级优先级描述描述使用使用故障故障6可调可调使用故障,例如执行未定义的指令或试图进行非法的使用故障,例如执行未定义的指令或试图进行非法的状态转变。这是同步的。状态转变。这是同步的。-7-10-保留。保留。SVCall11可调可调使用使用SWI指令的系统服务调用。同步的。指令的系统服务调用。同步的。调试调试监控器监控器12可调可调调试监控器(当

28、没有暂停调试监控器(当没有暂停(Halt)时)。这是同步的,但时)。这是同步的,但仅在使能时有效。仅在使能时有效。-13-保留。保留。PendSV14可调可调系统服务的可挂起系统服务的可挂起SWI指令。指令。SysTick15可调可调系统节拍定时器中断。这是异步的。系统节拍定时器中断。这是异步的。外中断外中断16-255可调可调中断在中断在ARMCortex-M3内核之外发出且通过内核之外发出且通过NVIC返返回(区分优先级)。这些都是异步的。回(区分优先级)。这些都是异步的。Cortex-M3 异常有哪些特点?l自动的状态保存和恢复。处理器在进入自动的状态保存和恢复。处理器在进入ISRISR

29、之前将状态寄存器和部分之前将状态寄存器和部分寄存器自动压栈,退出寄存器自动压栈,退出ISRISR之后它们自动出栈,不需要多余的指令。之后它们自动出栈,不需要多余的指令。l自动读取代码存储器或自动读取代码存储器或SRAMSRAM中包含中包含ISRISR地址的向量表入口。该操作地址的向量表入口。该操作与状态保存同时执行。与状态保存同时执行。l支持末尾连锁,在末尾连锁中,处理器在两个支持末尾连锁,在末尾连锁中,处理器在两个ISRISR之间不需要对寄存之间不需要对寄存器进行出栈和压栈操作的情况下处理背对背中断。器进行出栈和压栈操作的情况下处理背对背中断。l中断优先级可动态重新设置。中断优先级可动态重新

30、设置。lCortex-M3Cortex-M3与与NVICNVIC之间采用紧耦合(之间采用紧耦合(closely-coupledclosely-coupled)接口,通过)接口,通过该接口可以及早地对中断和高优先级的迟来中断进行处理。该接口可以及早地对中断和高优先级的迟来中断进行处理。l中断数目可配置为中断数目可配置为1 1240240。l中断优先级的数目可配置为中断优先级的数目可配置为1 18 8位(位(1 1256256级。级。StellarisStellaris系列单片机系列单片机只支持只支持8 8级)。处理模式和线程模式具有独立的堆栈和特权等级。级)。处理模式和线程模式具有独立的堆栈和特

31、权等级。l使用使用C/C+C/C+标准的调用规范:标准的调用规范:ARMARM架构的过程调用标准(架构的过程调用标准(PCSAAPCSAA)执行执行ISRISR控制传输。控制传输。l优先级屏蔽支持临界区(关中断,使程序不被高优先级异常中断)。优先级屏蔽支持临界区(关中断,使程序不被高优先级异常中断)。异常基于优先级的动作异常基于优先级的动作-抢占抢占P54用户程序中断1 中断2优先级2 中断1中断2压栈压栈出栈出栈产生嵌套产生嵌套 在异常处理程序中,一个新的异常比当前的异常优先级更高,处理器打断当前的流程,响应优先级更高的异常,此时产生中断嵌套。异常基于优先级的动作-咬尾咬尾用户程序中断1 中

32、断2优先级2 优先级3 中断1中断2如果此时中断1 已经完成,不出栈也不压栈,直接跳至中断2程序压栈出栈中断1结束无压栈咬尾也叫末尾连锁咬尾也叫末尾连锁异常基于优先级的动作异常基于优先级的动作-晚到晚到用户程序中断1 中断2优先级3 优先级2 中断1中断2压栈出栈继续压栈迟来出栈中断1的入口地址返 回没有挂起的异常,处理器执行出栈操作,并返回到被压栈的ISR或线程模式。在响应ISR之后,处理器通过出栈操作自动将处理器状态恢复为进入ISR之前的状态。异常优先级 用户可设置的最高优先级为0号优先级,其仅次于复位,NMI以及硬件故障的第4优先级。注意注意:0号优先级也是所有可调整优先级的默认优先级。

33、如果你将两个或更多的中断指定为相同的优先级(例如优先级全为0),那么它们的硬件优先级(位置编号越高优先级越低)就决定了处理器激活这些中断的顺序(硬件优先级不能嵌套,只是在同时激活时优先响应)。例如,如果PendSV和SysTick的优先级都为0,那么PendSV的优先级更高。NVIC支持由软件指定的可配置的优先级(称为软件优先级)。通过对中断优先级寄存器的8位PRI_N区执行写操作,来将中断的优先级指定为0255,见中断优先级寄存器。硬件优先级随着中断号的增加而降低。0优先级最高,255优先级最低。指定软件优先级后,硬件优先级无效。注:软件优先级的设置对复位,NMI,和硬故障无效。它们的优先级

34、始终比外部中断要高。异常优先级复位复位 非屏蔽中断非屏蔽中断硬故障硬故障 存储器管理存储器管理 总线故障总线故障 使用故障使用故障 SVCall SVCall 调试监控器调试监控器 PendSV PendSV SysTick SysTick 外部中断外部中断 优先级由高到低优先级不可调整优先级可调整优先级分组NVIC支持优先级分组机制。可以使用中断和复位控制寄存器中的PRIGROUP区,将每个PRI_N中的值分为抢占优先级区和次优先级区。抢占优先级称为组优先级。如果有多个挂起异常共用相同的组优先级,则需使用次优先级区来决定同组中的异常的优先级,这就是同组内的次优先级。组优先级和次优先级的结合就

35、是通常所说的优先级。如果两个挂起异常具有相同的优先级,则挂起异常的编号越低优先级越高。这与优先级机制是一致的。优先级分组优先级分组中断优先级区(PRI_N7:0)76543210PRI_NPRI_N抢占区抢占区次优先区次优先区注意:注意:修改修改PRIGROUPPRIGROUP区区的值的值 可改可改变抢占区和次优先区的位数。变抢占区和次优先区的位数。中断和复位控中断和复位控制寄存器制寄存器异常进入步骤从向量表读从向量表读SPSP更新更新PCPC加载流水线加载流水线更新更新LRLR读向量表读向量表硬件压栈硬件压栈从向量表读从向量表读SPSP更新更新PCPC加载流水线加载流水线更新更新LRLR读向

36、量表读向量表硬件压栈硬件压栈利用向量表读出的位置更新PC。直到第一条指令开始执行时,才能处理迟来异常。从向量表指向的位置加载指令。它与寄存器压栈操作同时执行。LR设置为EXC_RETURN,以便从异常中退出。在复位时,将SP更新为向量表中第1个字的值。读存储器中的向量表,地址为向量表基址+(异常号*4)。中断函数入口。xPSRxPSR、PCPC、LR LR、R12R12、R3R3、R2R2、R1R1、R0 R0 压栈压栈注意:LR的值并非进入异常程序的地址注:以上步骤由硬件自动完成,注:以上步骤由硬件自动完成,仅需仅需1212个时钟周期个时钟周期硬件压栈过程硬件压栈过程当前的当前的SPSPR2

37、R1R3R12LRPCxPSRR0原来的原来的SPSP注:使用进程堆栈时,上下文保存在进程堆栈;使用主堆栈时,上下文保存在主堆栈中。压栈操作由硬件保存以上8个数据。异常退出步骤异常退出步骤注:以上步骤由硬件自动完成注:以上步骤由硬件自动完成出栈前的出栈前的SPSPR2R1R3R12LRPCxPSRR0出栈后的出栈后的SPSP异常退出步骤流程异常退出步骤流程返回线程模式返回线程模式用主堆栈用主堆栈出栈内容:出栈内容:PC,xPSR,PC,xPSR,r0,r1,r2,r3,r12,LRr0,r1,r2,r3,r12,LREXC_RETURN3EXC_RETURN3:00选择堆栈选择堆栈=0b100

38、1=0b1001返回线程模式返回线程模式用进程堆栈用进程堆栈=0b1101=0b1101开始返回开始返回咬尾方式咬尾方式进入另一异常进入另一异常有中断挂起?有中断挂起?有有寄存器出栈寄存器出栈无无2.9存储器保护单元存储器保护单元MPU 可保护可保护8个存储器区个存储器区每个保护区可分为每个保护区可分为8个大小相同的子区个大小相同的子区通通过过对对存存储储区区的的属属性性,设设置置为为只只读读,起起到到保护作用保护作用常常保保护护的的区区域域:操操作作系系统统内内核核、中中断断向向量量表、关键数据等表、关键数据等l MPU MPU功能可选功能可选2.10STM32F103微控制器资源微控制器资

39、源 主要内容主要内容STM32F103命名规则命名规则STM32F103内部资源内部资源STM32F103引脚信号引脚信号2.10.1STM32命名规则命名规则如如:STM32F103C8T6AxxSTM32:产品系列号,基于:产品系列号,基于ARM的的32位微控位微控制器制器F:产品类型,:产品类型,F通用型、通用型、L超低功耗型超低功耗型103:产品子系列,:产品子系列,100、101、102、105/107C:引脚数目,:引脚数目,T36、C48、R64、V100、Z1448:闪存容量:闪存容量,4、6、8、B、C、D、E:16-512KBT:封装类型:封装类型,H:BGA,T:LQFP

40、,U:VFQFPN6:温度范围,:温度范围,6:-4085,7:-401052.10.2STM32内部资源内部资源2.10.2STM32内部资源内部资源2.10.2STM32内部资源内部资源2.10.2STM32内部资源内部资源思考:何为LQFP封装?CM3的工作模式及状态的工作模式及状态工作模式:工作模式:处理模式和线程模式处理模式和线程模式分别用于处理异常和普通程序分别用于处理异常和普通程序工作状态:工作状态:Thumb状态和调试状态状态和调试状态Thumb状态状态:16位和位和32位位“半字对齐半字对齐”的的Thumb和和Thumb-2指令的执行状态。指令的执行状态。调试状态调试状态:处理器停止并进行调试的状:处理器停止并进行调试的状态。态。访问级别:访问级别:特权级和用户级特权级和用户级出于安全考虑,防止意外、恶意访问破出于安全考虑,防止意外、恶意访问破坏重要数据。坏重要数据。谢谢大家!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁