
子类__中断篇
文章平均质量分 88
RK3399平台入门到精通系列之中断子系统篇
内核笔记
一直从业于半导体行业,曾为Linux内核开源文档社区提交过若干文档。
主要从事Linux、Android相关系统软件开发工作,负责Soc芯片BringUp及系统软件开发,喜欢阅读内核源代码,在不断的学习和工作中深入理解内存管理,进程调度,文件系统,设备驱动等内核子系统。
展开
-
RK3399平台开发系列讲解(中断篇)ARM64异常处理详解
📢ARM64的处理器支持多个异常等级(exception level),其中EL0是用户模式,EL1是内核模式,也称为特权模式;EL2 是虚拟化监管模式,EL3则是安全世界的模式。在ARMv8架构下,异常分为异步异常和同步异常,其中Linux内核中的异常属于同步异常,而IRQ和FIQ都属于异步异常。原创 2023-01-14 00:35:55 · 3493 阅读 · 2 评论 -
RK3399平台开发系列讲解(中断篇)掌握信号处理
📢信号在操作系统中有悠久的历史,信号的概念和使用方式都非常简单,但是要编写出真正实用而稳定的信号处理程序却并不容易。原创 2022-12-15 22:00:00 · 1396 阅读 · 0 评论 -
RK3399平台开发系列讲解(中断篇)中断控制器驱动初始化
ARM64架构使用扁平设备树(Flattened Device Tree,FDT)描述板卡的硬件信息,好处是可以把板卡特定的代码从内核中删除,编译生成通用的板卡无关的内核。驱动开发者首先编写设备树源文件(Device Tree Source,DTS),存放在目录“arch/arm64/boot/dts”下,然后使用设备树编译器(Device Tree Compiler,DTC)把设备树源文件转换成设备树二进制文件(Device Tree Blob,DTB),最后把设备树二进制文件写到存储设备上。原创 2022-11-24 22:00:00 · 1755 阅读 · 3 评论 -
RK3399平台开发系列讲解(中断篇)中断控制器(Generic Interrupt Controller)
📢外围设备不是把中断请求直接发给处理器,而是发给中断控制器,由中断控制器转发给处理器。ARM公司提供了一种标准的中断控制器,称为通用中断控制器(Generic Interrupt Controller,GIC)。目前GIC架构规范有4个版本:v1~v4。GIC v2最多支持8个处理器,GIC v3最多支持128个处理器,GIC v3和GIC v4只支持ARM64处理器。原创 2022-11-24 00:08:06 · 1568 阅读 · 1 评论 -
RK3399平台开发系列讲解(中断篇)13.18、中断控制器数据结构详解
📢Linux系统上的设备通过IRQ向内核通知特定事件。CPU提供的IRQ线可为连接设备共享或独占,这样当设备需要CPU时就可以向CPU发送请求。CPU获得请求后,停止其实际工作,保存其上下文,以便服务于设备发出的请求。在服务设备后,其状态恢复到中断发生时它停止的准确位置。因为IRQ线数量较多,所以需要另一个设备替CPU来负责管理它们。原创 2022-09-27 23:16:26 · 1799 阅读 · 9 评论 -
RK3399平台开发系列讲解(中断篇)13.17、中断处理方式的汇总
中断处理方式的汇总原创 2022-07-18 21:00:49 · 1649 阅读 · 5 评论 -
RK3399平台开发系列讲解(中断篇)13.16、request_irq的实现
设备驱动开发人员常用的接口是request_irq()/request_threaded_irq()原创 2022-07-18 23:30:00 · 1487 阅读 · 5 评论 -
RK3399平台开发系列讲解(中断篇)13.15、SoftIRQ详解
本篇章将详细介绍软中断。原创 2022-04-02 23:15:28 · 2348 阅读 · 9 评论 -
RK3399平台开发系列讲解(中断篇)13.14、中断下半部WorkQueue编程接口介绍
📢本篇章将介绍如何使用WorkQueue,介绍WorkQueue接口。原创 2022-03-31 22:45:42 · 2087 阅读 · 7 评论 -
RK3399平台开发系列讲解(中断篇)13.13、中断下半部WorkQueue实现原理
本篇将介绍中断下半部WorkQueue实现原理。原创 2022-03-30 23:32:13 · 2171 阅读 · 9 评论 -
RK3399平台开发系列讲解(中断篇)13.10、workqueue工作队列
进程上下文中执行原创 2022-02-12 17:35:12 · 2258 阅读 · 9 评论 -
RK3399平台开发系列讲解(中断篇)13.11、ARM的异常处理过程
ARM的异常处理过程原创 2022-03-27 00:38:43 · 2425 阅读 · 6 评论 -
RK3399平台开发系列讲解(中断篇)13.12、中断下半部Tasklet实现原理
本篇将介绍中断下半部Tasklet实现原理。原创 2022-03-29 22:49:38 · 2165 阅读 · 11 评论 -
RK3399平台开发系列讲解(中断篇)13.9、信号的实现
信号的实现原创 2022-02-02 23:15:06 · 1650 阅读 · 9 评论 -
RK3399平台开发系列讲解(中断篇)13.8、怎么理解Linux软中断?
Linux 中的中断处理程序分为上半部和下半部:上半部对应硬件中断,用来快速处理中断。下半部对应软中断,用来异步处理上半部未完成的工作。Linux 中的软中断包括网络收发、定时、调度、RCU 锁等各种类型,可以通过查看 /proc/softirqs 来观察软中断的运行情况。原创 2021-10-31 21:29:18 · 4526 阅读 · 13 评论 -
RK3399平台开发系列讲解(中断篇)13.4、CMWQ(Concurrency Managed Workqueue)
workqueue是内核中重要的机制,当您要在单独的进程上下文中执行特定任务时使用,并且广泛用于内核中的各个位置。这可以看作是线程池的概念,在创建工作队列时,会先创建工作线程,然后在必要的工作发生时使用线程来执行工作。原创 2021-04-24 15:24:44 · 2262 阅读 · 7 评论 -
RK3399平台开发系列讲解(中断篇)13.2、图解workqueue结构体
Workqueue工作队列能睡眠:利用进程上下文来执行中断处理中耗时的任务Softirq和Tasklet在处理任务时不能睡眠原创 2021-04-09 23:49:26 · 2445 阅读 · 8 评论 -
RK3399平台开发系列讲解(中断篇)13.1、中断描述符的介绍及中断注册
1. 硬件中断号到`Linux irq`中断号的映射,并创建好`irq_desc`中断描述符; 2. 中断注册时,先获取设备的中断号,根据中断号找到对应的`irq_desc`,并将设备的中断处理函数添加到`irq_desc`中; 3. 设备触发中断信号时,根据硬件中断号得到`Linux irq`中断号,找到对应的`irq_desc`,最终调用到设备的中断处理函数;原创 2021-06-15 10:43:15 · 3249 阅读 · 9 评论 -
RK3399平台开发系列讲解(中断篇)13.8、中断的注册:request_irq
这里需要说明一下,这里的 irq 并不是真正的、物理的中断信号,而是一个抽象的、虚拟的中断信号。因为物理的中断信号和硬件关联比较大,中断控制器也是各种各样的。作为内核,我们不可能写程序的时候,适配各种各样的硬件中断控制器,因而就需要有一层中断抽象层。这里虚拟中断信号到中断描述结构的映射,就是抽象中断层的主要逻辑。原创 2021-10-01 01:54:33 · 2139 阅读 · 9 评论 -
RK3399平台开发系列讲解(中断篇)13.7、上半部和下半部
中断子系统中有一个重要的设计机制,那就是Top-half和Bottom-half,将紧急的工作放置在Top-half中来处理,而将耗时的工作放置在Bottom-half中来处理,这样确保Top-half能尽快完成处理原创 2018-06-27 22:53:17 · 1612 阅读 · 12 评论 -
RK3399平台开发系列讲解(中断篇)13.3、workqueue初始化
WorkQueue准备运行两次,前半部分在workqueue_init_early()中创建基本结构,后半部分在workqueue_init()函数中进行实际操作。原创 2021-04-18 21:12:49 · 2393 阅读 · 9 评论 -
RK3399平台开发系列讲解(中断篇)13.5、Linux Workqueue的使用
平台内核版本安卓版本RK3399Linux4.4Android7.1文章目录http://kernel.meizu.com/linux-workqueue.htmlWorkqueue 是内核里面很重要的一个机制,特别是内核驱动,一般的小型任务 (work) 都不会自己起一个线程来处理,而是扔到 Workqueue 中处理。Workqueue 的主要工作就是用进程上下文来处理内核中大量的小任务。所以 Workqueue 的主要设计思想:一个是并行,多个work 不要相互...原创 2021-03-06 15:56:24 · 2373 阅读 · 8 评论 -
RK3399平台开发系列讲解(中断篇)13.6、中断子系统
中断是处理器用于异步处理外围设备请求的一种机制,可以说中断处理是操作系统管理外围设备的基石,此外系统调度、核间交互等都离不开中断,它的重要性不言而喻。原创 2017-08-24 16:05:43 · 1410 阅读 · 9 评论