05 2025 档案
摘要:ARM Cortex-M 32-bit 年份 核心 2004年 Cortex-M3 2007年 Cortex-M1 2009年 Cortex-M0 2010年 Cortex-M4 2012年 Cortex-M0+ 2014年 Cortex-M7 2016年 Cortex-M23 2016年 Cort
阅读全文
摘要:ARMv8/v9 CPU Cache Size ARM架构通过一系列的系统寄存器来提供CPU和系统的详细信息,包括缓存的大小和配置。在ARMv8和ARMv9架构中,这些信息通常可以通过读取如下寄存器来获取: CTR_EL0 (Cache Type Register) : 提供L1缓存的线大小等信息。
阅读全文
摘要:1.1 Cache 概念简介 1.1.1 Cache Type Cache 通常按照层级分类,比如常见的 L1 Cache/L2 Cache/L3 Cache …: 通常 L1 Cache 又分为 ICache (instruction Cache) 和 DCache (data Cache)。 其
阅读全文
摘要:综述 FDF的全称是Flash Description File。 它是构成BIOS二进制的描述符,即FDF文件描述了BIOS二进制的组成结构。 本文的目的就是介绍FDF文件内部的组成以及它们是如何完成对BIOS二进制的描述。 下面首先来看下BIOS二进制的大致结构: 上述的结构中有几个需要说明关键
阅读全文
摘要:EDK II增加新的代码后,uefi编译编译报错,错误如下: Fd File Name:QCOMMODULE_EFI Generate Region at Offset 0x0 Region Size = 0x22000 Region Name = FV Generating FVMAIN_COMP
阅读全文
摘要:A ACA - Accessory charger adapter ACC - Application Clock Controller. Docs (e.g.) qcom,kpss-acc.txt ACM - Abstract control model (CDC subclass) ACU -
阅读全文
摘要:前面的文章中介绍过,为了保证视频、音频等数据得到优先传输,PCIe总线实现了一种叫做Quality of Service(QoS)的机制。QoS可以满足视频、音频等对Latency和实时性(Isochronous)要求比较高(一般不可以被打断)的应用需求。QoS主要通过VC(Virtual Chan
阅读全文
摘要:CCI Family CCI-550 简介 Arm CoreLink CCI-550 Cache Coherent Interconnect 扩展了 CoreLink CCI-500。它在 big.LITTLE 处理器集群之间提供完整的缓存一致性,并为其他代理(如 Mali GPU、网络接口或加速器
阅读全文
摘要:NOC(Network on Chip)和NIC(Network Interface Controller)都有非常明确的应用场景和作用,但它们工作在不同的层次,并解决不同的问题。 NOC(Network on Chip) 作用和功能: NOC设计用于解决片上系统(SoC)内部不同组件之间的通信需求
阅读全文
摘要:LTR:Latency Tolerance Reporting LTR 是 PCIe 协议中规定的一项可选特性,可用于提高系统的电源管理效率。 通过 LTR,PCIe 设备可以告知系统它们能容忍的最大响应延迟是多少,只要系统在这个时间之内对 PCIe 设备提出的请求做出响应即可。系统的电源管理策略可
阅读全文
摘要:CCI-400 介绍 CCI(Cache Coherent Interconnect)是ARM中的cache一致性控制器。 CCI-400将互连和一致性功能结合到一个模块中。它支持多达两个ACE 主节点的连接,例如: Cortex®-A7 processor Cortex-A15 processor
阅读全文
摘要:msm8960之前是adsp(Audio DSP)架构,现在换成SEE(Sensor Exclute Environment)架构了。 高通ADSP Sensor框架: 高通sensor架构实例分析之一 linux驱动由浅入深系列:高通sensor架构实例分析之二(驱动代码结构) linux驱动由浅
阅读全文
摘要:在实际的问题分析过程中,我们经常会碰到非常大的Trace文件(大于2GB),直接扔进uiperfetto.dev是没法打开的,这是因为浏览器内存的限制。这时候我们就需要使用官方提供的trace_processor_shell工具来本地打开大文件。 0. trace_processor_shell 工
阅读全文
摘要:Sensors 硬件抽象层 (HAL) 是 Android 传感器框架与设备传感器(如加速度计或陀螺仪)之间的接口。Sensors HAL 定义了一系列函数,要使传感器框架能够控制传感器,必须先实现这些函数。 Sensors HAL 2.0 适用于搭载 Android 10 及更高版本的新设备和升级
阅读全文
摘要:以下内容将全面梳理 Android 应用层调用到底层驱动的全过程,涵盖 AIDL 接口生成、Binder IPC 流程、JNI 本地调用、HAL(硬件抽象层)以及最终通过 ioctl 或文件操作与内核驱动交互的细节。首先给出整体总结,然后分步详解每个环节。 概览 在 Android 中,从 Java
阅读全文
摘要:sensors.h 中声明的传感器 HAL 接口表示 Android 框架与硬件专用软件之间的接口。HAL 实现必须定义 sensors.h 中声明的每个函数。主要函数如下: get_sensors_list - 返回所有传感器的列表。 activate - 启动或停止传感器。 batch - 设置
阅读全文
摘要:Sensors 硬件抽象层 (HAL) 是 Android 传感器框架与设备传感器(如加速度计或陀螺仪)之间的接口。Sensors HAL 定义了一系列函数,要使传感器框架能够控制传感器,必须先实现这些函数。 Sensors AIDL HAL 适用于面向新设备和升级后设备的 Android 13 及
阅读全文
摘要:T32 MARM介绍 T32 MARM是Lauterbach的Trace32软件包的一部分,专门用于ARM基础架构的微处理器。Trace32是一款强大的系统级调试器广泛用于嵌入式系统和微处理器的开发。 T32 MARM提供了对ARM核心和多核心设备的全面支持,支持各种不同的ARM核心,包括Corte
阅读全文
摘要:在任何事务层包(TLP)发送之前,PCIe总线必须要先完成Flow Control初始化。当物理层完成链路初始化后,便会将LinkUp信号变为有效,告知数据链路层可以开始Flow Control初始化了。如下图所示: 注:由于VC0是默认使能的,所以当Flow Control初始化开始时,其会被自动
阅读全文
摘要:Flow Control即流量控制,这一概念起源于网络通信中。PCIe总线采用Flow Control的目的是,保证发送端的PCIe设备永远不会发送接收端的PCIe设备不能接收的TLP(事务层包)。也就是说,发送端在发送前可以通过Flow Control机制知道接收端能否接收即将发送的TLP。 在P
阅读全文
摘要:ARM CoreLink 介绍 ARM的CoreLink系列产品是一套能够进行高效互联的组件和工具,它们用于构建高性能、低功耗的嵌入式和消费电子设备。CoreLink产品系列提供了用于多处理器系统的一组互连性能,这些功能包括各种总线架构,以及与之配套的内存和外设接口。 CoreLink系列的组件包括
阅读全文
摘要:Android 帧速率调整库,也称为 Swappy,是 AGDK 库 的一部分。它帮助 OpenGL 和 Vulkan 游戏在 Android 上实现流畅的渲染和正确的帧速率调整。本文档定义了帧速率调整,描述了需要帧速率调整的情况,并展示了该库如何解决这些情况。如果您想直接跳转到在游戏中实现帧速率调
阅读全文
摘要:Interaction of group and individual interrupt enables 在 ARM GICv3和GICv4架构中, GICD_* 和 GICR_* 寄存器 组 决定了处理器元素(PE)能够识别的最高优先级 pending interrupt 。这些寄存器决定PE的
阅读全文
摘要:查找 Linux 内核中 F2FS 文件系统相关的补丁(比如针对内核 5.15 的补丁或 feature),可以参考以下几个权威渠道: 1. Kernel.org 的 git 仓库 这是 Linux 内核官方源代码仓库。 地址:https://git.kernel.org/ F2FS 通常在子目录
阅读全文
摘要:GIC 各种中断使能配置 在ARM GICv3和GICv4架构中,不同类型的中断(如PPIs、SPIs、SGIs和LPIs)可以通过 不同的 方式进行启用和禁用。 下面详细介绍这些中断的启用和禁用方法: PPIs(每个处理器私有中断) 启用和禁用PPIs :通过向 GICR_ISENABLER0 和
阅读全文
摘要:序言 本文针对使用Perfetto/Systrace分析不同操作任务的CPU执行状态时常见的异常原因进行了汇总,对实战中的问题分析可起到抛砖引玉的作用。以下异常情况都来自实际的案例分析,因此非常具有参考价值,各球友如果遇到过其他没提及过的案例时可在下面直接回复。 Android线程被分为16种状态:
阅读全文
摘要:本文是 Systrace 线程 CPU 运行状态分析技巧系列的第一篇,主要分析了 Systrace 中 cpu 的 runnable 状态出现的原因和 Runnable 过长时的一些优化思路。 本系列的目的是通过 Systrace 这个工具,从另外一个角度来看待 Android 系统整体的运行,同时
阅读全文
摘要:控制流完整性 从 2016 年开始,Android 上大约 86% 的漏洞与内存安全相关。大多数漏洞被攻击者所利用,他们的目的是改变应用的正常控制流,获取遭利用的应用的所有权限来执行任意恶意活动。控制流完整性 (CFI) 是一种安全机制,它不允许更改已编译二进制文件的原始控制流图,因而执行此类攻击变
阅读全文
摘要:1.简介 Linux内核PCIe软件框架如下图所示,按照PCIe的模式,可分为RC和EP软件框架。 RC的软件框架分为五层: 第一层为RC Controller Driver,和RC Controller硬件直接交互,不同的RC Controller,其驱动实现也不相同; 第二层为Core层,该层将
阅读全文
摘要:在 PCIe(Peripheral Component Interconnect Express) 中, ASPM(Active State Power Management) 和 PM(Power Management) 是两种主要的电源管理机制,它们各自独立但又可以协同工作,以优化设备的电源消耗
阅读全文
摘要:PCIe总线与PCI总线使用的PCI-PM管理机制兼容。在PCIe设备的扩展配置空间中定义了Power Management Capabilities结构,该结构中含有一系列寄存器,系统软件通过修改PMCSR寄存器的Power State字段,可以使PCIe设备进入不同的节能状态D-State,如D
阅读全文
摘要:PCIe总线的电源管理包含ASPM和软件电源管理两方面内容。所谓ASPM是指PCIe链路在没有系统软件参与的情况下,由PCIe链路自发进行的电源管理方式。而软件电源管理指PCI PM机制,PCIe总线的软件电源管理与PCI总线兼容。本章节讲述ASPM,下章节再讲PCI-PM。 ASPM全称为Acti
阅读全文


浙公网安备 33010602011771号