Reset介绍
Reset,即复位,指的是当MCU正常运行过程中发生的PC指针跳回程序起始的行为,即软件从头开始执行。伴随着PC指针的一定,MCU中内核和外设也会采取响应的动作,比如内核复位、寄存器复位/保持、外设复位等。
复位的原因有很多种,有的是来自于功能需求,有的是因为硬件异常或软件异常,不同的复位类型所造成的影响是不同的,影响范围通常由MCU厂商来进行定义,同时软件一可以在上电时通过识别复位类型,做出一定的动作。
总的来说复位是一种有效的硬件机制,利用复位可以满足很多系统需求,也可以在系统运行不正常时及时将设备转换至安全的状态。
Reset机制特性
复位有很多种分类方式,可将复位分成了三种类型:
Software reset:指软件主动触发的复位。
Soft reset:一种特殊的software reset,此类复位将会复位 u-chip
Hardware reset:硬件触发的复位,比如POWERPON、或电源欠压造成的复位
Trap/exception:软件运行异常触发的复位(也可触发 NMI,再在 NMI中触发复位),发生此类型复位时证明软件运行错误,已经无法正常运行,软件逻辑通过触发 Trap/exception 保证软件回归正常状态。
另外,还有 cold reset和warm reset的概念:
Cold reset:首次上电发生的复位,比如KL15 ON、芯片首次上电、控制器被唤醒。
Warm reset:软件运行过程中发生的复位,