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

相关文章

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

录音功能在哪里? 电脑手机等设备打开录音功能的技巧

《录音功能在哪里?电脑手机等设备打开录音功能的技巧》很多时候我们需要使用录音功能,电脑和手机这些常用设备怎么使用录音功能呢?下面我们就来看看详细的教程... 我们在会议讨论、采访记录、课堂学习、灵感创作、法律取证、重要对话时,都可能有录音需求,便于留存关键信息。下面分享一下如何在电脑端和手机端上找到录音功能

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv