Fork me on GitHub

10 2024 档案

摘要:CC信号有两根线,CC1和CC2,大部分USB线(不带芯片的线缆)里面只有一根CC线,DFP可根据两根CC线上的电压,判断是否已经插入设备。通过判断哪根CC线上有下拉电阻来判断方向,下图的说明已经非常清晰。 如果CC1引脚检测到有效的Rp/Rd连接(对应的电压),则认为电缆连接未翻转。 如果CC2引 阅读全文
posted @ 2024-10-31 15:38 yooooooo 阅读(502) 评论(0) 推荐(0) 编辑
摘要:由于TYPE-C两头都一样,没有方向性,所以在对接前并不会有电源输出,数据主从也尚未定义。在PD的规范内,针对装置对接,定义了三个电阻来进行对接的识别。 Rp:做为Provider需要在CC脚位上上拉一个Rp电阻。Rp电阻允许有三种阻值(pull high 5V时,10K/22K/56K),这三种阻 阅读全文
posted @ 2024-10-31 14:50 yooooooo 阅读(547) 评论(0) 推荐(0) 编辑
摘要:E-Marker指的是在TYPE-C缆线中会被放置一颗识别IC,这等于是这条缆线的身份证,其功能主要是在宣告缆线的能力、缆线ID及制造商ID等。 前面章节有提到当装置对接后,CC其中会有1 pin变成VCONN供电出来,就是为了供电给E-marker来使用。对接后供电端(Provider)会去读取E 阅读全文
posted @ 2024-10-30 18:05 yooooooo 阅读(169) 评论(0) 推荐(0) 编辑
摘要:聊聊USB Power Delivery两三事,接下来会依下列几个主题来探讨 What is Power Delivery E-Marker Attached Source CAP Sink CAP Power Role Swap Data Role Swap VCONN Swap Alternat 阅读全文
posted @ 2024-10-30 17:38 yooooooo 阅读(150) 评论(0) 推荐(0) 编辑
摘要:E-Marker 是“Electronically Marked Cable”的缩写,是封装在 USB-C端口中的芯片。通过这个芯片,可以得到电缆的各种参数,包括功率、数据、视频传输、ID等信息。 由于 Type-C 设备之间的功能差异很大,因此在决策过程中考虑电缆至关重要。例如,如果源和接收设备都 阅读全文
posted @ 2024-10-30 16:48 yooooooo 阅读(254) 评论(0) 推荐(0) 编辑
摘要:当USB设备连接到或从USB中移除时,主机使用总线枚举过程来识别和管理接入的设备。当USB设备连接到一个已经被上电的端口,采取以下顺序行动: 1.设备上电 用户把USB设备插入USB端口(主机下的根hub或主机下行端口上的hub端口)或系统启动时设备上电。此时,USB设备处于加电状态,它所连接的端口 阅读全文
posted @ 2024-10-30 14:24 yooooooo 阅读(517) 评论(0) 推荐(0) 编辑
摘要:1.连接状态(Attached) USB设备可以从USB总线上连接或断开。当USB设备与USB总线断开时,它的状态USB规范没有定义,我们可以这么想,设备都拔了就断电了,也就不存在什么样的状态了。规范仅在设备被连接后处理后续的操作。 2.上电状态(Powered) USB设备的电源可来自外部电源,也 阅读全文
posted @ 2024-10-30 14:14 yooooooo 阅读(86) 评论(0) 推荐(0) 编辑
摘要:1.USB引脚接线定义 对于四线制的USB,即USB1.0、USB1.1和USB2.0,USB硬件接口有4根接线,如下图。 引脚 名称 电缆颜色 描述 1 VBUS Red +5 V,电源 2 D− White Data −,数据线 3 D+ Green Data +,数据线 4 GND Black 阅读全文
posted @ 2024-10-30 14:07 yooooooo 阅读(177) 评论(0) 推荐(0) 编辑
摘要:1.中断传输包结构 中断传输和批量传输类似,中断传输只由一个中断事务组成,中断事务包含令牌包、数据包、握手包,如图下所示。中断事务类型的特点是能够通过错误检测和重试来保证主机和设备之间数据的无错误传递。 需要理解和注意以下点。 (1)当主机准备接收数据时,它发出IN令牌,设备端点通过返回数据包或(如 阅读全文
posted @ 2024-10-30 11:04 yooooooo 阅读(132) 评论(0) 推荐(0) 编辑
摘要:1.批量传输包结构 批量传输由一个或多个批量事务组成,每一个批量事务具有令牌包、数据包、握手包,如图下所示。批量事务类型的特点是能够通过错误检测和重试来保证主机和设备之间数据的无错误传递。 需要理解和注意以下点。 (1)当主机准备接收批量数据时,它发出IN令牌,设备端点通过返回数据包或(如果无法返回 阅读全文
posted @ 2024-10-30 10:35 yooooooo 阅读(91) 评论(0) 推荐(0) 编辑
摘要:1. 概述 CPU负载(cpu load)指的是某个时间点进程对系统产生的压力。来张图来类比下(参考Understanding Linux CPU Load) CPU的运行能力,就如大桥的通行能力,分别有满负荷,非满负荷,超负荷等状态,这几种状态对应不同的cpu load值; 单CPU满负荷运行时c 阅读全文
posted @ 2024-10-29 23:32 yooooooo 阅读(128) 评论(0) 推荐(0) 编辑
摘要:ARM的ACE(AXI Coherency Extensions)和ACE-Lite是ARM的AXI(Advanced eXtensible Interface)总线协议的扩展版本,用于实现多核处理器系统中的缓存一致性。 ARM提供了ACP和ACE-lite接口,这两个接口都有device cohe 阅读全文
posted @ 2024-10-29 14:51 yooooooo 阅读(395) 评论(0) 推荐(0) 编辑
摘要:1.同步传输包结构 同步传输由一个或多个同步事务组成,每一个同步事务具有令牌包、数据包,没有握手包,如图下所示。 主机发出IN或OUT令牌包,如果是IN令牌,设备会发送数据包给主机,如果是OUT令牌,主机会发送数据包给设备。 同步传输没有握手包或重试功能。 2.同步传输DATAx数据包核心要点 同步 阅读全文
posted @ 2024-10-29 11:43 yooooooo 阅读(62) 评论(0) 推荐(0) 编辑
摘要:1.控制传输包结构 控制传输由三个阶段组成,设置阶段、可选的数据阶段、状态阶段,其中设置阶段由1个SETUP事务组成,数据阶段由0个或者多个IN/OUT事务组成,状态阶段由1个IN/OUT事务组成,其中每个阶段事务包结构有所不同,下图可以直观看出控制传输写传输的包结构组成。 2.设置阶段包详解 设置 阅读全文
posted @ 2024-10-29 11:11 yooooooo 阅读(253) 评论(0) 推荐(0) 编辑
摘要:1、前言 struct kref结构体是一个引用计数器,它被嵌套进其它的结构体中,记录所嵌套结构的引用计数。引用计数用于检测内核中有多少地方使用了某个对象,每当内核的一个部分需要某个对象所包含的信息时,则该对象的引用计数加1,如果不需要相应的信息,则对该对象的引用计数减1,当引用计数为0时,内核知道 阅读全文
posted @ 2024-10-28 23:34 yooooooo 阅读(53) 评论(0) 推荐(0) 编辑
摘要:1.握手包的分类 握手包有ACK握手包、NAK握手包、STALL握手包、NYET握手包、ERR握手包。 2.握手包的组成 握手包内容仅由PID域组成,PID域标志当前握手包的具体类型是ACK、NAK、STALL、NYET、ERR五种中的哪一种。 3.握手包的功能 握手包是接收方给发送方返回的状态,这 阅读全文
posted @ 2024-10-28 17:36 yooooooo 阅读(99) 评论(0) 推荐(0) 编辑
摘要:由于Linux版本的在不断更新,当设备驱动去兼容不同版本的内核时,需要知道当前使用的内核源码版本,以此来调用对应版本的内核API,这两个宏定义在文件 /usr/include/linux/version.h #define LINUX_VERSION_CODE 263213 #define KERN 阅读全文
posted @ 2024-10-28 11:51 yooooooo 阅读(323) 评论(0) 推荐(0) 编辑
摘要:USB设备的Remote Wakeup是可选的,其功能用于远程唤醒待机状态下的主机。 USB设备通过配置描述符bmAttributes字段的D5标识其是否支持远程唤醒。支持远程唤醒的USB设备必须支持USB的标准请求CLEAR_FEATURE和SET_FEATURE。 USB主机通过SET_FEAT 阅读全文
posted @ 2024-10-28 00:33 yooooooo 阅读(144) 评论(0) 推荐(1) 编辑
摘要:一、前言 这是一篇指导驱动工程师如何使用DMA API的文档,为了方便理解,文档中给出了伪代码的例程。另外一篇文档dma-api.txt给出了相关API的简明描述,有兴趣也可以看看那一篇,这两份文档在DMA API的描述方面是一致的。 二、从CPU角度看到的地址和从DMA控制器看到的地址有什么不同? 阅读全文
posted @ 2024-10-27 15:06 yooooooo 阅读(69) 评论(0) 推荐(0) 编辑
摘要:USB协议详解第22讲(USB包-数据包及重传机制) 1.数据包的分类 数据类包有DATA0数据包、DATA1数据包、DATA2数据包、DATAM数据包。 2.数据类包的组成 我们今天看数据类包的详细结构,数据包的内容由PID域+数据域+16bit CRC域组成,下图为数据包各个域和抓包协议的对应图 阅读全文
posted @ 2024-10-26 15:06 yooooooo 阅读(78) 评论(0) 推荐(0) 编辑
摘要:1.令牌类包的分类 令牌类包有SETUP令牌包、IN令牌包、OUT令牌包。 2.令牌类包的组成 我们今天看令牌类包的详细结构,令牌包的内容由PID域+地址域+5bit CRC域,下图为令牌类包包各个域和抓包协议的对应图。 3.令牌类包的功能 所有令牌包都是主机发起的,作用就是告诉设备主机要干啥,要求 阅读全文
posted @ 2024-10-26 12:22 yooooooo 阅读(86) 评论(0) 推荐(0) 编辑
摘要:USB PID类型与包类型的区分 理解PID与包类型 在USB协议中,PID(Packet Identifier,包标识符)和包类型是密切相关的两个概念,但它们并不是完全相同的。 PID:PID是一个8位的字段,位于每个USB数据包的头部。它明确地标识了该数据包的类型,如令牌包、数据包、握手包等。P 阅读全文
posted @ 2024-10-26 12:17 yooooooo 阅读(98) 评论(0) 推荐(0) 编辑
摘要:USB协议详解第20讲(USB包-帧首包SOF) 1.包的四种类型 根据包的组成把包分为四种类型,分别是、帧首包SOF(Start of Frame)、命令包(Token)、数据包(Data)、握手包(Handshake),如下图(大家一定要把PID类型和包类型分开)。 4种PID类型和4种包类型( 阅读全文
posted @ 2024-10-26 11:06 yooooooo 阅读(364) 评论(0) 推荐(1) 编辑
摘要:Voyager M310e 如果要使用事务列图: 打开控制传输Trafer: 这里面的warning是lecroy协议分析仪打出来的,并且认为是有问题的。因为没有收到ack包 可以隐藏掉LC。 阅读全文
posted @ 2024-10-25 17:56 yooooooo 阅读(51) 评论(0) 推荐(0) 编辑
摘要:adb shell stop thermald adb shell stop thermal-engine adb shell "echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus" adb shell "echo 4 > /sys/dev 阅读全文
posted @ 2024-10-24 10:47 yooooooo 阅读(192) 评论(0) 推荐(0) 编辑
摘要:前言 最近朋友圈、微信群(ARM-Trustzone-TEE-AT)掀起一阵学习SMMU的热潮,作为一名安全领域的渣渣 ,势必要蹭一蹭这个“热点”,也学习一下吧,反正早晚都要学,因为它和安全的关系还是比较大的。学习是一件长期的过程,本文就先简单理一下概念吧。 1、SMMU总结 1.1、SMMU的ti 阅读全文
posted @ 2024-10-23 23:40 yooooooo 阅读(353) 评论(0) 推荐(0) 编辑
摘要:《ARM Architecture Reference Manual ARMv8-A》里面有Memory层级框架图,从中可以看出L1、L2、DRAM、Disk、MMU之间的关系,以及他们在整个存储系统中扮演的角色。 涉及到的相关文档有: 《ARM Architecture Reference Man 阅读全文
posted @ 2024-10-23 18:25 yooooooo 阅读(108) 评论(0) 推荐(0) 编辑
摘要:每个处理器有一个迁移线程,线程名称是“migration/<cpu_id>”,属于停机调度类,可以抢占所有其他进程,其他进程不可以抢占它。迁移线程有两个作用。 (1)调度器发出迁移请求,迁移线程处理迁移请求,把进程迁移到目标处理器。 (2)执行主动负载均衡。 如图所示,每个处理器有一个停机工作管理器 阅读全文
posted @ 2024-10-23 10:43 yooooooo 阅读(138) 评论(0) 推荐(0) 编辑
摘要:本文介绍了Android13中的冻结进程功能,它是一种重要的资源管理策略,可以提高系统性能和稳定性,同时最大限度地节省设备的资源和电池消耗。 文章讨论了如何合理分配资源,包括CPU、内存等,以提高设备性能和用户体验。此外,文章还提到了冻结进程对应用程序线程的影响,并介绍了Android13与Andr 阅读全文
posted @ 2024-10-22 23:29 yooooooo 阅读(368) 评论(0) 推荐(0) 编辑
摘要:1.包的组成 下面这张图为包的组成结构,由SOP、SYNC、Packet Content、EOP四部分组成,其中Packet Content最为核心,Packet Content由PID、地址、帧号、数据、CRC组成。 1.SOP域(Start Of Packet) 通过将D +和D-线从空闲状态驱 阅读全文
posted @ 2024-10-22 22:57 yooooooo 阅读(207) 评论(0) 推荐(0) 编辑
摘要:USB 包与 USB 域的区别与关系 USB 域与 USB 包:基础概念 USB 域:USB 数据流中的最小单位,类似于计算机中的比特。它包含了特定的信息,如同步信号、包标识、地址等。 USB 包:由多个 USB 域组成的更大单位,是 USB 数据传输的基本单元。一个 USB 包包含了完整的传输信息 阅读全文
posted @ 2024-10-22 22:45 yooooooo 阅读(71) 评论(0) 推荐(0) 编辑
摘要:ARM CoreLink 是 ARM 公司开发的一系列系统 IP(知识产权)产品,用于连接和管理片上系统(SoC)中的各个组件。它是 ARM 系统设计生态系统的重要组成部分,旨在帮助芯片设计者更快速、更高效地开发复杂的 SoC 设计。让我为您详细介绍一下 ARM CoreLink: 主要功能: 互连 阅读全文
posted @ 2024-10-20 23:29 yooooooo 阅读(72) 评论(0) 推荐(0) 编辑
摘要:1. 前言 本文将从provider的角度,介绍怎样在linux kernel dmaengine的框架下,编写dma controller驱动。 2. dma controller驱动的软件框架 设备驱动的本质是描述并抽象硬件,然后为consumer提供操作硬件的友好接口。dma controll 阅读全文
posted @ 2024-10-20 22:06 yooooooo 阅读(94) 评论(0) 推荐(0) 编辑
摘要:1. 前言 从我们的直观感受来说,DMA并不是一个复杂的东西,要做的事情也很单纯直白。因此Linux kernel对它的抽象和实现,也应该简洁、易懂才是。不过现实却不甚乐观(个人感觉),Linux kernel dmaengine framework的实现,真有点晦涩的感觉。为什么会这样呢? 如果一 阅读全文
posted @ 2024-10-20 22:05 yooooooo 阅读(151) 评论(0) 推荐(0) 编辑
摘要:1. 前言 前面文章介绍“Linux MMC framework”的时候,涉及到了MMC数据传输,进而不可避免地遭遇了DMA(Direct Memory Access)。因而,择日不如撞日,就开几篇文章介绍Linux的DMA Engine framework吧。 本文是DMA Engine fram 阅读全文
posted @ 2024-10-20 15:10 yooooooo 阅读(74) 评论(0) 推荐(0) 编辑
摘要:1.USB传输架构和包的组成 本节我们开始对USB包进行深入讲解,USB所有的传输都会被分成包进行传输,不同类型的包里面包含着不同的域(后面一一学习)。传输架构和包的组成如下图。 每个包都由SOP(包起始域)、SYNC(同步域)、Packet Content(包内容)、EOP(包结束域)四部分组成, 阅读全文
posted @ 2024-10-20 14:35 yooooooo 阅读(47) 评论(0) 推荐(1) 编辑
摘要:1.USB传输回顾 前面讲了四种传输的类型的事务组成,包括控制传输,同步传输,批量传输,中断传输。 2.USB事务总结 本节我们来对事务(transaction)相关内容做以总结,从前面学习中我们可以看到其实事务有三种类型,Setup事务、Data IN事务、Data OUT事务。 Setup事务: 阅读全文
posted @ 2024-10-20 14:31 yooooooo 阅读(70) 评论(0) 推荐(1) 编辑
摘要:1.前言 中断传输用于那些频率不高,但是对周期有一定要求的数据传输。具有保证的带宽,并能在下一个周期对先前错误的传输进行重传。中断端点在端点描述符中要报告主机对此端点的查询时间,主机会保证在小于这个时间间隔的范围内安排一次传输,比如HOST主机1ms内向鼠标设备请求一次数据。对于全速端点,中断传输的 阅读全文
posted @ 2024-10-20 14:28 yooooooo 阅读(116) 评论(0) 推荐(0) 编辑
摘要:1.前言 前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了同步传输细节及事务组成,今天我们主要讲解批量传输及事务组成,批量传输也叫大容量传输。 批量传输和同步传输类似,是使用批量事务(Bulk Transaction 阅读全文
posted @ 2024-10-20 14:22 yooooooo 阅读(75) 评论(0) 推荐(0) 编辑
摘要:1.前言 前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,上一节我们讲了控制传输细节及事务组成,今天我们主要讲解同步传输及事务组成。 同步传输用在数据量大、对实时性要求高的场合,例如音频设备、视频设备等,这些设备对数据延迟很敏感, 阅读全文
posted @ 2024-10-19 19:54 yooooooo 阅读(108) 评论(0) 推荐(0) 编辑
摘要:1.前言 前面讲过USB一个传输由多个事务组成,一个事务由多个包实体组成。传输又分为控制传输、同步传输、批量传输、中断传输四种,今天我们主要讲解控制传输三个阶段及事务组成。 控制传输是一种特殊的传输方式,且传输过程相对复杂一些,但十分重要。当USB设备初次连接主机时,用控制传输传送控制命令等对设备进 阅读全文
posted @ 2024-10-19 19:44 yooooooo 阅读(109) 评论(0) 推荐(0) 编辑
摘要:本章介绍了符合GICv3架构的中断控制器的基本操作。它还描述了不同的编程接口。 一.中断类型 SPI(Shared Peripheral Interrupt)--共享外设中断 ​ 这是一个全局外设中断,可以路由到指定的PE,或路由到一组PE中的一个。 PPI (Private Peripheral 阅读全文
posted @ 2024-10-19 18:45 yooooooo 阅读(131) 评论(0) 推荐(0) 编辑
摘要:GICV3 PE是ARM架构中通用中断控制器(Generic Interrupt Controller)版本3的一个组件,PE代表处理器元素(Processor Element)。 GICV3是ARM提出的中断控制器架构,用于管理和分发系统中的中断。PE是GICV3架构中与每个处理器核心相关联的部分 阅读全文
posted @ 2024-10-19 18:26 yooooooo 阅读(35) 评论(0) 推荐(0) 编辑
摘要:本文是 Systrace 系列文章的第七篇,主要是是介绍 Android 中的 Vsync 机制。文章会从 Systrace 的角度来看 Android 系统如何基于 Vsync 每一帧的展示。Vsync 是 Systrace 中一个非常关键的机制,虽然我们在操作手机的时候看不见,摸不着,但是在 S 阅读全文
posted @ 2024-10-18 15:59 yooooooo 阅读(139) 评论(0) 推荐(0) 编辑
摘要:https://developer.arm.com/documentation/109242/0100/?lang=en 阅读全文
posted @ 2024-10-18 11:54 yooooooo 阅读(12) 评论(0) 推荐(0) 编辑
摘要:内核代码中充斥着大量的__iomem修饰的void类型的指针,像下面这样: void __iomem *devm_ioremap_resource(struct device *dev, const struct resource *res) { resource_size_t size; void 阅读全文
posted @ 2024-10-18 11:18 yooooooo 阅读(198) 评论(0) 推荐(0) 编辑
摘要:DMA(Direct Memory Access)的strict和non-strict模式是内存访问的两种不同方式,主要涉及数据一致性和性能之间的权衡。让我为您详细解释这两种模式的区别: Strict 模式(严格模式): 特性 Strict 模式 Non-Strict 模式 数据一致性 高 较低 性 阅读全文
posted @ 2024-10-14 22:31 yooooooo 阅读(27) 评论(0) 推荐(0) 编辑
摘要:概述 前两周有人询问DMA下的cache操作和dma-coherent。以前零碎看过代码。临时找,还没有找到。 这两天整理了调用流程,也找到了dma-coherent的用法。Linux的文档里没有详细说明dma-coherent的用法。根据代码,如果dma的设备树里有dma-coherent,Lin 阅读全文
posted @ 2024-10-14 14:16 yooooooo 阅读(47) 评论(0) 推荐(0) 编辑
摘要:GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1~V4(V2最多支持8个ARM core,V3/V4支持更多的ARM core,主要用于ARM64服务器系统结构)。目前 阅读全文
posted @ 2024-10-13 16:32 yooooooo 阅读(67) 评论(0) 推荐(0) 编辑
摘要:在 Linux 系统中,/proc/stat 文件的典型输出包含如下几类信息。以一个常见的 cat /proc/stat 输出为例: cpu 3357 0 4313 1362393 3 0 234 0 0 0 cpu0 1132 0 1232 340293 1 0 64 0 0 0 cpu1 945 阅读全文
posted @ 2024-10-12 17:13 yooooooo 阅读(140) 评论(0) 推荐(0) 编辑
摘要:内联函数(inline functions)通常是由编译器在编译时将函数的代码直接插入到每个调用点,而不是通过函数调用的方式执行。这意味着内联函数的代码在编译后不会像普通函数那样有一个单独的入口地址。因此,当使用像ftrace这样的基于函数入口点的跟踪工具时,内联函数就无法被直接跟踪,因为它们没有可 阅读全文
posted @ 2024-10-11 17:49 yooooooo 阅读(13) 评论(0) 推荐(0) 编辑
摘要:USB 3.0 枚举是指主机和设备之间通过USB协议进行初始化和通信配置的过程。在USB 3.0中,枚举过程的主要步骤包括电气连接建立、链路训练(LTSSM)、设备描述符读取等。以下是USB 3.0枚举的详细过程: 1 设备连接与电源管理 当USB设备插入USB 3.0端口时,以下步骤会开始: 供电 阅读全文
posted @ 2024-10-10 10:30 yooooooo 阅读(663) 评论(0) 推荐(0) 编辑
摘要:1.USB传输、事务、包的关系 USB传输、事务、包是从不同层次上去说明一次数据交互的三个概念。 举个例子可能更好些,"某领导和一个早起的程序员进行了一次交流,说了5件事"。 OK,其实这里的"这次交流"就相当于USB的一次传输,"说了5件事"就相当于这次传输过程中的5个事务,当然每件事肯定有若干句 阅读全文
posted @ 2024-10-09 22:25 yooooooo 阅读(134) 评论(0) 推荐(0) 编辑
摘要:描述符回顾总结 1.其实所有的描述符都是USB设备用来描述自己属性及用途的,所以必须在设备端实现对应的描述符,主机会在枚举此设备的时候根据设备实现的描述符去确定设备到底是一个什么样的设备、设备需要的总线资源、和设备的通讯方式等等。 2.每一个USB设备只有一个设备描述符,主要向主机说明设备类型、端点 阅读全文
posted @ 2024-10-09 21:22 yooooooo 阅读(323) 评论(0) 推荐(0) 编辑
摘要:一、简介 只是一个创建per-cpu线程执行用户提供的回调的机制。 内核中已存在的注册 static struct smp_hotplug_thread idle_inject_threads = { //drivers/powercap/idle_inject.c .store = &idle_i 阅读全文
posted @ 2024-10-09 21:11 yooooooo 阅读(55) 评论(0) 推荐(0) 编辑
摘要:前言 在上一篇 LINUX软中断-softirq的描述中,提到过ksoftirqd,这篇文章就介绍ksoftirqd ksoftirqd 是什么? ksoftirqd 是个内核线程,在创建的时候是绑定cpu的,每一个core对应生成一个ksoftirqd 线程 比如当前系统有4个core ~# ps 阅读全文
posted @ 2024-10-09 18:13 yooooooo 阅读(534) 评论(0) 推荐(0) 编辑
摘要:一、什么是NoC NOC(Network on Chip)是一种用于片上系统(SoC, System on Chip)中的通信架构,它在芯片内为处理器、存储器、I/O 设备和其他硬件模块之间提供数据通信。NOC 的目的是提高片内通信的效率,尤其是在多核处理器架构和大规模集成电路中。 在传统的片上系统 阅读全文
posted @ 2024-10-09 14:09 yooooooo 阅读(427) 评论(0) 推荐(0) 编辑
摘要:extcon,是External Connector的简称,用于抽象外部连接器,比如说Audio Jack、USB MicroB/TypeC接口等。它的原型是Android的switch-class驱动,经过修改后在kernel 3.4.0版本时被引入内核中。 Extcon (external co 阅读全文
posted @ 2024-10-08 16:02 yooooooo 阅读(73) 评论(0) 推荐(0) 编辑
摘要:简介 Dhrystone是测量处理器运算能力的最常见基准程序之一,常用于处理器的整型运算性能的测量。程序是用C语言编写的,因此C编译器的编译效率对测试结果也有很大影响。 Dhrystone是由Reinhold P. Weicker在1984年提出来的一个基准测试程序,其主要目的是测试处理器的整数运算 阅读全文
posted @ 2024-10-08 11:19 yooooooo 阅读(444) 评论(0) 推荐(0) 编辑
摘要:一、SMP管理 在继续讲解之前,我们先来说一下多CPU管理(这里的CPU是指逻辑CPU,在很多语境中CPU都是默认指的逻辑CPU,物理CPU要特别强调是物理CPU)。最开始的时候计算机都是单CPU的,叫做UP(Uni-Processor),操作系统也只支持UP。后来计算机慢慢发展成了多CPU(包括多 阅读全文
posted @ 2024-10-07 14:44 yooooooo 阅读(219) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示