当前位置: 首页 > 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…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日&#xff0c;在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上&#xff0c;可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞&#xff0c;强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...

使用SSE解决获取状态不一致问题

使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件&#xff0c;这个上传文件是整体功能的一部分&#xff0c;文件在上传的过程中…...