当前位置: 首页 > news >正文

Zynq7000系列中的休眠模式

休眠模式是在系统层面定义的,它包括将APU置于待机模式,并将多个控制器保持在无时钟的复位状态。
进入休眠模式可以大大降低功耗。在休眠模式下,大多数功能时钟组都会被关闭或断电。唯一需要保持活动的设备是一个CPU、窥探控制单元(SCU)和一个wake-up设备。理想情况下,唯一引起动态功耗的设备应该是SCU和wake-up外设。wake-up外设可以是UART、GPIO或任何能够生成中断的设备。
如果wake-up设备是一个AXI总线主设备,且该AXI总线主设备能够启动针对DRAM的事务,那么就需要使用额外的限制。由于整个interconnect和DDR内存都处于低功耗模式且不可访问,因此必须确保在针对DRAM进行任何事务之前,CPU已经完成了整个wake-up过程。这可以确保针对DRAM的潜在事务能够得到正确处理。
休眠模式的设计旨在实现功耗和性能之间的平衡。通过允许关键组件在休眠期间保持活动状态,系统可以在需要时迅速恢复操作,同时最大限度地减少功耗。这种功耗管理策略对于需要长时间待机但又要求快速响应的应用场景非常有用。

1、设置wake-up事件

发送给PS的每个中断都可以用作wake-up事件。要实现这一点,必须在外设和GIC中启用所需的中断。wake-up设备必须能够在休眠模式下生成中断,这意味着其时钟可能不会被门控关闭。
在配置wake-up事件时,需要确保所选器件在休眠模式下仍然能够工作,并且能够生成中断信号。这通常涉及配置设备的电源管理设置,以确保其时钟不会被关闭。此外,还需要在GIC中配置中断处理程序,以便在接收到中断时能够正确响应并wake-up系统。

2、使用休眠模式的注意事项

在休眠模式下,主CPU负责关闭所有非wake-up设备,包括系统中的所有其他主设备和PL(如果可能的话)。由于时钟频率在更改时钟分频器和PLL配置时会发生变化,因此配置wake-up设备不仅意味着激活所需的wake-up中断,还需要更改外设配置以应对修改后的时钟频率。如果两个CPU都在运行,主CPU应在进入待机模式之前首先关闭从CPU。哪个CPU作为主CPU是用户的选择。此外,必须采取预防措施,确保在DDR时钟被禁用时执行的代码在此期间可访问,例如,将这些代码段放在OCM中,或锁定L2缓存和TLB。根据实际实现情况,这可能适用于以下情况:
• DDR不可用时执行的代码
• 进入和退出待机模式的例行程序
• 转换表
• 堆栈
当前使用的转换表和堆栈的位置分别可以通过TTBR和SP寄存器进行控制。如果需要,这允许在正常运行模式和待机模式之间切换不同的结构。
在待机序列中,CPU中的中断被禁用。这样,在进入待机模式时执行不会被中断,并且一旦发生wake-up事件,执行将在wfi(等待中断)指令之后立即恢复,而不是跳转到向量表。wake-up中断必须在相应的wake-up设备和GIC中断控制器中启用,以产生合格的wake-up事件。wake-up后重新启用中断时,wake-up中断仍然处于挂起状态,并导致CPU像往常一样跳转到其中断处理程序。

三、进入休眠模式

CPU必须执行以下步骤,才能从正常运行模式进入休眠模式:
1.禁用中断。
执行cpsid if。
2.配置wake-up设备。
3.启用L2缓存动态时钟门控。
设置l2cpl310.reg15_power_ctrl[dynamic_clk_gating_en] = 1。
4.启用SCU待机模式。
设置mpcore.SCU_CONTROL_REGISTER[SCU_standby_enable] = 1。
5.启用顶层开关时钟停止。
设置slcr.TOPSW_CLK_CTRL[CLK_DIS] = 1。
6.启用Cortex-A9动态时钟门控。
设置cp15.power_control_register[dynamic_clock_gating] = 1。
7.将外部DDR内存置于自刷新模式。
8.将PLL置于旁路( bypass)模式。
设置slcr.{Arm, DDR, IO}_PLL_CTRL[PLL_BYPASS_FORCE] = 1。
9.关闭PLL。
设置slcr.{Arm, DDR, IO}_PLL_CTRL[PLL_PWRDWN] = 1。
10.增加时钟分频器以减慢CPU时钟。
设置slcr.ARM_CLK_CTRL[DIVISOR] = 0x3f。
11.执行wfi(等待中断)指令以进入WFI模式。
在实际应用中,可能还需要执行其他步骤或检查以确保系统能够正确和安全地进入休眠模式。务必参考使用的硬件和软件的官方文档,以确保遵循正确的编程指南和最佳实践。

四、退出休眠模式

退出休眠模式是由配置好的中断触发的。中断wake-up CPU,使其恢复执行。新启动的活动也会触发顶层开关、SCU和L2缓存控制器离开空闲状态并继续正常操作。以下概述了wake-up过程的步骤。
要退出休眠模式:
1.恢复CPU时钟分频器设置。
设置slcr.ARM_CLK_CTRL[DIVISOR] = <原始值>。
2.给PLL上电。
设置slcr.{ARM, DDR, IO}_PLL_CTRL[PLL_PWRDWN] = 0。
3.等待PLL上电并锁定。
等待slcr.PLL_STATUS[{ARM, DDR, IO}_PLL_LOCK] == 1。
4.禁用PLL旁路模式。
设置slcr.{ARM, DDR, IO}_PLL_CTRL[PLL_BYPASS_FORCE] = 0。
5.禁用L2缓存动态时钟门控。
设置l2cpl310.reg15_power_ctrl[dynamic_clk_gating_en] = 0。
6.禁用SCU待机模式。
设置mpcore.SCU_CONTROL_REGISTER[SCU_standby_enable] = 0。
7.禁用 Interconnect时钟停止。
设置slcr.TOPSW_CLK_CTRL[CLK_DIS] = 0。
8.禁用Cortex-A9动态时钟门控。
设置cp15.power_control_register[dynamic_clock_gating] = 0。
9.启用所有必需的外围设备。
包括DDR控制器时钟。
10.重新启用并处理中断。
执行cpsie if。
旁路PLL和修改时钟分频器会改变系统中的时钟频率。在这些条件下,必须注意为wake-up设备和看门狗计时器(如果使用)等提供时钟。

相关文章:

Zynq7000系列中的休眠模式

休眠模式是在系统层面定义的&#xff0c;它包括将APU置于待机模式&#xff0c;并将多个控制器保持在无时钟的复位状态。 进入休眠模式可以大大降低功耗。在休眠模式下&#xff0c;大多数功能时钟组都会被关闭或断电。唯一需要保持活动的设备是一个CPU、窥探控制单元&#xff08…...

在redhat7/8平台上部署ELK7.17.18的技术方案

部署环境说明 为节省资源直接使用1台测试机模拟3节点elasticsearch服务集群做部署&#xff0c;在该主机上同时部署了3个elasticsearch实例、1个logstash实例、1个kibana实例、1个filebeat实例。对于生产环境&#xff0c;以上实例服务应该做分布式部署。 ELK-TEST1 192.168.10…...

(Chat For Al,创新Al,汇语Al助手,AiTab新标签,万能助手,LLaVA)分享6个好用的ChatGPT

目录 1、Chat For AI 2、创想AI 3、汇语AL助手...

MySQL-锁篇

文章目录 表级锁和行级锁了解吗&#xff1f;有什么区别&#xff1f;行级锁使用有什么注意事项&#xff1f;InnoDB有哪几类行锁&#xff1f;共享锁和排他锁是什么&#xff1f;意向锁有什么用&#xff1f; 锁是一种常见的并发事务的控制方式 表级锁和行级锁了解吗&#xff1f;有什…...

滤波器笔记(杂乱)

线性相位是时间平移&#xff0c;相位不失真 零、基础知识 1、用相量表示正弦量 https://zhuanlan.zhihu.com/p/345546880 https://www.zhihu.com/question/347763932/answer/1103938667 A s i n ( ω t θ ) ⇔ A e j θ ⇔ A ∠ θ Asin(\omega t\theta) {\Leftrightarrow…...

【ARFoundation自学01】搭建AR框架,检测平面点击位置克隆物体

Unity开发ARFoundation相关应用首先安装ARFoundation包 然后设置XR 1.基础AR场景框架搭建 2.一个基本的点击克隆物体到识别的平面脚本 挂在XROrigin上 脚本AppController 脚本说明书 ## 业务逻辑 AppController 脚本旨在实现一个基本的 AR 应用程序功能&#xff1a;用户通过…...

.Net ajax 接收参数

后端部分代码 一般处理程序 public void ProcessRequest(HttpContext context){context.Response.ContentType "text/plain";string str_index context.Request.Form.AllKeys.Contains("index") ? context.Request.Form["index"].ToString(…...

智能零售:引领购物新时代

智能零售通过整合人工智能、物联网、大数据和机器学习等技术&#xff0c;正在彻底改变传统的购物模式&#xff0c;为消费者和零售商提供前所未有的效率和个性化体验。 智能零售利用消费者数据分析来提供个性化的购物推荐。无论是在线平台或是实体店内&#xff0c;智能系统都能…...

【AIGC】AIGC在虚拟数字人中的应用:塑造未来互动体验的革新力量

&#x1f680; &#x1f680; &#x1f680;随着科技的快速发展&#xff0c;AIGC已经成为引领未来的重要力量。其中&#xff0c;AIGC在虚拟数字人领域的应用更是引起了广泛关注。虚拟数字人作为一种先进的数字化表达形式&#xff0c;结合了3D建模、动画技术、人工智能等多种先进…...

电机控制器电路板布局布线参考指导(五)

电机控制器电路板布局布线参考指导&#xff08;五&#xff09;大容量电容和旁路电容的放置 1.大容量电容的放置2.电荷泵电容器3.旁路电容/去耦电容的放置3.1 靠近电源3.2 靠近功率器件3.3 靠近开关电流源3.4 靠近电流感测放大器3.5 靠近稳压器 tips&#xff1a;资料主要来自网络…...

Python医院挂号脚本

作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 欢迎加入社区&#xff1a;码上找工作 作者专栏每日更新&#xff1a; LeetCode解锁1000题: 打怪升级之旅 python数据分析…...

LabVIEW光学探测器板级检测系统

LabVIEW光学探测器板级检测系统 特种车辆乘员舱的灭火抑爆系统广泛采用光学探测技术来探测火情。光学探测器作为系统的关键部件&#xff0c;其探测灵敏度、响应速度和准确性直接关系到整个系统的运行效率和安全性。然而&#xff0c;光学探测器在长期使用过程中可能会因为灰尘污…...

女上司问我:误删除PG百万条数据,可以闪回吗?

作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验 擅长主流数据Oracle、MySQL、PG、openGauss运维 备份恢复&#xff0c;安装迁移&#xff0c;性能优化、故障应急处理等可提供技术业务&#xff1a; 1.DB故障处理/疑难杂症远程支援 2.Mysql/PG/Oracl…...

HarmonyOS4-数据持久化

轻量级preferences&#xff1a; 关系型数据库&#xff1a; 增删改&#xff1a; 查询语句&#xff1a; 具体详情代码可参与源码&#xff1a; 黑马大佬写的。 harmonyos-lessons: 黑马程序员B站HarmonyOS课程的基础篇代码部分...

深度学习的社交网络:用户行为分析

1.背景介绍 社交网络是当今互联网的一个重要领域,它们为人们提供了一种快速、便捷的方式来与他人交流、分享信息和建立社交关系。社交网络的数据量巨大,包括用户的个人信息、互动记录、内容等。这些数据为企业和组织提供了丰富的信息来源,可以用于用户行为分析、推荐系统、…...

Python 使用 pip 安装 matplotlib 模块(精华版)

pip 安装 matplotlib 模块 1.使用pip安装matplotlib(五步实现):2.使用下载的matplotlib画图: 1.使用pip安装matplotlib(五步实现): 长话短说&#xff1a;本人下载 matplotlib 花了大概三个半小时屡屡碰壁&#xff0c;险些暴走。为了不让新来的小伙伴走我的弯路&#xff0c;特意…...

UOS系统-mips架构---Java环境安装

平时都是在windows系统上安装的java环境&#xff0c;今天需要在uos系统安装java1.8的环境&#xff0c;记录一下安装过程。 &#xff08;以下均在root权限下运行&#xff09; 一、查找java1.8 jdk版本 apt search openjdkopenjdk-8-jdk/未知,未知 1.8.0.212-2deepin mips64el O…...

Java——二叉树

二叉树 二叉树在Java中是一种重要的数据结构&#xff0c;用于高效地组织和处理具有层级关系的数据。 二叉树的每个节点最多有两个子节点&#xff0c;这两个子节点分别称为左子节点和右子节点。这种结构非常适合于使用递归的方式进行定义和操作。在计算机科学中&#xff0c;二…...

数据仓库—维度建模—事实表设计

事实表 事实表是数据仓库中的核心表,用于记录与业务过程相关的事实信息,是进行数据分析和挖掘的主要数据来源。 在ER模型中抽象出了有实体、关系、属性三种类别,在现实世界中,每一个操作型事件,基本都是发生在实体之间的,伴随着这种操作事件的发生,会产生可度量的值,…...

《系统架构设计师教程(第2版)》第9章-软件可靠性基础知识-05-软件可靠性测试

文章目录 1. 概述2. 定义软件运行剖面2.1 软件的使用行为建模2.2 输入域分层2.3 弧上的概率分配2.4 其他注意点 3. 可靠性测试用例设计4. 可靠性测试的实施4.1 测试前检查4.2 注意点4.2 可靠性测试的难点1&#xff09;失效判断的主观性2&#xff09;计算的错误结果不易被发现 4…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...