背景信息我目前正在使用S32k312进行休眠唤醒的功能开发,我有以下问题请请教咨询一下;
1、我使用的是Normal Wakeup而非Fast Standby,请问在Normal唤醒模式下可以实现唤醒源在StandbyRam的存储吗,我目前无法从WISR寄存器中读到有效唤醒源;
2、我通过示波器观察发现K3在休眠状态下收到唤醒源后是先走复位然后才进入的Icu中断,我想知道唤醒到底是先复位再进Icu中断还是先进Icu中断再复位;
3、我在休眠后只触发一次电平沿边中断唤醒,唤醒后从WISR寄存器中的值来看我所有配置了Icu唤醒功能的中断都触发了一次,因此我怀疑是否存在AB两种唤醒源,通过A方式唤醒MCU后WISR会同时记录AB两个唤醒事件,麻烦帮我解答一下;
Solved! Go to Solution.
Hi@Gaulle
Q.请问在Normal唤醒模式下可以实现唤醒源在StandbyRam的存储吗
可以,外部唤醒源唤醒后读取WISR,再将其存储在StandbyRam中没有问题
Q.我通过示波器观察发现K3在休眠状态下收到唤醒源后是先走复位然后才进入的Icu中断,我想知道唤醒到底是先复位再进Icu中断还是先进Icu中断再复位;
唤醒的中断标志位在唤醒后依然存在,如果当前使能了中断,那么会在唤醒后进入唤醒中断处理。
Since the wakeup flag register is retained after waking up, the wakeup ISR can be entered once the NVIC->ISER of Wakeup Unit is enabled by code. All the 64 wakeup sources share one interrupt vector.
Q.唤醒后从WISR寄存器中的值来看我所有配置了Icu唤醒功能的中断都触发了一次
所有的64个唤醒源共用一个中断向量,ICU唤醒功能的中断都触发了一次是可能的,但是相应的唤醒WISR是独立的,所有你自己去排查是否响应的唤醒口是否触发了唤醒操作。
Read the WKPU->WISR & WKPU->WISR_64 (Wakeup/Interrupt Status Flag Register). They are cleared by writing 1.
不正确,除非你的程序在唤醒后又进入了休眠,不存在几次唤醒的问题
Hi@Gaulle
自己去排查,可能是的程序根本就没有成功进入standby模式,亦或者你的唤醒源一直存在