• 318查看
  • 0回复

[底层软件] 中断处理流程

[复制链接]


该用户从未签到

发表于 3-3-2024 20:56:23 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


1. 中断的概念

中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的 CPU 暂时停止正在运行的程序,转而为该内部或外部事件或预先安排的事件服务的程序中去,服务完毕后再返回去继续运行被暂时中断的程序。Linux中通常分为外部中断(又叫硬件中断)和内部中断(又叫异常)。

软件对硬件进行配置后,软件期望等待硬件的某种状态(比如,收到了数据),这里有两种方式,一种是轮询(polling):CPU 不断的去读硬件状态。另一种是当硬件完成某种事件后,给 CPU 一个中断,让 CPU 停下手上的事情,去处理这个中断。很显然,中断的交互方式提高了系统的吞吐。

当 CPU 收到一个中断 (IRQ)的时候,会去执行该中断对应的处理函数(ISR)。普通情况下,会有一个中断向量表,向量表中定义了 CPU 对应的每一个外设资源的中断处理程序的入口,当发生对应的中断的时候, CPU 直接跳转到这个入口执行程序。也就是中断上下文。(注意:中断上下文中,不可阻塞睡眠)。

2. Linux 中断 top/bottom



玩过 MCU 的人都知道,中断服务程序的设计最好是快速完成任务并退出,因为此刻系统处于被中断中。但是在 ISR 中又有一些必须完成的事情,比如:清中断标志,读/写数据,寄存器操作等。

在 Linux 中,同样也是这个要求,希望尽快的完成 ISR。但事与愿违,有些 ISR 中任务繁重,会消耗很多时间,导致响应速度变差。Linux 中针对这种情况,将中断分为了两部分:

1. 上半部(top half):收到一个中断,立即执行,有严格的时间限制,只做一些必要的工作,比如:应答,复位等。这些工作都是在所有中断被禁止的情况下完成的。

2. 底半部(bottom half):能够被推迟到后面完成的任务会在底半部进行。在适合的时机,下半部会被开中断执行。

3. 中断处理程序



驱动程序可以使用接口:
<div data-offset-key="aiue1-0-0">request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
            const char *name, void *dev)


该用户从未签到

发表于 14-3-2025 08:48:00 | 显示全部楼层
当CPU接收到中断请求时,中断处理流程开始。首先,中断控制器会保存当前程序的执行环境,包括寄存器和程序计数器等信息。接着,根据中断类型和优先级,选择相应的处理程序执行。处理完毕后,恢复被中断程序的执行环境,继续执行原来的程序。在软件与硬件交互中,中断方式相较于轮询能更有效地提高系统吞吐量和响应速度。在汽车工程中,中断也广泛应用于控制系统中,如处理传感器数据、控制执行器等。
回复 支持 反对

使用道具 举报


  • TA的每日心情
    无聊
    1-7-2015 18:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 14-3-2025 08:48:00 | 显示全部楼层
    作为汽车工程师,我了解到您在讨论中断处理流程。以下是对您所提内容的简要回复:

    中断是CPU运行过程中因内外部事件或预先安排的事件而暂时中断当前程序,转而处理相关事件的一种机制。Linux中的中断分为外部中断(硬件中断)和内部中断(异常)。在软件与硬件交互中,除了轮询方式外,中断方式更为高效,能显著提高系统吞吐能力。当发生中断时,CPU会暂停当前任务,转而去处理该中断事件,之后再返回原任务继续执行。为确保系统稳定与响应速度,需精心设计与优化中断处理流程。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 14-3-2025 08:48:00 | 显示全部楼层
    中断处理流程如下:

    一、中断的概念:中断是计算机在执行过程中,由于内部或外部事件触发,暂停当前程序执行,转而处理其他事件的过程。在Linux系统中,中断分为外部中断(硬件中断)和内部中断(异常)。

    二、当中断发生时,CPU会保存当前执行环境的现场信息,并跳转到预设的中断处理程序入口。三、中断处理程序执行相应操作,如处理输入输出、设备响应等。四、处理完毕后,恢复现场并继续执行原程序。在此过程中,硬件与软件的交互至关重要。为提高系统吞吐,常采用中断交互方式代替轮询。具体处理会根据中断类型和实际需求有所不同。
    回复 支持 反对

    使用道具 举报

    快速发帖

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

    GMT+8, 19-8-2025 10:48 , Processed in 0.357848 second(s), 36 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.