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

    关注

    134

    文章

    9373

    浏览量

    378648
  • 寄存器
    +关注

    关注

    31

    文章

    5440

    浏览量

    124964
  • 异常中断
    +关注

    关注

    0

    文章

    9

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    请问中断过多的时候进入硬件错误如何处置?

    中断过多的时候进入硬件错误如何处置?是加看门狗还是加硬件错误处理?
    发表于 07-21 06:11

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

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

    AG32 MCU 如何进入低功耗模式

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

    使用串口dma环形接收+空闲中断,触发空闲中断后进入任务拷贝数据发现拷贝的数据全为0,怎么处理?

    求助,我使用串口dma环形接收+空闲中断,默认应该开了缓存,在触发空闲中断后进入任务拷贝数据发现拷贝的数据全为0,但是我挂上调试之后在拷贝之前只要打上断点断一次执行之后再执行就正常了,该怎么处理,串口
    发表于 03-27 06:17

    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

    STM32H743做数字电源,上电后首次进入HRTIM中断卡死怎么解决?

    的时候,开始进入HRTIM中断函数,问题在于首次启动的时候,有时候会死机;程序卡死进入HardFault;除了首次之外,(单片机没有掉电)再次启动高压输出或者停止高压的时候就没有问题了
    发表于 03-11 06:51

    程序中断的100种写法

    。 信号处理:在Unix/Linux系统,通过信号(signal)处理机制实现中断异常处理:由程序
    发表于 01-28 08:25

    让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

    APM32F10xx进入低功耗模式的问题分析

    近日,在学习APM32开发板关于PMU模块的内容,看到很多内容都是调用WFI内核指令进入低功耗模式,于是自己想尝试调用WFE内核指令进入低功耗模式,但在APM32F10xx,我运用按键中断
    的头像 发表于 10-18 16:13 ?884次阅读
    APM32F10xx<b class='flag-5'>进入</b>低功耗模式的问题分析

    单片机有哪些中断类型

    单片机中断是指在单片机执行程序的过程,当外部设备或内部条件发生某个特定事件时,能够暂停当前正在执行的程序,转而去执行一个特定的服务程序(称
    的头像 发表于 10-17 18:12 ?2472次阅读

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

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