自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Linux中断 -- 中断路由、优先级、数据和标识

承前文,本文从中断路由、优先级、数据结构和标识意义等方面对Linux内核中断进行一步的解析。

2024-01-27 00:06:45 1079

原创 Linux中断 -- 中断应答、嵌套、

本章主要从内核软件层面来看各中断控制器对中断信号处理&应答(关于硬件层面的处理硬件过程可以参考前文)。同样使用前文中GICv3 & PIO 中断控制器为硬件框架,介绍PIO接受到外部中断时软件层各控制器的应答(文中设定supports_deactivate_key 为false)

2024-01-09 23:40:04 1063

原创 Linux中断 -- Softirq & Tasklet

softirq顾名思义是通过软件触发的中断,与之前介绍的通过硬件的触发的中断相对应;两者在逻辑上又有一定的相关性。tasklet属于softirq的特殊类型,其他实现和触发方式有其他自身的特点。本文将就softirq的实现、触发、其与硬件中断的相关性,tasklet相对于softirq的特性进行介绍。

2024-01-08 22:03:34 941

原创 Linux中断 -- 级联中断控制器注册与中断处理

本文的目的在在于介绍中断控制器的注册过程及中断的处理,从软件系统的角度理解级联中断控制器。背景:Arm64处理器、Linux-4.14内核目录1.内核中关于中断控制器的宏定义1.1 IRQCHIP_DECLARE 宏1.2 IRQCHIP_OF_MATCH_TABLE宏1.3 irqchip相关变量2.中断控制器设备注册2.1 root interrupt controller2.1.1 系统初始化GICV3中断控制器的流程2.1.2 GICV3中断控制器的初始化2.2 child中断控制器的注册过程

2023-10-07 00:22:57 311

原创 ARM处理器 -- 处理器中的级联中断控制器

本文在以移动产品Arm处理器为例,介绍级联中断控制器。随着手机功能的增加,手机系统的复杂度也在不断的提升,处理器由之前的单核、演变为双核、多核,系统的中断控制器也有单一的GIC控制器演变问题级联结构的多中断控制器。

2023-08-13 08:15:35 228

原创 ARM处理器 -- ARM64 MPIDR_EL1寄存器

本文目的在于理解MPIDR_EL1寄存器,掌握处理器亲和寄存器作用。

2023-08-12 08:51:50 1462

原创 ARM处理器 -- 中断控制器GICv3

其他安全状态的中断被作为FIQ类型中断、此类异常被带入EL3执行环境,软件切换到EL3环境执行时,需要执行必要的上下文切换。软件分配LPI中断的中断号到Collections,便于高效的移动中断从一个PE到另一个PE。当PE已经在处理一个低优先级的中断时收到一个高优先级的中断信号,此时就有可能发生中断对PE的竞争。SPI、PPI、SGI中断的优先级为8bit,但是LPI的中断优先级只有6bit,低两位通常作为0. LPI也总是被当作Non-Secure Group1 中断。

2023-07-22 16:19:49 753

原创 DLKM module获取cmdline参数

Android GKI2.0方案中屏蔽了boot_command_line变量及cmd_line相关API,因此非built-in的内核module不能容易的获取command_line参数,故一些通过commad line参数来实现设备兼容方案不在适用。 如果有DLKM module必须通过获取command line来实现部分功能时,应怎么处理、怎样实现command line参数的获取?

2023-03-02 22:46:15 729

原创 Linux内存 -- Fixmap映射固定虚拟地址

继上文介绍内核在启动初期为内核段建立了临时映射页表,实现了内核物理地址到虚拟地址的映射;该映射完成后可以通过虚拟地址访问内核空间,但此段仅限于内核段的访问,内核之外的内存空间还不能使用虚拟地址进行访问,需要继续完成内存空间外的内存映射。要实现其他内存空间的映射就需要从fdt中解析系统的内存情况,要访问fdt就要先实现fdt的映射,即要引出本章的介绍的主角fixmap。

2022-10-29 15:55:16 689

原创 Linux内存 -- 内核空间物理与虚拟地址转换

内核启动过程中完成临时的内核空间页表创建后,就可以实现内核空间物理地址与对应虚拟地址间的相互转化,该转化过程可以通过__phys_to_kimg 、__kimg_to_phys实现

2022-10-21 19:17:19 1304

原创 Linux内存 -- 启动过程的临时页表创建

页表用时实现内存物理地址到虚拟地址的映射,实现虚拟地址到物理的转化;是虚、实内存地址转化的媒介。页表,是由物理地址向虚拟地址映射时创建的,由软件代码逻辑进行实现;虚拟地址向物理地址的转化需要借助MMU硬件单元实现

2022-10-14 20:13:45 1312

原创 Linux唤醒系统irq处理流程(2/2)

继上文,本文主要介绍第三部分介绍怎样配置irq中断可唤醒功能及注意事项。

2022-06-01 16:20:29 826

原创 Linux唤醒系统irq处理流程(1/2)

本文主要从软件的角度介绍唤醒系统中断的中断处理函数的执行流程,本文会分为三部分。第一部分介绍正常模式下系统中断处理函数的执行流程,第二部分介绍系统休眠状态时,唤醒系统的irq handle处理流程,第三部分介绍怎样配置irq中断可唤醒功能及注意事项。正常模式下中断函数处理流程 如下图,以MTK平台eint中断处理流程为例。系统处理处于中正常模式(非安全及其他异常模式)时,CPU会从el1_irq函数进入irq handle的处理流程,经过irq现场的保护后切入中断的处理...

2022-06-01 16:07:33 1324

原创 Linux resume流程

目录resume执行流程:resume各阶段主要动作: 本文主要介绍Linux系统resume唤醒的软件执行流程,相对于Linux suspend过程,resume是一个完全逆向过程。resume执行流程:Arm核linux系统的Suspend待机过程,是由suspend_ops->enter进入到Arm核固件级别的待机状态。Resume过程时也是由suepend_ops->enter退出固件及待机进入Linux系统...

2022-05-30 20:53:29 1444

原创 Linux interrupt相关

1. 查看interrupt信息cat /proc/interruptsa.非待机状态时如下,第一列对应的硬件映射的中断号;CPUX对应的列为该CPU处理的此 中断的次数;倒数第二列为对应的硬件中断号, 最后一列为中断明;b.待机模式如下,由于待机模式下只有主CPU0 在运行故只能看到CPU0上处理的该中断次数2.MTK平台获取eint中断寄存器状态,如外部中断3echo 3 > ...

2022-05-18 22:17:18 293

原创 Linux suspend流程

1.各种suspend状态及其对应关系和执行动作:suspend各状态宏 宏值 pm_labels /sys/power/state mem_sleep_labels /sys/power/mem_sleep 各状态待机动作 PM_SUSPEND_ON 0       PM_SUSPEND_TO_IDLE 1 freeze s2idlbe 1.停止用户空间程序运行 2.所有外设备设置低功耗状态 PM_.

2022-05-18 22:04:08 1633

原创 preloader charge

2022-02-07 13:44:38 239

原创 LK for charge

2022-02-06 18:04:50 183

原创 Charge IC logic Q&A

Q:Q4 关断有哪些影响 A: 1. 充电停止 2. Vbat 到 Vsys 通路被断开,Vbus 到 Vsys 通路不受影响Q: Q4 可能被打开的情况 A: 1. 手机时 shipmode 模式时插入充电器 2. 清除 BATFET_DIS 标志位 3. 设置 REG_RST 标志位 reset 所有寄存器设置(包含 BATFET_DIS 标志位) 4. QON pin 的逻辑高->低(低持续时间 tshipmode 1.25s – ...

2022-02-06 17:49:16 857

原创 linux thermal for mtk platform

2021-10-05 16:58:59 105

原创 uboot中DTS相关处理(1 )

1、boot img中各种img分布及各img加载到内存地址boot  imgbootimgimg szieMem Addrboot headerbootloader sz (2048B)读取到指定的数组结构中kernelkernel sz0x80008000RamdiskRamdisk sz0x8

2015-04-28 14:15:34 3855 4

原创 uboot中DTS相关处理

1、boot img中各种img分布及各img加载到内存地址 ![这里写图片描述](http://img.blog.csdn.net/20150428141021272)

2015-04-28 14:12:06 255

原创 Input event 分析

以gsensor器件为例:1、Gsensor上报ABS_ DISTANCE后,接着上报sync事件,当event core 检测到sync事件时,认为一包event数据完成【参考下文代码得出】。 static void XXX_pls_report_dps(unsigned char data, struct input_dev *input){ ……

2015-04-15 13:30:20 2529 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除