【STM32 FreeRTOS】Tickless低功耗模式

news2024/9/25 21:28:23

STM32低功耗模式

低功耗模式一览表

STM32 提供了 3 种低功耗模式,以达到不同层次的降低功耗的目的

  • 睡眠模式(内核停止工作,外设仍在运行)
  • 停止模式(所有时钟都停止)
  • 待机模式( 1.8 V 内核电源关闭)

FreeRTOS主要使用的睡眠模式进入低功耗模式。

Tickless低功耗模式

如何降低功耗

Tickless低功耗模式的本质是通过调用指令WFI进入睡眠模式!

Tickless模式的设计思想

在任务运行时间统计实验中,我们可以看出,其实大部分时间都是在执行空闲任务。

可以在本该空闲任务执行的期间,让MCU进入相应的低功耗模式;当其他任务准备运行的时候,唤醒MCU退出低功耗模式。

难点:

1、进入低功耗模式后,多久唤醒?也就是下一个要运行的任务如何被准确唤醒。

2、任何中断均可唤醒MCU,若滴答定时器频繁中断则会影响低功耗的效果。

可以将滴答定时器的中断周期修改为低功耗运行时间,退出低功耗后,需不上系统时钟节拍数。值得庆幸的是:FreeRTOS的低功耗Tickless模式机制已经处理好了这些难点。

Tickless模式相关配置项

configUSE_TICKLESS_IDLE

此宏定义用于使能低功耗Tickless模式,配置1表示使用系统定义好的函数,配置2表示自定义函数

configEXPECTED_IDLE_TIME_BEFORE_SLEEP

此宏定义用于定义系统进入相应低功耗模式的最短时长,默认配置为2

configPRE_SLEEP_PROCESSING(x)

此宏用于定义需要再系统进入低功耗模式前执行的事务,如:进入低功耗前关闭外设时钟,以达到降低功耗的目的。

configPOST_SLEEP_PROCESSING

此宏用于定义需要再退出低功耗模式后执行的事务,如:退出低功耗模式后开启之前关闭的外设时钟。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt-认识Qt(1)

目录 QT是做什么的? 什么是QT GUI开发的各种技术方案 QT支持的平台 Qt的版本和优点 开发工具概述 Qt是做什么的? Qt是用来干嘛的? 什么是Qt Qt是⼀个跨平台的C图形用户界⾯应用程序框架。它为应用程序开发者提供了建立艺术级图形界⾯所…

SSH远程管理/TCP Wrappers访问控制

文章目录 SSH远程管理/TCP Wrappers访问控制SSH(Secure Shell)协议OpenSSH配置信息服务监听选项用户登录控制登录验证方式 常用目录---ssh 远程安全登录---scp 远程安全复制---sftp FTP上下载 配置密钥对验证环境配置ECDSA算法RSA算法RSA算法实操在centos7 IP:20.0.0.51操作一、…

【嵌入式linux开发】智能家居入门5:老版ONENET,多协议接入(QT、微信小程序、HTTP协议、ONENET云平台、旭日x3派)

智能家居入门5(QT、微信小程序、HTTP协议、ONENET云平台、旭日x3派) 前言一、QT界面设计二、云平台产品创建与连接三、下位机端QT代码总览:四、微信小程序端代码总览五、板端测试 前言 前四篇智能家居相关文章都是使用STM32作为主控&#xf…

用时间序列数据画蜡烛图

数据集:时间序列数据集(2024.8.16收集)-修改date资源-CSDN文库 示例一 import pandas as pd import mplfinance as mpf# 读取CSV文件 df pd.read_csv(999999_dcolhchg.csv)# 将日期列加上19000000,然后转换为日期格式 df[date]…

Jmeter系列之作用域、执行顺序

这一节主要解释元件作用域和执行顺序,以及整理之前说过的参数化的方式。 作用域 之前也留下了一个问题。怎么给不同的请求设置不同的Header?后续也透露了可以使用Sample Controller,结合元件的作用域来实现 在Jmeter中,元件的作…

轻松搞定由于找不到msvcr120.dll,无法继续执行代码的问题,总结五种msvcr120.dll丢失修复方法

当您在使用基于Windows的系统运行软件或游戏时,可能会遇到如下错误提示:“由于找不到 msvcr120.dll,无法继续执行代码”。这个问题表明您的系统缺少 Microsoft Visual C Redistributable Packages for Visual Studio 2013 中的一个关键组件&a…

【LeetCode Cookbook(C++ 描述)】一刷二叉树综合(下)

目录 LeetCode #257:Binary Tree Paths 二叉树的所有路径深度优先搜索广度优先搜索 LeetCode #404:Sum of Left Leaves 左叶子之和深度优先搜索广度优先搜索 LeetCode #199:Binary Tree Right Side View 二叉树的右视图广度优先搜索深度优先搜…

单体应用spring Task和分布式调度

Spring Task 1.通过 Spring Task,您可以方便地在 Java 应用程序中实现定时任务,比如每天凌晨进行数据同步、每小时执行一次清理操作等。 2.1 启动类添加EnableScheduling注解(默认情况下,系统会自动启动一个线程) 2.2 在需要定时执行的方…

解决 Swift 6 全局变量不能满足并发安全(concurrency-safe)读写的问题

概述 WWDC 24 终于在 Swift 十岁生日发布了全新的 Swift 6。这不仅意味着 Swift 进入了全新的“大”版本时代,而且 Swift 编译器终于做到了并发代码执行的“绝对安全”。 不过,从 Swift 5 一步迈入“新时代”的小伙伴们可能对新的并发检查有些许“水土不…

连锁美业门店收银系统拓客系统预约系统Java源码-博弈美业APP如何进行课程核销?

* 课程开课后,到课程结束前,这段时间均可以进行课程核销 * 课程核销的权限,仅限内部员工 * 核销课程时,需要切换到总部,才有核销课程的权限 方法一:通过“课程核销”直接核销 点击“课程核销”&#xff…

强大的接口测试可视化工具:Postman Flows

Postman Flows是一种接口测试可视化工具,可以使用流的形式在Postman工作台将请求接口、数据处理和创建实际流程整合到一起。如下图所示 Postman Flows是以API为中心的可视化应用程序开发界面。它提供了一个无限的画布用于编排和串连API,数据可视化来显示…

[C#]winform基于深度学习算法MVANet部署高精度二分类图像分割onnx模型高精度图像二值化

【训练源码】 https://github.com/qianyu-dlut/MVANet 【参考源码】 https://github.com/hpc203/MVANet-onnxrun 【算法介绍】 二分图像分割(DIS)最近出现在从高分辨率自然图像中进行高精度对象分割方面。在设计有效的DIS模型时,主要的挑战是…

XMGoat:一款针对Azure的环境安全检测工具

关于XMGoat XMGoat是一款针对Azure的环境安全检测工具,XM Goat 由 XM Cyber Terraform 模板组成,可帮助您了解常见的 Azure 安全问题。每个模板都是一个用于安全技术学习的靶机环境,包含了一些严重的配置错误。 在该工具的帮助下&#xff0c…

景区门票预订系统开发方案概述

随着旅游业的蓬勃发展,提升游客体验、优化景区管理成为了各大景区亟待解决的问题。景区门票预订系统的开发,正是顺应这一趋势的重要举措。以下是一个简要的景区门票预订系统开发方案概述,旨在通过科技手段实现票务管理的智能化、便捷化。 一、…

faiss向量数据库测试《三体》全集,这家国产AI加速卡,把性能提了7倍!

在人工智能和机器学习技术的飞速发展中,向量数据库在处理高维数据方面扮演着日益重要的角色。近年来,随着大型模型的流行,向量数据库技术也得到了进一步的发展和完善。 向量数据库为大型模型提供了一个高效的数据管理和检索平台,…

如何将音乐保存为文件格式为铃声,怎么把音乐保存为MP3格式

许多小伙伴在听到好听的音乐时,会将其下载保存。如果需要将音乐文件格式转换成来电铃声时,就需要借助专业的音频处理软件了,音频处理软件可以帮助我们转化音乐文件格式,那么下面就来给大家介绍如何将音乐保存为文件格式为铃声&…

Kali Linux-设置系统24小时时间制

文章目录 设置系统24小时时间制 设置系统24小时时间制 在Kali Linux中,如果系统时间不是以24小时制显示,你可以通过修改系统时间格式配置文件来调整为24小时制。以下是具体的操作步骤: 1.编辑/etc/locale.conf配置文件。 vim /etc/locale.c…

【gitlab】gitlab-ce:17.3.0-ce.0 之2:配置

参考阿里云的教程docker的重启 sudo systemctl daemon-reload sudo systemctl restart docker配置 –publish 8443:443 --publish 8084:80 --publish 22:22 sudo docker ps -a 當容器狀態為healthy時,說明GitLab容器已經正常啟動。 root@k8s-master-pfsrv:~

Python WebSocket自动化测试:构建高效接口测试框架

为了更高效地进行WebSocket接口的自动化测试,我们可以搭建一个专门的测试框架。本文将介绍如何使用Python构建一个高效的WebSocket接口测试框架,并重点关注以下四个方面的内容:运行测试文件封装、报告和日志的封装、数据驱动测试以及测试用例…

调查显示:超过30 %企业遭受过网络攻击,如何防范?

对于企业来讲,屡禁不止的网络安全攻击始终是阻碍业务发展的重大隐患。调查结果显示,有近8成的企业将网络安全视为企业很重要的工作之一,另外,有超过三成的企业遭受过网络安全攻击。 企业作为网络安全事故的责任承担方,…