设备树的中断

本文介绍了中断的概念,强调中断与异常的区别,并详细阐述了ARM处理器中中断的处理流程,包括初始化、异常向量表、中断描述结构体(irq_desc)以及Linux内核如何处理中断,特别是中断描述符的handler_irq函数和irqaction结构体的角色。还讨论了中断号的演变,涉及irq_domain和虚拟中断号(virq)的计算。
摘要由CSDN通过智能技术生成

中断的概念

对于中断流程不了解的伙伴可以去看看我之前写过的文章,点击文章的链接出,我这里简单描述下,一般来说,中断是属于异常的一种,但是中断是可以屏蔽的,对于异常它是不可以屏蔽的,如下图所示,对于中断我们需要设置其中断源,图中的按键,定时器,网络数据…就是会触发中断的中断源,我可以在中断控制器中设置其是否屏蔽该中断,而对于异常部分一般是系统的出错,这种出错必须告知CPU,所以是不可以屏蔽的,当发送中断时,CPU跳到特定的地址执行指令,这个地址一般和处理器平台相关,这条指令一般是一条跳转指令跳到一个处理入口,然后保护现场,调用处理函数(如果是irq中断在处理函数还需要判断中断源然后执行相应的处理工作),恢复现场,
在这里插入图片描述
ARM对异常(中断)的使用过程
1.初始化: a.设置中断源,让它可以产生中断 b.设置中断控制器(屏蔽,设置优先级) c.设置CPU总开关(使能中断)
2.正常执行程序中
3.有中断产生,通知中断控制器,中断控制器通知CPU,跳到不同的地址执行程序,这些地址构成一张异常向量表,这些地址只是一条跳转指令,跳去执行某个函数
4.在该函数中,先保护现场,处理异常(分辨中断源,再调用不同的函数),恢复现场

LINUX对中断处理的处理流程

在这里插入图片描述
在ARM9中可以看到在中断控制器中它有32位,每一位代表一种中断,也就是说这个中断控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值