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
    +关注

    关注

    135

    文章

    9499

    浏览量

    388555
  • 中断控制器
    +关注

    关注

    0

    文章

    62

    浏览量

    9773
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电能质量在线监测装置是如何实现对电压中断事件的识别的?

    30137-2013/IEC 61000-4-30 标准的中断事件。具体实现流程可拆解为以下 6 个关键步骤,每个环节都有明确的技术逻辑和参数要求: 一、前置基础:明确识别的 “国标门槛”(统一判定标准) 装置首先内置电压中断
    的头像 发表于 11-27 16:32 877次阅读
    电能质量在线监测装置是如何<b class='flag-5'>实现</b>对电压<b class='flag-5'>中断</b>事件的识别的?

    芯源MCU中断相关寄存器

    5.5.1 NVIC 中断使能和禁止使能 ARM® Cortex-M0+ 处理器支持最多32 个外部中断源,分别对应中断使能设置寄存器NIVC_ISER 的32 个使能位, 和
    发表于 11-27 07:23

    Arm神经技术是业界首创在 Arm GPU 上增添专用神经加速器的技术,移动设备上实现PC级别的AI图形性能

    Arm 神经技术是业界首创在 Arm GPU 上增添专用神经加速器的技术,首次在移动设备上实现 PC 级别的 AI 图形性能,为未来的端侧 AI 创新奠定基础 神经超级采样是 Arm
    的头像 发表于 08-14 17:59 2514次阅读

    Arm KleidiAI与XNNPack集成实现AI性能提升

    INT4 矩阵乘法 (matmul) 优化以增强 Google Gemma 2 模型性能开始,到后续完成多项底层技术增强,Arm 在 XNNPack 上实现了显著的性能提升。
    的头像 发表于 08-08 15:19 2537次阅读
    <b class='flag-5'>Arm</b> KleidiAI与XNNPack集成<b class='flag-5'>实现</b>AI性能提升

    Arm Neoverse N2平台实现DeepSeek-R1满血版部署

    颇具优势。Arm 携手合作伙伴,在 Arm Neoverse N2 平台上使用开源推理框架 llama.cpp 实现 DeepSeek-R1 满血版的部署,目前已可提供线上服务。
    的头像 发表于 07-03 14:37 981次阅读
    <b class='flag-5'>Arm</b> Neoverse N2平台<b class='flag-5'>实现</b>DeepSeek-R1满血版部署

    瑞萨RA8D1单片机IO中断配置实现方法

    本文为结合瑞萨e2 studio工具,以及CPKCOR_RA8D1B评估板,给大家讲述瑞萨RA8D1单片机IO中断配置实现的方法。
    的头像 发表于 04-09 15:05 1508次阅读
    瑞萨RA8D1单片机IO<b class='flag-5'>中断</b>配置<b class='flag-5'>实现</b>方法

    Arm+AWS实现AI定义汽车 基于Arm KleidiAI优化并由AWS提供支持

    文中介绍的车载生成式 AI 应用演示由 Arm KleidiAI 进行优化并由 AWS 所提供的服务进行支持,展示了新兴技术如何帮助解决汽车行业的实际挑战。该解决方案可实现 1 至 3 秒的响应时间并将开发时间缩短数周,证明更高效且离线可用的生成式 AI 应用不仅能够
    的头像 发表于 04-03 19:24 1668次阅读
    <b class='flag-5'>Arm</b>+AWS<b class='flag-5'>实现</b>AI定义汽车  基于<b class='flag-5'>Arm</b> KleidiAI优化并由AWS提供支持

    Arm Kleidi扩展到汽车市场 Arm Kleidi实现性能自动优化

    Arm 控股有限公司(纳斯达克股票代码:ARM,以下简称“Arm”)近日宣布将 Arm Kleidi 技术扩展到汽车市场。Arm Kleid
    的头像 发表于 03-14 15:36 1324次阅读

    Arm Cortex-A320 CPU助力嵌入式设备实现高能效AI计算

    ,要确定适合特定 AI 应用的处理器,系统开发者需要通过比较基于 Arm Cortex-A、Arm Cortex-M 和 Arm Ethos-U NPU 的设备及其可能的搭配进行决策。除了成本的考量,开发者还需了解各款处理器具备
    的头像 发表于 02-27 17:17 1141次阅读
    <b class='flag-5'>Arm</b> Cortex-A320 CPU助力嵌入式设备<b class='flag-5'>实现</b>高能效AI计算

    单片机中断技术详解

    在现代电子设备中,单片机作为控制核心发挥着举足轻重的作用。而在其高效运作的背后,中断机制是推动单片机实现实时响应与高效执行的关键因素。本文将深入探讨单片机中的中断概念、中断系统的结构、
    的头像 发表于 02-02 15:57 1424次阅读

    串口中断是内部中断还是外部中断,串口中断是怎么触发的

    串口中断通常被视为外部中断。虽然串口控制器(如USART、UART等)可能集成在微控制器或处理器的内部,但从中断的角度来看,串口中断是由处理器外部的通信事件触发的。这些事件包括数据的接
    的头像 发表于 01-29 15:03 2619次阅读

    串口中断需要清除标志位吗,串口中断标志位会自动清除吗

    在电子通信领域,串口中断作为一种重要的通信机制,广泛应用于各种嵌入式系统和计算机设备中。串口中断标志位的管理,尤其是是否需要手动清除以及是否会自动清除,是理解和实现串口通信的关键环节。
    的头像 发表于 01-29 14:59 2925次阅读

    EE-188:使用C语言在ADSP-219x DSP上实现中断驱动系统

    电子发烧友网站提供《EE-188:使用C语言在ADSP-219x DSP上实现中断驱动系统.pdf》资料免费下载
    发表于 01-15 16:06 0次下载
    EE-188:使用C语言在ADSP-219x DSP上<b class='flag-5'>实现</b><b class='flag-5'>中断</b>驱动系统

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

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

    利用Arm Kleidi技术实现PyTorch优化

    PyTorch 是一个广泛应用的开源机器学习 (ML) 库。近年来,Arm 与合作伙伴通力协作,持续改进 PyTorch 的推理性能。本文将详细介绍如何利用 Arm Kleidi 技术提升 Arm
    的头像 发表于 12-23 09:19 1612次阅读
    利用<b class='flag-5'>Arm</b> Kleidi技术<b class='flag-5'>实现</b>PyTorch优化