Linux
文章平均质量分 82
hello_yj
这个作者很懒,什么都没留下…
展开
-
Linux中断 -- 中断路由、优先级、数据和标识
承前文,本文从中断路由、优先级、数据结构和标识意义等方面对Linux内核中断进行一步的解析。原创 2024-01-27 00:06:45 · 1723 阅读 · 0 评论 -
Linux中断 -- 中断应答、嵌套、
本章主要从内核软件层面来看各中断控制器对中断信号处理&应答(关于硬件层面的处理硬件过程可以参考前文)。同样使用前文中GICv3 & PIO 中断控制器为硬件框架,介绍PIO接受到外部中断时软件层各控制器的应答(文中设定supports_deactivate_key 为false)原创 2024-01-09 23:40:04 · 1282 阅读 · 0 评论 -
Linux中断 -- Softirq & Tasklet
softirq顾名思义是通过软件触发的中断,与之前介绍的通过硬件的触发的中断相对应;两者在逻辑上又有一定的相关性。tasklet属于softirq的特殊类型,其他实现和触发方式有其他自身的特点。本文将就softirq的实现、触发、其与硬件中断的相关性,tasklet相对于softirq的特性进行介绍。原创 2024-01-08 22:03:34 · 1099 阅读 · 0 评论 -
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 · 587 阅读 · 0 评论 -
ARM处理器 -- 处理器中的级联中断控制器
本文在以移动产品Arm处理器为例,介绍级联中断控制器。随着手机功能的增加,手机系统的复杂度也在不断的提升,处理器由之前的单核、演变为双核、多核,系统的中断控制器也有单一的GIC控制器演变问题级联结构的多中断控制器。原创 2023-08-13 08:15:35 · 466 阅读 · 0 评论 -
ARM处理器 -- ARM64 MPIDR_EL1寄存器
本文目的在于理解MPIDR_EL1寄存器,掌握处理器亲和寄存器作用。原创 2023-08-12 08:51:50 · 2333 阅读 · 0 评论 -
Linux内存 -- Fixmap映射固定虚拟地址
继上文介绍内核在启动初期为内核段建立了临时映射页表,实现了内核物理地址到虚拟地址的映射;该映射完成后可以通过虚拟地址访问内核空间,但此段仅限于内核段的访问,内核之外的内存空间还不能使用虚拟地址进行访问,需要继续完成内存空间外的内存映射。要实现其他内存空间的映射就需要从fdt中解析系统的内存情况,要访问fdt就要先实现fdt的映射,即要引出本章的介绍的主角fixmap。原创 2022-10-29 15:55:16 · 840 阅读 · 0 评论 -
Linux内存 -- 内核空间物理与虚拟地址转换
内核启动过程中完成临时的内核空间页表创建后,就可以实现内核空间物理地址与对应虚拟地址间的相互转化,该转化过程可以通过__phys_to_kimg 、__kimg_to_phys实现原创 2022-10-21 19:17:19 · 1570 阅读 · 0 评论 -
Linux内存 -- 启动过程的临时页表创建
页表用时实现内存物理地址到虚拟地址的映射,实现虚拟地址到物理的转化;是虚、实内存地址转化的媒介。页表,是由物理地址向虚拟地址映射时创建的,由软件代码逻辑进行实现;虚拟地址向物理地址的转化需要借助MMU硬件单元实现原创 2022-10-14 20:13:45 · 1770 阅读 · 0 评论 -
Linux唤醒系统irq处理流程(2/2)
继上文,本文主要介绍第三部分介绍怎样配置irq中断可唤醒功能及注意事项。原创 2022-06-01 16:20:29 · 997 阅读 · 0 评论 -
Linux唤醒系统irq处理流程(1/2)
本文主要从软件的角度介绍唤醒系统中断的中断处理函数的执行流程,本文会分为三部分。第一部分介绍正常模式下系统中断处理函数的执行流程,第二部分介绍系统休眠状态时,唤醒系统的irq handle处理流程,第三部分介绍怎样配置irq中断可唤醒功能及注意事项。正常模式下中断函数处理流程 如下图,以MTK平台eint中断处理流程为例。系统处理处于中正常模式(非安全及其他异常模式)时,CPU会从el1_irq函数进入irq handle的处理流程,经过irq现场的保护后切入中断的处理...原创 2022-06-01 16:07:33 · 1565 阅读 · 0 评论 -
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 · 1734 阅读 · 0 评论 -
Linux interrupt相关
1. 查看interrupt信息cat /proc/interruptsa.非待机状态时如下,第一列对应的硬件映射的中断号;CPUX对应的列为该CPU处理的此 中断的次数;倒数第二列为对应的硬件中断号, 最后一列为中断明;b.待机模式如下,由于待机模式下只有主CPU0 在运行故只能看到CPU0上处理的该中断次数2.MTK平台获取eint中断寄存器状态,如外部中断3echo 3 > ...原创 2022-05-18 22:17:18 · 372 阅读 · 0 评论 -
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 · 1804 阅读 · 0 评论