Android 休眠流程(三)

Android 休眠流程(三)

上一篇《Android 休眠流程(二)》简单讲解内核阶段进入休眠流程,本篇继续深挖,简单讲解休眠进入ATF。ATF(ARM Trusted Firmware) 的体系架构里将整个系统分成四种安全等级,分别为:EL0、EL1、EL2、EL3。将整个安全启动的流程阶段定义为:BL1、BL2、BL31、BL32、BL33,其中 ARM Trusted Firmware 自身的源代码里提供了 BL1、BL2、BL31 的功能。Rockchip 平台仅使用了其中的 BL31 的功能,BL1 和 BL2则使用瑞芯微自由实现方案。在 Rockchip 平台一般默认的 ATF(ARM Trusted Firmware) 指的就是 BL31,而 BL32 使用的则是 OP-TEE OS。

BL1阶段:BL1是AP Trusted ROM,一般为BootRom。在这一阶段,BL1完成了将BL2镜像文件加载到RAM中的操作、中断向量表的设定以及其他CPU相关设定。BL1_main函数会解析出BL2镜像文件的描述信息,获取入口地址,并设定下一个阶段的CPU上下文。这些操作完成之后,调用el3_exit函数来实现BL1到BL2的跳转,进入BL2中开始执行。

BL2阶段:BL2是Trusted Boot Firmware,一般为Trusted Bootloader。在BL2中,会加载BL31、BL32、BL33的镜像文件到对应权限的内存中,并将这三个镜像文件的描述信息保存到组成一个链表,以备BL31启动BL32和BL33使用。BL33为正常使用状态的镜像文件,例如uboot、EKD2等。从BL2跳转到BL31是通过带入BL31的入口点信息作为参数,然后调用安全监控模式调用指令,触发在BL1中设定的安全监控模式调用请求。该请求处理完成后,会将中央处理器的执行权限交给BL31,并跳转到BL31中去执行。

作者:炭烤毛蛋 ,点击博主了解更多。


提示:芯片深度休眠到进入ATF,该阶段仅响应系统设定的唤醒源。

文章目录

  • Android 休眠流程

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

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

相关文章

相等运算符==与 === 的区别

相等运算符用来比较两个值是否相等 1、运算符 如果相等会返回true,否则返回false使用 来做相等运算当使用来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型比较 console.log("1" 1); //true console.…

机器学习算法 —— 基于penguins_raw数据集的决策树

🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 目录 实战演示基于penguins_raw数据集的决策树实战导入模块数据信息简单查看可视化描述利用 决策树模型 在二分类上 进行训练和预测利用 决策树模型 在三分类(多分类)上 进行训练和预测实战 演示…

OCI对象存储数据转移到另一个桶

// 旧桶 String bucketName_old “Bucket-old”; // 新桶 String bucketName_new “Bucket-new”; // 图片前缀 String filePrefix “obj-filePrefix/”; AmazonS3 instance AmazonS3ClientFactory.getS3Instance(); String continuationToken null; int num 0; try { do…

推荐算法学习笔记2.1:基于深度学习的推荐算法-基于共线矩阵的深度推荐算法-AutoRec模型

AutoRec模型 前置知识:推荐算法学习笔记1.1:传统推荐算法-协同过滤算法 AutoRec模型通过引入自编码器结构,将共线矩阵中的用户向量(基于用户的U-AutoRec)或物品向量(基于物品的I-AutoRec)嵌入到低维空间后还…

讯方技术鸿蒙应用定制开发服务上架华为云商店

在当前智能化与互联互通发展的时代背景下,鸿蒙操作系统已成为推动创新应用发展的新引擎。随着企业对个性化智能解决方案需求的不断增长,鸿蒙应用定制开发已成为企业技术转型升级的重要途径。 讯方技术作为一家致力于为客户提供全面专业服务的企业&#…

LVM核心概念

1. LVM简介 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。 优点: 可以灵活分配…

Java中如何实现一个线程安全的HashMap?

在Java中,实现一个线程安全的HashMap可以通过使用java.util.concurrent.ConcurrentHashMap类来实现。ConcurrentHashMap类是Java并发包java.util.concurrent的一部分,它提供了一种线程安全的哈希表实现。 以下是如何使用ConcurrentHashMap实现线程安全的…

2024年,精品课录制新方式,站在大屏前录出绿幕抠像的效果!感谢不坑盒子!

先做个小调查:你们那边请工作室录一节课,多少钱?留言区交流一下。 暑假了,老师们又有时间来录课了。 早在2021年秋天,精品课遴选的第一年,我就第一时间给大家分享了2种录精品课的方法:大屏前录…

python源码:opencv多视频源同屏拼接播放

一、前言 如标题所示,这个python代码的目的是利用opencv模块实现多视频源同屏拼接播放的,里面包含视频播放尺寸修改、视频播放加序号、视频流存活检测等方案,可做扩展开发使用。 二、代码 import cv2 import time from func_timeout import …

C++文件系统操作1 - 跨平台实现文件的创建和删除

1. 关键词2. fileutil.h3. fileutil.cpp4. filetype.h5. filesystem_win.cpp6. filesystem_unix.cpp7. 源码地址 1. 关键词 C 文件系统操作 创建文件 删除文件 创建软连接 刪除软连接 跨平台 2. fileutil.h #pragma once#include <string> #include <cstdio> #i…

JAVA里的BigDecimal用法

public class BigDecimaldemo1 {public static void main(String[] args) {System.out.println(0.090.01);//为什么不是0.10呢?} }在使用float或者double类型的数据在进行数学运算的时候&#xff0c;很有可能会产生精度丢失问题。我们都知道计算机底层在进行运算的时候&#x…

科林Linux7_网络爬虫

一、爬虫 网络资源的下载工具&#xff0c;工作与万维网环境&#xff0c;持续获取网页网站中的网络信息。可持续的数据采集机器人 1、搜索引擎技术使用爬虫 2、数据分析、数据挖掘领域&#xff0c;需要爬虫进行数据准备 3、数据批处理、采集&#xff0c;大量获取某些网站中的…

LeetCode题练习与总结:二叉树的前序遍历--144

一、题目描述 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3]示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[]示例 3&#xff1a; 输入&#xff1a;roo…

数据资产的创新应用与未来展望:探讨数据资产在人工智能、物联网等新兴领域的应用前景,提出前瞻性的数据资产解决方案,为企业探索新的增长点,推动行业创新发展

目录 一、引言 二、数据资产在人工智能领域的应用 1、机器学习与深度学习 2、自然语言处理 3、计算机视觉 三、数据资产在物联网领域的应用 1、智能家居 2、工业物联网 3、智慧城市 四、前瞻性的数据资产解决方案 1、构建统一的数据管理平台 2、加强数据安全和隐私…

webpack源码解析---addEntry

addEntry EntryPlugin的注册 webpack会从入口开始解析依赖。 WebpackOptionsApply new WebpackOptionsApply().process(compiler, options); class WebpackOptionsApply {constructor () {}process () {// 注册 EntryOptionPlugin new EntryOptionPlugin().apply(compiler);}…

基于路径长度的样条插补算法(自动驾驶和路径跟踪控制适用)

以前在做车辆跟踪控制的时候发现在针对有多个X和多个Y对应的路径插补时候&#xff0c;总是报错&#xff0c;因为MATLAB里面的interp1插补函数它要求x要唯一对应一个y&#xff0c;当路径以单独的x或者y来求插补时候的时候就报错。由于在使用Matlab的interp1函数进行插值时&#…

怎样才能更好地保护个人账号的安全

怎样才能更好地保护个人账号的安全 保护个人账号安全是网络安全的重要组成部分&#xff0c;以下是一些有效的措施来增强账号的安全性&#xff1a; 1. 使用强密码 复杂性&#xff1a;创建包含大小写字母、数字和特殊字符的密码。长度&#xff1a;密码至少应有12个字符长。唯一…

谈谈检测浏览器类型

前几天被问到如何检测浏览器类型&#xff0c;我突然发现我对此并不了解&#xff0c;之前的项目中也没有使用到过&#xff0c;只隐约记得通过一个自带的方法即可获取。所以今天特意来仔细补习一下。 核心&#xff1a;navigator.userAgent 1.正则表达式 2.引用外部库 3.判断浏…

【Android面试八股文】你知道什么是冷启动和热启动吗?你知道应用冷启动的全流程吗?你知道如何解决启动时候的黑白屏问题?

文章目录 一、冷启动、热启动的概念二、冷启动的流程冷启动启动流程:流程细节三、如何解决启动时候的黑白屏问题?一、冷启动、热启动的概念 在Android开发中,冷启动和热启动是两个重要的概念,它们描述了应用程序启动时不同的状态和表现: 冷启动(Cold Start): 冷启动指…

记一次kafka使用不当导致的服务器异常

一、背景 1.运维反馈服务器cpu高&#xff0c;且高达80% 2.经过排查发现kafka出现消息积压情况 3.使用的是springboot kafka框架 dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId> </dependency…