关于ARM Kinetis MCU唤醒源NVIC和AWIC的工作过程解惑

2024-02-28 13:38

本文主要是介绍关于ARM Kinetis MCU唤醒源NVIC和AWIC的工作过程解惑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

之前对Kinetis的低功耗系统进行学习的过程中,大体上了解NVIC是主管同步唤醒事件,而AWIC是主管异步唤醒事件,同步和异步主要指的是是否与CPU的时钟保持同步。NVIC是在CPU醒着的时候(有时钟供应)的情况下接受中断请求,处于ARM核心内部,需要CPU的时钟供应以维持工作。AWIC可以在CPU休眠时(在Deep Stop模式中)通过异步机制继续响应来自存活外设的中断请求以唤醒CPU。但是在之前的理解中,AWIC和NVIC是相互独立工作,分别接入CPU中的。这也导致了我在理解例如LLWU等从特殊低功耗模式下唤醒的执行序列时仍存在诸多疑惑(唤醒后到底是先复位还是先执行中断服务程序?)。

今天详读一份Kinetis的datasheet时,注意到如下一段关于AWIC说明:

此处的意思是“AWIC在异步模式下(包括CPU的系统时钟停止供应)捕获到事件,AWIC恢复系统时钟(包括CPU时钟)。系统时钟恢复后,NVIC恢复工作,监测到中断事件发生,然后执行常规的基于NVIC的中断服务处理程序”。这就说明AWIC和NVIC有交接工作的关系:AWIC从一些Deep Sleep模式中恢复系统时钟,它的工作内容就结束了。系统时钟恢复后,NVIC自动接替事件的响应过程,启动中断服务程序处理相应的中断事件。

再拿文中提到的一个案例进行分析:

由此可以解释,当使用LLWU(隶属于AWIC的范畴)这类超低功耗掉电模式的唤醒事件监控模块时,会先唤醒系统,然后通过NVIC的引导开始执行中断服务程序,当系统从中断服务程序的高优先级的特权状态中回归到常规优先级的普通状态时,开始启动复位操作序列(此时的复位操作序列感觉像是一个最低优先级的中断服务程序,同LLWU的中断服务组成“咬尾中断”,也就是说指令序列从来都没有回到过main函数)(当然也有另一种可能的解释,就是LLWU的中断服务最后面由硬件自动添加了一段复位操作序列,用户看不到,也不可编程,此时指令序列也没有回到main函数)。总之,结论是“先执行中断服务程序再复位”,那么在这种情况下,LLWU的中断服务程序一般可以用来在时钟完备的情况下保存一下复位前的现场信息。这样在复位之后,在新一轮的生命周期中,使用上一个生存周期末尾保存的现场信息执行一些对应的处理工作。

 

 

这篇关于关于ARM Kinetis MCU唤醒源NVIC和AWIC的工作过程解惑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/755662

相关文章

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

Solr 使用Facet分组过程中与分词的矛盾解决办法

对于一般查询而言  ,  分词和存储都是必要的  .  比如  CPU  类型  ”Intel  酷睿  2  双核  P7570”,  拆分成  ”Intel”,”  酷睿  ”,”P7570”  这样一些关键字并分别索引  ,  可能提供更好的搜索体验  .  但是如果将  CPU  作为 Facet  字段  ,  最好不进行分词  .  这样就造成了矛盾  ,  解决方法

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

未来工作趋势:零工小程序在共享经济中的作用

经济在不断发展的同时,科技也在飞速发展。零工经济作为一种新兴的工作模式,正在全球范围内迅速崛起。特别是在中国,随着数字经济的蓬勃发展和共享经济模式的深入推广,零工小程序在促进就业、提升资源利用效率方面显示出了巨大的潜力和价值。 一、零工经济的定义及现状 零工经济是指通过临时性、自由职业或项目制的工作形式,利用互联网平台快速匹配供需双方的新型经济模式。这种模式打破了传统全职工作的界限,为劳动

Smarty模板引擎工作机制(一)

深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解。 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content=