0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

中断的完整流程是什么样子

麦辣鸡腿堡 来源:TrustZone 作者:TrustZone 2023-10-30 17:12 次阅读

如何从软件与硬件的角度去看一个中断,一个中断的完整流程应该是什么样子?

•创建对应的中断服务函数(软件):在编写操作系统或应用程序时,需要为每个中断源创建一个对应的中断服务函数(Interrupt Service Routine, ISR)。这个函数是用于处理特定中断的程序,当发生中断时,处理器会跳转到这个函数执行相应的操作。

•将中断服务函数绑定到特定的中断号,也叫中断注册(软件):在操作系统或硬件系统中,需要将每个中断源与相应的中断号进行绑定。这个过程通常在初始化时完成,以确保当发生中断时能够正确地调用相应的中断服务函数。这个绑定可以通过编程实现,例如在Linux系统中可以使用register_interrupt函数将中断服务函数注册到特定的中断号。

•模块产生原始中断 (逻辑):当某个硬件设备需要中断处理器服务时,它会向中断控制器发送一个中断请求。这个请求可能由硬件信号线或特定协议(如PCI Express)发送。例如,当硬盘读写错误时,硬盘控制器会向中断控制器发送一个中断请求。

原始中断是指当某个设备或部件需要CPU的注意时,它会通过向CPU发送一个中断信号来请求CPU的注意。这个中断信号是由硬件电路产生的,是电信号,可以被CPU感知到。原始中断通常是由硬件设备或系统自发产生的,例如键盘按键、定时器、打印机等。

•经过int_mask判断后未被屏蔽从而中断状态拉高 (逻辑):中断控制器接收到中断请求后,会根据int_mask判断该中断是否被屏蔽。如果未被屏蔽,则将中断状态拉高,以便处理器能够感知到这个中断请求。这个过程中断控制器会根据int_mask中的位图判断当前的中断是否被屏蔽,如果未被屏蔽则将对应的中断状态位拉高。

中断的int_mask是中断掩码。它是一个只读寄存器,用于显示哪些位当前被屏蔽,哪些位未被屏蔽/启用。通过设置int_mask,可以屏蔽或开启某些中断。

•模块顶层信号 xxx_int拉高后,送给特定中断号对应处理器(CPU&MCU等)的对应bit (逻辑):当中断状态被拉高后,模块顶层信号 xxx_int 会被拉高,并将这个信号送给特定中断号对应处理器的对应bit。这个过程是由硬件逻辑实现的,通常与处理器的架构和中断控制器的设计有关。例如,在x86架构的计算机中,当某个中断状态被拉高后,对应的处理器会通过APIC总线将对应的中断信号发送给处理器。

•中断信号拉高后,进入对应bit的中断服务函数(逻辑):当处理器的对应bit接收到中断信号后,处理器会跳转到相应的中断服务函数去处理这个中断。这个过程是由硬件自动完成的,通常与处理器的架构和操作系统的设计有关。例如,在x86架构的计算机中,当处理器接收到一个中断信号后,它会通过CSIP和IVT寄存器跳转到对应的中断服务函数执行相应的操作。

硬件层面,中断系统需要硬件设备(如中断控制器)来捕捉中断信号,并将信号传递给CPU。在接收到中断信号后,CPU会根据中断号在中断向量表中查找对应的入口地址,然后跳转到这个地址执行对应的中断服务程序。这个过程是由硬件自动执行的,不需要软件的参与。

•执行中断服务函数的内容 (软件):在中断服务函数中,会根据设备的需求进行相应的操作,例如读取数据、发送响应等。这个过程是由软件实现的,通常与设备的驱动程序和操作系统的设计有关。例如,在Linux系统中,当执行完一个中断服务函数后,它通常会通过调用handle_irq_event函数来处理设备的事件。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 设备
    +关注

    关注

    2

    文章

    4172

    浏览量

    69273
  • 中断
    +关注

    关注

    5

    文章

    884

    浏览量

    41026
  • 函数
    +关注

    关注

    3

    文章

    3882

    浏览量

    61310
收藏 人收藏

    评论

    相关推荐

    最早的电池是什么样子的?

    最早的电池是什么样子的?           电池
    发表于 03-10 08:49 1.8w次阅读

    在发生超范围情况时,ADC的输出数据是什么样子

    在发生超范围情况时,ADC的输出数据是什么样子
    发表于 12-21 06:20

    V0图形是什么样子的?

    V0的图形是什么样子的图形呢?求高手解答!!!!!!!!1
    发表于 03-10 00:25

    请问电容滤波电路经过电容滤波之后会是什么样子

    上面是简单的电容滤波电路,比如+5V的电源夹杂了一个sin(ωt)的信号,那么经过电容滤波之后会是什么样子?希望高人能从定性和定量两方面来分析分析。比如:当sin(ωt)增大的时候会是什么样子?当sin(ωt)的减小的时候会是什么样子
    发表于 09-17 21:54

    电机的接线顺序是什么样子的呀

    新入手HVMTRPFCKIT开发套件,选配的是永磁同步电机PMSM。电机的接线顺序是什么样子的呀?电机的红黑白三根线如何对应接口开发板的UVW?编码器的顺序是做好的吗?
    发表于 06-17 15:14

    电路的传输特性会变成什么样子

    记得是从刚刚学模电的时候开始,每次看到一个运放电路,就会想,如果把这个电路的同相输入端和反向输入端换一下,那么电路的传输特性会变成什么样子呢?
    发表于 02-26 08:39

    金属箔电阻的内在是什么样子

    金属箔电阻的内在是什么样子
    发表于 03-11 08:09

    IC设计完整流程分哪几个部分

    IC设计完整流程及工具IC的设计过程可分为两个部分,分别为:前端设计(也称逻辑设计)和后端设计(也称物理设计),这两个部分并没有统一严格的界限,凡涉及到与工艺有关的设计可称为后端设计。前端设计的主要
    发表于 07-28 07:51

    请问自制的RISC-V是什么样子的?

    自制的RISC-V是什么样子的?
    发表于 12-28 06:10

    请问自制的RISC-V是什么样子的?

    自制的RISC-V是什么样子的?
    发表于 03-29 19:14

    vga接口是什么样子

    vga接口是什么样子 VGA 是 Video Graphics Adapter(Array) 的缩写,信号类型为模拟类型,显示卡端的接口为 9 针
    发表于 11-27 12:42 8788次阅读

    1394接口是什么样子

    1394接口是什么样子:大概长的就和如下图片一样了。 下面有图片和接口定义 IEEE 1394-1995:Pin No. Signal Name Signal Inter ConnectionInter Connection with i-
    发表于 11-27 12:44 8463次阅读

    苹果13长什么样子 苹果13外观效果图

    苹果13长什么样子?苹果13外观效果图怎么样?
    的头像 发表于 09-03 17:41 1.5w次阅读

    PCB设计完整流程

    一站式PCBA智造厂家今天为大家讲讲PCB设计流程都有哪些?PCB设计完整流程。 PCB设计完整流程 1、前期准备 前期准备包括准备元件库和原理图。在进行PCB设计之前,首先要准备好原理图SCH
    的头像 发表于 03-24 09:03 6935次阅读

    下一代硅光子技术会是什么样子

    下一代硅光子技术会是什么样子
    的头像 发表于 07-05 14:48 369次阅读
    下一代硅光子技术会是<b class='flag-5'>什么样子</b>?