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

MTK zephyr平台:系统休眠流程

一、概述:

当内核没有需要调度的东西时,就会进入空闲状态。
CONFIG_PM=y时允许内核调用PM subsys,将空闲系统置于支持的电源状态之一。
Application负责设置唤醒事件,该事件通常是由SoC外围模块触发的中断,例如:
SysTick、RTC、计数器、GPIO
并非所有外设在所有电源模式下都处于活动状态,因此不是所有唤醒源都可以在任何电源模式下对系统进行唤醒
相关代码目录如下,主要关注TFA和Zephyr:

ItemPath
Preloadermtk\modules\hal\boot\preloader\platform\mt6813\src\drivers\spm
TFAmtk\modules\hal\boot\tf-a-2.8\mtk\plat\mediatek\mt6813\drivers\spm
mtk\modules\hal\boot\tf-a-2.8\mtk\plat\mediatek\mt6813\include\drivers\spm
mtk\modules\hal\boot\tf-a-2.8\mtk\plat\mediatek\drivers\spm
mtk\modules\hal\boot\tf-a-2.8\mtk\plat\mediatek\drivers\pm
mtk\modules\hal\boot\tf-a-2.8\mtk\plat\mediatek\include\pm
LKmtk\modules\hal\boot\Lk\platform\mediatek\common\spm
mtk\modules\hal\boot\Lk\platform\mediatek\mt6813\include\platform
Zephyrmtk\modules\hal\drivers\lpm
mtk\modules\hal\subsys\pm
zephyr\subsys\pm
zephyr\kernel\idle.c

二、modem侧

modem在idle状态下会自动进入休眠,且modem支持不进入飞行模式的休眠,比如寻呼休眠等。modem休眠唤醒完全由modem控制,AP不做处理,暂不关注。

三、休眠流程

在MTK文档中有如下图示描述:
Upon entry into Zephyr, if the scheduler selects the idle task, the process of entering sleep mode will be automatically initiated by the MT6813.
在这里插入图片描述

  • Zephyr ldle Process: The driver is notified to enter sleep processing, and then PSCI (SYSTEM_SUSPEND) is called.
  • TFA PSCI Lib: Executes the system suspend process and notifies the SPM driver.
  • TFA SPM Driver: Sets the behavior of SPM to suspend.
  • T
http://www.dtcms.com/a/199746.html

相关文章:

  • Golang的网络安全策略实践
  • 数据库连接池技术与 Druid 连接工具类实现
  • Golang中的runtime.LockOSThread 和 runtime.UnlockOSThread
  • RabbitMQ通信模式(Simplest)Python示例
  • 百度飞桨OCR(PP-OCRv4_server_det|PP-OCRv4_server_rec_doc)文本识别-Java项目实践
  • Python函数——万字详解
  • 算法题(150):拼数
  • 用Python将 PDF 中的表格提取为 Excel/CSV
  • OpenCV计算机视觉实战(6)——经典计算机视觉算法
  • Python60日基础学习打卡D30
  • LangChain多模态智能体:文生图、识图、RAG问答与小说生成全攻略
  • Apidog MCP服务器,连接API规范和AI编码助手的桥梁
  • Linux环境搭载
  • 使用MCP驱动IDA pro分析样本
  • MongoDB的管道聚合
  • 物联网之使用Vertx实现HTTP/WebSocket最佳实践
  • WordPress搜索引擎优化的最佳重定向插件:入门指南
  • 146. LRU 缓存
  • C++字符串处理:`std::string`和`std::string_view`的区别与使用
  • R 语言科研绘图第 49 期 --- 热力图-相关性
  • Geotools中关于坐标转换纬度超限问题
  • vue2、vue3项目打包生成txt文件-自动记录打包日期:git版本、当前分支、提交人姓名、提交日期、提交描述等信息 和 前端项目的版本号json文件
  • 物联网数据湖架构
  • 【C++】异常解析
  • YouTube视频字幕转成文章算重复内容吗?
  • 五分钟完成PolarDB替换postgresql
  • paddle ocr本地化部署进行文字识别
  • 基于Elasticsearch的搜索引擎简介
  • 为 Windows 和 Ubuntu 中设定代理服务器的详细方法
  • 区块链blog2_中心化与效率