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

    文章

    9020

    浏览量

    366332
  • 中断控制器
    +关注

    关注

    0

    文章

    59

    浏览量

    9428
收藏 人收藏

    评论

    相关推荐

    ARM处理器的异常中断响应过程

    ARM处理器的异常中断响应是嵌入式系统设计中一个至关重要的环节,它确保了系统在面对内部或外部事件时能够稳定、可靠地运行。
    的头像 发表于 09-10 11:18 600次阅读

    stm32怎样触发软件中断

    其中实现所需的功能。 触发软件中断 在STM32中,您可以使用NVIC_SetPendingIRQ()函数来触发软件
    的头像 发表于 09-02 09:32 442次阅读

    CPU中断程序:从硬件看什么是中断

    CPU响应中断转去执行中断服务程序前,需要把被中断程序的现场信息保存起来,以便执行完中断服务程序后,接着从被中断程序的断点处继续往下执行。
    发表于 03-26 11:36 2627次阅读
    CPU<b class='flag-5'>中断</b>程序:从硬件看什么是<b class='flag-5'>中断</b>?

    arm中断是怎么实现

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

    利用数字锁相环(DPLL)实现相位增建和无中断切换

    电子发烧友网站提供《利用数字锁相环(DPLL)实现相位增建和无中断切换.pdf》资料免费下载
    发表于 11-24 09:36 0次下载
    利用数字锁相环(DPLL)<b class='flag-5'>实现</b>相位增建和无<b class='flag-5'>中断</b>切换

    什么是LInux 操作系统中断

    LInux 操作系统中断 什么是系统中断 这个没啥可说的,大家都知道; CPU 在执行任务途中接收到中断请求,需要保存现场后去处理中断请求!保存现场称为
    的头像 发表于 11-10 11:29 554次阅读
    什么是LInux 操作系统<b class='flag-5'>中断</b>

    gic和ARM Core的连接

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

    中断的基础概念

    (1)中断的分类、分组 1-中断触发方式 • ◾edge-triggered: 边沿触发,当中断源产生一个边沿,中断有效 • ◾level-sensitive:电平触发,当
    的头像 发表于 11-07 18:01 688次阅读
    <b class='flag-5'>中断</b>的基础概念

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

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

    中断与硬中断介绍

    • 硬中断是由外部事件引起的因此具有随机性和突发性;硬中断是否可以嵌套的,是否有优先级(由硬件设计体系决定)。 • 软中断是执行中断指令产生的,无面外部施加
    的头像 发表于 11-07 17:02 816次阅读

    软件中断与硬件中断的区别

    现在我们来继续看看这些名词,这是因为其实因为操作的都是物联网设备,那么基本上都是基于ARM体系的硬件。但是刚刚查的资料都是继续x86的,虽然都是linux操作系统。于是这里先继续来丰富点自己
    的头像 发表于 11-07 16:52 978次阅读
    软件<b class='flag-5'>中断</b>与硬件<b class='flag-5'>中断</b>的区别

    什么是中断,中断的介绍

    不同的外部设备、不同的体系结构、不同的OS其中断实现机制都有差别。 中断存在的意义是CPU控制外部设备的同时,外部设备也可以高效的“控制CPU”。这种设计思想扩展到了外部硬件控制CPU、软件控制
    的头像 发表于 11-07 16:43 952次阅读
    什么是<b class='flag-5'>中断</b>,<b class='flag-5'>中断</b>的介绍

    基于ARM的智能家居安防监控系统的设计与实现

    电子发烧友网站提供《基于ARM的智能家居安防监控系统的设计与实现.pdf》资料免费下载
    发表于 11-07 10:53 0次下载
    基于<b class='flag-5'>ARM</b>的智能家居安防监控系统的设计与<b class='flag-5'>实现</b>

    基于ARM的数字调压控制系统设计与实现

    电子发烧友网站提供《基于ARM的数字调压控制系统设计与实现.pdf》资料免费下载
    发表于 11-06 16:03 4次下载
    基于<b class='flag-5'>ARM</b>的数字调压控制系统设计与<b class='flag-5'>实现</b>

    HAL库中STM32F7的串口中断响应过程简析

    中断是计算机系统最重要的组成机制之一,在ARM架构里,通常称为异常(Exception),在文档里是这么说的
    的头像 发表于 11-06 15:21 2502次阅读
    HAL库中STM32F7的串口<b class='flag-5'>中断</b>响应过程简析