Cortex-M0+

1、关于复位

说到复位,我们都不会陌生,对于一个MCU系统,复位电路是必不可少的一部分。复位的种类有很多:上电复位、低电压复位、引脚复位、看门狗复位、软件复位等等。本文说的内核复位是软件复位的一种。

Cortex-M3内核芯片提供了两种软件复位,分别是系统复位和内核复位,而Cortex-M0+内核芯片只提供了系统复位,内核复位不支持,只能软件模拟。

2、系统复位和内核复位的区别

内核复位:只复位内核处理器,而不复位外设如GPIO、Timer、UART、Flash等的寄存器。

系统复位:既复位内核处理器,又复位外设寄存器。

下面分别是Cortex-M3和Cortex-M0+的应用程序中断及复位控制寄存器(AIRCR)配置图,从图中可以看出,置位AIRCR寄存器中的SYSRESETREQ位(位偏移:2),即可实现系统复位;置位VECTRESET位(位偏移:0),即可实现内核复位。Cortex-M0+中没有VECTRESET的定义,故不支持内核复位。本文会介绍一种软件模拟内核复位的方法。

1.png

2.png

图1  Cortex-M3 应用程序中断及复位控制寄存器(AIRCR)

3.png

图2  Cortex-M0+应用程序中断及复位控制寄存器(AIRCR)

系统复位在ARM官方的库文件中都有提供相关的函数,用户直接调用即可。官方给出的系统复位函数定义如下所示: 4.png5.png

内核复位在ARM官方的库文件中没有相关的函数,需要用户自行编写。Cortex-M3的内核复位函数编写如下:

6.png

3、软件模拟内核复位的方法

内核复位在某些特殊应用下,如OTA升级时,往往会被用到。此时,不希望复位外设,只需要程序从头开始跑即可。以中颖M0+内核芯片为例,在启动配置章节有介绍到,用软件模拟内核复位来使运行在引导区的程序改由从用户代码区启动。

中颖M0+内核芯片从复位中退出时,会首先读取向量表中(从地址0x00000000开始,见图3)的头两个字。第一个字为主栈指针(MSP)的初始值,而第二个字则为决定程序执行起始地址(复位处理)的复位向量。该复位流程可以用软件去模拟,图4是软件模拟内核复位的C语言源码。

7.png

图3 向量表

 8.png

图4 软件模拟内核复位的C语言源码

图4源码中,第1行定义了函数指针类型,取名为“FUNC_CALL”;第2,3行申明了两个变量,分别是无符号整型变量main_pgm和函数指针类型变量func;第5~20行定义了一个函数,取名为__NVIC_CoreReset(),该函数可以实现对MSP装载复位初始值,并使程序跳转到复位向量处开始执行,进而模拟了内核复位。

函数__NVIC_CoreReset()中,第9行调用了ARM官方库文件中的函数(见下图),将存储器0x0地址处的值赋给了寄存器MSP,实现了MSP复位初始值的装载;第10行是将存储器0x4地址处的值赋给变量main_pgm;第11行是将变量main_pgm强制转换成函数指针类型并赋给func;第12行调用函数func(),最终使程序跳转到了存储器0x4地址存储的复位向量处运行。

9.png

用户需要内核复位时,在程序中直接调用图4中定义的函数__NVIC_CoreReset()即可。

4、总结

综上所述,本文提供了一种软件模拟内核复位的方法,通过调用自定义函数__NVIC_CoreReset()即可实现内核复位,给出了该函数的C语言源码,用户直接在自己程序中加载即可使用。该方法弥补了CortexM0+芯片没有自带内核复位功能的不足。

来源:中颖电子(作者:余为国)

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 167

低功耗是MCU的一项非常重要的指标,尤其是在便携式和可穿戴设备中,其携带的电量有限,如果系统功耗高的话,就会很容易出现电量不足的情况,频繁的更换电池或充电必然会带来很差的用户体验,甚至存在一定安全问题,且高耗能的情况下,产品容易发热,严重影响产品的使用寿命。产品的低功耗是那么的重要,下面我将介绍一下NXP Kinetis L系列MCU的低功耗,看它在解决产品低功耗问题的“三板斧”。

一板斧
Cortex-M0+内核,能效比提高30%
Kinetis L系列MCU被誉为全球能效最高的32位MCU,基于当前能效最高的ARM Cortex®-M0+内核,同时采用90nmTFS技术,大大降低MCU静态功耗。

二板斧
10种灵活的电源模式
传统的MCU过去只采用3种电源模式:运行、睡眠和深度睡眠。然而这种“以一概全”的思路不适应现在电源配置多样设计需求。Kinetis L系列MCU将传统的3种电源模式扩展为10种灵活的模式,能够支持多种应用用例,从而大大提高了能效。


图1 10种灵活的电源模式对比

注:
* 计算操作启用:3.6 mA @ 48 MHz内核/24 MHz总线)
** 计算操作启用:144 uA @ 4 MHz内核/1 MHz总线)
a部分Kinetis L系列设备上提供


图2 10种电源模式转换

三板斧
智能电源外设
Kinetis L系列MCU在外设内实现了低功耗智能,允许外设在深度睡眠模式下通过备用时钟源自主运行。例如,MCU内包含异步DMA(ADMA)唤醒功能,允许某些外设在停止和VLPS模式下请求DMA传输。


图3 节能外设应用示例

凭借着“三板斧”的巨大威力,Kinetis L系列MCU在与竞争对手相应的16位低功耗MCU展开正面能效基准挑战赛中完胜对手,证明它作为全球能效最高的MCU选手是实至名归的。

来源:周立功单片机

围观 378

Cortex™-M0+处理器是ARM发布的一款拥有全球最高功耗效率的微处理器。该款经过优化的Cortex-M0+处理器可针对家用电器、白色商品、医疗监控、电子测量、照明设备以及功耗与汽车控制器件等各种广泛应用的智能传感器与智能控制系统,提供超低功耗、低成本微控制器(MCU)。    

ARM Cortex-M0+处理器为物联网发展奠定基础  
  
作为ARM Cortex处理器系列的最新成员,32位Cortex-M0+处理器采用了低成本90纳米低功耗(LP)工艺,耗电量仅9µA/MHz,约为目前主流8位或16位处理器的三分之一,却能提供更高的性能。  
  
这种行业领先的低功耗和高性能的结合为仍在使用8位或16位架构的用户提供了一个转型开发32位器件的理想机会,从而在不牺牲功耗和面积的情况下,提高日常设备的智能化程度。  
  
Cortex-M0+处理器的特点促成了智能、低功耗微控制器的面市,并为“物联网”中大量的无线连接设备提供高效的沟通、管理和维护。  
  
低功耗联网功能深具潜能,可驱动各种节能和生活关键应用,包括从无线方式分析住宅或办公大楼性能与控制的感测器,到以电池运作、通过无线方式连接健康监控设备的身体感测器。而现有的8位或16位微控制器(MCU)缺少足够的智能和功能来实现这些应用。  
  
半导体行业调研咨询公司The Linley Group高级分析师、《微处理器报告》(Microprocessor Report)高级编辑,Tom R. Halfhill表示:“众所周知,不断改进功耗效率、安全性和便利性的物联网将最终改变世界。从自适应室内照明、在线视频游戏到智能传感器和电机控制,无处不在的网络连接几乎对任何事物都是有益的。但是,实现这一切需要极低成本、极低功耗并拥有良好性能的处理器。ARM Cortex-M0+处理器为轻量级芯片提供了32位的强劲性能,适合于各种工业与消费应用。”  
  
ARM Cortex-M0+处理器是以通过硅晶验证(silicon-proven)、低功耗且成功获得超过50件来自半导体领先厂商授权合作的Cortex-M0处理器为基础,再重新设计加入多个重要新特性,包括单周期输入输出(IO)以加速通用输入输出(GPIO)和外围设备的存取速度、改良的调试和追踪能力、二阶流水线技术以减少每个指令所需的时钟周期数(CPI)、已经优化闪存访问,以进一步降低功耗。  
  
Cortex-M0+处理器不仅延续了易用性、C语言编程模型的优势,而且能够二进制兼容已有的Cortex-M0处理器工具和实时系统(RTOS)。作为Cortex-M处理器系列的一员,Cortex-M0+处理器同样能够获得ARM 
Cortex-M生态系统的全面支持,而其软件兼容性使其能够方便地被移植到更高性能的Cortex-M3或Cortex-M4处理器。

ARM处理器部门执行副总裁兼总经理Mike Inglis表示:“Cortex-M0+处理器是ARM领跑低功耗领域的又一例证,同时再一次兑现了其推动行业向更低功耗方向发展的承诺。凭借在低功耗技术上的专业性,我们与合作伙伴为定义新处理器开展了紧密的合作,以确保对现今低成本设备的支持,并同时发掘物联网的潜在优势。”    

相关ARM技术支持  
  
Cortex-M0+处理器搭配Artisan®七轨SC7超高密度标准单元资料库和电源管理套件(PMK)最为适合,可充分发挥该处理器前所未有的低功耗特点。  
  
Cortex-M0+处理器具备已整合Keil &micro、Vision IDE、调试器和ARM汇编工具的ARM Keil™微控制器开发套件的全面支持。作为全球公认的最受欢迎微控制器开发环境,MDK以及ULINK调试适配器系列均支持Cortex-M0+处理器的全新追踪功能。有了这些工具,ARM的合作伙伴能够获得紧密联系的应用开发环境的优势,并迅速了解Cortex-M0+处理器高性能和低功耗的特点。  
  
这款处理器同时也拥有大量第三方工具和实时系统(RTOS)的支持,包括CodeSourcery、Code Red、Express Logic、IAR Systems、Mentor Graphics、Micrium和SEGGER。

围观 372
订阅 RSS - Cortex-M0+