NXP实战笔记(十三):32K3xx基于RTD-SDK在S32DS上休眠唤醒wakeup低功耗功能。

本文主要是介绍NXP实战笔记(十三):32K3xx基于RTD-SDK在S32DS上休眠唤醒wakeup低功耗功能。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1、概述

2、配置目标

2.1、配置资源

2.2、模块依赖关系

3、RTD配置

3.1、时钟配置

3.2、Power配置

3.3、IO配置

3.3、Wkpu配置

3.5、中断配置

4、代码处理

4.1、链接文件处理

4.2、启动文件startup_cm7.s设置

4.3、休眠唤醒代码处理

5、实验结果

6、代码链接


1、概述

        S32K3xx仅有两种电源模式,RUN模式和STANDBY模式。S32K1xx之所以有Run、Sleep、Deep Sleep三种电源状态,是因为S32k1xx使用的ARM Cortex M4的内核,其内核就规定了这三种电源模式:

        Run:正常工作模式,允许PLL 倍频,内核、系统、总线频率运行在芯片的最高频率,功耗可达数十mA–上百mA

        Sleep:普通睡眠模式,大部分外设停止工作,内核、系统和总线部分关闭或降频工作,功耗可降至几个mA

        Deep Sleep:深度睡眠,几乎所有外设停止工作、NVIC停止工作,内核、系统和总线关闭,CPU内核停止工作,仅AWIC(异步唤醒中断控制器)这个用于唤醒的外设保持功能,功耗仅几十个uA。

        ARM cortex M系列内核进入低功耗模式是通过CPU执行汇编指令WFI(Wait for Interrupt)或者WFE(Wait for Event)完成。

唤醒源

四个内部源与60个外部源可以产生中断与唤醒事件。

        WKPU0:SWT0唤醒

        WKPU1:RTC唤醒

        WKPU2:CMP唤醒

        WKPU3:RTI唤醒

        WKPU4 - WKPU63:外部引脚

外部中断唤醒源的示例图如下

2、配置目标

2.1、配置资源

芯片型号

唤醒源

IO

S32K312

17

PTB16

2.2、模块依赖关系

模块

作用

FIRC快速时钟

进入Standby之前需要切换到快速时钟

Power

提供run与standby模式

Wkpu

休眠唤醒配置

链接文件

分配standby RAM使用

启动文件

上电启动更改

IntCtrl_Ip

中断

IO

设置为唤醒管脚

3、RTD配置

        本工程实践通过S32DS自带的illd配置工具实现。

3.1、时钟配置

找到时钟选项,添加一路standby 时钟

注意添加完成之后会报错与警告如下图,因为这些时钟是不使用的,需要关闭。

消除错误方法如下,详细信息里面选择不使用即可

        根据自身需要,在进入休眠时候哪些使能,哪些不使能呢?这里是可以自己选择的。但是WKPU是必须使能的。

其它的按照默认就行了,配置出来如下图

        为什么要添加一路呢,此处添加之后生成部分就会生成一份standby的时钟,如下图所示。

3.2、Power配置

电源管理这块配置如下所示

增加standby模式

3.3、IO配置

3.3、Wkpu配置

设置唤醒方式为上升沿唤醒

        设置唤醒源:注意一下为什么是17呢?刚才前面提到了,前面4个源为内部源,IO这块需要在原本13的基础上加4,这点需要非常注意。

添加中断

3.5、中断配置

注意后面的句柄函数出处如下,不是随便写的。

这些准备工作准备好了,下面就是执行代码层面的操作了。

4、代码处理

        单独的根据配置生成的代码,休眠是没什么大的问题的,但是唤醒方面就比较不行了,唤醒只能唤醒部分,其实唤醒之后操作等同于复位,直接跳转到复位位置。

4.1、链接文件处理

        S32K3中的RAM前32K属于standby ram在休眠模式下也是可以起作用的。所以链接文件上需要在这块做文章,这块根据心情分多少不大于32K就行。

    int_standbysram			: ORIGIN = 0x20400000, LENGTH = 0x00000800    /* 2K */int_standbysram_stack	: ORIGIN = 0x20400800, LENGTH = 0x00000800    /* 2K */

为启动文件增加一个table,之后.s文件会使用

增加section段,便于存放standby ram里面数据

增加地址信息

4.2、启动文件startup_cm7.s设置

对应链接文件的段

去除ECC错误

4.3、休眠唤醒代码处理

寄存器方面需要重点关注如下

下图为设置下次启动的位置与唤醒等设置信息

下图寄存器为阅读唤醒源信息

ECC初始化信息,下面的代码是不调用的,在上电的时候会执行,所以调试器打不了断点信息的。

下次进入的向量表如下

程序的运行,在初始化的时候无需初始化唤醒操作,在进入唤醒之前进行初始化就行了。

5、实验结果

休眠时刻信息

唤醒源为17

Log信息如下

6、代码链接

休眠唤醒源码icon-default.png?t=N7T8https://download.csdn.net/download/weixin_43580890/89427906?spm=1001.2014.3001.5503

这篇关于NXP实战笔记(十三):32K3xx基于RTD-SDK在S32DS上休眠唤醒wakeup低功耗功能。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

python写个唤醒睡眠电脑的脚本

《python写个唤醒睡眠电脑的脚本》这篇文章主要为大家详细介绍了如何使用python写个唤醒睡眠电脑的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 环境:win10python3.12问题描述:怎么用python写个唤醒睡眠电脑的脚本?解决方案:1.唤醒处于睡眠状

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur