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

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

3天内不再提示

arm中断是怎么实现的

工程师邓生 来源:未知 作者:刘芹 2023-09-05 16:22 次阅读

arm中断是怎么实现的

首先,了解什么是中断。中断是指在CPU执行某个程序时,突然发生的一些事件需要CPU立即停止正在执行的程序并去执行该事件相应的程序,这个过程叫做中断。中断是系统中一个重要的机制,能够提高系统的实时性和可靠性。在ARM处理器中,中断的实现主要涉及到下面的几点。

一、中断控制器

ARM系统中,中断控制器是实现中断的重要组成部分。中断控制器的主要作用是监控外部硬件中断请求并向CPU发出中断请求信号,同时还需要根据优先级为CPU分配中断请求。

ARM中断控制器有两种类型:简单中断控制器(Simple Interrupt Controller,简称SIC)和通用中断控制器(Generic Interrupt Controller,简称GIC)。SIC适用于较为简单的系统,而GIC则适用于较为复杂的系统,支持更多的中断请求。具体地,GIC一般包含一个中央控制器,多个本地控制器和一个分配器。中央控制器负责处理高优先级中断故障,本地控制器负责处理本地外设的中断,分配器负责将中断请求分配给本地控制器。

二、中断向量表

在ARM中,中断向量表是用来存储中断服务例程(Interrupt Service Routine,简称ISR)的一组内存区域。中断向量表中有多个向量表项,每个向量表项对应一种中断类型,其中存储着相应的中断服务例程的入口地址。

中断服务例程是中断处理程序,用于响应中断事件。当中断请求发生时,中断控制器会向CPU发送中断请求,此时CPU读取中断向量表中相应的向量表项得到ISR的入口地址,然后跳转到该地址执行ISR。ISR会负责处理中断事件,并将处理结果返回。

三、中断的优先级

在ARM中,设备的中断请求有不同的优先级,优先级越高的请求将先被响应。中断优先级是在编译链接时静态确定的,每个设备都有一个预设的中断请求优先级,这些优先级由系统设计人员在初始化系统时进行设置。

在中断处理时,如果有多个中断同时发生,CPU会先执行优先级最高的中断,而其他中断则被挂起。一旦执行完毕,CPU会返回到挂起的中断程序中继续执行,如此循环直至所有中断都被处理完毕。

四、中断处理流程

当外部设备发生中断请求时,中断控制器会对请求进行处理:

1、中断请求的产生:外部设备发生某种事件的时候,向外部中断控制器发出中断请求。

2、中断控制器的处理:中断控制器接收到请求后,通过优先级算法,确定优先级最高的中断,然后发送一个中断请求到CPU。

3、中断向量表的查询:CPU响应中断请求后,根据请求所对应的中断类型,查询中断向量表得到对应的ISR入口地址。

4、执行ISR:CPU通过跳转到ISR入口地址开始执行ISR代码,中断服务例程开始处理中断事件。

5、保存现场:ISR代码中,对于需要暂停程序的部分,需要保存当前程序现场以保证中断处理结束后能正确恢复执行的指令。

6、处理中断:在ISR中,处理中断的对应逻辑,确定该中断事件对应的操作,并执行相应的操作完成该中断的处理。

7、恢复现场:中断处理结束后,ISR需要恢复保存的现场,以便中断结束后程序能继续执行。

通过以上的流程,ARM的中断处理功能才可以有效地响应外部设备中断请求,并完成对应的中断处理工作,起到保障系统实时性和可靠性的作用。

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

    关注

    134

    文章

    8653

    浏览量

    361847
  • 中断控制器
    +关注

    关注

    0

    文章

    59

    浏览量

    9373
收藏 人收藏

    评论

    相关推荐

    arm中断是怎么实现

    ARM中断实现是通过中断控制器和异常模式实现的。ARM处理器通过
    的头像 发表于 01-05 15:18 269次阅读

    gic和ARM Core的连接

    (1)gicv2和ARM Core的连接 ARM cortex-A系列处理器,提供了4个管脚给soc,实现外界中断的传递 • ◾nIRQ:物理普通
    的头像 发表于 11-07 18:07 306次阅读
    gic和<b class='flag-5'>ARM</b> Core的连接

    中断ARM体系中对中断的处理

    今天来看一下中断ARM体系中对中断的处理,直接进入正题。 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回
    的头像 发表于 11-07 17:11 268次阅读
    <b class='flag-5'>中断</b>及<b class='flag-5'>ARM</b>体系中对<b class='flag-5'>中断</b>的处理

    ARM处理器中断向量表

    ARM处理器中,当一个中断信号被触发时,中断控制器会发出一个中断请求,并将该请求传递给CPU。 CPU接收到中断请求后,会根据
    的头像 发表于 10-30 17:19 894次阅读

    如何在特权模式下用arm汇编指令使能和禁止irq中断

    如何在特权模式下用arm汇编指令使能和禁止irq中断? 在 ARM 系统中,中断是非常常见的一种事件。在特权模式下,可以使用 ARM 汇编指
    的头像 发表于 10-19 16:42 798次阅读

    ARM9中断中(C语言)如何实现复位功能,而不是返回中断前的状态?

    ARM9中断中(C语言)如何实现复位功能,而不是返回中断前的状态? 在ARM9处理器的中断中,当
    的头像 发表于 10-19 16:42 792次阅读

    ARM中的异常中断是如何实现进入中断程序的?如何进入呢?

    ARM中的异常中断是如何实现进入中断程序的?如何进入呢? 在计算机系统中,异常和中断是两个常见的概念。 在
    的头像 发表于 10-19 16:36 566次阅读

    arm处理器有哪些中断源?arm处理器对异常中断的响应过程

    arm处理器有哪些中断源?arm处理器对异常中断的响应过程  ARM处理器是一种广泛使用的嵌入式处理器,运行着各种不同类型的应用程序。为了保
    的头像 发表于 10-19 16:35 823次阅读

    基于ARM的指纹采集仪的设计与实现

    电子发烧友网站提供《基于ARM的指纹采集仪的设计与实现.pdf》资料免费下载
    发表于 10-12 11:37 1次下载
    基于<b class='flag-5'>ARM</b>的指纹采集仪的设计与<b class='flag-5'>实现</b>

    基于ARM9的USB设计与实现

    电子发烧友网站提供《基于ARM9的USB设计与实现.pdf》资料免费下载
    发表于 10-11 11:35 0次下载
    基于<b class='flag-5'>ARM</b>9的USB设计与<b class='flag-5'>实现</b>

    ARM通用中断控制器GIC之中断控制介绍

    对于SGI中断是否能通过上述两个寄存器来enable和disable,这个由具体的实现( IMPLEMENTATION DEFINED)来定义。
    发表于 09-19 17:09 847次阅读
    <b class='flag-5'>ARM</b>通用<b class='flag-5'>中断</b>控制器GIC之<b class='flag-5'>中断</b>控制介绍

    什么是ARM中断事件?ARM中断异常处理具体过程

    ARM处理器是一种流行的处理器架构,用于许多现代移动设备和嵌入式系统中。中断和异常是ARM处理器中的两个重要概念,它们是处理器中断程序执行的关键机制。
    发表于 09-05 15:45 835次阅读
    什么是<b class='flag-5'>ARM</b><b class='flag-5'>中断</b>事件?<b class='flag-5'>ARM</b><b class='flag-5'>中断</b>异常处理具体过程

    ARM CoreLink GIC-500通用中断控制器技术参考手册

    GIC-500是一个构建时可配置的中断控制器,最多支持128个内核。GIC-500仅支持实现ARMv8架构的内核,以及具有标准GIC流协议接口的GIC CPU接口,如Cortex®-A57和Cortex-A53。它实现
    发表于 08-02 14:02

    Linux内核中断屏蔽的实现

    中断屏蔽,正如其名,屏蔽掉CPU的中断响应功能,解决并发引起的竞态问题。
    发表于 07-04 11:15 299次阅读

    什么是ARM_TXEV或“ARM tx事件”中断

    几个 NXP 数据表(例如,LPC55S69)引用“ARM tx event”或“ARM_TXEV”并说它是来自 Cortex 内核的中断信号。但这个术语从未被定义过,而且 ARM
    发表于 05-16 06:41