目录

  • 1.简介
  • 2.特性
  • 系统特性
  • 应用特性
  • 调试特性
  • 其他特性
  • 3.优势
  • 4.低功耗应用
  • 5.软件可移植性
  • 1.简介

  • Cortex-M0处理器基于冯·诺伊曼架构(单总线接口),使用32位的精简指令集(RISC)。该指令集被称为Thumb(首次使用在ARM7TDMI上)。与之前相比,新的指令集增加了几条ARMv6架构的指令,并且纳入了Thumb-2指令集的部分指令。
  • Cortex-M0总共支持56个基本指令。由于读写存储器的指令相互独立,而且算术或逻辑操作的指令使用寄存器,Cortex-M0处理器可以被归到加载-存储(load-store)的结构中。
  • 其简单框图如下:

  • 处理器核心包括寄存器组、算术逻辑单元(ALU)、数据总线和控制逻辑。流水线根据设计可以分为3种状态:取指、译码和执行。寄存器组包含16个32位寄存器。
    其中,嵌套向量中断控制器(NVIC)可以处理最多32个中断请求和一个不可屏蔽中断(NMI)输入。NVIC需要比较正在执行中断和处于请求状态中断的优先级,然后自动执行高优先级中断。如果要处理一个中断,NVIC会和处理器进行通信,通知处理器执行正确的中断处理。
    唤醒中断处理器(WIC)为可选的单元,在低功耗应用中,在关闭了处理器大部分模块后,微控制器会进入待机状态。此时,WIC可以在NVIC和处理器处于休眠的情况下,执行中断屏蔽功能。当WIC检测到一个中断时,会通知电源管理部分给系统上电,让NVIC和处理器内核执行剩下的中断处理。
  • 调试子系统包括多个功能模块,以处理调试控制、程序断点和数据监视点(data watchpoint)。当调试事件发生时,处理器内核会被置于暂停状态,这时开发人员可以检查当前的处理器状态。
    JTAG(联合测试行动组)和SWD(串行线调试)提供了通向总线系统和调试功能的入口。JTAG是通用的5帧通信协议,一般用作测试。串行线协议为新扩展的,只需两根线就可以(时钟线和数据线),而且可以实现JTAG相同的调试功能。
  • 内部总线系统、处理器内核的数据通路以及AHB LITE总线接口都是32位宽的。
  • 2.特性

    Cortex-M0处理器具有多种特性,一些是可见的系统特性,另外一些对于开发者是不可见的。

    系统特性

  • Thumb指令集,兼具高效和高代码密度,能够执行ARM7TDMI处理器的所有Thumb指令。
  • 高性能。
  • 内置的嵌套向量中断控制器(NVIC),中断配置和异常处理编程相当容易。当接收到中断请求后,中断处理就会自动执行,无须软件查找中断向量的位置。
  • 确定的中断响应时间,中断等待时间可以被设定为固定值或最短时间(最小为16个时钟周期)。
  • 不可屏蔽中断(NMI)输入,对高可靠性系统非常重要。
  • 架构预定义的存储器映射。存储器空间是线性的,而不像其他许多架构将存储器空间分页管理。
  • 方便易用,支持C语言,具有线程和处理两种模式。
  • 内置的系统节拍定时器(SysTick)。24位定时器,可被操作系统使用,或者用做通用定时器。
  • 请求管理调用,具有SVC异常和PendSV异常(可挂起的管理服务),支持嵌入式OS的多种操作。
  • 架构定义的休眠模式和进入休眠的指令,休眠特性能够使能量消耗极大降低。
  • 异常处理可以捕获到系统中的多种错误。
  • 应用特性

  • 中断数量可配置(1~32个)。
  • 快速乘法器(单周期)和小型乘法器(较小的硅片面积,低功耗,32周期)可供选择。
  • 支持大端或小端存储器。
  • 可选择的唤醒中断控制器(WIC),处理器可以在休眠状态下掉电以降低功耗,而WIC可以在中断发生时唤醒系统。
  • 极低的门数量,可用于混合信号半导体工艺。
  • 调试特性

  • 停止模式调试,处理器可以完全停止,此时寄存器可以被访问和修改。而且这样不会带来代码空间和栈空间的开销。
  • CoreSight技术,调试器可以在没有停止处理器的情况下,操作存储器和外设。并且允许多核心的片上系统共用一个调试单元。
  • 支持JTAG和SWD调试接口。
  • 可配置数量的硬件断点(0~4个)和监视点(watchpoint)(0 ~ 2个)。
  • 断点指令支持不限数量的软件断点。
  • 芯片供应商可以取消所有的调试特性,使得规模最小。
  • 其他特性

  • 系统模型同ARM7TDMI处理器类似,大部分ARM7TDMI的Thumb代码可以重复使用。
  • 同Cortex-M1处理器相兼容,Cortex-M1的用户可以将其在FPGA上的设计移植到ASIC上。
  • 向上兼容Cortex-M3和Cortex-M4处理器,Cortex-M3支持Cortex-M0处理器的所有指令,因此向上升级到Cortex-M3将会非常简单。
  • 从Cortex-M3/Cortex-M4移植过来非常简单,因为这两种架构类似。
  • 被多种开发组件支持。
  • 被多种嵌入式系统支持。
  • 3.优势

    1. 能耗效率:Cortex-M0相对于8位和16位处理器最显著的优势在于其能耗效率。Cortex-M0处理器和16位机差不多同等规模,但其性能却比8位和16位架构高得多。可以在其完成任务的同时,让处理器在大部分的时间里处于休眠状态,这样就可以降低功耗。
    2. 8位和16位架构的局限性:在存储器容量和指令集方面,其相对于Cortex-M0具有明显的局限性。
    3. 易于使用,软件可移植。
    4. 选择多样化。

    4.低功耗应用

    Cortex-M0处理器通过以下几个方面,可以实现低功耗的目标:

  • 门数量低:Cortex-M0的门数少,这也就直接降低了芯片的动态功耗和漏电流。
  • 高效率:拥有了高效率的架构,嵌入式开发人员开发产品时,可以使用较低的时钟频率来减小动态电流,而无须担心性能会降低。
  • 低功耗特性:Cortex-M0处理器具有很多低功耗特性,它们可以降低嵌入式系统的功耗。首先,处理器提供了两个休眠模式,可以使用WFI(中断触发唤醒)和WFE(事件触发唤醒)这两条指令进入相应的模式。利用休眠模式,芯片的电源管理单元可以降低系统的功耗。除了一般的休眠特性,Cortex-M0还包含了唤醒中断控制器(WIC)。利用这部分功能,即便处理器处于休眠状态,中断也可以将其立即唤醒,这样可以大大降低休眠时系统的漏电流(静态功耗)。
  • 逻辑单元提升
  • 5.软件可移植性

    Cortex-M3、Cortex-M1、Cortex-M0具有一致的内核架构、相似的系统模型和兼容的指令集。
    兼容性如下:

  • Cortex-M0和Cortex-M1处理器都是基于ARMv6-M内核架构的,因此它们的指令集和系统模型几乎完全一样,但也有不同的地方,如指令时控和其他系统特性。
  • Cortex-M3处理器基于ARMv7-M内核架构,所使用的Thumb-2指令集是ARMv6-M指令集的超集,系统模型同ARMv6-M相似。因此在Cortex-M0上设计的程序,可以在完全不用修改的情况下,在Cortex-M3处理器上运行。
  • Cortex-M系列处理器的相似性带来了许多好处。首先,软件的移植性更好,在多数情况下,如果需要切换平台,C程序一般不需要改动。此外,同一款开发工具可以支持多种Cortex-M系列处理器,除了指令集和系统模型类似以外,调试架构也基本相同。
  • 物联沃分享整理
    物联沃-IOTWORD物联网 » Cortex-M0综述概览

    发表评论