linux内核 --中断实现原理

本文详细探讨了中断原理,包括启动装载器、Linux内核、中断控制器、GIC版本以及中断在ARM架构中的应用。文章还涉及中断的产生、硬件中断号、IRQ编号管理、中断注册API和中断子系统的层次结构,旨在帮助应用和固件工程师理解中断在Linux系统中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,中断原理及注册与系统架构

1,bootloader(启动装载)、linux内核(kernel)与文件系统(rootfs)。

2,应用工程师(c标准库函数, linux API应用实现,QT,miniGUI等)

3,固件工程师(linux移植, L设备驱动程序设计,Bootloader)

4,中断是由软件或者硬件触发的一种事件,引起CPU的注意力。

5,中断控制器:将所有中断发起的中断,通过中断控制器的变成,可以控制每个中断源的优先级,也可以关闭和打开一个中断的操作。

6,中断产生:在硬件电路中,中断产生只有两种:电平触发方式和边沿触发方式。

exp:ARM案例分析如下:(硬件中断流程)

GIC版本(V1---V4)

GICV1:最多支持8个PE:可处理多达1020个中断源:案例扩展支持:ARM Cortex-A5/A9/A7

GICV4:包括V1 V2 V3所有功能,直接注入虚拟中断:ARM cortex-A53 A74

7,硬件中断号(物理中断号),linux为系统中注册每一个中断源,都会分配一个唯一编号来识别此中断(IRQ编号)。

8,IRQ编号从0-31,那CPU收到中断之后,软件根据0-31中断号是分不清从哪一个终端过来,需要中断控制器本身的编号 + IRQ编号。

9,中断注册:linux中断子系统向驱动程序提供注册中断的API。  Request_irq(),  request_threaded_irq()

10,中断子系统层次结构如下:

硬件封装层所使用的体系架构相关的源码,直接用struct irq_chip对中断控制器的接口抽象。

驱动开发不需要关注底层实现,只需要学会一部分API即可:

中断描述符(irq_desc)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值