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

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

3天内不再提示

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

工程师邓生 来源:未知 作者:刘芹 2023-10-19 16:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

在计算机系统中,异常和中断是两个常见的概念。 在ARM中,异常和中断的主要目的是帮助处理器响应与系统操作相关的事件。 由于处理器必须同时执行多个任务,例如输入/输出(I / O)操作或计时器计数,因此异常和中断是必不可少的。

ARM异常和中断是在ARM内核中实现的,即在芯片上的处理器内部。当处理器执行特定的任务时,根据相应的事件,就会发生异常或中断。

ARM的异常和中断模块由多个不同的组件组成。 这些组件包括处理器模式,管理寄存器和中断控制器等。 然后,处理器根据模式来响应异常和中断请求,并执行特定的处理过程。

在ARM体系结构中,处理器模式是ARM处理器的一种状态。 处理器模式有七种不同的类型:用户模式,FIQ(快速中断请求)模式,IRQ(普通中断请求)模式,监管模式,异常处理程序模式,中止处理程序模式和无效模式。 每个模式都定义了处理器在执行任务时可以访问的寄存器和内存空间等。其中,异常处理程序模式是由ARM处理器用来响应异常事件和中断请求的模式。

当ARM处理器通过异常或中断请求进入异常处理程序模式时,它会从当前用户模式切换到异常处理模式。处理器会将当前CPU状态(如程序计数器,标志寄存器等)保存到内部寄存器中,然后加载处理器模式下的堆栈指针。 接下来,处理器将跳转到指定的异常处理程序来处理异常或中断请求。

在ARM中,中断被分为两类:快速中断请求(FIQ)和普通中断请求(IRQ)。 FIQ是ARM中处理时间敏感任务的快速中断码,可以提供更高的抢占优先级和更快的响应时间。所以,如果有FIQ请求,处理器会首先进入FIQ模式处理中断请求。IRQ被认为是标准中断请求,如果没有FIQ请求,当出现IRQ请求时,ARM处理器便会进入中断模式。

在ARM中,中断请求是通过中断控制器发送的。中断控制器位于ARM处理器芯片中,可以将中断请求通过对应的GPIO端口发送到ARM处理器中。 中断控制器还会将相应的中断优先级和中断信息发送到ARM处理器,以便ARM处理器能够进入恰当的模式处理中断请求。

总结一下,ARM的异常和中断机制提供了一种响应系统事件的方式。从硬件角度来看,ARM处理器通过处理器模式,管理寄存器和中断控制器等多个组件来处理异常和中断请求。当ARM处理器进入异常处理程序模式时,它从当前模式切换到处理器模式,并依据中断类型切换到FIQ模式或IRQ模式。此过程中,中断控制器会发送中断请求并提供相应的优先级和信息。所有这些组成了ARM中异常和中断机制的核心。

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

    关注

    135

    文章

    9499

    浏览量

    388647
  • 寄存器
    +关注

    关注

    31

    文章

    5588

    浏览量

    129051
  • 异常中断
    +关注

    关注

    0

    文章

    9

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    mcu短时间内发生多次中断,如何解决中断丢失问题

    的事情,下半部处理比较耗时的操作。 还有在使用中断的时候,如果是已经在处理进入中断的第一件事情就是关闭中断,避免
    发表于 12-05 07:07

    芯源MCU中断相关寄存器

    。 5.5.2 NVIC 中断挂起和清除挂起 在中断发生时,如果系统正在处理与之相同优先级或更高优先级的中断,系统将不会立即处理此中断,而是将
    发表于 11-27 07:23

    芯源MCU进入休眠模式或深度休眠模式

    )的SLEEPONEXIT 和SLEEPDEEP 位域,可实现立即进入或退出(中断服务程序)时进 入休眠模式或深度休眠模式。 ●● 立即进入
    发表于 11-26 07:41

    【NCS随笔】如何进入system_off深度睡眠模式以及配置GPIO中断唤醒

    【NCS随笔】如何进入system_off深度睡眠模式以及配置GPIO中断唤醒 本文章主要是讲解NCS下面使用nRF54L15如何进入system_off模式,以及如何配置通过按键唤醒 一、如
    的头像 发表于 09-29 00:56 472次阅读
    【NCS随笔】如<b class='flag-5'>何进入</b>system_off深度睡眠模式以及配置GPIO<b class='flag-5'>中断</b>唤醒

    为什么程序在清除中断标志后进入中断服务例程?

    为什么程序在清除中断标志后进入中断服务例程?
    发表于 08-27 08:33

    中断处理程序进入掉电模式需要注意什么?

    中断处理程序进入掉电模式需要注意什么?
    发表于 08-26 07:46

    请问在中断处理程序进入掉电模式需要注意什么?

    中断处理程序进入掉电模式需要注意什么?
    发表于 08-21 06:20

    STM32G474进入Fault3中断没办法设置成周期性触发吗?

    到最低也不行。想请教下,进入Fault3中断没办法设置成周期性触发吗?这种持续触发中断的方式使程序中断里出不来怎么办
    发表于 08-01 07:23

    STM32IDE如何设定代码到ITCM运行?

    摸索到了如何将变量定义到某个地址,但是不清楚如何让代码在指定RAM运行。按照设定变量的方式设定代码,程序直接进入异常中断{:16:}。
    发表于 06-24 06:45

    AG32 MCU 如何进入低功耗模式

    的外设中断都可以从休眠模式唤醒设备。如果使用WFE指令进入睡眠模式,则一旦发生事件,MCU就退出睡眠模式。唤醒事件可以通过以下方式生成: (1)、在外围控制寄存器启用中断,但在NVI
    发表于 04-21 11:29

    STM32使用外部中断触发ADC采样DMA搬运出现两次进入DMA中断异常情况,怎么解决?

    STM32使用外部中断触发ADC采样DMA搬运出现两次进入DMA中断异常情况,使用的HAL库+MX配置的,示波器观察波形ADC中断
    发表于 03-14 12:46

    stm32f103定时器2配置中断程序一直死循环,无法进入中断,怎么解决?

    目前定时器2配置中断程序一直死循环,无法进入中断,有无大佬请教或者看一下个参考历程
    发表于 03-12 08:18

    请问STM32U073如何进入DFU模式?

    我已经实现了从程序内按键进入DFU模式。现在的问题是客户首次下载程序何进入。我板子上BOOT0通过10K电阻对地。预留了它对VCC的短接排
    发表于 03-11 07:12

    让ADS7864的BUSY脚接DSP的外部中断INT0,DSP通过中断来读取采样数据,要不要先关INT0中断

    我让ADS7864的BUSY脚接DSP的外部中断INT0,DSP通过中断来读取采样数据。请问在中断服务程序,要不要先关INT0
    发表于 01-13 06:11

    ADS8881 CONVST高电平变到低电平时,进入中断进行读取转换数据,但是一直无法进入中断,什么原因导致的?

    您好!我在测试ADS8881时,按照下面这个思路进行模拟SPI,选择三线无繁忙模式,将DIN直接拉高。当CONVST有高电平变到低电平时,进入中断进行读取转换数据,但是一直无法进入中断
    发表于 12-17 06:18