CortexM3处理器体系结构课件_第1页
CortexM3处理器体系结构课件_第2页
CortexM3处理器体系结构课件_第3页
CortexM3处理器体系结构课件_第4页
CortexM3处理器体系结构课件_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Cortex-M3处理器体系结构Cortex-M3处理器体系结构概览Cortex-M3处理器内核Cortex-M3处理器指令集Thumb-2Cortex-M3嵌套向量中断控制器NVICCortex-M3存储器管理存储器保护单元MPU总线接口调试跟踪接口开发软件和RTOS概览Cortex-M3处理器内核Cortex-M3定位从右边的图可以分析出Cortex-M3处理器架构:ARMv7-M指令集:Thumb-2 ARM架构支持各种性能点上的实现。在许多细分市场中它都占有主要架构的地位。而其中Cortex-M

处理器,通过配置文件,可快速进行中断处理,适用于需要高度确定的行为和最少门数的成本、功耗敏感型设备。而Cortex-M3处理器作为其中的佼佼者,就不得不引起我们的关注。Cortex-M3定位从右边的图可以分析出Cortex-M3Cortex-M3现状NXP:LPC17000TI->LuminaryMicro:LM3SST:STM32Atmel:SAM3U此四大知名厂商采用Cortex-M3处理器的设计出来的芯片,主要在于片上存储器容量、集成外设、功能模块的区别。Cortex-M3现状NXP:LPC17000Cortex-M3内核方框图Cortex-M3处理器主要包括:处理器内核与处理器内核紧密结合的嵌套向量中断控制器(NVIC)以实现低延迟的中断处理存储器保护单元(MPU),可选部件MPU实现存储器保护总线接口调试接口Cortex-M3内核方框图Cortex-M3处理器主要包括Cortex-M3性能参数Cortex-M3处理器规范

以下引用的数字是使用通用TSMC工艺技术和ARM物理IP

标准单元库和RAM

的合成核心的说明。Dhrystone:整数运算能力在1MHz频率下,每秒执行一百二十五万条指令的整数运算能力。Cortex-M3性能参数Cortex-M3处理器规范Cortex-M3处理器指令集Thumb-2ARMThumb-2技术的代码密度和代码性能引自:ARM公司RichardPhelan撰写的《如何使用Thumb-2改善代码密度和性能》Cortex-M3处理器指令集Thumb-2ARMThumCortex-M3处理器指令集Thumb-2Thumb-2技术可以带来很多好处:可以实现ARM指令的所有功能。增加了12条新指令,可以改进代码性能和代码密度之间的平衡。代码性能达到了纯ARM代码性能的98%。相对ARM代码,Thumb-2代码的大小仅有其74%代码密度比现有的Thumb指令集更高。代码大小平均降低5%。代码速度平均提高2-3%。注:Cortex-M3不支持ARM指令集。Cortex-M3处理器指令集Thumb-2Thumb-2技Cortex-M技术之CMSISARM

Cortex微控制器软件接口标准(CMSIS)

Cortex-M

处理器系列的与供应商无关的硬件抽象层。

使用CMSIS,可以为接口外设、实时操作系统和中间件实现一致且简单的软件接口,从而简化软件的重用、缩短新微控制器开发人员的学习过程,并缩短新产品的上市时间。注:此接口标准可以从各自芯片厂家那里得到。例如ST公司把CMSIS放在其开发的固件库内。CMSIS全称:CortexMicrocontrollerSoftwareInterfaceStandard以下是CMSIS结构图Cortex-M技术之CMSISARM

Cortex微控Cortex-M技术之CMSISCortex-M技术之CMSISCortex-M技术之NVICNVIC为处理器提供了卓越的中断处理能力。

Cortex-M处理器使用一个矢量表,其中包含要为特定中断处理程序执行的函数的地址。接受中断时,处理器会从该矢量表中提取地址。为了减少门数并增强系统灵活性,Cortex-M处理器使用一个基于堆栈的异常模型。出现异常时,系统会将关键通用寄存器推送到堆栈上。完成入栈和指令提取后,将执行中断服务例程或故障处理程序,然后自动还原寄存器以使中断的程序恢复正常执行。使用此方法,便无需编写汇编器包装器了(而这是对基于C语言的传统中断服务例程执行堆栈操作所必需的),从而使得应用程序的开发变得非常容易。NVIC支持中断嵌套(入栈),从而允许通过运用较高的优先级来较早地为某个中断提供服务。Cortex-M技术之NVICNVIC为处理器提供了卓越Cortex-M技术之NVIC在硬件中完成对中断的响应Cortex-M系列处理器的中断响应是从发出中断信号到执行中断服务例程的周期数。它包括:

检测中断背对背或迟到中断的最佳处理提取矢量地址将易损坏的寄存器入栈跳转到中断处理程序这些任务在硬件中执行,并且包含在为Cortex-M处理器报出的中断响应周期时间中。在其他许多体系结构中,这些任务必须在软件的中断处理程序中执行,从而引起延迟并使得过程十分复杂。Cortex-M技术之NVIC在硬件中完成对中断的响应Cortex-M技术之NVICNVIC中的尾链在背对背中断的情况下,传统系统会重复完整的状态保存和还原周期两次,从而导致更高的延迟。Cortex-M处理器通过在NVIC硬件中实现尾链技术简化了活动中断和挂起的中断之间的转换。处理器状态会在比软件实现时间更少的周期内自动保存在中断条目上并在中断退出时还原,从而显著提升低MHz系统的性能。

Cortex-M技术之NVICNVIC中的尾链Cortex-M技术之NVICNVIC对迟到的较高优先级中断的响应如果在为上一个中断执行堆栈推送期间较高优先级的中断迟到,NVIC会立即提取新的矢量地址来为挂起的中断提供服务,如上所示。Cortex-MNVIC对这些可能性提供具有确定性的响应并支持迟到和抢占。Cortex-M技术之NVICNVIC对迟到的较高优先级Cortex-M技术之NVICNVIC进行的堆栈弹出抢占同样,如果异常到达,NVIC将放弃堆栈弹出并立即为新的中断提供服务,如上所示。通过抢占并切换到第二个中断而不完成状态还原和保存,NVIC以具有确定性的方式实现了缩短延迟。Cortex-M技术之NVICNVIC进行的堆栈弹出抢占Cortex-M3编程模式工作模式:线程模式——在复位时处理器进入线程模式,异常返回时也会进入该模式。处理模式——出现异常时处理器进入处理模式。工作状态:Thumb状态——是16位和32位半字对齐的thumb和thumb-2指令的正常执行状态。调试状态——处理器停机调试时进入该状态。特权与非特权访问:代码可以是特权执行或非特权执行。非特权执行时对有些资源的访问受到限制或不允许访问。特权执行可以访问所有资源。处理模式始终是特权访问,线程模式可以是特权或非特权访问。

Cortex-M3编程模式工作模式:Cortex-M3编程模式

主堆栈和进程堆栈线程模式使用主堆栈还是进程堆栈取决于CONTROL位[1]的值。该位可使用MSR或MRS来访问,也可以在退出ISR时使用适当的EXC_RETURN的值来设置。Cortex-M3处理器17个寄存器13个通用寄存器,r0~r12分组的堆栈指针r13,SP_process和SP_main链接寄存器,r14,用于异常返回和接受来自PC的返回地址。程序计数器,r15,由于该寄存器的位0始终为0,所以该指令始终与字或半字边界对齐。1个程序状态寄存器,xPSR,访问通过MRS和MSR指令。

Cortex-M3编程模式主堆栈和进程堆栈Cortex-M3编程模式寄存器集Cortex-M3编程模式寄存器集Cortex-M3编程模式支持数据类型:32位,16位,8位。存储器格式:Coretx-M3处理器能够以小端格式和大端格式访问存储器的数据字,而访问代码始终使用小端模式。小端格式中,一个字中最低地址的字节位为字节的最低有效字节。最高地址的字节为最高有效字节。在大端格式中,一个字中最低地址的字节为该字的最高有效字节,而最高地址的字节为最低有效字节。

Cortex-M3编程模式支持数据类型:32位,16位,8位Cortex-M3存储器映射固定的存储器映射,下图为其映射结构。Cortex-M3存储器映射固定的存储器映射,下图为其映射结Cortex-M3存储器映射存储器接口存储器映射接口Code取指令在ICode,数据访问在Dcode。SRAM取指令和数据访问都在Systembus。Peripheral同上ExternalRAM同上ExternalDevice同上Periph_bitband数据访问别名,指令访问非别名。SRAM_bitband同上PrivatePeripheralBus该存储区域从不执行。不能通过MPU修改System厂商系统外设的系统部分,同样为不能执行。Cortex-M3存储器映射存储器接口存储器映射接口CodeCortex-M3存储器映射Bit-banding机制

别名区的一个字映射为Bit-banding的一个位。即更改别名区里的某个字节内容,相当于更改了Bit-banding区的某一位内容。处理器的存储器映射包括来两个Bit-banding区域,分别位于SRAM和外设存储区域中的最低1MB。

别名区的字对应Bit-banding区的对应为公式如下: bit_word_offset=(byte_offset*32)+(bit_number*4) bit_word_addr=bit_band_base+bit_word_offset

例如:地址0x23FFFFE0的别名字映射为0x200FFFFF的Bit-banding字节的位0; 0x23FFFFE0=0x22000000+(0xFFFFF*32)+0*4

下图为Bit-banding映射图

Cortex-M3存储器映射Bit-banding机制Cortex-M3存储器映射Cortex-M3存储器映射Cortex-M3异常处理Cortex-M3处理器和嵌套向量中断控制器(NVIC)对所有异常按优先级进行排序并处理。所有异常都在处理模式中操作。出现异常时,自动将处理器状态保存到堆栈中,并在中断服务程序(ISR)结束时自动从堆栈中恢复。在状态保存的同时取出向量快速地进入中断。处理器支持末尾连锁(tail-chaining)中断技术,它能够在没有多余的状态保存和恢复指令的情况下执行背对背中断(back-to-backinterrupt)。以下特性可使能高效的低延迟异常处理。特性:自动的状态保存和恢复。处理器在进入ISR之前将状态寄存器压栈,退出ISR之后将它们出栈,实现上述操作时不需要多余的指令。优先级屏蔽支持临界区Cortex-M3异常处理Cortex-M3处理器和嵌套向Cortex-M3异常处理自动读取代码存储器或SRAM中包含ISR地址的向量表入口。该操作与状态保存同时执行。支持末尾连锁(tail-chaining),在末尾连锁(tail-chaining)中,处理器在两个ISR之间没有对寄存器进行出栈和压栈操作的情况下处理背对背中断。中断优先级可动态重新设置。Cortex-M3与NVIC之间采用紧耦合接口,通过该接口可以及早地对中断和高优先级的迟来中断进行处理。中断数目可配置为1~240。中断优先级的数目可配置为1~8位(1~256级)。处理模式和线程模式具有独立的堆栈和特权等级。使用C/C++标准的调用规范:ARM架构的过程调用标准(PCSAA)执行ISR控制传输。Cortex-M3异常处理自动读取代码存储器或SRAM中Cortex-M3电源管理ARMv7-M架构支持为减少功耗而让Cortex-M3和系统时钟停止运行的系统睡眠模式。睡眠机制描述立即睡眠等待中断(WFI)或等待事件(WFE)指令请求立即睡眠模式。这些指令使得NVIC让处理器进入挂起其他异常事件的低功耗状态。退出时睡眠当系统控制寄存器的SLEEPONEXIT位置位时,一旦处理器退出最低优先级的ISR,它就进入低功耗状态。处理器无需将寄存器出栈,就可进入低功耗状态,并且无需让寄存器压栈就可以产生下一个异常事件。内核一直处于睡眠状态直至别的异常被挂起。这是一个自动的WFI模式。深度睡眠深度睡眠与立即睡眠和“退出时睡眠”机制共用。当系统控制寄存器的SLEEPDEEP位置位时,处理器指示系统可以进入深度睡眠。Cortex-M3电源管理ARMv7-M架构支持为减少功耗存储器保护单元MPUMPU是保护内存的一个组件。支持标准的ARMv7(PMSA)“ProtectedMemorySystemArchitecture”

模型。MPU为以下操作提供完整的支持:

保护区域

重叠保护区区域

访问权限

将存储器属性输出到系统MPU可以用于:强制执行特权原则分离程序强制执行访问原则存储器保护单元MPUMPU是保护内存的一个组件。支持标准的总线接口ICode存储器接口。从Code存储器空间(0x0000000–0x1FFFFFFF)的取指都在这条32位AHBLite总线上执行。DCode存储器接口。对Code存储器空间(0x0000000–0x1FFFFFFF)进行数据和调试访问都在这条32位AHBLite总线上执行。系统接口。对系统空间(0x20000000–0xDFFFFFFF)进行取指、数据和调试访问都在这条32位AHBLite总线上执行。外部专用外设总线(PPB)。对外部PPB空间(oxE0040000–0xE00FFFFF)进行数据和调试访问都在这条32位APB总线(AMBAv2.0)上执行。跟踪端口接口单元(TPIU)和厂商特定的外围器件都在这条总线上。总线接口ICode存储器接口。从Code存储器空间(0调试跟踪端口内核调试端口:通过内核调试寄存器进行访问,而调试访问这些寄存器时需通过AHB-AP端口。系统调试端口:其调试控制和数据访问也是通过AHB-AP端口实现。跟踪端口:跟踪端口的接口单元充当嵌入式跟踪宏单元(ETM)和仪表跟踪宏单元(ITM)与跟踪端口分析仪(TPA)之间的桥,跟踪数据从ETM和ITM流入TPIU,并从TPIU流向跟踪端口,ETM和ITM具有独立的ID,并在需要的地方将ID封包,然后由跟踪端口分析仪(TPA)捕获。调试跟踪端口内核调试端口:通过内核调试寄存器进行访问,而调试开发软件支持KeilRealViewMDK:支持ARM7、ARM9和最新的Cortex-M3核处理器,自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟,性能分析等功能,IAR:被业界评为最佳专用开发工具。其中IARJ-TraceforCortex-M3跟踪仿真器是世界上第一款支持ARMCortex-M3的高速跟踪仿真器。CooCox

:免费开源其中CoIDE为ARM

Cortex

M系列的开发者提供了一套完整的集成开发环境,包括工程管理、编辑、编译工具、调试器及一个开发者可以分享自己的代码和看法的交流平台。开发软件支持KeilRealViewMDK:支持ARM7RTOS支持RTX:知名的的Keil公司。uCOS-II:Micrium公司,用于教育和研究是免费的。FreeRTOS:GPL(GeneralPublicLicense)GNU通用公共许可证。RT-Thread:国内RT-Thread工作室开发的开源实时操作系统。VxWorks:WindRiverSystem(风河系统),比较高级,但是不开源。09年被因特尔收购。RTOS支持RTX:知名的的Keil公司。模式&级别模式&级别谢谢!谢谢!Cortex-M3处理器体系结构Cortex-M3处理器体系结构概览Cortex-M3处理器内核Cortex-M3处理器指令集Thumb-2Cortex-M3嵌套向量中断控制器NVICCortex-M3存储器管理存储器保护单元MPU总线接口调试跟踪接口开发软件和RTOS概览Cortex-M3处理器内核Cortex-M3定位从右边的图可以分析出Cortex-M3处理器架构:ARMv7-M指令集:Thumb-2 ARM架构支持各种性能点上的实现。在许多细分市场中它都占有主要架构的地位。而其中Cortex-M

处理器,通过配置文件,可快速进行中断处理,适用于需要高度确定的行为和最少门数的成本、功耗敏感型设备。而Cortex-M3处理器作为其中的佼佼者,就不得不引起我们的关注。Cortex-M3定位从右边的图可以分析出Cortex-M3Cortex-M3现状NXP:LPC17000TI->LuminaryMicro:LM3SST:STM32Atmel:SAM3U此四大知名厂商采用Cortex-M3处理器的设计出来的芯片,主要在于片上存储器容量、集成外设、功能模块的区别。Cortex-M3现状NXP:LPC17000Cortex-M3内核方框图Cortex-M3处理器主要包括:处理器内核与处理器内核紧密结合的嵌套向量中断控制器(NVIC)以实现低延迟的中断处理存储器保护单元(MPU),可选部件MPU实现存储器保护总线接口调试接口Cortex-M3内核方框图Cortex-M3处理器主要包括Cortex-M3性能参数Cortex-M3处理器规范

以下引用的数字是使用通用TSMC工艺技术和ARM物理IP

标准单元库和RAM

的合成核心的说明。Dhrystone:整数运算能力在1MHz频率下,每秒执行一百二十五万条指令的整数运算能力。Cortex-M3性能参数Cortex-M3处理器规范Cortex-M3处理器指令集Thumb-2ARMThumb-2技术的代码密度和代码性能引自:ARM公司RichardPhelan撰写的《如何使用Thumb-2改善代码密度和性能》Cortex-M3处理器指令集Thumb-2ARMThumCortex-M3处理器指令集Thumb-2Thumb-2技术可以带来很多好处:可以实现ARM指令的所有功能。增加了12条新指令,可以改进代码性能和代码密度之间的平衡。代码性能达到了纯ARM代码性能的98%。相对ARM代码,Thumb-2代码的大小仅有其74%代码密度比现有的Thumb指令集更高。代码大小平均降低5%。代码速度平均提高2-3%。注:Cortex-M3不支持ARM指令集。Cortex-M3处理器指令集Thumb-2Thumb-2技Cortex-M技术之CMSISARM

Cortex微控制器软件接口标准(CMSIS)

Cortex-M

处理器系列的与供应商无关的硬件抽象层。

使用CMSIS,可以为接口外设、实时操作系统和中间件实现一致且简单的软件接口,从而简化软件的重用、缩短新微控制器开发人员的学习过程,并缩短新产品的上市时间。注:此接口标准可以从各自芯片厂家那里得到。例如ST公司把CMSIS放在其开发的固件库内。CMSIS全称:CortexMicrocontrollerSoftwareInterfaceStandard以下是CMSIS结构图Cortex-M技术之CMSISARM

Cortex微控Cortex-M技术之CMSISCortex-M技术之CMSISCortex-M技术之NVICNVIC为处理器提供了卓越的中断处理能力。

Cortex-M处理器使用一个矢量表,其中包含要为特定中断处理程序执行的函数的地址。接受中断时,处理器会从该矢量表中提取地址。为了减少门数并增强系统灵活性,Cortex-M处理器使用一个基于堆栈的异常模型。出现异常时,系统会将关键通用寄存器推送到堆栈上。完成入栈和指令提取后,将执行中断服务例程或故障处理程序,然后自动还原寄存器以使中断的程序恢复正常执行。使用此方法,便无需编写汇编器包装器了(而这是对基于C语言的传统中断服务例程执行堆栈操作所必需的),从而使得应用程序的开发变得非常容易。NVIC支持中断嵌套(入栈),从而允许通过运用较高的优先级来较早地为某个中断提供服务。Cortex-M技术之NVICNVIC为处理器提供了卓越Cortex-M技术之NVIC在硬件中完成对中断的响应Cortex-M系列处理器的中断响应是从发出中断信号到执行中断服务例程的周期数。它包括:

检测中断背对背或迟到中断的最佳处理提取矢量地址将易损坏的寄存器入栈跳转到中断处理程序这些任务在硬件中执行,并且包含在为Cortex-M处理器报出的中断响应周期时间中。在其他许多体系结构中,这些任务必须在软件的中断处理程序中执行,从而引起延迟并使得过程十分复杂。Cortex-M技术之NVIC在硬件中完成对中断的响应Cortex-M技术之NVICNVIC中的尾链在背对背中断的情况下,传统系统会重复完整的状态保存和还原周期两次,从而导致更高的延迟。Cortex-M处理器通过在NVIC硬件中实现尾链技术简化了活动中断和挂起的中断之间的转换。处理器状态会在比软件实现时间更少的周期内自动保存在中断条目上并在中断退出时还原,从而显著提升低MHz系统的性能。

Cortex-M技术之NVICNVIC中的尾链Cortex-M技术之NVICNVIC对迟到的较高优先级中断的响应如果在为上一个中断执行堆栈推送期间较高优先级的中断迟到,NVIC会立即提取新的矢量地址来为挂起的中断提供服务,如上所示。Cortex-MNVIC对这些可能性提供具有确定性的响应并支持迟到和抢占。Cortex-M技术之NVICNVIC对迟到的较高优先级Cortex-M技术之NVICNVIC进行的堆栈弹出抢占同样,如果异常到达,NVIC将放弃堆栈弹出并立即为新的中断提供服务,如上所示。通过抢占并切换到第二个中断而不完成状态还原和保存,NVIC以具有确定性的方式实现了缩短延迟。Cortex-M技术之NVICNVIC进行的堆栈弹出抢占Cortex-M3编程模式工作模式:线程模式——在复位时处理器进入线程模式,异常返回时也会进入该模式。处理模式——出现异常时处理器进入处理模式。工作状态:Thumb状态——是16位和32位半字对齐的thumb和thumb-2指令的正常执行状态。调试状态——处理器停机调试时进入该状态。特权与非特权访问:代码可以是特权执行或非特权执行。非特权执行时对有些资源的访问受到限制或不允许访问。特权执行可以访问所有资源。处理模式始终是特权访问,线程模式可以是特权或非特权访问。

Cortex-M3编程模式工作模式:Cortex-M3编程模式

主堆栈和进程堆栈线程模式使用主堆栈还是进程堆栈取决于CONTROL位[1]的值。该位可使用MSR或MRS来访问,也可以在退出ISR时使用适当的EXC_RETURN的值来设置。Cortex-M3处理器17个寄存器13个通用寄存器,r0~r12分组的堆栈指针r13,SP_process和SP_main链接寄存器,r14,用于异常返回和接受来自PC的返回地址。程序计数器,r15,由于该寄存器的位0始终为0,所以该指令始终与字或半字边界对齐。1个程序状态寄存器,xPSR,访问通过MRS和MSR指令。

Cortex-M3编程模式主堆栈和进程堆栈Cortex-M3编程模式寄存器集Cortex-M3编程模式寄存器集Cortex-M3编程模式支持数据类型:32位,16位,8位。存储器格式:Coretx-M3处理器能够以小端格式和大端格式访问存储器的数据字,而访问代码始终使用小端模式。小端格式中,一个字中最低地址的字节位为字节的最低有效字节。最高地址的字节为最高有效字节。在大端格式中,一个字中最低地址的字节为该字的最高有效字节,而最高地址的字节为最低有效字节。

Cortex-M3编程模式支持数据类型:32位,16位,8位Cortex-M3存储器映射固定的存储器映射,下图为其映射结构。Cortex-M3存储器映射固定的存储器映射,下图为其映射结Cortex-M3存储器映射存储器接口存储器映射接口Code取指令在ICode,数据访问在Dcode。SRAM取指令和数据访问都在Systembus。Peripheral同上ExternalRAM同上ExternalDevice同上Periph_bitband数据访问别名,指令访问非别名。SRAM_bitband同上PrivatePeripheralBus该存储区域从不执行。不能通过MPU修改System厂商系统外设的系统部分,同样为不能执行。Cortex-M3存储器映射存储器接口存储器映射接口CodeCortex-M3存储器映射Bit-banding机制

别名区的一个字映射为Bit-banding的一个位。即更改别名区里的某个字节内容,相当于更改了Bit-banding区的某一位内容。处理器的存储器映射包括来两个Bit-banding区域,分别位于SRAM和外设存储区域中的最低1MB。

别名区的字对应Bit-banding区的对应为公式如下: bit_word_offset=(byte_offset*32)+(bit_number*4) bit_word_addr=bit_band_base+bit_word_offset

例如:地址0x23FFFFE0的别名字映射为0x200FFFFF的Bit-banding字节的位0; 0x23FFFFE0=0x22000000+(0xFFFFF*32)+0*4

下图为Bit-banding映射图

Cortex-M3存储器映射Bit-banding机制Cortex-M3存储器映射Cortex-M3存储器映射Cortex-M3异常处理Cortex-M3处理器和嵌套向量中断控制器(NVIC)对所有异常按优先级进行排序并处理。所有异常都在处理模式中操作。出现异常时,自动将处理器状态保存到堆栈中,并在中断服务程序(ISR)结束时自动从堆栈中恢复。在状态保存的同时取出向量快速地进入中断。处理器支持末尾连锁(tail-chaining)中断技术,它能够在没有多余的状态保存和恢复指令的情况下执行背对背中断(back-to-backinterrupt)。以下特性可使能高效的低延迟异常处理。特性:自动的状态保存和恢复。处理器在进入ISR之前将状态寄存器压栈,退出ISR之后将它们出栈,实现上述操作时不需要多余的指令。优先级屏蔽支持临界区Cortex-M3异常处理Cortex-M3处理器和嵌套向Cortex-M3异常处理自动读取代码存储器或SRAM中包含ISR地址的向量表入口。该操作与状态保存同时执行。支持末尾连锁(tail-chaining),在末尾连锁(tail-chaining)中,处理器在两个ISR之间没有对寄存器进行出栈和压栈操作的情况下处理背对背中断。中断优先级可动态重新设置。Cortex-M3与NVIC之间采用紧耦合接口,通过该接口可以及早地对中断和高优先级的迟来中断进行处理。中断数目可配置为1~240。中断优先级的数目可配置为1~8位(1~256级)。处理模式和线程模式具有独立的堆栈和特权等级。使用C/C++标准的调用规范:ARM架构的过程调用标准(PCSAA)执行ISR控制传输。Cortex-M3异常处理自动读取代码存储器或SRAM中Cortex-M3电源管理ARMv7-M架构支持为减少功耗而让Cortex-M3和系统时钟停止运行的系统睡眠模式。睡眠机制描述立即睡眠等待中断(WFI)或等待事件(WFE)指令请求立即睡眠模式。这些指令使得NVIC让处理器进入挂起其他异常事件的低功耗状态。退出时睡眠当系统控制寄存器的SLEEPONEXIT位置位时,一旦处理器退出最低优先级的ISR,它就进入低功耗状态。处理器无需将寄存器出栈,就可进入低功耗状态,并且无需让寄存器压栈就可以产生下一个异常事件。内核一直处于睡眠状态直至别的异常被挂起。这是一个自动的WFI模式。深度睡眠深度睡眠与立即睡眠和“退出时睡眠”机制共用。当系统控制寄存器的SLEEPDEEP位置位时,处理器指示系统可以进入深度睡眠。Cortex-M3电源管理ARMv7-M架构支持为减少功耗存储器保护单元MPUMPU是保护内存的一个组件。支持标准的ARMv7(PMSA)“ProtectedMemorySystemArchitecture”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论