赞
踩
“The Definitive Guide to ARM® Cortex®-M0 and Cortex-M0+ Processors, 2nd Edition - 2015”,《Cortex M0/M0+ 权威指南》:链接: https://pan.baidu.com/s/18CWsb-WeNS5hVl3a1jyw8A?pwd=rn1v
ARM® Cortex-M0 处理器和 Cortex-M0+ 处理器都是 32 位处理器。它们的寄存器组内部寄存器、数据路径和总线接口都是 32 位。它们都有一个主系统总线接口,因此被认为是冯·诺依曼总线架构。
Cortex-M0+ 处理器具有可选的单周期 I/O 接口,主要用于更快地访问外设 I/O 寄存器。因此,可以说 Cortex-M0+ 处理器具有有限的哈佛总线架构能力,因为指令访问和 I/O 寄存器访问可以同时进行,但重要的是要理解,尽管可以有两个总线接口,但内存空间是共享(统一)的,因此额外的总线接口并不会带来额外的可寻址内存空间。
Cortex-M0 和 Cortex-M0+ 处理器的主要特征如下:
处理器流水线:
指令集:
内存寻址:
中断处理:
操作系统(OS)支持:
低功耗支持:
调试:
Cortex-M处理器是可配置设计。它们以Verilog源代码文件的形式交付给芯片设计师,并附带一些芯片设计师可以选择的参数。这样,芯片设计师可以省略对其项目不必要的一些功能,以节省功耗并减小硅片面积。因此,您可以找到基于Cortex-M0和Cortex-M0+处理器的微控制器,支持不同数量的中断,Cortex-M0+处理器还有可选的MPU 支持。
在设计过程中(图2.1),处理器与系统其余部分集成,并使用芯片设计工具转换为由逻辑门和晶体管布局组成的设计。最大时钟频率等时序特性在这些阶段根据项目选择的半导体工艺和各种设计约束进行定义。此外,不同产品上Cortex-M0或Cortex-M0+处理器的确切最大速度和功耗也可能彼此不同。
内存保护单元(MPU)是处理器内部的一个可编程模块,用于定义内存属性(例如,可缓存,可缓冲,参见第7.8节)和内存访问权限。它是Cortex-M0+、Cortex-M3、Cortex-M4和Cortex-M7处理器的可选功能,但Cortex-M0处理器上不可用。由于它是可选的,因此一些Cortex-M0+微控制器具有MPU功能(例如,STM32L0 Discovery板上使用的STM32L053微控制器),而有些则没有(以减小硅片面积和功耗)。
与大多数其他功能不同,MPU并不为嵌入式应用程序带来性能提升。MPU用于检测系统中的问题(例如,当应用程序任务试图访问无效或不允许的内存位置时出现错误)。如果检测到问题,则触发HardFault异常。如果应用程序运行完美,则MPU永远不应触发任何故障异常。事实上,许多微控制器应用程序并不需要MPU。
然而,我们知道,事情有时会出错。在这些情况下,MPU可以用来使嵌入式系统更加稳健,在某些情况下通过以下方式使系统更加安全:
您还可以使用MPU定义其他内存属性,例如“可缓存”,这些属性可以导出到系统级缓存单元或内存控制器。这些系统级组件然后可以利用内存属性信息来决定如何处理内存访问。默认情况下,MPU被禁用,并且内存访问权限和内存属性由第7章概述的默认内存映射定义。对于没有MPU的Cortex-M处理器也是如此。在这种情况下,将使用默认的内存属性。
MPU包含多个配置寄存器,必须对这些寄存器进行编程以定义内存区域,并且在使用前必须启用MPU。如果未启用MPU,则处理器的行为与没有MPU存在时相同。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。